From 4622cfc44be7b95050e90bbbc4026f192a596c9d Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Fri, 28 Aug 2026 00:35:46 +0100 Subject: [PATCH] carve-out: evict a2ml, lol and the repo-guardian pair (#490 #494 #492) Removes 2,483 files from standards. All three destinations were minted today and populated by subtree split, so history is preserved: hyperpolymath/a2ml 2,024 files 118 commits #490 hyperpolymath/lol 339 files 65 commits #494 hyperpolymath/repo-guardian 120 files 98 commits #492 repo-guardian combines two subtrees that were separate directories here - 0-ai-gatekeeper-protocol/mcp-repo-guardian (71) and repo-guardian-fs (49) - per the owner's ruling to mint one repo rather than two. Load-bearing changes made in this same commit, because each would break main on its own: * scripts/build-registry.sh - a2ml moved from SPECS (local) to EXTERNAL_SPECS, recording repo + canonical_url + version_pin + PENDING-FIRST-SYNC hash. `lol` was never a registered spec, so it needed no registry change. Regenerated AFTER staging, because source_hash is computed from `git ls-files -s` - the INDEX, not the working tree. * .machine_readable/scorecards/a2ml.scorecard.a2ml - DELETED. With a2ml no longer a LOCAL spec the generator reports it as an orphan and the gate fails. Standards records external specs as pointers, not scorecards. * 0-ai-gatekeeper-protocol.scorecard.a2ml M4 - its check ran `cargo test --manifest-path .../repo-guardian-fs/tests-offline/Cargo.toml` against a path that just moved. Now status = "manual-only" with the check removed and the provenance kept in `system =`. * Justfile - 10 lines removed across build/test/fmt/lint/clean that did `cd a2ml/bindings/rust` or `cd 0-ai-gatekeeper-protocol/mcp-repo-guardian`. Every contributor's `just build` would have broken otherwise. * scripts/tests/wave0-false-green-test.sh - the check-6scm.sh section removed (17 lines). It exercised a2ml/scripts/check-6scm.sh, which now lives in the other repo; leaving it would fail the REQUIRED "Repo self-tests" check for a file this repository no longer contains. A note in its place says where those four cases belong. Verified before pushing: registry --check exit 0 build-scorecards --check --strict --verify exit 0 all 26 scripts/tests/*.sh 0 failing Left deliberately: echidna-verify.yml still path-filters on lol/proofs/** and a2ml/src/**, which are now dormant rather than broken - those filters can never match, so the workflow simply will not fire on them. Retiring that job is a separate decision about where those proofs are verified now. Co-Authored-By: Claude Opus 5 --- .machine_readable/REGISTRY.a2ml | 29 +- .../0-ai-gatekeeper-protocol.scorecard.a2ml | 5 +- .../scorecards/a2ml.scorecard.a2ml | 121 - .../mcp-repo-guardian/.github/FUNDING.yml | 7 - .../.github/ISSUE_TEMPLATE/bug_report.md | 38 - .../.github/ISSUE_TEMPLATE/custom.md | 10 - .../.github/ISSUE_TEMPLATE/documentation.md | 66 - .../.github/ISSUE_TEMPLATE/feature_request.md | 20 - .../.github/ISSUE_TEMPLATE/question.md | 55 - .../mcp-repo-guardian/.github/dependabot.yml | 48 - .../.github/workflows/codeql.yml | 23 - .../.github/workflows/governance.yml | 27 - .../.github/workflows/hypatia-scan.yml | 21 - .../.github/workflows/jekyll-gh-pages.yml | 54 - .../.github/workflows/jekyll.yml | 68 - .../.github/workflows/mirror.yml | 15 - .../.github/workflows/scorecard-enforcer.yml | 17 - .../.github/workflows/scorecard.yml | 24 - .../.github/workflows/secret-scanner.yml | 21 - .../mcp-repo-guardian/.gitignore | 82 - .../mcp-repo-guardian/.gitlab-ci.yml | 175 - .../descriptiles/AGENTIC.a2ml | 34 - .../descriptiles/ECOSYSTEM.a2ml | 20 - .../.machine_readable/descriptiles/META.a2ml | 27 - .../descriptiles/NEUROSYM.a2ml | 21 - .../descriptiles/PLAYBOOK.a2ml | 26 - .../.machine_readable/descriptiles/STATE.a2ml | 43 - .../mcp-repo-guardian/.nojekyll | 0 .../mcp-repo-guardian/ABI-FFI-README.adoc | 409 - .../mcp-repo-guardian/LICENSE | 153 - .../mcp-repo-guardian/MAINTAINERS.adoc | 47 - .../mcp-repo-guardian/NPM-PUBLISHING.adoc | 180 - .../mcp-repo-guardian/README.adoc | 101 - .../mcp-repo-guardian/ROADMAP.adoc | 22 - .../mcp-repo-guardian/RSR_OUTLINE.adoc | 218 - .../mcp-repo-guardian/bench/manifest_bench.js | 163 - .../contractiles/README.adoc | 19 - .../contractiles/dust/Dustfile | 29 - .../contractiles/must/Mustfile | 35 - .../mcp-repo-guardian/deno.lock | 30 - .../mcp-repo-guardian/docs/CITATIONS.adoc | 36 - .../examples/web-project-deno.json | 20 - .../mcp-repo-guardian/ffi/zig/build.zig | 94 - .../mcp-repo-guardian/ffi/zig/src/main.zig | 274 - .../ffi/zig/test/integration_test.zig | 182 - .../Guards-HyperpolymathMcpRepoGuardian.cmj | Bin 125 -> 0 bytes .../mcp-repo-guardian/lib/ocaml/Guards.affine | 97 - .../mcp-repo-guardian/lib/ocaml/Guards.ast | Bin 9035 -> 0 bytes .../ocaml/HyperpolymathMcpRepoGuardian.cmj | Bin 43 -> 0 bytes .../ocaml/HyperpolymathMcpRepoGuardian.mlmap | 6 - .../Index-HyperpolymathMcpRepoGuardian.cmj | Bin 161 -> 0 bytes .../mcp-repo-guardian/lib/ocaml/Index.affine | 329 - .../mcp-repo-guardian/lib/ocaml/Index.ast | Bin 32366 -> 0 bytes .../Manifest-HyperpolymathMcpRepoGuardian.cmj | Bin 199 -> 0 bytes .../lib/ocaml/Manifest.affine | 133 - .../mcp-repo-guardian/lib/ocaml/Manifest.ast | Bin 13918 -> 0 bytes .../Session-HyperpolymathMcpRepoGuardian.cmj | Bin 143 -> 0 bytes .../lib/ocaml/Session.affine | 97 - .../mcp-repo-guardian/lib/ocaml/Session.ast | Bin 8692 -> 0 bytes .../Types-HyperpolymathMcpRepoGuardian.cmj | Bin 89 -> 0 bytes .../mcp-repo-guardian/lib/ocaml/Types.affine | 43 - .../mcp-repo-guardian/lib/ocaml/Types.ast | Bin 2295 -> 0 bytes .../mcp-repo-guardian/lib/rescript.lock | 1 - .../mcp-repo-guardian/src/Guards.affine | 97 - .../mcp-repo-guardian/src/Guards.mjs | 90 - .../mcp-repo-guardian/src/Index.affine | 329 - .../mcp-repo-guardian/src/Index.mjs | 286 - .../mcp-repo-guardian/src/Manifest.affine | 133 - .../mcp-repo-guardian/src/Manifest.mjs | 107 - .../mcp-repo-guardian/src/Session.affine | 97 - .../mcp-repo-guardian/src/Session.mjs | 86 - .../mcp-repo-guardian/src/Types.affine | 43 - .../mcp-repo-guardian/src/Types.mjs | 2 - .../mcp-repo-guardian/test/manifest_test.js | 480 -- .../repo-guardian-fs/.github/FUNDING.yml | 7 - .../.github/ISSUE_TEMPLATE/bug_report.md | 38 - .../.github/ISSUE_TEMPLATE/custom.md | 10 - .../.github/ISSUE_TEMPLATE/documentation.md | 66 - .../.github/ISSUE_TEMPLATE/feature_request.md | 20 - .../.github/ISSUE_TEMPLATE/question.md | 55 - .../repo-guardian-fs/.github/dependabot.yml | 48 - .../.github/workflows/codeql.yml | 23 - .../.github/workflows/governance.yml | 27 - .../.github/workflows/hypatia-scan.yml | 21 - .../.github/workflows/jekyll-gh-pages.yml | 54 - .../.github/workflows/jekyll.yml | 68 - .../.github/workflows/mirror.yml | 15 - .../.github/workflows/scorecard-enforcer.yml | 17 - .../.github/workflows/scorecard.yml | 24 - .../.github/workflows/secret-scanner.yml | 21 - .../repo-guardian-fs/.gitignore | 82 - .../repo-guardian-fs/.gitlab-ci.yml | 175 - .../descriptiles/AGENTIC.a2ml | 34 - .../descriptiles/ECOSYSTEM.a2ml | 20 - .../.machine_readable/descriptiles/META.a2ml | 27 - .../descriptiles/NEUROSYM.a2ml | 21 - .../descriptiles/PLAYBOOK.a2ml | 26 - .../.machine_readable/descriptiles/STATE.a2ml | 43 - .../repo-guardian-fs/.nojekyll | 0 .../repo-guardian-fs/0-AI-MANIFEST.a2ml | 116 - .../repo-guardian-fs/ABI-FFI-README.adoc | 409 - .../repo-guardian-fs/Cargo.lock | 796 -- .../repo-guardian-fs/Cargo.toml | 28 - .../repo-guardian-fs/LICENSE | 153 - .../repo-guardian-fs/MAINTAINERS.adoc | 47 - .../repo-guardian-fs/README.adoc | 133 - .../repo-guardian-fs/ROADMAP.adoc | 22 - .../repo-guardian-fs/RSR_OUTLINE.adoc | 218 - .../repo-guardian-fs/contractiles/README.adoc | 19 - .../contractiles/dust/Dustfile | 29 - .../contractiles/must/Mustfile | 35 - .../repo-guardian-fs/docs/CITATIONS.adoc | 36 - .../examples/web-project-deno.json | 20 - .../repo-guardian-fs/ffi/zig/build.zig | 94 - .../repo-guardian-fs/ffi/zig/src/main.zig | 274 - .../ffi/zig/test/integration_test.zig | 182 - .../repo-guardian-fs/src/filesystem.rs | 255 - .../repo-guardian-fs/src/main.rs | 108 - .../repo-guardian-fs/src/manifest.rs | 215 - .../repo-guardian-fs/src/session_manager.rs | 170 - .../repo-guardian-fs/tests-offline/Cargo.lock | 515 -- .../repo-guardian-fs/tests-offline/Cargo.toml | 24 - .../repo-guardian-fs/tests-offline/src/lib.rs | 575 -- COMPLIANCE-DASHBOARD.adoc | 13 +- Justfile | 10 - TOPOLOGY.adoc | 2 +- a2ml/.editorconfig | 68 - a2ml/.gitattributes | 54 - a2ml/.github/FUNDING.yml | 7 - a2ml/.github/ISSUE_TEMPLATE/bug_report.md | 38 - a2ml/.github/ISSUE_TEMPLATE/custom.md | 10 - a2ml/.github/ISSUE_TEMPLATE/documentation.md | 66 - .../.github/ISSUE_TEMPLATE/feature_request.md | 20 - a2ml/.github/ISSUE_TEMPLATE/question.md | 55 - a2ml/.github/dependabot.yml | 48 - a2ml/.github/workflows/6scm-sync.yml | 18 - a2ml/.github/workflows/a2ml-validation.yml | 130 - a2ml/.github/workflows/codeql.yml | 23 - a2ml/.github/workflows/contractiles-a2ml.yml | 24 - a2ml/.github/workflows/fuzzing.yml | 203 - a2ml/.github/workflows/governance.yml | 27 - a2ml/.github/workflows/hypatia-scan.yml | 21 - a2ml/.github/workflows/idris2-tests.yml | 82 - a2ml/.github/workflows/mirror.yml | 15 - a2ml/.github/workflows/rescript-tests.yml | 87 - a2ml/.github/workflows/scorecard.yml | 24 - a2ml/.github/workflows/secret-scanner.yml | 21 - a2ml/.gitignore | 87 - a2ml/.gitlab-ci.yml | 175 - .../descriptiles/AGENTIC.a2ml | 34 - .../descriptiles/ECOSYSTEM.a2ml | 20 - a2ml/.machine_readable/descriptiles/META.a2ml | 27 - .../descriptiles/NEUROSYM.a2ml | 21 - .../descriptiles/PLAYBOOK.a2ml | 26 - .../.machine_readable/descriptiles/STATE.a2ml | 46 - a2ml/.nojekyll | 0 a2ml/.well-known/ai.txt | 24 - a2ml/.well-known/dnt-policy.txt | 18 - a2ml/.well-known/humans.txt | 19 - a2ml/.well-known/keybase.txt | 12 - a2ml/.well-known/security.txt | 53 - a2ml/.well-known/sellers.json | 7 - a2ml/.well-known/trust.txt | 57 - a2ml/ABI-FFI-README.adoc | 409 - a2ml/CNAME | 1 - a2ml/CODE_OF_CONDUCT.adoc | 339 - a2ml/CONTRIBUTING.adoc | 108 - a2ml/DOGFOODING-OPPORTUNITIES.adoc | 653 -- a2ml/IANA-MEDIA-TYPE-APPLICATION.adoc | 285 - a2ml/Justfile | 645 -- a2ml/LICENSE | 663 -- a2ml/LICENSES/PMPL-1.0.txt | 162 - a2ml/MAINTAINERS.adoc | 47 - a2ml/MANIFEST-DIALECT-SPEC.adoc | 340 - a2ml/READINESS.adoc | 163 - a2ml/README.a2ml | 128 - a2ml/README.adoc | 127 - a2ml/RECORD-DIALECT-SPEC.adoc | 821 -- a2ml/RELEASE-NOTES-v0.1.0.adoc | 30 - a2ml/RELEASE-NOTES-v0.5.0.adoc | 22 - a2ml/RELEASE-NOTES-v0.6.0.adoc | 26 - a2ml/RELEASE-NOTES-v1.0.0.adoc | 375 - a2ml/RELEASE-NOTES-v1.1.0.adoc | 111 - a2ml/ROADMAP.adoc | 61 - a2ml/RSR_OUTLINE.adoc | 218 - a2ml/SECURITY-SETUP.adoc | 242 - a2ml/SECURITY.adoc | 452 - a2ml/SPEC.adoc | 756 -- a2ml/VERSIONS.adoc | 84 - a2ml/a2ml-core.ipkg | 32 - .../validate/.devcontainer/Containerfile | 32 - .../validate/.devcontainer/README.adoc | 27 - .../validate/.devcontainer/devcontainer.json | 69 - a2ml/actions/validate/.editorconfig | 65 - a2ml/actions/validate/.envrc | 27 - a2ml/actions/validate/.gitattributes | 55 - a2ml/actions/validate/.github/.mailmap | 1 - a2ml/actions/validate/.github/.nojekyll | 0 .../validate/.github/0.1-AI-MANIFEST.a2ml | 1 - a2ml/actions/validate/.github/CODEOWNERS | 14 - .../validate/.github/CODE_OF_CONDUCT.md | 327 - a2ml/actions/validate/.github/CONTRIBUTING.md | 122 - .../.github/DISCUSSION_TEMPLATE/ideas.yml | 13 - .../.github/DISCUSSION_TEMPLATE/q-and-a.yml | 13 - a2ml/actions/validate/.github/FUNDING.yml | 7 - a2ml/actions/validate/.github/GOVERNANCE.md | 158 - .../.github/ISSUE_TEMPLATE/bug_report.yml | 127 - .../.github/ISSUE_TEMPLATE/config.yml | 10 - .../.github/ISSUE_TEMPLATE/custom.yml | 76 - .../.github/ISSUE_TEMPLATE/documentation.yml | 64 - .../ISSUE_TEMPLATE/feature_request.yml | 87 - .../.github/ISSUE_TEMPLATE/question.yml | 60 - a2ml/actions/validate/.github/MAINTAINERS | 10 - a2ml/actions/validate/.github/README.adoc | 1 - a2ml/actions/validate/.github/SECURITY.md | 406 - a2ml/actions/validate/.github/SUPPORT | 7 - .../validate/.github/copilot-instructions.md | 57 - a2ml/actions/validate/.github/dependabot.yml | 48 - .../validate/.github/pull_request_template.md | 44 - .../validate/.github/workflows/codeql.yml | 23 - .../validate/.github/workflows/governance.yml | 27 - .../.github/workflows/hypatia-scan.yml | 21 - .../validate/.github/workflows/jekyll.yml | 68 - .../validate/.github/workflows/mirror.yml | 15 - .../validate/.github/workflows/release.yml | 131 - .../validate/.github/workflows/rhodibot.yml | 235 - .../.github/workflows/scorecard-enforcer.yml | 17 - .../validate/.github/workflows/scorecard.yml | 24 - .../.github/workflows/secret-scanner.yml | 21 - .../workflows/static-analysis-gate.yml | 331 - a2ml/actions/validate/.gitignore | 105 - a2ml/actions/validate/.gitlab-ci.yml | 175 - a2ml/actions/validate/.guix-channel | 22 - .../.machine_readable/0.1-AI-MANIFEST.a2ml | 29 - .../validate/.machine_readable/CLADE.a2ml | 26 - .../.machine_readable/ENSAID_CONFIG.a2ml | 96 - .../validate/.machine_readable/README.adoc | 1 - .../validate/.machine_readable/ai/.clinerules | 43 - .../.machine_readable/ai/.cursorrules | 47 - .../.machine_readable/ai/.windsurfrules | 43 - .../.machine_readable/ai/0.2-AI-MANIFEST.a2ml | 11 - .../validate/.machine_readable/ai/AI.a2ml | 16 - .../.machine_readable/ai/PLACEHOLDERS.adoc | 142 - .../validate/.machine_readable/ai/README.adoc | 22 - .../anchors/0.2-AI-MANIFEST.a2ml | 11 - .../.machine_readable/anchors/ANCHOR.a2ml | 62 - .../.machine_readable/anchors/README.adoc | 1 - .../.machine_readable/compliance/reuse/dep5 | 54 - .../compliance/rust/deny.toml | 65 - .../configs/0.2-AI-MANIFEST.a2ml | 11 - .../.machine_readable/configs/README.adoc | 1 - .../configs/git-cliff/cliff.toml | 119 - .../contractiles/README.adoc | 19 - .../contractiles/dust/Dustfile.a2ml | 44 - .../contractiles/must/Mustfile.a2ml | 69 - .../contractiles/trust/Trustfile.a2ml | 50 - .../descriptiles/AGENTIC.a2ml | 36 - .../descriptiles/ECOSYSTEM.a2ml | 26 - .../.machine_readable/descriptiles/META.a2ml | 53 - .../descriptiles/NEUROSYM.a2ml | 23 - .../descriptiles/PLAYBOOK.a2ml | 35 - .../.machine_readable/descriptiles/STATE.a2ml | 64 - .../policies/.maintenance-perms-ignore | 5 - .../policies/0.2-AI-MANIFEST.a2ml | 11 - .../policies/MAINTENANCE-AXES.a2ml | 54 - .../policies/MAINTENANCE-CHECKLIST.a2ml | 159 - .../.machine_readable/policies/README.adoc | 1 - .../SOFTWARE-DEVELOPMENT-APPROACH.a2ml | 53 - .../scripts/0.2-AI-MANIFEST.a2ml | 18 - .../scripts/forge/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/forge/README.adoc | 1 - .../scripts/forge/forge-sync.sh | 25 - .../scripts/forge/git-cleanup.sh | 8 - .../scripts/lifecycle/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/lifecycle/README.adoc | 1 - .../scripts/lifecycle/install-tools.sh | 27 - .../scripts/maintenance/maint-assault.sh | 44 - .../scripts/verification/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/verification/README.adoc | 1 - a2ml/actions/validate/.tool-versions | 9 - a2ml/actions/validate/.well-known/ai.txt | 18 - a2ml/actions/validate/.well-known/humans.txt | 14 - .../actions/validate/.well-known/security.txt | 11 - a2ml/actions/validate/0-AI-MANIFEST.a2ml | 121 - a2ml/actions/validate/CHANGELOG.adoc | 9 - a2ml/actions/validate/CONTRIBUTING.adoc | 26 - a2ml/actions/validate/Containerfile | 41 - a2ml/actions/validate/Justfile | 910 -- a2ml/actions/validate/LICENSE | 153 - a2ml/actions/validate/README.adoc | 139 - a2ml/actions/validate/ROADMAP.adoc | 22 - a2ml/actions/validate/SECURITY.adoc | 16 - a2ml/actions/validate/action.yml | 54 - .../validate/container/.gatekeeper.yaml | 122 - .../validate/container/0.1-AI-MANIFEST.a2ml | 143 - a2ml/actions/validate/container/Containerfile | 136 - a2ml/actions/validate/container/README.adoc | 179 - .../validate/container/compose.example.toml | 135 - a2ml/actions/validate/container/compose.toml | 70 - a2ml/actions/validate/container/ct-build.sh | 162 - a2ml/actions/validate/container/deploy.k9.ncl | 166 - a2ml/actions/validate/container/entrypoint.sh | 63 - a2ml/actions/validate/container/manifest.toml | 62 - a2ml/actions/validate/container/vordr.toml | 100 - a2ml/actions/validate/contractile.just | 75 - .../validate/docs/0.1-AI-MANIFEST.a2ml | 33 - a2ml/actions/validate/docs/QUICKSTART.adoc | 24 - a2ml/actions/validate/docs/README.adoc | 14 - a2ml/actions/validate/docs/RSR_OUTLINE.adoc | 290 - .../validate/docs/STATE-VISUALIZER.adoc | 128 - .../docs/architecture/0.2-AI-MANIFEST.a2ml | 17 - .../docs/architecture/THREAT-MODEL.adoc | 162 - .../docs/attribution/0.2-AI-MANIFEST.a2ml | 11 - .../validate/docs/attribution/CITATION.cff | 17 - .../validate/docs/attribution/CITATIONS.adoc | 35 - .../validate/docs/attribution/CODEOWNERS.adoc | 19 - .../docs/attribution/MAINTAINERS.adoc | 47 - .../validate/docs/attribution/README.adoc | 1 - .../docs/decisions/0.2-AI-MANIFEST.a2ml | 11 - .../docs/decisions/0000-template.adoc | 35 - .../decisions/0001-adopt-rsr-standard.adoc | 86 - .../validate/docs/decisions/README.adoc | 1 - .../docs/developer/0.2-AI-MANIFEST.a2ml | 11 - .../docs/developer/ABI-FFI-README.adoc | 384 - .../validate/docs/developer/README.adoc | 1 - .../docs/governance/0.1-AI-MANIFEST.a2ml | 21 - .../docs/governance/CRG-CRITERIA.a2ml | 108 - .../docs/governance/CRG-CRITERIA.adoc | 39 - .../governance/MAINTENANCE-CHECKLIST.a2ml | 159 - .../governance/MAINTENANCE-CHECKLIST.adoc | 569 -- .../validate/docs/governance/README.adoc | 1 - .../SOFTWARE-DEVELOPMENT-APPROACH.a2ml | 53 - .../SOFTWARE-DEVELOPMENT-APPROACH.adoc | 63 - .../validate/docs/governance/TSDM.a2ml | 22 - .../validate/docs/governance/TSDM.adoc | 26 - .../governance/audit/0.2-AI-MANIFEST.a2ml | 11 - .../docs/governance/audit/README.adoc | 1 - .../audit/compliance/0.3-AI-MANIFEST.a2ml | 11 - .../governance/audit/compliance/README.adoc | 1 - .../audit/effects/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/audit/effects/README.adoc | 1 - .../audit/systems/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/audit/systems/README.adoc | 1 - .../maintenance/0.2-AI-MANIFEST.a2ml | 11 - .../docs/governance/maintenance/README.adoc | 1 - .../maintenance/adaptive/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/adaptive/README.adoc | 1 - .../corrective/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/corrective/README.adoc | 1 - .../perfective/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/perfective/README.adoc | 1 - .../governance/planning/0.2-AI-MANIFEST.a2ml | 11 - .../docs/governance/planning/README.adoc | 1 - .../planning/could/0.3-AI-MANIFEST.a2ml | 11 - .../governance/planning/could/README.adoc | 1 - .../planning/must/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/planning/must/README.adoc | 1 - .../planning/should/0.3-AI-MANIFEST.a2ml | 11 - .../governance/planning/should/README.adoc | 1 - .../validate/docs/legal/0.2-AI-MANIFEST.a2ml | 16 - .../docs/legal/EXHIBIT-A-ETHICAL-USE.txt | 68 - .../docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt | 102 - a2ml/actions/validate/docs/practice/.gitkeep | 0 .../docs/practice/0.2-AI-MANIFEST.a2ml | 11 - .../docs/practice/AI-CONVENTIONS.adoc | 85 - .../validate/docs/practice/README.adoc | 1 - .../docs/practice/STATE-VISUALIZER-GUIDE.adoc | 155 - .../docs/reports/0.2-AI-MANIFEST.a2ml | 19 - .../actions/validate/docs/reports/README.adoc | 1 - .../reports/compliance/0.3-AI-MANIFEST.a2ml | 11 - .../docs/reports/compliance/README.adoc | 1 - .../reports/maintenance/0.3-AI-MANIFEST.a2ml | 11 - .../docs/reports/maintenance/README.adoc | 1 - .../reports/performance/0.3-AI-MANIFEST.a2ml | 11 - .../docs/reports/performance/README.adoc | 1 - .../docs/reports/quality/0.3-AI-MANIFEST.a2ml | 11 - .../validate/docs/reports/quality/README.adoc | 1 - .../reports/security/0.3-AI-MANIFEST.a2ml | 11 - .../docs/reports/security/README.adoc | 1 - .../docs/standards/0.2-AI-MANIFEST.a2ml | 11 - .../validate/docs/standards/README.adoc | 1 - .../docs/templates/contractiles/README.adoc | 11 - .../templates/contractiles/dust/Dustfile.a2ml | 11 - .../contractiles/intend/Intentfile.a2ml | 11 - .../templates/contractiles/must/Mustfile.a2ml | 11 - .../contractiles/trust/Trustfile.a2ml | 11 - a2ml/actions/validate/docs/theory/.gitkeep | 0 .../validate/docs/theory/0.2-AI-MANIFEST.a2ml | 23 - a2ml/actions/validate/docs/theory/README.adoc | 1 - .../theory/computing/0.3-AI-MANIFEST.a2ml | 11 - .../docs/theory/computing/README.adoc | 1 - .../theory/formalisms/0.3-AI-MANIFEST.a2ml | 11 - .../docs/theory/formalisms/README.adoc | 1 - .../theory/mathematics/0.3-AI-MANIFEST.a2ml | 11 - .../docs/theory/mathematics/README.adoc | 1 - .../theory/ontologies/0.3-AI-MANIFEST.a2ml | 11 - .../docs/theory/ontologies/README.adoc | 1 - .../docs/theory/other/0.3-AI-MANIFEST.a2ml | 11 - .../validate/docs/theory/other/README.adoc | 1 - .../socio-technical/0.3-AI-MANIFEST.a2ml | 11 - .../docs/theory/socio-technical/README.adoc | 1 - .../docs/whitepapers/0.2-AI-MANIFEST.a2ml | 20 - .../validate/docs/whitepapers/README.adoc | 1 - .../docs/whitepapers/academic/.gitkeep | 0 .../whitepapers/academic/0.3-AI-MANIFEST.a2ml | 11 - .../docs/whitepapers/academic/README.adoc | 1 - .../docs/whitepapers/industry/.gitkeep | 0 .../whitepapers/industry/0.3-AI-MANIFEST.a2ml | 11 - .../docs/whitepapers/industry/README.adoc | 1 - .../whitepapers/outreach/0.3-AI-MANIFEST.a2ml | 16 - .../docs/whitepapers/outreach/README.adoc | 17 - .../validate/docs/wikis/0.2-AI-MANIFEST.a2ml | 15 - a2ml/actions/validate/docs/wikis/README.adoc | 15 - .../validate/examples/0.1-AI-MANIFEST.a2ml | 1 - a2ml/actions/validate/examples/README.adoc | 1 - .../validate/examples/web-project-deno.json | 20 - .../validate/features/0.1-AI-MANIFEST.a2ml | 17 - a2ml/actions/validate/features/README.adoc | 1 - .../features/boj-server/0.2-AI-MANIFEST.a2ml | 11 - .../validate/features/boj-server/README.adoc | 14 - .../panic-attacker/0.2-AI-MANIFEST.a2ml | 11 - .../features/panic-attacker/README.adoc | 25 - .../features/ssg/0.2-AI-MANIFEST.a2ml | 11 - .../actions/validate/features/ssg/README.adoc | 1 - .../validate/features/ssg/ssg-bootstrap.sh | 48 - .../actions/validate/src/0.1-AI-MANIFEST.a2ml | 27 - a2ml/actions/validate/src/README.adoc | 1 - .../validate/src/aspects/0.2-AI-MANIFEST.a2ml | 17 - a2ml/actions/validate/src/aspects/README.adoc | 1 - .../aspects/integrity/0.3-AI-MANIFEST.a2ml | 11 - .../src/aspects/integrity/README.adoc | 1 - .../observability/0.3-AI-MANIFEST.a2ml | 11 - .../src/aspects/observability/README.adoc | 1 - .../src/aspects/security/0.3-AI-MANIFEST.a2ml | 11 - .../validate/src/aspects/security/README.adoc | 1 - .../validate/src/bridges/0.2-AI-MANIFEST.a2ml | 11 - .../src/contracts/0.2-AI-MANIFEST.a2ml | 11 - .../validate/src/contracts/README.adoc | 1 - .../validate/src/core/0.2-AI-MANIFEST.a2ml | 11 - .../src/definitions/0.2-AI-MANIFEST.a2ml | 11 - .../validate/src/definitions/README.adoc | 1 - .../validate/src/errors/0.2-AI-MANIFEST.a2ml | 11 - a2ml/actions/validate/src/errors/README.adoc | 1 - .../src/interface/0.2-AI-MANIFEST.a2ml | 24 - .../validate/src/interface/README.adoc | 1 - .../src/interface/abi/0.3-AI-MANIFEST.a2ml | 11 - .../validate/src/interface/abi/README.adoc | 1 - .../src/interface/ffi/0.3-AI-MANIFEST.a2ml | 11 - .../validate/src/interface/ffi/README.adoc | 1 - .../validate/src/interface/ffi/build.zig | 94 - .../interface/ffi/src/0.4-AI-MANIFEST.a2ml | 11 - .../src/interface/ffi/src/README.adoc | 1 - .../validate/src/interface/ffi/src/main.zig | 274 - .../interface/ffi/test/0.4-AI-MANIFEST.a2ml | 11 - .../src/interface/ffi/test/README.adoc | 1 - .../interface/ffi/test/integration_test.zig | 182 - a2ml/actions/validate/validate-a2ml.sh | 284 - .../validate/validate-manifest-dialect.sh | 105 - .../verification/0.1-AI-MANIFEST.a2ml | 27 - .../actions/validate/verification/README.adoc | 1 - .../benchmarks/0.2-AI-MANIFEST.a2ml | 11 - .../verification/benchmarks/README.adoc | 1 - .../coverage/0.2-AI-MANIFEST.a2ml | 12 - .../verification/coverage/README.adoc | 1 - .../verification/fuzzing/0.2-AI-MANIFEST.a2ml | 11 - .../validate/verification/fuzzing/README.adoc | 1 - .../verification/proofs/0.2-AI-MANIFEST.a2ml | 11 - .../validate/verification/proofs/README.adoc | 1 - .../safety_case/0.2-AI-MANIFEST.a2ml | 12 - .../verification/safety_case/README.adoc | 1 - .../simulations/0.2-AI-MANIFEST.a2ml | 11 - .../verification/simulations/README.adoc | 1 - .../verification/tests/0.2-AI-MANIFEST.a2ml | 1 - .../validate/verification/tests/README.adoc | 1 - .../traceability/0.2-AI-MANIFEST.a2ml | 12 - .../verification/traceability/README.adoc | 1 - a2ml/ads.txt | 12 - a2ml/app-ads.txt | 7 - a2ml/archive/SPEC-v0-draft.a2ml | 204 - a2ml/archive/SPEC-v0-draft.adoc | 201 - a2ml/archive/SPEC-v1.0.0.adoc | 365 - a2ml/benchmarks/parser-bench.sh | 262 - a2ml/benchmarks/stress-test.sh | 358 - a2ml/bindings/README.adoc | 169 - .../bindings/deno/.devcontainer/Containerfile | 32 - a2ml/bindings/deno/.devcontainer/README.adoc | 27 - .../deno/.devcontainer/devcontainer.json | 69 - a2ml/bindings/deno/.editorconfig | 65 - a2ml/bindings/deno/.envrc | 27 - a2ml/bindings/deno/.gitattributes | 55 - a2ml/bindings/deno/.github/.mailmap | 1 - a2ml/bindings/deno/.github/.nojekyll | 0 .../deno/.github/0.1-AI-MANIFEST.a2ml | 1 - a2ml/bindings/deno/.github/CODEOWNERS | 14 - a2ml/bindings/deno/.github/CODE_OF_CONDUCT.md | 327 - a2ml/bindings/deno/.github/CONTRIBUTING.md | 121 - .../.github/DISCUSSION_TEMPLATE/ideas.yml | 13 - .../.github/DISCUSSION_TEMPLATE/q-and-a.yml | 13 - a2ml/bindings/deno/.github/FUNDING.yml | 7 - a2ml/bindings/deno/.github/GOVERNANCE.md | 158 - .../.github/ISSUE_TEMPLATE/bug_report.yml | 127 - .../deno/.github/ISSUE_TEMPLATE/config.yml | 10 - .../deno/.github/ISSUE_TEMPLATE/custom.yml | 76 - .../.github/ISSUE_TEMPLATE/documentation.yml | 64 - .../ISSUE_TEMPLATE/feature_request.yml | 87 - .../deno/.github/ISSUE_TEMPLATE/question.yml | 60 - a2ml/bindings/deno/.github/MAINTAINERS | 10 - a2ml/bindings/deno/.github/README.adoc | 1 - a2ml/bindings/deno/.github/SECURITY.md | 406 - a2ml/bindings/deno/.github/SUPPORT | 7 - .../deno/.github/copilot-instructions.md | 57 - a2ml/bindings/deno/.github/dependabot.yml | 48 - .../deno/.github/pull_request_template.md | 44 - .../deno/.github/workflows/codeql.yml | 23 - .../deno/.github/workflows/governance.yml | 27 - .../deno/.github/workflows/hypatia-scan.yml | 21 - .../deno/.github/workflows/jekyll.yml | 68 - .../deno/.github/workflows/mirror.yml | 15 - .../deno/.github/workflows/release.yml | 131 - .../deno/.github/workflows/rhodibot.yml | 235 - .../.github/workflows/scorecard-enforcer.yml | 17 - .../deno/.github/workflows/scorecard.yml | 24 - .../deno/.github/workflows/secret-scanner.yml | 21 - .../workflows/static-analysis-gate.yml | 331 - a2ml/bindings/deno/.gitignore | 109 - a2ml/bindings/deno/.gitlab-ci.yml | 175 - a2ml/bindings/deno/.guix-channel | 22 - .../.machine_readable/0.1-AI-MANIFEST.a2ml | 29 - .../deno/.machine_readable/CLADE.a2ml | 26 - .../deno/.machine_readable/ENSAID_CONFIG.a2ml | 96 - .../deno/.machine_readable/README.adoc | 1 - .../deno/.machine_readable/ai/.clinerules | 43 - .../deno/.machine_readable/ai/.cursorrules | 47 - .../deno/.machine_readable/ai/.windsurfrules | 43 - .../.machine_readable/ai/0.2-AI-MANIFEST.a2ml | 11 - .../deno/.machine_readable/ai/AI.a2ml | 16 - .../.machine_readable/ai/PLACEHOLDERS.adoc | 142 - .../deno/.machine_readable/ai/README.adoc | 22 - .../anchors/0.2-AI-MANIFEST.a2ml | 11 - .../.machine_readable/anchors/ANCHOR.a2ml | 62 - .../.machine_readable/anchors/README.adoc | 1 - .../.machine_readable/compliance/reuse/dep5 | 54 - .../compliance/rust/deny.toml | 65 - .../configs/0.2-AI-MANIFEST.a2ml | 11 - .../.machine_readable/configs/README.adoc | 1 - .../configs/git-cliff/cliff.toml | 119 - .../contractiles/README.adoc | 19 - .../contractiles/dust/Dustfile.a2ml | 44 - .../contractiles/must/Mustfile.a2ml | 69 - .../contractiles/trust/Trustfile.a2ml | 50 - .../descriptiles/AGENTIC.a2ml | 36 - .../descriptiles/ECOSYSTEM.a2ml | 26 - .../.machine_readable/descriptiles/META.a2ml | 53 - .../descriptiles/NEUROSYM.a2ml | 23 - .../descriptiles/PLAYBOOK.a2ml | 35 - .../.machine_readable/descriptiles/STATE.a2ml | 64 - .../policies/.maintenance-perms-ignore | 5 - .../policies/0.2-AI-MANIFEST.a2ml | 11 - .../policies/MAINTENANCE-AXES.a2ml | 54 - .../policies/MAINTENANCE-CHECKLIST.a2ml | 159 - .../.machine_readable/policies/README.adoc | 1 - .../SOFTWARE-DEVELOPMENT-APPROACH.a2ml | 53 - .../scripts/0.2-AI-MANIFEST.a2ml | 18 - .../scripts/forge/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/forge/README.adoc | 1 - .../scripts/forge/forge-sync.sh | 25 - .../scripts/forge/git-cleanup.sh | 8 - .../scripts/lifecycle/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/lifecycle/README.adoc | 1 - .../scripts/lifecycle/install-tools.sh | 27 - .../scripts/maintenance/maint-assault.sh | 44 - .../scripts/verification/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/verification/README.adoc | 1 - a2ml/bindings/deno/.tool-versions | 9 - a2ml/bindings/deno/.well-known/ai.txt | 18 - a2ml/bindings/deno/.well-known/humans.txt | 14 - a2ml/bindings/deno/.well-known/security.txt | 11 - a2ml/bindings/deno/0-AI-MANIFEST.a2ml | 121 - a2ml/bindings/deno/CHANGELOG.adoc | 9 - a2ml/bindings/deno/CONTRIBUTING.adoc | 26 - a2ml/bindings/deno/Containerfile | 41 - a2ml/bindings/deno/Justfile | 910 -- a2ml/bindings/deno/LICENSE | 153 - a2ml/bindings/deno/README.adoc | 117 - a2ml/bindings/deno/ROADMAP.adoc | 22 - a2ml/bindings/deno/SECURITY.adoc | 16 - a2ml/bindings/deno/container/.gatekeeper.yaml | 1 - .../deno/container/0.1-AI-MANIFEST.a2ml | 143 - a2ml/bindings/deno/container/Containerfile | 136 - a2ml/bindings/deno/container/README.adoc | 179 - .../deno/container/compose.example.toml | 135 - a2ml/bindings/deno/container/compose.toml | 70 - a2ml/bindings/deno/container/ct-build.sh | 162 - a2ml/bindings/deno/container/deploy.k9.ncl | 166 - a2ml/bindings/deno/container/entrypoint.sh | 63 - a2ml/bindings/deno/container/manifest.toml | 62 - a2ml/bindings/deno/container/vordr.toml | 100 - a2ml/bindings/deno/contractile.just | 75 - a2ml/bindings/deno/docs/0.1-AI-MANIFEST.a2ml | 33 - a2ml/bindings/deno/docs/QUICKSTART.adoc | 24 - a2ml/bindings/deno/docs/README.adoc | 14 - a2ml/bindings/deno/docs/RSR_OUTLINE.adoc | 290 - a2ml/bindings/deno/docs/STATE-VISUALIZER.adoc | 128 - .../docs/architecture/0.2-AI-MANIFEST.a2ml | 17 - .../deno/docs/architecture/THREAT-MODEL.adoc | 162 - .../docs/attribution/0.2-AI-MANIFEST.a2ml | 11 - .../deno/docs/attribution/CITATION.cff | 17 - .../deno/docs/attribution/CITATIONS.adoc | 35 - .../deno/docs/attribution/CODEOWNERS.adoc | 19 - .../deno/docs/attribution/MAINTAINERS.adoc | 47 - .../deno/docs/attribution/README.adoc | 1 - .../deno/docs/decisions/0.2-AI-MANIFEST.a2ml | 11 - .../deno/docs/decisions/0000-template.adoc | 35 - .../decisions/0001-adopt-rsr-standard.adoc | 86 - a2ml/bindings/deno/docs/decisions/README.adoc | 1 - .../deno/docs/developer/0.2-AI-MANIFEST.a2ml | 11 - .../deno/docs/developer/ABI-FFI-README.adoc | 384 - a2ml/bindings/deno/docs/developer/README.adoc | 1 - .../deno/docs/governance/0.1-AI-MANIFEST.a2ml | 21 - .../deno/docs/governance/CRG-CRITERIA.a2ml | 108 - .../deno/docs/governance/CRG-CRITERIA.adoc | 39 - .../governance/MAINTENANCE-CHECKLIST.a2ml | 159 - .../governance/MAINTENANCE-CHECKLIST.adoc | 569 -- .../bindings/deno/docs/governance/README.adoc | 1 - .../SOFTWARE-DEVELOPMENT-APPROACH.a2ml | 53 - .../SOFTWARE-DEVELOPMENT-APPROACH.adoc | 63 - a2ml/bindings/deno/docs/governance/TSDM.a2ml | 22 - a2ml/bindings/deno/docs/governance/TSDM.adoc | 26 - .../governance/audit/0.2-AI-MANIFEST.a2ml | 11 - .../deno/docs/governance/audit/README.adoc | 1 - .../audit/compliance/0.3-AI-MANIFEST.a2ml | 11 - .../governance/audit/compliance/README.adoc | 1 - .../audit/effects/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/audit/effects/README.adoc | 1 - .../audit/systems/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/audit/systems/README.adoc | 1 - .../maintenance/0.2-AI-MANIFEST.a2ml | 11 - .../docs/governance/maintenance/README.adoc | 1 - .../maintenance/adaptive/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/adaptive/README.adoc | 1 - .../corrective/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/corrective/README.adoc | 1 - .../perfective/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/perfective/README.adoc | 1 - .../governance/planning/0.2-AI-MANIFEST.a2ml | 11 - .../deno/docs/governance/planning/README.adoc | 1 - .../planning/could/0.3-AI-MANIFEST.a2ml | 11 - .../governance/planning/could/README.adoc | 1 - .../planning/must/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/planning/must/README.adoc | 1 - .../planning/should/0.3-AI-MANIFEST.a2ml | 11 - .../governance/planning/should/README.adoc | 1 - .../deno/docs/legal/0.2-AI-MANIFEST.a2ml | 16 - .../deno/docs/legal/EXHIBIT-A-ETHICAL-USE.txt | 68 - .../docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt | 102 - a2ml/bindings/deno/docs/practice/.gitkeep | 0 .../deno/docs/practice/0.2-AI-MANIFEST.a2ml | 11 - .../deno/docs/practice/AI-CONVENTIONS.adoc | 85 - a2ml/bindings/deno/docs/practice/README.adoc | 1 - .../docs/practice/STATE-VISUALIZER-GUIDE.adoc | 155 - .../deno/docs/reports/0.2-AI-MANIFEST.a2ml | 19 - a2ml/bindings/deno/docs/reports/README.adoc | 1 - .../reports/compliance/0.3-AI-MANIFEST.a2ml | 11 - .../deno/docs/reports/compliance/README.adoc | 1 - .../reports/maintenance/0.3-AI-MANIFEST.a2ml | 11 - .../deno/docs/reports/maintenance/README.adoc | 1 - .../reports/performance/0.3-AI-MANIFEST.a2ml | 11 - .../deno/docs/reports/performance/README.adoc | 1 - .../docs/reports/quality/0.3-AI-MANIFEST.a2ml | 11 - .../deno/docs/reports/quality/README.adoc | 1 - .../reports/security/0.3-AI-MANIFEST.a2ml | 11 - .../deno/docs/reports/security/README.adoc | 1 - .../deno/docs/standards/0.2-AI-MANIFEST.a2ml | 11 - a2ml/bindings/deno/docs/standards/README.adoc | 1 - .../docs/templates/contractiles/README.adoc | 11 - .../templates/contractiles/dust/Dustfile.a2ml | 11 - .../contractiles/intend/Intentfile.a2ml | 11 - .../templates/contractiles/must/Mustfile.a2ml | 11 - .../contractiles/trust/Trustfile.a2ml | 11 - a2ml/bindings/deno/docs/theory/.gitkeep | 0 .../deno/docs/theory/0.2-AI-MANIFEST.a2ml | 23 - a2ml/bindings/deno/docs/theory/README.adoc | 1 - .../theory/computing/0.3-AI-MANIFEST.a2ml | 11 - .../deno/docs/theory/computing/README.adoc | 1 - .../theory/formalisms/0.3-AI-MANIFEST.a2ml | 11 - .../deno/docs/theory/formalisms/README.adoc | 1 - .../theory/mathematics/0.3-AI-MANIFEST.a2ml | 11 - .../deno/docs/theory/mathematics/README.adoc | 1 - .../theory/ontologies/0.3-AI-MANIFEST.a2ml | 11 - .../deno/docs/theory/ontologies/README.adoc | 1 - .../docs/theory/other/0.3-AI-MANIFEST.a2ml | 11 - .../deno/docs/theory/other/README.adoc | 1 - .../socio-technical/0.3-AI-MANIFEST.a2ml | 11 - .../docs/theory/socio-technical/README.adoc | 1 - .../docs/whitepapers/0.2-AI-MANIFEST.a2ml | 20 - .../deno/docs/whitepapers/README.adoc | 1 - .../deno/docs/whitepapers/academic/.gitkeep | 0 .../whitepapers/academic/0.3-AI-MANIFEST.a2ml | 11 - .../docs/whitepapers/academic/README.adoc | 1 - .../deno/docs/whitepapers/industry/.gitkeep | 0 .../whitepapers/industry/0.3-AI-MANIFEST.a2ml | 11 - .../docs/whitepapers/industry/README.adoc | 1 - .../whitepapers/outreach/0.3-AI-MANIFEST.a2ml | 16 - .../docs/whitepapers/outreach/README.adoc | 17 - .../deno/docs/wikis/0.2-AI-MANIFEST.a2ml | 15 - a2ml/bindings/deno/docs/wikis/README.adoc | 15 - .../deno/examples/0.1-AI-MANIFEST.a2ml | 1 - a2ml/bindings/deno/examples/README.adoc | 1 - .../deno/examples/web-project-deno.json | 20 - .../deno/features/0.1-AI-MANIFEST.a2ml | 17 - a2ml/bindings/deno/features/README.adoc | 1 - .../features/boj-server/0.2-AI-MANIFEST.a2ml | 11 - .../deno/features/boj-server/README.adoc | 14 - .../panic-attacker/0.2-AI-MANIFEST.a2ml | 11 - .../deno/features/panic-attacker/README.adoc | 25 - .../deno/features/ssg/0.2-AI-MANIFEST.a2ml | 11 - a2ml/bindings/deno/features/ssg/README.adoc | 1 - .../deno/features/ssg/ssg-bootstrap.sh | 48 - a2ml/bindings/deno/jsr.json | 18 - a2ml/bindings/deno/mod.affine | 55 - a2ml/bindings/deno/src/0.1-AI-MANIFEST.a2ml | 27 - a2ml/bindings/deno/src/A2ML.affine | 71 - a2ml/bindings/deno/src/A2ML_Parser.affine | 507 -- a2ml/bindings/deno/src/A2ML_Renderer.affine | 133 - a2ml/bindings/deno/src/A2ML_Types.affine | 199 - a2ml/bindings/deno/src/README.adoc | 1 - .../deno/src/aspects/0.2-AI-MANIFEST.a2ml | 17 - a2ml/bindings/deno/src/aspects/README.adoc | 1 - .../aspects/integrity/0.3-AI-MANIFEST.a2ml | 11 - .../deno/src/aspects/integrity/README.adoc | 1 - .../observability/0.3-AI-MANIFEST.a2ml | 11 - .../src/aspects/observability/README.adoc | 1 - .../src/aspects/security/0.3-AI-MANIFEST.a2ml | 11 - .../deno/src/aspects/security/README.adoc | 1 - .../deno/src/bridges/0.2-AI-MANIFEST.a2ml | 11 - .../deno/src/contracts/0.2-AI-MANIFEST.a2ml | 11 - a2ml/bindings/deno/src/contracts/README.adoc | 1 - .../deno/src/core/0.2-AI-MANIFEST.a2ml | 11 - .../deno/src/definitions/0.2-AI-MANIFEST.a2ml | 11 - .../bindings/deno/src/definitions/README.adoc | 1 - .../deno/src/errors/0.2-AI-MANIFEST.a2ml | 11 - a2ml/bindings/deno/src/errors/README.adoc | 1 - .../deno/src/interface/0.2-AI-MANIFEST.a2ml | 24 - a2ml/bindings/deno/src/interface/README.adoc | 1 - .../src/interface/abi/0.3-AI-MANIFEST.a2ml | 11 - .../deno/src/interface/abi/README.adoc | 1 - .../src/interface/ffi/0.3-AI-MANIFEST.a2ml | 11 - .../deno/src/interface/ffi/README.adoc | 1 - .../bindings/deno/src/interface/ffi/build.zig | 94 - .../interface/ffi/src/0.4-AI-MANIFEST.a2ml | 11 - .../deno/src/interface/ffi/src/README.adoc | 1 - .../deno/src/interface/ffi/src/main.zig | 274 - .../interface/ffi/test/0.4-AI-MANIFEST.a2ml | 11 - .../deno/src/interface/ffi/test/README.adoc | 1 - .../interface/ffi/test/integration_test.zig | 182 - .../deno/verification/0.1-AI-MANIFEST.a2ml | 27 - a2ml/bindings/deno/verification/README.adoc | 1 - .../benchmarks/0.2-AI-MANIFEST.a2ml | 11 - .../deno/verification/benchmarks/README.adoc | 1 - .../coverage/0.2-AI-MANIFEST.a2ml | 12 - .../deno/verification/coverage/README.adoc | 1 - .../verification/fuzzing/0.2-AI-MANIFEST.a2ml | 11 - .../deno/verification/fuzzing/README.adoc | 1 - .../verification/proofs/0.2-AI-MANIFEST.a2ml | 11 - .../deno/verification/proofs/README.adoc | 1 - .../safety_case/0.2-AI-MANIFEST.a2ml | 12 - .../deno/verification/safety_case/README.adoc | 1 - .../simulations/0.2-AI-MANIFEST.a2ml | 11 - .../deno/verification/simulations/README.adoc | 1 - .../verification/tests/0.2-AI-MANIFEST.a2ml | 1 - .../deno/verification/tests/README.adoc | 1 - .../traceability/0.2-AI-MANIFEST.a2ml | 12 - .../verification/traceability/README.adoc | 1 - a2ml/bindings/elixir/.formatter.exs | 4 - a2ml/bindings/elixir/.gitignore | 24 - a2ml/bindings/elixir/LICENSE | 372 - a2ml/bindings/elixir/README.adoc | 157 - a2ml/bindings/elixir/lib/a2_ml.ex | 42 - a2ml/bindings/elixir/lib/a2ml/parser.ex | 453 - a2ml/bindings/elixir/lib/a2ml/renderer.ex | 149 - a2ml/bindings/elixir/lib/a2ml/types.ex | 200 - a2ml/bindings/elixir/mix.exs | 49 - a2ml/bindings/elixir/test/a2_ml_test.exs | 130 - a2ml/bindings/elixir/test/test_helper.exs | 1 - .../bindings/gleam/.github/workflows/test.yml | 24 - a2ml/bindings/gleam/.gitignore | 4 - a2ml/bindings/gleam/LICENSE | 372 - a2ml/bindings/gleam/README.adoc | 147 - a2ml/bindings/gleam/gleam.toml | 12 - a2ml/bindings/gleam/manifest.toml | 11 - a2ml/bindings/gleam/src/a2ml_gleam.gleam | 38 - .../gleam/src/a2ml_gleam/parser.gleam | 668 -- .../gleam/src/a2ml_gleam/renderer.gleam | 164 - .../bindings/gleam/src/a2ml_gleam/types.gleam | 125 - .../bindings/gleam/test/a2ml_gleam_test.gleam | 122 - .../haskell/.devcontainer/Containerfile | 32 - .../haskell/.devcontainer/README.adoc | 27 - .../haskell/.devcontainer/devcontainer.json | 69 - a2ml/bindings/haskell/.editorconfig | 65 - a2ml/bindings/haskell/.envrc | 27 - a2ml/bindings/haskell/.gitattributes | 55 - a2ml/bindings/haskell/.github/.mailmap | 1 - a2ml/bindings/haskell/.github/.nojekyll | 0 .../haskell/.github/0.1-AI-MANIFEST.a2ml | 1 - a2ml/bindings/haskell/.github/CODEOWNERS | 14 - .../haskell/.github/CODE_OF_CONDUCT.md | 327 - a2ml/bindings/haskell/.github/CONTRIBUTING.md | 121 - .../.github/DISCUSSION_TEMPLATE/ideas.yml | 13 - .../.github/DISCUSSION_TEMPLATE/q-and-a.yml | 13 - a2ml/bindings/haskell/.github/FUNDING.yml | 7 - a2ml/bindings/haskell/.github/GOVERNANCE.md | 158 - .../.github/ISSUE_TEMPLATE/bug_report.yml | 127 - .../haskell/.github/ISSUE_TEMPLATE/config.yml | 10 - .../haskell/.github/ISSUE_TEMPLATE/custom.yml | 76 - .../.github/ISSUE_TEMPLATE/documentation.yml | 64 - .../ISSUE_TEMPLATE/feature_request.yml | 87 - .../.github/ISSUE_TEMPLATE/question.yml | 60 - a2ml/bindings/haskell/.github/MAINTAINERS | 10 - a2ml/bindings/haskell/.github/README.adoc | 1 - a2ml/bindings/haskell/.github/SECURITY.md | 406 - a2ml/bindings/haskell/.github/SUPPORT | 7 - .../haskell/.github/copilot-instructions.md | 57 - a2ml/bindings/haskell/.github/dependabot.yml | 48 - .../haskell/.github/pull_request_template.md | 44 - .../haskell/.github/workflows/codeql.yml | 23 - .../haskell/.github/workflows/governance.yml | 27 - .../.github/workflows/hypatia-scan.yml | 21 - .../haskell/.github/workflows/jekyll.yml | 68 - .../haskell/.github/workflows/mirror.yml | 15 - .../haskell/.github/workflows/release.yml | 131 - .../haskell/.github/workflows/rhodibot.yml | 235 - .../.github/workflows/scorecard-enforcer.yml | 17 - .../haskell/.github/workflows/scorecard.yml | 24 - .../.github/workflows/secret-scanner.yml | 21 - .../workflows/static-analysis-gate.yml | 331 - a2ml/bindings/haskell/.gitignore | 105 - a2ml/bindings/haskell/.gitlab-ci.yml | 175 - a2ml/bindings/haskell/.guix-channel | 22 - .../.machine_readable/0.1-AI-MANIFEST.a2ml | 29 - .../haskell/.machine_readable/CLADE.a2ml | 26 - .../.machine_readable/ENSAID_CONFIG.a2ml | 96 - .../haskell/.machine_readable/README.adoc | 1 - .../haskell/.machine_readable/ai/.clinerules | 43 - .../haskell/.machine_readable/ai/.cursorrules | 47 - .../.machine_readable/ai/.windsurfrules | 43 - .../.machine_readable/ai/0.2-AI-MANIFEST.a2ml | 11 - .../haskell/.machine_readable/ai/AI.a2ml | 16 - .../.machine_readable/ai/PLACEHOLDERS.adoc | 142 - .../haskell/.machine_readable/ai/README.adoc | 22 - .../anchors/0.2-AI-MANIFEST.a2ml | 11 - .../.machine_readable/anchors/ANCHOR.a2ml | 62 - .../.machine_readable/anchors/README.adoc | 1 - .../.machine_readable/compliance/reuse/dep5 | 54 - .../compliance/rust/deny.toml | 65 - .../configs/0.2-AI-MANIFEST.a2ml | 11 - .../.machine_readable/configs/README.adoc | 1 - .../configs/git-cliff/cliff.toml | 119 - .../contractiles/README.adoc | 19 - .../contractiles/dust/Dustfile.a2ml | 44 - .../contractiles/must/Mustfile.a2ml | 69 - .../contractiles/trust/Trustfile.a2ml | 50 - .../descriptiles/AGENTIC.a2ml | 36 - .../descriptiles/ECOSYSTEM.a2ml | 26 - .../.machine_readable/descriptiles/META.a2ml | 53 - .../descriptiles/NEUROSYM.a2ml | 23 - .../descriptiles/PLAYBOOK.a2ml | 35 - .../.machine_readable/descriptiles/STATE.a2ml | 64 - .../policies/.maintenance-perms-ignore | 5 - .../policies/0.2-AI-MANIFEST.a2ml | 11 - .../policies/MAINTENANCE-AXES.a2ml | 54 - .../policies/MAINTENANCE-CHECKLIST.a2ml | 159 - .../.machine_readable/policies/README.adoc | 1 - .../SOFTWARE-DEVELOPMENT-APPROACH.a2ml | 53 - .../scripts/0.2-AI-MANIFEST.a2ml | 18 - .../scripts/forge/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/forge/README.adoc | 1 - .../scripts/forge/forge-sync.sh | 25 - .../scripts/forge/git-cleanup.sh | 8 - .../scripts/lifecycle/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/lifecycle/README.adoc | 1 - .../scripts/lifecycle/install-tools.sh | 27 - .../scripts/maintenance/maint-assault.sh | 44 - .../scripts/verification/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/verification/README.adoc | 1 - a2ml/bindings/haskell/.tool-versions | 9 - a2ml/bindings/haskell/.well-known/ai.txt | 18 - a2ml/bindings/haskell/.well-known/humans.txt | 14 - .../bindings/haskell/.well-known/security.txt | 11 - a2ml/bindings/haskell/0-AI-MANIFEST.a2ml | 121 - a2ml/bindings/haskell/CHANGELOG.adoc | 18 - a2ml/bindings/haskell/CONTRIBUTING.adoc | 26 - a2ml/bindings/haskell/Containerfile | 41 - a2ml/bindings/haskell/Justfile | 910 -- a2ml/bindings/haskell/LICENSE | 153 - a2ml/bindings/haskell/LICENSE-MPL-2.0 | 373 - a2ml/bindings/haskell/README.adoc | 165 - a2ml/bindings/haskell/ROADMAP.adoc | 22 - a2ml/bindings/haskell/SECURITY.adoc | 16 - a2ml/bindings/haskell/Setup.hs | 3 - a2ml/bindings/haskell/a2ml-haskell.cabal | 53 - .../haskell/container/.gatekeeper.yaml | 1 - .../haskell/container/0.1-AI-MANIFEST.a2ml | 143 - a2ml/bindings/haskell/container/Containerfile | 136 - a2ml/bindings/haskell/container/README.adoc | 179 - .../haskell/container/compose.example.toml | 135 - a2ml/bindings/haskell/container/compose.toml | 70 - a2ml/bindings/haskell/container/ct-build.sh | 162 - a2ml/bindings/haskell/container/deploy.k9.ncl | 166 - a2ml/bindings/haskell/container/entrypoint.sh | 63 - a2ml/bindings/haskell/container/manifest.toml | 62 - a2ml/bindings/haskell/container/vordr.toml | 100 - a2ml/bindings/haskell/contractile.just | 75 - .../haskell/docs/0.1-AI-MANIFEST.a2ml | 33 - a2ml/bindings/haskell/docs/QUICKSTART.adoc | 24 - a2ml/bindings/haskell/docs/README.adoc | 14 - a2ml/bindings/haskell/docs/RSR_OUTLINE.adoc | 290 - .../haskell/docs/STATE-VISUALIZER.adoc | 128 - .../docs/architecture/0.2-AI-MANIFEST.a2ml | 17 - .../docs/architecture/THREAT-MODEL.adoc | 162 - .../docs/attribution/0.2-AI-MANIFEST.a2ml | 11 - .../haskell/docs/attribution/CITATION.cff | 17 - .../haskell/docs/attribution/CITATIONS.adoc | 35 - .../haskell/docs/attribution/CODEOWNERS.adoc | 19 - .../haskell/docs/attribution/MAINTAINERS.adoc | 47 - .../haskell/docs/attribution/README.adoc | 1 - .../docs/decisions/0.2-AI-MANIFEST.a2ml | 11 - .../haskell/docs/decisions/0000-template.adoc | 35 - .../decisions/0001-adopt-rsr-standard.adoc | 86 - .../haskell/docs/decisions/README.adoc | 1 - .../docs/developer/0.2-AI-MANIFEST.a2ml | 11 - .../docs/developer/ABI-FFI-README.adoc | 384 - .../haskell/docs/developer/README.adoc | 1 - .../docs/governance/0.1-AI-MANIFEST.a2ml | 21 - .../haskell/docs/governance/CRG-CRITERIA.a2ml | 108 - .../haskell/docs/governance/CRG-CRITERIA.adoc | 39 - .../governance/MAINTENANCE-CHECKLIST.a2ml | 159 - .../governance/MAINTENANCE-CHECKLIST.adoc | 569 -- .../haskell/docs/governance/README.adoc | 1 - .../SOFTWARE-DEVELOPMENT-APPROACH.a2ml | 53 - .../SOFTWARE-DEVELOPMENT-APPROACH.adoc | 63 - .../haskell/docs/governance/TSDM.a2ml | 22 - .../haskell/docs/governance/TSDM.adoc | 26 - .../governance/audit/0.2-AI-MANIFEST.a2ml | 11 - .../haskell/docs/governance/audit/README.adoc | 1 - .../audit/compliance/0.3-AI-MANIFEST.a2ml | 11 - .../governance/audit/compliance/README.adoc | 1 - .../audit/effects/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/audit/effects/README.adoc | 1 - .../audit/systems/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/audit/systems/README.adoc | 1 - .../maintenance/0.2-AI-MANIFEST.a2ml | 11 - .../docs/governance/maintenance/README.adoc | 1 - .../maintenance/adaptive/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/adaptive/README.adoc | 1 - .../corrective/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/corrective/README.adoc | 1 - .../perfective/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/perfective/README.adoc | 1 - .../governance/planning/0.2-AI-MANIFEST.a2ml | 11 - .../docs/governance/planning/README.adoc | 1 - .../planning/could/0.3-AI-MANIFEST.a2ml | 11 - .../governance/planning/could/README.adoc | 1 - .../planning/must/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/planning/must/README.adoc | 1 - .../planning/should/0.3-AI-MANIFEST.a2ml | 11 - .../governance/planning/should/README.adoc | 1 - .../haskell/docs/legal/0.2-AI-MANIFEST.a2ml | 16 - .../docs/legal/EXHIBIT-A-ETHICAL-USE.txt | 68 - .../docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt | 102 - a2ml/bindings/haskell/docs/practice/.gitkeep | 0 .../docs/practice/0.2-AI-MANIFEST.a2ml | 11 - .../haskell/docs/practice/AI-CONVENTIONS.adoc | 85 - .../haskell/docs/practice/README.adoc | 1 - .../docs/practice/STATE-VISUALIZER-GUIDE.adoc | 155 - .../haskell/docs/reports/0.2-AI-MANIFEST.a2ml | 19 - .../bindings/haskell/docs/reports/README.adoc | 1 - .../reports/compliance/0.3-AI-MANIFEST.a2ml | 11 - .../docs/reports/compliance/README.adoc | 1 - .../reports/maintenance/0.3-AI-MANIFEST.a2ml | 11 - .../docs/reports/maintenance/README.adoc | 1 - .../reports/performance/0.3-AI-MANIFEST.a2ml | 11 - .../docs/reports/performance/README.adoc | 1 - .../docs/reports/quality/0.3-AI-MANIFEST.a2ml | 11 - .../haskell/docs/reports/quality/README.adoc | 1 - .../reports/security/0.3-AI-MANIFEST.a2ml | 11 - .../haskell/docs/reports/security/README.adoc | 1 - .../docs/standards/0.2-AI-MANIFEST.a2ml | 11 - .../haskell/docs/standards/README.adoc | 1 - .../docs/templates/contractiles/README.adoc | 11 - .../templates/contractiles/dust/Dustfile.a2ml | 11 - .../contractiles/intend/Intentfile.a2ml | 11 - .../templates/contractiles/must/Mustfile.a2ml | 11 - .../contractiles/trust/Trustfile.a2ml | 11 - a2ml/bindings/haskell/docs/theory/.gitkeep | 0 .../haskell/docs/theory/0.2-AI-MANIFEST.a2ml | 23 - a2ml/bindings/haskell/docs/theory/README.adoc | 1 - .../theory/computing/0.3-AI-MANIFEST.a2ml | 11 - .../haskell/docs/theory/computing/README.adoc | 1 - .../theory/formalisms/0.3-AI-MANIFEST.a2ml | 11 - .../docs/theory/formalisms/README.adoc | 1 - .../theory/mathematics/0.3-AI-MANIFEST.a2ml | 11 - .../docs/theory/mathematics/README.adoc | 1 - .../theory/ontologies/0.3-AI-MANIFEST.a2ml | 11 - .../docs/theory/ontologies/README.adoc | 1 - .../docs/theory/other/0.3-AI-MANIFEST.a2ml | 11 - .../haskell/docs/theory/other/README.adoc | 1 - .../socio-technical/0.3-AI-MANIFEST.a2ml | 11 - .../docs/theory/socio-technical/README.adoc | 1 - .../docs/whitepapers/0.2-AI-MANIFEST.a2ml | 20 - .../haskell/docs/whitepapers/README.adoc | 1 - .../docs/whitepapers/academic/.gitkeep | 0 .../whitepapers/academic/0.3-AI-MANIFEST.a2ml | 11 - .../docs/whitepapers/academic/README.adoc | 1 - .../docs/whitepapers/industry/.gitkeep | 0 .../whitepapers/industry/0.3-AI-MANIFEST.a2ml | 11 - .../docs/whitepapers/industry/README.adoc | 1 - .../whitepapers/outreach/0.3-AI-MANIFEST.a2ml | 16 - .../docs/whitepapers/outreach/README.adoc | 17 - .../haskell/docs/wikis/0.2-AI-MANIFEST.a2ml | 15 - a2ml/bindings/haskell/docs/wikis/README.adoc | 15 - .../haskell/examples/0.1-AI-MANIFEST.a2ml | 1 - a2ml/bindings/haskell/examples/README.adoc | 1 - .../haskell/examples/web-project-deno.json | 20 - .../haskell/features/0.1-AI-MANIFEST.a2ml | 17 - a2ml/bindings/haskell/features/README.adoc | 1 - .../features/boj-server/0.2-AI-MANIFEST.a2ml | 11 - .../haskell/features/boj-server/README.adoc | 14 - .../panic-attacker/0.2-AI-MANIFEST.a2ml | 11 - .../features/panic-attacker/README.adoc | 25 - .../haskell/features/ssg/0.2-AI-MANIFEST.a2ml | 11 - .../bindings/haskell/features/ssg/README.adoc | 1 - .../haskell/features/ssg/ssg-bootstrap.sh | 48 - .../bindings/haskell/src/0.1-AI-MANIFEST.a2ml | 27 - a2ml/bindings/haskell/src/Data/A2ML.hs | 32 - a2ml/bindings/haskell/src/Data/A2ML/Parser.hs | 195 - .../haskell/src/Data/A2ML/Renderer.hs | 69 - a2ml/bindings/haskell/src/Data/A2ML/Types.hs | 141 - a2ml/bindings/haskell/src/README.adoc | 1 - .../haskell/src/aspects/0.2-AI-MANIFEST.a2ml | 17 - a2ml/bindings/haskell/src/aspects/README.adoc | 1 - .../aspects/integrity/0.3-AI-MANIFEST.a2ml | 11 - .../haskell/src/aspects/integrity/README.adoc | 1 - .../observability/0.3-AI-MANIFEST.a2ml | 11 - .../src/aspects/observability/README.adoc | 1 - .../src/aspects/security/0.3-AI-MANIFEST.a2ml | 11 - .../haskell/src/aspects/security/README.adoc | 1 - .../haskell/src/bridges/0.2-AI-MANIFEST.a2ml | 11 - .../src/contracts/0.2-AI-MANIFEST.a2ml | 11 - .../haskell/src/contracts/README.adoc | 1 - .../haskell/src/core/0.2-AI-MANIFEST.a2ml | 11 - .../src/definitions/0.2-AI-MANIFEST.a2ml | 11 - .../haskell/src/definitions/README.adoc | 1 - .../haskell/src/errors/0.2-AI-MANIFEST.a2ml | 11 - a2ml/bindings/haskell/src/errors/README.adoc | 1 - .../src/interface/0.2-AI-MANIFEST.a2ml | 24 - .../haskell/src/interface/README.adoc | 1 - .../src/interface/abi/0.3-AI-MANIFEST.a2ml | 11 - .../haskell/src/interface/abi/README.adoc | 1 - .../src/interface/ffi/0.3-AI-MANIFEST.a2ml | 11 - .../haskell/src/interface/ffi/README.adoc | 1 - .../haskell/src/interface/ffi/build.zig | 94 - .../interface/ffi/src/0.4-AI-MANIFEST.a2ml | 11 - .../haskell/src/interface/ffi/src/README.adoc | 1 - .../haskell/src/interface/ffi/src/main.zig | 274 - .../interface/ffi/test/0.4-AI-MANIFEST.a2ml | 11 - .../src/interface/ffi/test/README.adoc | 1 - .../interface/ffi/test/integration_test.zig | 182 - .../haskell/verification/0.1-AI-MANIFEST.a2ml | 27 - .../bindings/haskell/verification/README.adoc | 1 - .../benchmarks/0.2-AI-MANIFEST.a2ml | 11 - .../verification/benchmarks/README.adoc | 1 - .../coverage/0.2-AI-MANIFEST.a2ml | 12 - .../haskell/verification/coverage/README.adoc | 1 - .../verification/fuzzing/0.2-AI-MANIFEST.a2ml | 11 - .../haskell/verification/fuzzing/README.adoc | 1 - .../verification/proofs/0.2-AI-MANIFEST.a2ml | 11 - .../haskell/verification/proofs/README.adoc | 1 - .../safety_case/0.2-AI-MANIFEST.a2ml | 12 - .../verification/safety_case/README.adoc | 1 - .../simulations/0.2-AI-MANIFEST.a2ml | 11 - .../verification/simulations/README.adoc | 1 - .../verification/tests/0.2-AI-MANIFEST.a2ml | 1 - .../haskell/verification/tests/README.adoc | 1 - .../traceability/0.2-AI-MANIFEST.a2ml | 12 - .../verification/traceability/README.adoc | 1 - .../bindings/rust/.devcontainer/Containerfile | 32 - a2ml/bindings/rust/.devcontainer/README.adoc | 27 - .../rust/.devcontainer/devcontainer.json | 69 - a2ml/bindings/rust/.editorconfig | 65 - a2ml/bindings/rust/.envrc | 27 - a2ml/bindings/rust/.gitattributes | 55 - a2ml/bindings/rust/.github/.mailmap | 1 - a2ml/bindings/rust/.github/.nojekyll | 0 .../rust/.github/0.1-AI-MANIFEST.a2ml | 1 - a2ml/bindings/rust/.github/CODEOWNERS | 14 - a2ml/bindings/rust/.github/CODE_OF_CONDUCT.md | 327 - a2ml/bindings/rust/.github/CONTRIBUTING.md | 121 - .../.github/DISCUSSION_TEMPLATE/ideas.yml | 13 - .../.github/DISCUSSION_TEMPLATE/q-and-a.yml | 13 - a2ml/bindings/rust/.github/FUNDING.yml | 7 - a2ml/bindings/rust/.github/GOVERNANCE.md | 158 - .../.github/ISSUE_TEMPLATE/bug_report.yml | 127 - .../rust/.github/ISSUE_TEMPLATE/config.yml | 10 - .../rust/.github/ISSUE_TEMPLATE/custom.yml | 76 - .../.github/ISSUE_TEMPLATE/documentation.yml | 64 - .../ISSUE_TEMPLATE/feature_request.yml | 87 - .../rust/.github/ISSUE_TEMPLATE/question.yml | 60 - a2ml/bindings/rust/.github/MAINTAINERS | 10 - a2ml/bindings/rust/.github/README.adoc | 1 - a2ml/bindings/rust/.github/SECURITY.md | 406 - a2ml/bindings/rust/.github/SUPPORT | 7 - .../rust/.github/copilot-instructions.md | 57 - a2ml/bindings/rust/.github/dependabot.yml | 48 - .../rust/.github/pull_request_template.md | 44 - .../rust/.github/workflows/codeql.yml | 23 - .../rust/.github/workflows/governance.yml | 27 - .../rust/.github/workflows/hypatia-scan.yml | 21 - .../rust/.github/workflows/jekyll.yml | 68 - .../rust/.github/workflows/mirror.yml | 15 - .../rust/.github/workflows/release.yml | 131 - .../rust/.github/workflows/rhodibot.yml | 235 - .../.github/workflows/scorecard-enforcer.yml | 17 - .../rust/.github/workflows/scorecard.yml | 24 - .../rust/.github/workflows/secret-scanner.yml | 21 - .../workflows/static-analysis-gate.yml | 331 - a2ml/bindings/rust/.gitignore | 105 - a2ml/bindings/rust/.gitlab-ci.yml | 175 - a2ml/bindings/rust/.guix-channel | 22 - .../.machine_readable/0.1-AI-MANIFEST.a2ml | 29 - .../rust/.machine_readable/CLADE.a2ml | 26 - .../rust/.machine_readable/ENSAID_CONFIG.a2ml | 96 - .../rust/.machine_readable/README.adoc | 1 - .../rust/.machine_readable/ai/.clinerules | 43 - .../rust/.machine_readable/ai/.cursorrules | 47 - .../rust/.machine_readable/ai/.windsurfrules | 43 - .../.machine_readable/ai/0.2-AI-MANIFEST.a2ml | 11 - .../rust/.machine_readable/ai/AI.a2ml | 16 - .../.machine_readable/ai/PLACEHOLDERS.adoc | 142 - .../rust/.machine_readable/ai/README.adoc | 22 - .../anchors/0.2-AI-MANIFEST.a2ml | 11 - .../.machine_readable/anchors/ANCHOR.a2ml | 62 - .../.machine_readable/anchors/README.adoc | 1 - .../.machine_readable/compliance/reuse/dep5 | 54 - .../compliance/rust/deny.toml | 65 - .../configs/0.2-AI-MANIFEST.a2ml | 11 - .../.machine_readable/configs/README.adoc | 1 - .../configs/git-cliff/cliff.toml | 119 - .../contractiles/README.adoc | 19 - .../contractiles/dust/Dustfile.a2ml | 44 - .../contractiles/must/Mustfile.a2ml | 69 - .../contractiles/trust/Trustfile.a2ml | 50 - .../descriptiles/AGENTIC.a2ml | 36 - .../descriptiles/ECOSYSTEM.a2ml | 26 - .../.machine_readable/descriptiles/META.a2ml | 53 - .../descriptiles/NEUROSYM.a2ml | 23 - .../descriptiles/PLAYBOOK.a2ml | 35 - .../.machine_readable/descriptiles/STATE.a2ml | 64 - .../policies/.maintenance-perms-ignore | 5 - .../policies/0.2-AI-MANIFEST.a2ml | 11 - .../policies/MAINTENANCE-AXES.a2ml | 54 - .../policies/MAINTENANCE-CHECKLIST.a2ml | 159 - .../.machine_readable/policies/README.adoc | 1 - .../SOFTWARE-DEVELOPMENT-APPROACH.a2ml | 53 - .../scripts/0.2-AI-MANIFEST.a2ml | 18 - .../scripts/forge/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/forge/README.adoc | 1 - .../scripts/forge/forge-sync.sh | 25 - .../scripts/forge/git-cleanup.sh | 8 - .../scripts/lifecycle/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/lifecycle/README.adoc | 1 - .../scripts/lifecycle/install-tools.sh | 27 - .../scripts/maintenance/maint-assault.sh | 44 - .../scripts/verification/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/verification/README.adoc | 1 - a2ml/bindings/rust/.tool-versions | 9 - a2ml/bindings/rust/.well-known/ai.txt | 18 - a2ml/bindings/rust/.well-known/humans.txt | 14 - a2ml/bindings/rust/.well-known/security.txt | 11 - a2ml/bindings/rust/0-AI-MANIFEST.a2ml | 121 - a2ml/bindings/rust/CHANGELOG.adoc | 9 - a2ml/bindings/rust/CONTRIBUTING.adoc | 26 - a2ml/bindings/rust/Cargo.lock | 1027 --- a2ml/bindings/rust/Cargo.toml | 33 - a2ml/bindings/rust/Containerfile | 41 - a2ml/bindings/rust/Justfile | 910 -- a2ml/bindings/rust/LICENSE | 153 - a2ml/bindings/rust/README.adoc | 165 - a2ml/bindings/rust/ROADMAP.adoc | 22 - a2ml/bindings/rust/SECURITY.adoc | 16 - a2ml/bindings/rust/benches/a2ml_bench.rs | 220 - a2ml/bindings/rust/container/.gatekeeper.yaml | 1 - .../rust/container/0.1-AI-MANIFEST.a2ml | 143 - a2ml/bindings/rust/container/Containerfile | 136 - a2ml/bindings/rust/container/README.adoc | 179 - .../rust/container/compose.example.toml | 135 - a2ml/bindings/rust/container/compose.toml | 70 - a2ml/bindings/rust/container/ct-build.sh | 162 - a2ml/bindings/rust/container/deploy.k9.ncl | 166 - a2ml/bindings/rust/container/entrypoint.sh | 63 - a2ml/bindings/rust/container/manifest.toml | 62 - a2ml/bindings/rust/container/vordr.toml | 100 - a2ml/bindings/rust/contractile.just | 75 - a2ml/bindings/rust/docs/0.1-AI-MANIFEST.a2ml | 33 - a2ml/bindings/rust/docs/QUICKSTART.adoc | 24 - a2ml/bindings/rust/docs/README.adoc | 14 - a2ml/bindings/rust/docs/RSR_OUTLINE.adoc | 290 - a2ml/bindings/rust/docs/STATE-VISUALIZER.adoc | 128 - .../docs/architecture/0.2-AI-MANIFEST.a2ml | 17 - .../rust/docs/architecture/THREAT-MODEL.adoc | 162 - .../docs/attribution/0.2-AI-MANIFEST.a2ml | 11 - .../rust/docs/attribution/CITATION.cff | 17 - .../rust/docs/attribution/CITATIONS.adoc | 35 - .../rust/docs/attribution/CODEOWNERS.adoc | 19 - .../rust/docs/attribution/MAINTAINERS.adoc | 47 - .../rust/docs/attribution/README.adoc | 1 - .../rust/docs/decisions/0.2-AI-MANIFEST.a2ml | 11 - .../rust/docs/decisions/0000-template.adoc | 35 - .../decisions/0001-adopt-rsr-standard.adoc | 86 - a2ml/bindings/rust/docs/decisions/README.adoc | 1 - .../rust/docs/developer/0.2-AI-MANIFEST.a2ml | 11 - .../rust/docs/developer/ABI-FFI-README.adoc | 384 - a2ml/bindings/rust/docs/developer/README.adoc | 1 - .../rust/docs/governance/0.1-AI-MANIFEST.a2ml | 21 - .../rust/docs/governance/CRG-CRITERIA.a2ml | 108 - .../rust/docs/governance/CRG-CRITERIA.adoc | 39 - .../governance/MAINTENANCE-CHECKLIST.a2ml | 159 - .../governance/MAINTENANCE-CHECKLIST.adoc | 569 -- .../bindings/rust/docs/governance/README.adoc | 1 - .../SOFTWARE-DEVELOPMENT-APPROACH.a2ml | 53 - .../SOFTWARE-DEVELOPMENT-APPROACH.adoc | 63 - a2ml/bindings/rust/docs/governance/TSDM.a2ml | 22 - a2ml/bindings/rust/docs/governance/TSDM.adoc | 26 - .../governance/audit/0.2-AI-MANIFEST.a2ml | 11 - .../rust/docs/governance/audit/README.adoc | 1 - .../audit/compliance/0.3-AI-MANIFEST.a2ml | 11 - .../governance/audit/compliance/README.adoc | 1 - .../audit/effects/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/audit/effects/README.adoc | 1 - .../audit/systems/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/audit/systems/README.adoc | 1 - .../maintenance/0.2-AI-MANIFEST.a2ml | 11 - .../docs/governance/maintenance/README.adoc | 1 - .../maintenance/adaptive/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/adaptive/README.adoc | 1 - .../corrective/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/corrective/README.adoc | 1 - .../perfective/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/perfective/README.adoc | 1 - .../governance/planning/0.2-AI-MANIFEST.a2ml | 11 - .../rust/docs/governance/planning/README.adoc | 1 - .../planning/could/0.3-AI-MANIFEST.a2ml | 11 - .../governance/planning/could/README.adoc | 1 - .../planning/must/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/planning/must/README.adoc | 1 - .../planning/should/0.3-AI-MANIFEST.a2ml | 11 - .../governance/planning/should/README.adoc | 1 - .../rust/docs/legal/0.2-AI-MANIFEST.a2ml | 16 - .../rust/docs/legal/EXHIBIT-A-ETHICAL-USE.txt | 68 - .../docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt | 102 - a2ml/bindings/rust/docs/practice/.gitkeep | 0 .../rust/docs/practice/0.2-AI-MANIFEST.a2ml | 11 - .../rust/docs/practice/AI-CONVENTIONS.adoc | 85 - a2ml/bindings/rust/docs/practice/README.adoc | 1 - .../docs/practice/STATE-VISUALIZER-GUIDE.adoc | 155 - .../rust/docs/reports/0.2-AI-MANIFEST.a2ml | 19 - a2ml/bindings/rust/docs/reports/README.adoc | 1 - .../reports/compliance/0.3-AI-MANIFEST.a2ml | 11 - .../rust/docs/reports/compliance/README.adoc | 1 - .../reports/maintenance/0.3-AI-MANIFEST.a2ml | 11 - .../rust/docs/reports/maintenance/README.adoc | 1 - .../reports/performance/0.3-AI-MANIFEST.a2ml | 11 - .../rust/docs/reports/performance/README.adoc | 1 - .../docs/reports/quality/0.3-AI-MANIFEST.a2ml | 11 - .../rust/docs/reports/quality/README.adoc | 1 - .../reports/security/0.3-AI-MANIFEST.a2ml | 11 - .../rust/docs/reports/security/README.adoc | 1 - .../rust/docs/standards/0.2-AI-MANIFEST.a2ml | 11 - a2ml/bindings/rust/docs/standards/README.adoc | 1 - .../docs/templates/contractiles/README.adoc | 11 - .../templates/contractiles/dust/Dustfile.a2ml | 11 - .../contractiles/intend/Intentfile.a2ml | 11 - .../templates/contractiles/must/Mustfile.a2ml | 11 - .../contractiles/trust/Trustfile.a2ml | 11 - a2ml/bindings/rust/docs/theory/.gitkeep | 0 .../rust/docs/theory/0.2-AI-MANIFEST.a2ml | 23 - a2ml/bindings/rust/docs/theory/README.adoc | 1 - .../theory/computing/0.3-AI-MANIFEST.a2ml | 11 - .../rust/docs/theory/computing/README.adoc | 1 - .../theory/formalisms/0.3-AI-MANIFEST.a2ml | 11 - .../rust/docs/theory/formalisms/README.adoc | 1 - .../theory/mathematics/0.3-AI-MANIFEST.a2ml | 11 - .../rust/docs/theory/mathematics/README.adoc | 1 - .../theory/ontologies/0.3-AI-MANIFEST.a2ml | 11 - .../rust/docs/theory/ontologies/README.adoc | 1 - .../docs/theory/other/0.3-AI-MANIFEST.a2ml | 11 - .../rust/docs/theory/other/README.adoc | 1 - .../socio-technical/0.3-AI-MANIFEST.a2ml | 11 - .../docs/theory/socio-technical/README.adoc | 1 - .../docs/whitepapers/0.2-AI-MANIFEST.a2ml | 20 - .../rust/docs/whitepapers/README.adoc | 1 - .../rust/docs/whitepapers/academic/.gitkeep | 0 .../whitepapers/academic/0.3-AI-MANIFEST.a2ml | 11 - .../docs/whitepapers/academic/README.adoc | 1 - .../rust/docs/whitepapers/industry/.gitkeep | 0 .../whitepapers/industry/0.3-AI-MANIFEST.a2ml | 11 - .../docs/whitepapers/industry/README.adoc | 1 - .../whitepapers/outreach/0.3-AI-MANIFEST.a2ml | 16 - .../docs/whitepapers/outreach/README.adoc | 17 - .../rust/docs/wikis/0.2-AI-MANIFEST.a2ml | 15 - a2ml/bindings/rust/docs/wikis/README.adoc | 15 - .../rust/examples/0.1-AI-MANIFEST.a2ml | 1 - a2ml/bindings/rust/examples/README.adoc | 1 - .../rust/examples/web-project-deno.json | 20 - .../rust/features/0.1-AI-MANIFEST.a2ml | 17 - a2ml/bindings/rust/features/README.adoc | 1 - .../features/boj-server/0.2-AI-MANIFEST.a2ml | 11 - .../rust/features/boj-server/README.adoc | 14 - .../panic-attacker/0.2-AI-MANIFEST.a2ml | 11 - .../rust/features/panic-attacker/README.adoc | 25 - .../rust/features/ssg/0.2-AI-MANIFEST.a2ml | 11 - a2ml/bindings/rust/features/ssg/README.adoc | 1 - .../rust/features/ssg/ssg-bootstrap.sh | 48 - a2ml/bindings/rust/src/error.rs | 77 - a2ml/bindings/rust/src/lib.rs | 37 - a2ml/bindings/rust/src/parser.rs | 565 -- a2ml/bindings/rust/src/renderer.rs | 269 - a2ml/bindings/rust/src/types.rs | 293 - a2ml/bindings/rust/tests/crg_c_tests.rs | 637 -- .../rust/verification/0.1-AI-MANIFEST.a2ml | 27 - a2ml/bindings/rust/verification/README.adoc | 1 - .../benchmarks/0.2-AI-MANIFEST.a2ml | 11 - .../rust/verification/benchmarks/README.adoc | 1 - .../coverage/0.2-AI-MANIFEST.a2ml | 12 - .../rust/verification/coverage/README.adoc | 1 - .../verification/fuzzing/0.2-AI-MANIFEST.a2ml | 11 - .../rust/verification/fuzzing/README.adoc | 1 - .../verification/proofs/0.2-AI-MANIFEST.a2ml | 11 - .../rust/verification/proofs/README.adoc | 1 - .../safety_case/0.2-AI-MANIFEST.a2ml | 12 - .../rust/verification/safety_case/README.adoc | 1 - .../simulations/0.2-AI-MANIFEST.a2ml | 11 - .../rust/verification/simulations/README.adoc | 1 - .../verification/tests/0.2-AI-MANIFEST.a2ml | 1 - .../rust/verification/tests/README.adoc | 1 - .../traceability/0.2-AI-MANIFEST.a2ml | 12 - .../verification/traceability/README.adoc | 1 - a2ml/cli/a2ml-cli.idr | 358 - a2ml/cli/build.sh | 124 - a2ml/contractiles/README.a2ml | 35 - a2ml/contractiles/README.adoc | 19 - a2ml/contractiles/dust/Dustfile | 1 - a2ml/contractiles/dust/Dustfile.a2ml | 40 - a2ml/contractiles/intend/Intentfile.a2ml | 32 - a2ml/contractiles/must/Mustfile | 14 - a2ml/contractiles/must/Mustfile.a2ml | 37 - a2ml/contractiles/spec/contractiles-v1.json | 42 - a2ml/contractiles/trust/Trustfile | 1 - a2ml/contractiles/trust/Trustfile.a2ml | 40 - a2ml/docs/.well-known/dnt-policy.txt | 18 - a2ml/docs/.well-known/keybase.txt | 12 - a2ml/docs/.well-known/security.txt | 53 - a2ml/docs/.well-known/sellers.json | 7 - a2ml/docs/.well-known/trust.txt | 57 - a2ml/docs/ANNOUNCEMENT-v1.0.0.adoc | 444 - a2ml/docs/ANNOUNCEMENT.adoc | 16 - a2ml/docs/AST-JSON.adoc | 15 - a2ml/docs/CITATIONS.adoc | 32 - a2ml/docs/CLI.adoc | 38 - a2ml/docs/CNAME | 1 - a2ml/docs/COMPARISON.adoc | 65 - a2ml/docs/CONFORMANCE-PLAN-v1.adoc | 45 - a2ml/docs/CONFORMANCE-REPORT-v1.adoc | 31 - a2ml/docs/CONFORMANCE.adoc | 40 - a2ml/docs/CONTRACTILES-A2ML-V1.adoc | 114 - a2ml/docs/DEPENDABILITY.adoc | 25 - a2ml/docs/DEPLOYMENT-NARRATIVE.adoc | 154 - a2ml/docs/DIALECT-ARCHITECTURE.adoc | 307 - a2ml/docs/DIRECTIVE-MAPPING.adoc | 31 - a2ml/docs/GRAMMAR.adoc | 90 - a2ml/docs/IANA-MEDIA-TYPE.a2ml | 110 - a2ml/docs/IANA-MEDIA-TYPE.adoc | 98 - a2ml/docs/IDRIS2-CORE.adoc | 541 -- a2ml/docs/INLINE-RULES.adoc | 15 - a2ml/docs/INSTALL.adoc | 19 - a2ml/docs/INTEROPERABILITY.adoc | 25 - a2ml/docs/MIGRATION-GUIDE.adoc | 562 -- a2ml/docs/MODULES.adoc | 56 - a2ml/docs/PACKAGING.adoc | 32 - a2ml/docs/PERFORMANCE.adoc | 345 - a2ml/docs/QUICKSTART.adoc | 59 - ...ELEASE-CHECKLIST-CONTRACTILES-A2ML-V1.adoc | 30 - .../RELEASE-NOTES-CONTRACTILES-A2ML-V1.adoc | 40 - a2ml/docs/SECURITY.adoc | 25 - a2ml/docs/STATE-OF-A2ML.adoc | 31 - a2ml/docs/TOOLING.adoc | 788 -- a2ml/docs/V1-CRITERIA.adoc | 28 - a2ml/docs/V1-IMPLEMENTATION.adoc | 27 - a2ml/docs/VECTORS.adoc | 29 - a2ml/docs/WEB-RENDERING.adoc | 113 - a2ml/docs/a2ml.1 | 44 - a2ml/docs/ads.txt | 12 - a2ml/docs/app-ads.txt | 7 - a2ml/docs/demo.html | 22 - a2ml/docs/humans.txt | 40 - a2ml/docs/iana/IANA-SUBMISSION-GUIDE.adoc | 211 - .../application-vnd.a2ml-registration.txt | 204 - a2ml/docs/index.html | 45 - a2ml/docs/paper/ARXIV-SUBMISSION-GUIDE.adoc | 290 - a2ml/docs/paper/Justfile | 16 - a2ml/docs/paper/a2ml-arxiv-submission.tar.gz | Bin 5995 -> 0 bytes a2ml/docs/paper/a2ml-arxiv.pdf | Bin 74956 -> 0 bytes a2ml/docs/paper/a2ml-arxiv.tex | 454 - .../paper/arxiv-submission/a2ml-arxiv.tex | 454 - a2ml/docs/paper/manifest.scm | 24 - a2ml/docs/style.css | 74 - a2ml/editors/a2ml-notepadpp.xml | 82 - a2ml/editors/a2ml.tmLanguage.json | 150 - .../vscode/.devcontainer/Containerfile | 32 - a2ml/editors/vscode/.devcontainer/README.adoc | 27 - .../vscode/.devcontainer/devcontainer.json | 69 - a2ml/editors/vscode/.editorconfig | 65 - a2ml/editors/vscode/.envrc | 27 - a2ml/editors/vscode/.gitattributes | 55 - a2ml/editors/vscode/.github/.mailmap | 1 - a2ml/editors/vscode/.github/.nojekyll | 0 .../vscode/.github/0.1-AI-MANIFEST.a2ml | 1 - a2ml/editors/vscode/.github/CODEOWNERS | 14 - .../editors/vscode/.github/CODE_OF_CONDUCT.md | 327 - a2ml/editors/vscode/.github/CONTRIBUTING.md | 121 - .../.github/DISCUSSION_TEMPLATE/ideas.yml | 13 - .../.github/DISCUSSION_TEMPLATE/q-and-a.yml | 13 - a2ml/editors/vscode/.github/FUNDING.yml | 7 - a2ml/editors/vscode/.github/GOVERNANCE.md | 158 - .../.github/ISSUE_TEMPLATE/bug_report.yml | 127 - .../vscode/.github/ISSUE_TEMPLATE/config.yml | 10 - .../vscode/.github/ISSUE_TEMPLATE/custom.yml | 76 - .../.github/ISSUE_TEMPLATE/documentation.yml | 64 - .../ISSUE_TEMPLATE/feature_request.yml | 87 - .../.github/ISSUE_TEMPLATE/question.yml | 60 - a2ml/editors/vscode/.github/MAINTAINERS | 10 - a2ml/editors/vscode/.github/README.adoc | 1 - a2ml/editors/vscode/.github/SECURITY.md | 406 - a2ml/editors/vscode/.github/SUPPORT | 7 - .../vscode/.github/copilot-instructions.md | 57 - a2ml/editors/vscode/.github/dependabot.yml | 48 - .../vscode/.github/pull_request_template.md | 44 - .../vscode/.github/workflows/codeql.yml | 23 - .../vscode/.github/workflows/governance.yml | 27 - .../vscode/.github/workflows/hypatia-scan.yml | 21 - .../vscode/.github/workflows/jekyll.yml | 68 - .../vscode/.github/workflows/mirror.yml | 15 - .../vscode/.github/workflows/release.yml | 131 - .../vscode/.github/workflows/rhodibot.yml | 235 - .../.github/workflows/scorecard-enforcer.yml | 17 - .../vscode/.github/workflows/scorecard.yml | 24 - .../.github/workflows/secret-scanner.yml | 21 - .../workflows/static-analysis-gate.yml | 331 - a2ml/editors/vscode/.gitignore | 105 - a2ml/editors/vscode/.gitlab-ci.yml | 175 - a2ml/editors/vscode/.guix-channel | 22 - .../.machine_readable/0.1-AI-MANIFEST.a2ml | 29 - .../vscode/.machine_readable/CLADE.a2ml | 26 - .../.machine_readable/ENSAID_CONFIG.a2ml | 96 - .../vscode/.machine_readable/README.adoc | 1 - .../vscode/.machine_readable/ai/.clinerules | 43 - .../vscode/.machine_readable/ai/.cursorrules | 47 - .../.machine_readable/ai/.windsurfrules | 43 - .../.machine_readable/ai/0.2-AI-MANIFEST.a2ml | 11 - .../vscode/.machine_readable/ai/AI.a2ml | 16 - .../.machine_readable/ai/PLACEHOLDERS.adoc | 142 - .../vscode/.machine_readable/ai/README.adoc | 22 - .../anchors/0.2-AI-MANIFEST.a2ml | 11 - .../.machine_readable/anchors/ANCHOR.a2ml | 62 - .../.machine_readable/anchors/README.adoc | 1 - .../.machine_readable/compliance/reuse/dep5 | 54 - .../compliance/rust/deny.toml | 65 - .../configs/0.2-AI-MANIFEST.a2ml | 11 - .../.machine_readable/configs/README.adoc | 1 - .../configs/git-cliff/cliff.toml | 119 - .../contractiles/README.adoc | 19 - .../contractiles/dust/Dustfile.a2ml | 44 - .../contractiles/must/Mustfile.a2ml | 69 - .../contractiles/trust/Trustfile.a2ml | 50 - .../descriptiles/AGENTIC.a2ml | 36 - .../descriptiles/ECOSYSTEM.a2ml | 26 - .../.machine_readable/descriptiles/META.a2ml | 53 - .../descriptiles/NEUROSYM.a2ml | 23 - .../descriptiles/PLAYBOOK.a2ml | 35 - .../.machine_readable/descriptiles/STATE.a2ml | 64 - .../policies/.maintenance-perms-ignore | 5 - .../policies/0.2-AI-MANIFEST.a2ml | 11 - .../policies/MAINTENANCE-AXES.a2ml | 54 - .../policies/MAINTENANCE-CHECKLIST.a2ml | 159 - .../.machine_readable/policies/README.adoc | 1 - .../SOFTWARE-DEVELOPMENT-APPROACH.a2ml | 53 - .../scripts/0.2-AI-MANIFEST.a2ml | 18 - .../scripts/forge/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/forge/README.adoc | 1 - .../scripts/forge/forge-sync.sh | 25 - .../scripts/forge/git-cleanup.sh | 8 - .../scripts/lifecycle/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/lifecycle/README.adoc | 1 - .../scripts/lifecycle/install-tools.sh | 27 - .../scripts/maintenance/maint-assault.sh | 44 - .../scripts/verification/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/verification/README.adoc | 1 - a2ml/editors/vscode/.tool-versions | 9 - a2ml/editors/vscode/.well-known/ai.txt | 18 - a2ml/editors/vscode/.well-known/humans.txt | 14 - a2ml/editors/vscode/.well-known/security.txt | 11 - a2ml/editors/vscode/0-AI-MANIFEST.a2ml | 121 - a2ml/editors/vscode/CHANGELOG.adoc | 9 - a2ml/editors/vscode/CONTRIBUTING.adoc | 26 - a2ml/editors/vscode/Containerfile | 41 - a2ml/editors/vscode/Justfile | 910 -- a2ml/editors/vscode/LICENSE | 153 - a2ml/editors/vscode/LICENSE-PMPL | 153 - a2ml/editors/vscode/README.adoc | 41 - a2ml/editors/vscode/ROADMAP.adoc | 22 - a2ml/editors/vscode/SECURITY.adoc | 16 - .../editors/vscode/container/.gatekeeper.yaml | 1 - .../vscode/container/0.1-AI-MANIFEST.a2ml | 143 - a2ml/editors/vscode/container/Containerfile | 136 - a2ml/editors/vscode/container/README.adoc | 179 - .../vscode/container/compose.example.toml | 135 - a2ml/editors/vscode/container/compose.toml | 70 - a2ml/editors/vscode/container/ct-build.sh | 162 - a2ml/editors/vscode/container/deploy.k9.ncl | 166 - a2ml/editors/vscode/container/entrypoint.sh | 63 - a2ml/editors/vscode/container/manifest.toml | 62 - a2ml/editors/vscode/container/vordr.toml | 100 - a2ml/editors/vscode/contractile.just | 75 - a2ml/editors/vscode/docs/0.1-AI-MANIFEST.a2ml | 33 - a2ml/editors/vscode/docs/QUICKSTART.adoc | 24 - a2ml/editors/vscode/docs/README.adoc | 14 - a2ml/editors/vscode/docs/RSR_OUTLINE.adoc | 290 - .../editors/vscode/docs/STATE-VISUALIZER.adoc | 128 - .../docs/architecture/0.2-AI-MANIFEST.a2ml | 17 - .../docs/architecture/THREAT-MODEL.adoc | 162 - .../docs/attribution/0.2-AI-MANIFEST.a2ml | 11 - .../vscode/docs/attribution/CITATION.cff | 17 - .../vscode/docs/attribution/CITATIONS.adoc | 35 - .../vscode/docs/attribution/CODEOWNERS.adoc | 19 - .../vscode/docs/attribution/MAINTAINERS.adoc | 47 - .../vscode/docs/attribution/README.adoc | 1 - .../docs/decisions/0.2-AI-MANIFEST.a2ml | 11 - .../vscode/docs/decisions/0000-template.adoc | 35 - .../decisions/0001-adopt-rsr-standard.adoc | 86 - .../editors/vscode/docs/decisions/README.adoc | 1 - .../docs/developer/0.2-AI-MANIFEST.a2ml | 11 - .../vscode/docs/developer/ABI-FFI-README.adoc | 384 - .../editors/vscode/docs/developer/README.adoc | 1 - .../docs/governance/0.1-AI-MANIFEST.a2ml | 21 - .../vscode/docs/governance/CRG-CRITERIA.a2ml | 108 - .../vscode/docs/governance/CRG-CRITERIA.adoc | 39 - .../governance/MAINTENANCE-CHECKLIST.a2ml | 159 - .../governance/MAINTENANCE-CHECKLIST.adoc | 569 -- .../vscode/docs/governance/README.adoc | 1 - .../SOFTWARE-DEVELOPMENT-APPROACH.a2ml | 53 - .../SOFTWARE-DEVELOPMENT-APPROACH.adoc | 63 - a2ml/editors/vscode/docs/governance/TSDM.a2ml | 22 - a2ml/editors/vscode/docs/governance/TSDM.adoc | 26 - .../governance/audit/0.2-AI-MANIFEST.a2ml | 11 - .../vscode/docs/governance/audit/README.adoc | 1 - .../audit/compliance/0.3-AI-MANIFEST.a2ml | 11 - .../governance/audit/compliance/README.adoc | 1 - .../audit/effects/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/audit/effects/README.adoc | 1 - .../audit/systems/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/audit/systems/README.adoc | 1 - .../maintenance/0.2-AI-MANIFEST.a2ml | 11 - .../docs/governance/maintenance/README.adoc | 1 - .../maintenance/adaptive/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/adaptive/README.adoc | 1 - .../corrective/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/corrective/README.adoc | 1 - .../perfective/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/perfective/README.adoc | 1 - .../governance/planning/0.2-AI-MANIFEST.a2ml | 11 - .../docs/governance/planning/README.adoc | 1 - .../planning/could/0.3-AI-MANIFEST.a2ml | 11 - .../governance/planning/could/README.adoc | 1 - .../planning/must/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/planning/must/README.adoc | 1 - .../planning/should/0.3-AI-MANIFEST.a2ml | 11 - .../governance/planning/should/README.adoc | 1 - .../vscode/docs/legal/0.2-AI-MANIFEST.a2ml | 16 - .../docs/legal/EXHIBIT-A-ETHICAL-USE.txt | 68 - .../docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt | 102 - a2ml/editors/vscode/docs/practice/.gitkeep | 0 .../vscode/docs/practice/0.2-AI-MANIFEST.a2ml | 11 - .../vscode/docs/practice/AI-CONVENTIONS.adoc | 85 - a2ml/editors/vscode/docs/practice/README.adoc | 1 - .../docs/practice/STATE-VISUALIZER-GUIDE.adoc | 155 - .../vscode/docs/reports/0.2-AI-MANIFEST.a2ml | 19 - a2ml/editors/vscode/docs/reports/README.adoc | 1 - .../reports/compliance/0.3-AI-MANIFEST.a2ml | 11 - .../docs/reports/compliance/README.adoc | 1 - .../reports/maintenance/0.3-AI-MANIFEST.a2ml | 11 - .../docs/reports/maintenance/README.adoc | 1 - .../reports/performance/0.3-AI-MANIFEST.a2ml | 11 - .../docs/reports/performance/README.adoc | 1 - .../docs/reports/quality/0.3-AI-MANIFEST.a2ml | 11 - .../vscode/docs/reports/quality/README.adoc | 1 - .../reports/security/0.3-AI-MANIFEST.a2ml | 11 - .../vscode/docs/reports/security/README.adoc | 1 - .../docs/standards/0.2-AI-MANIFEST.a2ml | 11 - .../editors/vscode/docs/standards/README.adoc | 1 - .../docs/templates/contractiles/README.adoc | 11 - .../templates/contractiles/dust/Dustfile.a2ml | 11 - .../contractiles/intend/Intentfile.a2ml | 11 - .../templates/contractiles/must/Mustfile.a2ml | 11 - .../contractiles/trust/Trustfile.a2ml | 11 - a2ml/editors/vscode/docs/theory/.gitkeep | 0 .../vscode/docs/theory/0.2-AI-MANIFEST.a2ml | 23 - a2ml/editors/vscode/docs/theory/README.adoc | 1 - .../theory/computing/0.3-AI-MANIFEST.a2ml | 11 - .../vscode/docs/theory/computing/README.adoc | 1 - .../theory/formalisms/0.3-AI-MANIFEST.a2ml | 11 - .../vscode/docs/theory/formalisms/README.adoc | 1 - .../theory/mathematics/0.3-AI-MANIFEST.a2ml | 11 - .../docs/theory/mathematics/README.adoc | 1 - .../theory/ontologies/0.3-AI-MANIFEST.a2ml | 11 - .../vscode/docs/theory/ontologies/README.adoc | 1 - .../docs/theory/other/0.3-AI-MANIFEST.a2ml | 11 - .../vscode/docs/theory/other/README.adoc | 1 - .../socio-technical/0.3-AI-MANIFEST.a2ml | 11 - .../docs/theory/socio-technical/README.adoc | 1 - .../docs/whitepapers/0.2-AI-MANIFEST.a2ml | 20 - .../vscode/docs/whitepapers/README.adoc | 1 - .../vscode/docs/whitepapers/academic/.gitkeep | 0 .../whitepapers/academic/0.3-AI-MANIFEST.a2ml | 11 - .../docs/whitepapers/academic/README.adoc | 1 - .../vscode/docs/whitepapers/industry/.gitkeep | 0 .../whitepapers/industry/0.3-AI-MANIFEST.a2ml | 11 - .../docs/whitepapers/industry/README.adoc | 1 - .../whitepapers/outreach/0.3-AI-MANIFEST.a2ml | 16 - .../docs/whitepapers/outreach/README.adoc | 17 - .../vscode/docs/wikis/0.2-AI-MANIFEST.a2ml | 15 - a2ml/editors/vscode/docs/wikis/README.adoc | 15 - .../vscode/examples/0.1-AI-MANIFEST.a2ml | 1 - a2ml/editors/vscode/examples/README.adoc | 1 - .../vscode/examples/web-project-deno.json | 20 - .../vscode/features/0.1-AI-MANIFEST.a2ml | 17 - a2ml/editors/vscode/features/README.adoc | 1 - .../features/boj-server/0.2-AI-MANIFEST.a2ml | 11 - .../vscode/features/boj-server/README.adoc | 14 - .../panic-attacker/0.2-AI-MANIFEST.a2ml | 11 - .../features/panic-attacker/README.adoc | 25 - .../vscode/features/ssg/0.2-AI-MANIFEST.a2ml | 11 - a2ml/editors/vscode/features/ssg/README.adoc | 1 - .../vscode/features/ssg/ssg-bootstrap.sh | 48 - a2ml/editors/vscode/icons/a2ml-icon.svg | 14 - .../vscode/language-configuration.json | 31 - a2ml/editors/vscode/package.json | 45 - a2ml/editors/vscode/snippets/a2ml.json | 93 - a2ml/editors/vscode/src/0.1-AI-MANIFEST.a2ml | 27 - a2ml/editors/vscode/src/README.adoc | 1 - .../vscode/src/aspects/0.2-AI-MANIFEST.a2ml | 17 - a2ml/editors/vscode/src/aspects/README.adoc | 1 - .../aspects/integrity/0.3-AI-MANIFEST.a2ml | 11 - .../vscode/src/aspects/integrity/README.adoc | 1 - .../observability/0.3-AI-MANIFEST.a2ml | 11 - .../src/aspects/observability/README.adoc | 1 - .../src/aspects/security/0.3-AI-MANIFEST.a2ml | 11 - .../vscode/src/aspects/security/README.adoc | 1 - .../vscode/src/bridges/0.2-AI-MANIFEST.a2ml | 11 - .../vscode/src/contracts/0.2-AI-MANIFEST.a2ml | 11 - a2ml/editors/vscode/src/contracts/README.adoc | 1 - .../vscode/src/core/0.2-AI-MANIFEST.a2ml | 11 - .../src/definitions/0.2-AI-MANIFEST.a2ml | 11 - .../vscode/src/definitions/README.adoc | 1 - .../vscode/src/errors/0.2-AI-MANIFEST.a2ml | 11 - a2ml/editors/vscode/src/errors/README.adoc | 1 - .../vscode/src/interface/0.2-AI-MANIFEST.a2ml | 24 - a2ml/editors/vscode/src/interface/README.adoc | 1 - .../src/interface/abi/0.3-AI-MANIFEST.a2ml | 11 - .../vscode/src/interface/abi/README.adoc | 1 - .../src/interface/ffi/0.3-AI-MANIFEST.a2ml | 11 - .../vscode/src/interface/ffi/README.adoc | 1 - .../vscode/src/interface/ffi/build.zig | 94 - .../interface/ffi/src/0.4-AI-MANIFEST.a2ml | 11 - .../vscode/src/interface/ffi/src/README.adoc | 1 - .../vscode/src/interface/ffi/src/main.zig | 274 - .../interface/ffi/test/0.4-AI-MANIFEST.a2ml | 11 - .../vscode/src/interface/ffi/test/README.adoc | 1 - .../interface/ffi/test/integration_test.zig | 182 - .../vscode/syntaxes/a2ml.tmLanguage.json | 102 - .../vscode/verification/0.1-AI-MANIFEST.a2ml | 27 - a2ml/editors/vscode/verification/README.adoc | 1 - .../benchmarks/0.2-AI-MANIFEST.a2ml | 11 - .../verification/benchmarks/README.adoc | 1 - .../coverage/0.2-AI-MANIFEST.a2ml | 12 - .../vscode/verification/coverage/README.adoc | 1 - .../verification/fuzzing/0.2-AI-MANIFEST.a2ml | 11 - .../vscode/verification/fuzzing/README.adoc | 1 - .../verification/proofs/0.2-AI-MANIFEST.a2ml | 11 - .../vscode/verification/proofs/README.adoc | 1 - .../safety_case/0.2-AI-MANIFEST.a2ml | 12 - .../verification/safety_case/README.adoc | 1 - .../simulations/0.2-AI-MANIFEST.a2ml | 11 - .../verification/simulations/README.adoc | 1 - .../verification/tests/0.2-AI-MANIFEST.a2ml | 1 - .../vscode/verification/tests/README.adoc | 1 - .../traceability/0.2-AI-MANIFEST.a2ml | 12 - .../verification/traceability/README.adoc | 1 - a2ml/examples/web-project-deno.json | 20 - a2ml/ffi/zig/build.zig | 94 - a2ml/ffi/zig/src/main.zig | 274 - a2ml/ffi/zig/test/integration_test.zig | 182 - a2ml/humans.txt | 40 - a2ml/lsp/A2ML-LSP.adoc | 569 -- a2ml/lsp/Cargo.lock | 920 --- a2ml/lsp/Cargo.toml | 30 - a2ml/lsp/README.adoc | 159 - a2ml/lsp/src/completions.rs | 313 - a2ml/lsp/src/diagnostics.rs | 567 -- a2ml/lsp/src/hover.rs | 367 - a2ml/lsp/src/main.rs | 183 - a2ml/manifest.scm | 24 - a2ml/pandoc/.devcontainer/Containerfile | 32 - a2ml/pandoc/.devcontainer/README.adoc | 27 - a2ml/pandoc/.devcontainer/devcontainer.json | 69 - a2ml/pandoc/.editorconfig | 65 - a2ml/pandoc/.envrc | 27 - a2ml/pandoc/.gitattributes | 55 - a2ml/pandoc/.github/.mailmap | 1 - a2ml/pandoc/.github/.nojekyll | 0 a2ml/pandoc/.github/0.1-AI-MANIFEST.a2ml | 1 - a2ml/pandoc/.github/CODEOWNERS | 14 - a2ml/pandoc/.github/CODE_OF_CONDUCT.md | 327 - a2ml/pandoc/.github/CONTRIBUTING.md | 121 - .../.github/DISCUSSION_TEMPLATE/ideas.yml | 13 - .../.github/DISCUSSION_TEMPLATE/q-and-a.yml | 13 - a2ml/pandoc/.github/FUNDING.yml | 7 - a2ml/pandoc/.github/GOVERNANCE.md | 158 - .../.github/ISSUE_TEMPLATE/bug_report.yml | 127 - a2ml/pandoc/.github/ISSUE_TEMPLATE/config.yml | 10 - a2ml/pandoc/.github/ISSUE_TEMPLATE/custom.yml | 76 - .../.github/ISSUE_TEMPLATE/documentation.yml | 64 - .../ISSUE_TEMPLATE/feature_request.yml | 87 - .../.github/ISSUE_TEMPLATE/question.yml | 60 - a2ml/pandoc/.github/MAINTAINERS | 10 - a2ml/pandoc/.github/README.adoc | 1 - a2ml/pandoc/.github/SECURITY.md | 406 - a2ml/pandoc/.github/SUPPORT | 7 - a2ml/pandoc/.github/copilot-instructions.md | 57 - a2ml/pandoc/.github/dependabot.yml | 48 - a2ml/pandoc/.github/pull_request_template.md | 44 - a2ml/pandoc/.github/workflows/codeql.yml | 23 - a2ml/pandoc/.github/workflows/governance.yml | 27 - .../pandoc/.github/workflows/hypatia-scan.yml | 21 - a2ml/pandoc/.github/workflows/jekyll.yml | 68 - a2ml/pandoc/.github/workflows/mirror.yml | 15 - a2ml/pandoc/.github/workflows/release.yml | 131 - a2ml/pandoc/.github/workflows/rhodibot.yml | 235 - .../.github/workflows/scorecard-enforcer.yml | 17 - a2ml/pandoc/.github/workflows/scorecard.yml | 24 - .../.github/workflows/secret-scanner.yml | 21 - .../workflows/static-analysis-gate.yml | 331 - a2ml/pandoc/.gitignore | 109 - a2ml/pandoc/.gitlab-ci.yml | 175 - a2ml/pandoc/.guix-channel | 22 - .../.machine_readable/0.1-AI-MANIFEST.a2ml | 29 - a2ml/pandoc/.machine_readable/CLADE.a2ml | 26 - .../.machine_readable/ENSAID_CONFIG.a2ml | 96 - a2ml/pandoc/.machine_readable/README.adoc | 1 - a2ml/pandoc/.machine_readable/ai/.clinerules | 43 - a2ml/pandoc/.machine_readable/ai/.cursorrules | 47 - .../.machine_readable/ai/.windsurfrules | 43 - .../.machine_readable/ai/0.2-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/.machine_readable/ai/AI.a2ml | 16 - .../.machine_readable/ai/PLACEHOLDERS.adoc | 142 - a2ml/pandoc/.machine_readable/ai/README.adoc | 22 - .../anchors/0.2-AI-MANIFEST.a2ml | 11 - .../.machine_readable/anchors/ANCHOR.a2ml | 62 - .../.machine_readable/anchors/README.adoc | 1 - .../.machine_readable/compliance/reuse/dep5 | 54 - .../compliance/rust/deny.toml | 65 - .../configs/0.2-AI-MANIFEST.a2ml | 11 - .../.machine_readable/configs/README.adoc | 1 - .../configs/git-cliff/cliff.toml | 119 - .../contractiles/README.adoc | 19 - .../contractiles/dust/Dustfile.a2ml | 44 - .../contractiles/must/Mustfile.a2ml | 69 - .../contractiles/trust/Trustfile.a2ml | 50 - .../descriptiles/AGENTIC.a2ml | 36 - .../descriptiles/ECOSYSTEM.a2ml | 26 - .../.machine_readable/descriptiles/META.a2ml | 53 - .../descriptiles/NEUROSYM.a2ml | 23 - .../descriptiles/PLAYBOOK.a2ml | 35 - .../.machine_readable/descriptiles/STATE.a2ml | 64 - .../policies/.maintenance-perms-ignore | 5 - .../policies/0.2-AI-MANIFEST.a2ml | 11 - .../policies/MAINTENANCE-AXES.a2ml | 54 - .../policies/MAINTENANCE-CHECKLIST.a2ml | 159 - .../.machine_readable/policies/README.adoc | 1 - .../SOFTWARE-DEVELOPMENT-APPROACH.a2ml | 53 - .../scripts/0.2-AI-MANIFEST.a2ml | 18 - .../scripts/forge/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/forge/README.adoc | 1 - .../scripts/forge/forge-sync.sh | 25 - .../scripts/forge/git-cleanup.sh | 8 - .../scripts/lifecycle/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/lifecycle/README.adoc | 1 - .../scripts/lifecycle/install-tools.sh | 27 - .../scripts/maintenance/maint-assault.sh | 44 - .../scripts/verification/0.3-AI-MANIFEST.a2ml | 11 - .../scripts/verification/README.adoc | 1 - a2ml/pandoc/.tool-versions | 9 - a2ml/pandoc/.well-known/ai.txt | 18 - a2ml/pandoc/.well-known/humans.txt | 14 - a2ml/pandoc/.well-known/security.txt | 11 - a2ml/pandoc/0-AI-MANIFEST.a2ml | 121 - a2ml/pandoc/CHANGELOG.adoc | 9 - a2ml/pandoc/CONTRIBUTING.adoc | 26 - a2ml/pandoc/Containerfile | 41 - a2ml/pandoc/Justfile | 910 -- a2ml/pandoc/LICENSE | 21 - a2ml/pandoc/PANDOC-SUBMISSION.adoc | 77 - a2ml/pandoc/README.adoc | 163 - a2ml/pandoc/ROADMAP.adoc | 22 - a2ml/pandoc/SECURITY.adoc | 16 - a2ml/pandoc/a2ml-filter.lua | 464 -- a2ml/pandoc/a2ml-reader.lua | 189 - a2ml/pandoc/a2ml-writer.lua | 153 - a2ml/pandoc/a2ml.html | 580 -- a2ml/pandoc/a2ml.lua | 360 - a2ml/pandoc/container/.gatekeeper.yaml | 1 - a2ml/pandoc/container/0.1-AI-MANIFEST.a2ml | 143 - a2ml/pandoc/container/Containerfile | 136 - a2ml/pandoc/container/README.adoc | 179 - a2ml/pandoc/container/compose.example.toml | 135 - a2ml/pandoc/container/compose.toml | 70 - a2ml/pandoc/container/ct-build.sh | 162 - a2ml/pandoc/container/deploy.k9.ncl | 166 - a2ml/pandoc/container/entrypoint.sh | 63 - a2ml/pandoc/container/manifest.toml | 62 - a2ml/pandoc/container/vordr.toml | 100 - a2ml/pandoc/contractile.just | 75 - a2ml/pandoc/docs/0.1-AI-MANIFEST.a2ml | 33 - a2ml/pandoc/docs/QUICKSTART.adoc | 24 - a2ml/pandoc/docs/README.adoc | 14 - a2ml/pandoc/docs/RSR_OUTLINE.adoc | 290 - a2ml/pandoc/docs/STATE-VISUALIZER.adoc | 128 - .../docs/architecture/0.2-AI-MANIFEST.a2ml | 17 - .../docs/architecture/THREAT-MODEL.adoc | 162 - .../docs/attribution/0.2-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/docs/attribution/CITATION.cff | 17 - a2ml/pandoc/docs/attribution/CITATIONS.adoc | 35 - a2ml/pandoc/docs/attribution/CODEOWNERS.adoc | 19 - a2ml/pandoc/docs/attribution/MAINTAINERS.adoc | 47 - a2ml/pandoc/docs/attribution/README.adoc | 1 - .../docs/decisions/0.2-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/docs/decisions/0000-template.adoc | 35 - .../decisions/0001-adopt-rsr-standard.adoc | 86 - a2ml/pandoc/docs/decisions/README.adoc | 1 - .../docs/developer/0.2-AI-MANIFEST.a2ml | 11 - .../pandoc/docs/developer/ABI-FFI-README.adoc | 384 - a2ml/pandoc/docs/developer/README.adoc | 1 - .../docs/governance/0.1-AI-MANIFEST.a2ml | 21 - a2ml/pandoc/docs/governance/CRG-CRITERIA.a2ml | 108 - a2ml/pandoc/docs/governance/CRG-CRITERIA.adoc | 39 - .../governance/MAINTENANCE-CHECKLIST.a2ml | 159 - .../governance/MAINTENANCE-CHECKLIST.adoc | 569 -- a2ml/pandoc/docs/governance/README.adoc | 1 - .../SOFTWARE-DEVELOPMENT-APPROACH.a2ml | 53 - .../SOFTWARE-DEVELOPMENT-APPROACH.adoc | 63 - a2ml/pandoc/docs/governance/TSDM.a2ml | 22 - a2ml/pandoc/docs/governance/TSDM.adoc | 26 - .../governance/audit/0.2-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/docs/governance/audit/README.adoc | 1 - .../audit/compliance/0.3-AI-MANIFEST.a2ml | 11 - .../governance/audit/compliance/README.adoc | 1 - .../audit/effects/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/audit/effects/README.adoc | 1 - .../audit/systems/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/audit/systems/README.adoc | 1 - .../maintenance/0.2-AI-MANIFEST.a2ml | 11 - .../docs/governance/maintenance/README.adoc | 1 - .../maintenance/adaptive/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/adaptive/README.adoc | 1 - .../corrective/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/corrective/README.adoc | 1 - .../perfective/0.3-AI-MANIFEST.a2ml | 11 - .../maintenance/perfective/README.adoc | 1 - .../governance/planning/0.2-AI-MANIFEST.a2ml | 11 - .../docs/governance/planning/README.adoc | 1 - .../planning/could/0.3-AI-MANIFEST.a2ml | 11 - .../governance/planning/could/README.adoc | 1 - .../planning/must/0.3-AI-MANIFEST.a2ml | 11 - .../docs/governance/planning/must/README.adoc | 1 - .../planning/should/0.3-AI-MANIFEST.a2ml | 11 - .../governance/planning/should/README.adoc | 1 - a2ml/pandoc/docs/legal/0.2-AI-MANIFEST.a2ml | 16 - .../docs/legal/EXHIBIT-A-ETHICAL-USE.txt | 68 - .../docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt | 102 - a2ml/pandoc/docs/practice/.gitkeep | 0 .../pandoc/docs/practice/0.2-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/docs/practice/AI-CONVENTIONS.adoc | 85 - a2ml/pandoc/docs/practice/README.adoc | 1 - .../docs/practice/STATE-VISUALIZER-GUIDE.adoc | 155 - a2ml/pandoc/docs/reports/0.2-AI-MANIFEST.a2ml | 19 - a2ml/pandoc/docs/reports/README.adoc | 1 - .../reports/compliance/0.3-AI-MANIFEST.a2ml | 11 - .../docs/reports/compliance/README.adoc | 1 - .../reports/maintenance/0.3-AI-MANIFEST.a2ml | 11 - .../docs/reports/maintenance/README.adoc | 1 - .../reports/performance/0.3-AI-MANIFEST.a2ml | 11 - .../docs/reports/performance/README.adoc | 1 - .../docs/reports/quality/0.3-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/docs/reports/quality/README.adoc | 1 - .../reports/security/0.3-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/docs/reports/security/README.adoc | 1 - .../docs/standards/0.2-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/docs/standards/README.adoc | 1 - .../docs/templates/contractiles/README.adoc | 11 - .../templates/contractiles/dust/Dustfile.a2ml | 11 - .../contractiles/intend/Intentfile.a2ml | 11 - .../templates/contractiles/must/Mustfile.a2ml | 11 - .../contractiles/trust/Trustfile.a2ml | 11 - a2ml/pandoc/docs/theory/.gitkeep | 0 a2ml/pandoc/docs/theory/0.2-AI-MANIFEST.a2ml | 23 - a2ml/pandoc/docs/theory/README.adoc | 1 - .../theory/computing/0.3-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/docs/theory/computing/README.adoc | 1 - .../theory/formalisms/0.3-AI-MANIFEST.a2ml | 11 - .../pandoc/docs/theory/formalisms/README.adoc | 1 - .../theory/mathematics/0.3-AI-MANIFEST.a2ml | 11 - .../docs/theory/mathematics/README.adoc | 1 - .../theory/ontologies/0.3-AI-MANIFEST.a2ml | 11 - .../pandoc/docs/theory/ontologies/README.adoc | 1 - .../docs/theory/other/0.3-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/docs/theory/other/README.adoc | 1 - .../socio-technical/0.3-AI-MANIFEST.a2ml | 11 - .../docs/theory/socio-technical/README.adoc | 1 - .../docs/whitepapers/0.2-AI-MANIFEST.a2ml | 20 - a2ml/pandoc/docs/whitepapers/README.adoc | 1 - .../pandoc/docs/whitepapers/academic/.gitkeep | 0 .../whitepapers/academic/0.3-AI-MANIFEST.a2ml | 11 - .../docs/whitepapers/academic/README.adoc | 1 - .../pandoc/docs/whitepapers/industry/.gitkeep | 0 .../whitepapers/industry/0.3-AI-MANIFEST.a2ml | 11 - .../docs/whitepapers/industry/README.adoc | 1 - .../whitepapers/outreach/0.3-AI-MANIFEST.a2ml | 16 - .../docs/whitepapers/outreach/README.adoc | 17 - a2ml/pandoc/docs/wikis/0.2-AI-MANIFEST.a2ml | 15 - a2ml/pandoc/docs/wikis/README.adoc | 15 - a2ml/pandoc/examples/0.1-AI-MANIFEST.a2ml | 1 - a2ml/pandoc/examples/README.adoc | 1 - a2ml/pandoc/examples/web-project-deno.json | 20 - a2ml/pandoc/expected.a2ml | 16 - a2ml/pandoc/expected.html | 12 - a2ml/pandoc/features/0.1-AI-MANIFEST.a2ml | 17 - a2ml/pandoc/features/README.adoc | 1 - .../features/boj-server/0.2-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/features/boj-server/README.adoc | 14 - .../panic-attacker/0.2-AI-MANIFEST.a2ml | 11 - .../features/panic-attacker/README.adoc | 25 - a2ml/pandoc/features/ssg/0.2-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/features/ssg/README.adoc | 1 - a2ml/pandoc/features/ssg/ssg-bootstrap.sh | 48 - a2ml/pandoc/pandoc-a2ml-scm-1.rockspec | 53 - a2ml/pandoc/sample.a2ml | 13 - a2ml/pandoc/src/0.1-AI-MANIFEST.a2ml | 27 - a2ml/pandoc/src/README.adoc | 1 - a2ml/pandoc/src/aspects/0.2-AI-MANIFEST.a2ml | 17 - a2ml/pandoc/src/aspects/README.adoc | 1 - .../aspects/integrity/0.3-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/src/aspects/integrity/README.adoc | 1 - .../observability/0.3-AI-MANIFEST.a2ml | 11 - .../src/aspects/observability/README.adoc | 1 - .../src/aspects/security/0.3-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/src/aspects/security/README.adoc | 1 - a2ml/pandoc/src/bridges/0.2-AI-MANIFEST.a2ml | 11 - .../pandoc/src/contracts/0.2-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/src/contracts/README.adoc | 1 - a2ml/pandoc/src/core/0.2-AI-MANIFEST.a2ml | 11 - .../src/definitions/0.2-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/src/definitions/README.adoc | 1 - a2ml/pandoc/src/errors/0.2-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/src/errors/README.adoc | 1 - .../pandoc/src/interface/0.2-AI-MANIFEST.a2ml | 24 - a2ml/pandoc/src/interface/README.adoc | 1 - .../src/interface/abi/0.3-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/src/interface/abi/README.adoc | 1 - .../src/interface/ffi/0.3-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/src/interface/ffi/README.adoc | 1 - a2ml/pandoc/src/interface/ffi/build.zig | 94 - .../interface/ffi/src/0.4-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/src/interface/ffi/src/README.adoc | 1 - a2ml/pandoc/src/interface/ffi/src/main.zig | 274 - .../interface/ffi/test/0.4-AI-MANIFEST.a2ml | 11 - .../pandoc/src/interface/ffi/test/README.adoc | 1 - .../interface/ffi/test/integration_test.zig | 182 - a2ml/pandoc/verification/0.1-AI-MANIFEST.a2ml | 27 - a2ml/pandoc/verification/README.adoc | 1 - .../benchmarks/0.2-AI-MANIFEST.a2ml | 11 - .../verification/benchmarks/README.adoc | 1 - .../coverage/0.2-AI-MANIFEST.a2ml | 12 - a2ml/pandoc/verification/coverage/README.adoc | 1 - .../verification/fuzzing/0.2-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/verification/fuzzing/README.adoc | 1 - .../verification/proofs/0.2-AI-MANIFEST.a2ml | 11 - a2ml/pandoc/verification/proofs/README.adoc | 1 - .../safety_case/0.2-AI-MANIFEST.a2ml | 12 - .../verification/safety_case/README.adoc | 1 - .../simulations/0.2-AI-MANIFEST.a2ml | 11 - .../verification/simulations/README.adoc | 1 - .../verification/tests/0.2-AI-MANIFEST.a2ml | 1 - a2ml/pandoc/verification/tests/README.adoc | 1 - .../traceability/0.2-AI-MANIFEST.a2ml | 12 - .../verification/traceability/README.adoc | 1 - a2ml/profiles/README.adoc | 69 - a2ml/profiles/REGISTRY.a2ml | 98 - a2ml/profiles/a2ml-agentic/PROFILE.a2ml | 30 - a2ml/profiles/a2ml-anchor/PROFILE.a2ml | 32 - a2ml/profiles/a2ml-ecosystem/PROFILE.a2ml | 29 - a2ml/profiles/a2ml-meta/PROFILE.a2ml | 30 - a2ml/profiles/a2ml-neurosym/PROFILE.a2ml | 28 - a2ml/profiles/a2ml-playbook/PROFILE.a2ml | 28 - a2ml/profiles/a2ml-state/PROFILE.a2ml | 33 - a2ml/prototype/ada-tui/docs/README.adoc | 25 - a2ml/prototype/ada-tui/src/core.adb | 57 - a2ml/prototype/ada-tui/src/core.ads | 20 - a2ml/prototype/ada-tui/src/main.adb | 80 - a2ml/prototype/affinescript/README.adoc | 24 - a2ml/prototype/affinescript/package.json | 8 - a2ml/prototype/affinescript/src/A2ml.affine | 412 - a2ml/prototype/affinescript/src/Cli.affine | 136 - a2ml/prototype/affinescript/src/Compat.affine | 48 - a2ml/prototype/affinescript/src/Demo.affine | 21 - .../prototype/affinescript/src/DumpAst.affine | 24 - a2ml/prototype/affinescript/src/Json.affine | 71 - .../affinescript/src/RunReport.affine | 8 - .../affinescript/src/RunVectors.affine | 13 - .../affinescript/src/VectorReport.affine | 43 - .../affinescript/src/VectorRunner.affine | 94 - a2ml/prototype/ddraig/DemoBuild.idr | 25 - a2ml/prototype/ddraig/content/demo.adoc | 27 - a2ml/prototype/wasm/README.adoc | 29 - a2ml/prototype/wasm/fixtures/add.wat | 7 - a2ml/prototype/wasm/src/WasmDemo.affine | 33 - a2ml/repl/A2ML-REPL.idr | 306 - a2ml/scripts/add-arxiv-badge.sh | 215 - a2ml/scripts/build-demo-ddraig.sh | 23 - a2ml/scripts/check-6scm.sh | 69 - a2ml/scripts/contractiles-a2ml-emit.sh | 20 - a2ml/scripts/contractiles-a2ml-test.sh | 55 - a2ml/scripts/contractiles-a2ml-tool.js | 355 - a2ml/scripts/contractiles-a2ml-validate.sh | 25 - a2ml/scripts/contractiles-k9-validate.sh | 23 - a2ml/scripts/deploy-site.sh | 33 - a2ml/scripts/package-cli.sh | 25 - a2ml/showcase/content/examples.adoc | 272 - a2ml/showcase/content/getting-started.adoc | 213 - a2ml/showcase/content/index.adoc | 88 - a2ml/showcase/content/integrations.adoc | 131 - a2ml/showcase/content/specification.adoc | 280 - a2ml/showcase/output/examples.html | 672 -- a2ml/showcase/output/getting-started.html | 594 -- a2ml/showcase/output/index.html | 463 -- a2ml/showcase/output/integrations.html | 531 -- a2ml/showcase/output/specification.html | 596 -- a2ml/showcase/template.html | 428 - a2ml/site/assets/style.css | 1 - a2ml/site/downloads.adoc | 45 - a2ml/site/index.adoc | 81 - a2ml/site/public/.well-known/security.txt | 29 - a2ml/site/public/CNAME | 1 - a2ml/site/public/downloads/README.adoc | 15 - .../public/downloads/a2ml-templates.tar.gz | Bin 1351 -> 0 bytes .../public/downloads/checked-example.a2ml | 17 - a2ml/site/public/downloads/lax-example.a2ml | 18 - .../public/downloads/profile-example.a2ml | 29 - a2ml/site/public/favicon.svg | 10 - a2ml/site/public/robots.txt | 4 - a2ml/site/roadmap.adoc | 51 - a2ml/site/spec.adoc | 39 - a2ml/site/start.adoc | 49 - a2ml/site/templates/default.html | 1 - a2ml/src/A2ML/BaseVocab.idr | 191 - a2ml/src/A2ML/Converters.idr | 363 - a2ml/src/A2ML/CoreTests.idr | 37 - a2ml/src/A2ML/Parser.idr | 381 - a2ml/src/A2ML/ParserTests.idr | 53 - a2ml/src/A2ML/Profiles.idr | 228 - a2ml/src/A2ML/Proofs.idr | 276 - a2ml/src/A2ML/Surface.idr | 22 - a2ml/src/A2ML/Tests.idr | 318 - a2ml/src/A2ML/Translator.idr | 63 - a2ml/src/A2ML/TypedCore.idr | 169 - a2ml/test.a2ml | 3 - .../tests/contractiles/expected/dustfile.json | 38 - .../contractiles/expected/intentfile.json | 22 - .../tests/contractiles/expected/mustfile.json | 35 - .../contractiles/expected/trustfile.json | 37 - .../tests/contractiles/fixtures/Dustfile.a2ml | 40 - .../contractiles/fixtures/Intentfile.a2ml | 32 - .../tests/contractiles/fixtures/Mustfile.a2ml | 37 - .../contractiles/fixtures/Trustfile.a2ml | 40 - .../fixtures/invalid-dustfile.a2ml | 32 - .../fixtures/invalid-intentfile.a2ml | 15 - .../fixtures/invalid-mustfile.a2ml | 19 - .../fixtures/invalid-trustfile.a2ml | 19 - a2ml/tests/record-dialect/MANIFEST.a2ml | 166 - a2ml/tests/record-dialect/README.adoc | 73 - .../vectors/invalid/bare-string-value.a2ml | 4 - .../vectors/invalid/duplicate-key.a2ml | 5 - .../vectors/invalid/hex-integer.a2ml | 4 - .../vectors/invalid/leading-dot-float.a2ml | 4 - .../vectors/invalid/native-date.a2ml | 4 - .../invalid/profile-after-section.a2ml | 7 - .../vectors/invalid/reopened-section.a2ml | 10 - .../vectors/invalid/single-quoted-string.a2ml | 4 - .../state-missing-required-section.a2ml | 12 - .../vectors/invalid/triple-single-quote.a2ml | 5 - .../vectors/invalid/unknown-directive.a2ml | 7 - .../vectors/invalid/unterminated-string.a2ml | 4 - .../vectors/valid/all-scalar-forms.a2ml | 14 - .../vectors/valid/array-of-tables.a2ml | 13 - .../valid/arrays-and-inline-tables.a2ml | 18 - .../vectors/valid/comments-and-preamble.a2ml | 9 - .../vectors/valid/dotted-sections.a2ml | 10 - .../record-dialect/vectors/valid/minimal.a2ml | 3 - .../vectors/valid/quoted-keys.a2ml | 6 - .../vectors/valid/state-profile.a2ml | 17 - a2ml/tests/vectors/directive-attrs.a2ml | 3 - a2ml/tests/vectors/directive-attrs.expected | 5 - .../vectors/directive-attrs.html.expected | 1 - a2ml/tests/vectors/inline-edges.a2ml | 3 - a2ml/tests/vectors/inline-edges.expected | 5 - a2ml/tests/vectors/inline-edges.html.expected | 2 - a2ml/tests/vectors/inline-formatting.a2ml | 3 - a2ml/tests/vectors/inline-formatting.expected | 5 - .../vectors/inline-formatting.html.expected | 2 - a2ml/tests/vectors/module0-basic.a2ml | 13 - a2ml/tests/vectors/module0-basic.expected | 7 - .../tests/vectors/module0-basic.html.expected | 5 - a2ml/tests/vectors/opaque-roundtrip.a2ml | 8 - a2ml/tests/vectors/opaque-roundtrip.expected | 5 - .../vectors/opaque-roundtrip.html.expected | 5 - a2ml/tests/vectors/refs-basic.a2ml | 6 - a2ml/tests/vectors/refs-basic.expected | 5 - a2ml/tests/vectors/refs-basic.html.expected | 3 - a2ml/tests/vectors/refs-missing.a2ml | 5 - a2ml/tests/vectors/refs-missing.expected | 2 - a2ml/tests/vectors/table-basic.a2ml | 3 - a2ml/tests/vectors/table-basic.expected | 4 - a2ml/tests/vectors/table-basic.html.expected | 1 - lol/.claude/CLAUDE.md | 83 - lol/.editorconfig | 43 - lol/.gitattributes | 54 - lol/.github/FUNDING.yml | 7 - lol/.github/ISSUE_TEMPLATE/bug_report.md | 38 - lol/.github/ISSUE_TEMPLATE/custom.md | 10 - lol/.github/ISSUE_TEMPLATE/documentation.md | 66 - lol/.github/ISSUE_TEMPLATE/feature_request.md | 20 - lol/.github/ISSUE_TEMPLATE/question.md | 55 - lol/.github/dependabot.yml | 23 - lol/.github/workflows/codeql.yml | 23 - .../workflows/comprehensive-quality.yml | 225 - lol/.github/workflows/governance.yml | 27 - lol/.github/workflows/hypatia-scan.yml | 21 - lol/.github/workflows/jekyll-gh-pages.yml | 60 - lol/.github/workflows/mirror.yml | 15 - lol/.github/workflows/rescript-deno-ci.yml | 49 - lol/.github/workflows/scorecard-enforcer.yml | 17 - lol/.github/workflows/scorecard.yml | 24 - lol/.github/workflows/secret-scanner.yml | 21 - lol/.gitignore | 90 - lol/.gitlab-ci.yml | 235 - .../descriptiles/AGENTIC.a2ml | 34 - .../descriptiles/ECOSYSTEM.a2ml | 20 - lol/.machine_readable/descriptiles/META.a2ml | 27 - .../descriptiles/NEUROSYM.a2ml | 21 - .../descriptiles/PLAYBOOK.a2ml | 26 - lol/.machine_readable/descriptiles/STATE.a2ml | 44 - lol/.nojekyll | 0 lol/0-AI-MANIFEST.a2ml | 116 - lol/ABI-FFI-README.adoc | 234 - lol/CHANGELOG.adoc | 46 - lol/CODE_OF_CONDUCT.adoc | 133 - lol/CONTRIBUTING.adoc | 286 - lol/Containerfile | 90 - lol/FUTURE.adoc | 164 - lol/Justfile | 513 -- lol/LICENSE | 663 -- lol/MAINTAINERS.adoc | 47 - lol/Mustfile | 13 - lol/README.adoc | 245 - lol/SECURITY.adoc | 23 - lol/analysis/Project.toml | 21 - lol/analysis/src/LolAnalysis.jl | 148 - lol/analysis/src/corpus_stats.jl | 130 - lol/analysis/src/frequency_analysis.jl | 145 - lol/analysis/src/language_distance.jl | 149 - lol/analysis/src/phylogenetic.jl | 173 - lol/analysis/src/quality_assessment.jl | 217 - lol/analysis/src/server.jl | 112 - lol/analysis/src/zero_frequency.jl | 156 - lol/analysis/test/runtests.jl | 111 - lol/api/zig-gateway/build.zig | 148 - lol/api/zig-gateway/src/lol_ffi.zig | 338 - lol/api/zig-gateway/src/main.zig | 1575 ---- lol/api/zig-gateway/src/types.zig | 165 - lol/biome.json | 45 - lol/config/main.ncl | 275 - lol/contractiles/README.adoc | 19 - lol/contractiles/dust/Dustfile | 29 - lol/contractiles/must/Mustfile | 35 - lol/docs/CITATIONS.adoc | 36 - lol/eclexiaiser.toml | 26 - lol/ffi/zig/build.zig | 115 - lol/ffi/zig/src/ffi.zig | 63 - lol/ffi/zig/src/locale.zig | 195 - lol/ffi/zig/src/main.zig | 904 -- lol/ffi/zig/src/plural.zig | 249 - lol/ffi/zig/src/store.zig | 259 - lol/ffi/zig/test/integration_test.zig | 252 - lol/generated/abi/lol.h | 207 - lol/lib/rescript.lock | 1 - lol/lol-abi.ipkg | 14 - lol/manifest.scm | 24 - lol/meta/ISO639-3.tsv | 7327 ----------------- lol/meta/api_volumes.txt | 1 - lol/meta/biblecom.tsv | 1811 ---- lol/meta/bibles_list.html | 291 - lol/meta/books2numbers.txt | 83 - lol/meta/ebible.html | 908 -- lol/meta/flags/ad.png | Bin 449 -> 0 bytes lol/meta/flags/ae.png | Bin 131 -> 0 bytes lol/meta/flags/af.png | Bin 342 -> 0 bytes lol/meta/flags/ag.png | Bin 486 -> 0 bytes lol/meta/flags/al.png | Bin 357 -> 0 bytes lol/meta/flags/am.png | Bin 124 -> 0 bytes lol/meta/flags/ao.png | Bin 310 -> 0 bytes lol/meta/flags/ar.png | Bin 139 -> 0 bytes lol/meta/flags/at.png | Bin 101 -> 0 bytes lol/meta/flags/au.png | Bin 501 -> 0 bytes lol/meta/flags/az.png | Bin 175 -> 0 bytes lol/meta/flags/ba.png | Bin 241 -> 0 bytes lol/meta/flags/bb.png | Bin 243 -> 0 bytes lol/meta/flags/bd.png | Bin 200 -> 0 bytes lol/meta/flags/be.png | Bin 108 -> 0 bytes lol/meta/flags/bf.png | Bin 181 -> 0 bytes lol/meta/flags/bg.png | Bin 121 -> 0 bytes lol/meta/flags/bh.png | Bin 125 -> 0 bytes lol/meta/flags/bi.png | Bin 470 -> 0 bytes lol/meta/flags/bj.png | Bin 100 -> 0 bytes lol/meta/flags/bn.png | Bin 847 -> 0 bytes lol/meta/flags/bo.png | Bin 117 -> 0 bytes lol/meta/flags/br.png | Bin 436 -> 0 bytes lol/meta/flags/bs.png | Bin 221 -> 0 bytes lol/meta/flags/bt.png | Bin 685 -> 0 bytes lol/meta/flags/bw.png | Bin 105 -> 0 bytes lol/meta/flags/by.png | Bin 307 -> 0 bytes lol/meta/flags/bz.png | Bin 751 -> 0 bytes lol/meta/flags/ca.png | Bin 302 -> 0 bytes lol/meta/flags/cd.png | Bin 451 -> 0 bytes lol/meta/flags/cf.png | Bin 197 -> 0 bytes lol/meta/flags/cg.png | Bin 142 -> 0 bytes lol/meta/flags/ch.png | Bin 107 -> 0 bytes lol/meta/flags/ci.png | Bin 97 -> 0 bytes lol/meta/flags/cl.png | Bin 147 -> 0 bytes lol/meta/flags/cm.png | Bin 163 -> 0 bytes lol/meta/flags/cn.png | Bin 214 -> 0 bytes lol/meta/flags/co.png | Bin 99 -> 0 bytes lol/meta/flags/cr.png | Bin 116 -> 0 bytes lol/meta/flags/cu.png | Bin 300 -> 0 bytes lol/meta/flags/cv.png | Bin 300 -> 0 bytes lol/meta/flags/cy.png | Bin 317 -> 0 bytes lol/meta/flags/cz.png | Bin 217 -> 0 bytes lol/meta/flags/de.png | Bin 99 -> 0 bytes lol/meta/flags/dj.png | Bin 373 -> 0 bytes lol/meta/flags/dk.png | Bin 125 -> 0 bytes lol/meta/flags/dm.png | Bin 403 -> 0 bytes lol/meta/flags/do.png | Bin 258 -> 0 bytes lol/meta/flags/dz.png | Bin 229 -> 0 bytes lol/meta/flags/ec.png | Bin 397 -> 0 bytes lol/meta/flags/ee.png | Bin 100 -> 0 bytes lol/meta/flags/eg.png | Bin 256 -> 0 bytes lol/meta/flags/eh.png | Bin 379 -> 0 bytes lol/meta/flags/er.png | Bin 535 -> 0 bytes lol/meta/flags/es.png | Bin 287 -> 0 bytes lol/meta/flags/et.png | Bin 355 -> 0 bytes lol/meta/flags/fi.png | Bin 130 -> 0 bytes lol/meta/flags/fj.png | Bin 617 -> 0 bytes lol/meta/flags/fm.png | Bin 149 -> 0 bytes lol/meta/flags/fr.png | Bin 96 -> 0 bytes lol/meta/flags/ga.png | Bin 117 -> 0 bytes lol/meta/flags/gb.png | Bin 434 -> 0 bytes lol/meta/flags/gd.png | Bin 490 -> 0 bytes lol/meta/flags/ge.png | Bin 148 -> 0 bytes lol/meta/flags/gh.png | Bin 222 -> 0 bytes lol/meta/flags/gm.png | Bin 129 -> 0 bytes lol/meta/flags/gn.png | Bin 97 -> 0 bytes lol/meta/flags/gq.png | Bin 325 -> 0 bytes lol/meta/flags/gr.png | Bin 266 -> 0 bytes lol/meta/flags/gt.png | Bin 279 -> 0 bytes lol/meta/flags/gw.png | Bin 234 -> 0 bytes lol/meta/flags/gy.png | Bin 464 -> 0 bytes lol/meta/flags/hn.png | Bin 216 -> 0 bytes lol/meta/flags/hr.png | Bin 517 -> 0 bytes lol/meta/flags/ht.png | Bin 227 -> 0 bytes lol/meta/flags/hu.png | Bin 113 -> 0 bytes lol/meta/flags/id.png | Bin 93 -> 0 bytes lol/meta/flags/ie.png | Bin 119 -> 0 bytes lol/meta/flags/il.png | Bin 181 -> 0 bytes lol/meta/flags/in.png | Bin 149 -> 0 bytes lol/meta/flags/iq.png | Bin 258 -> 0 bytes lol/meta/flags/ir.png | Bin 505 -> 0 bytes lol/meta/flags/is.png | Bin 154 -> 0 bytes lol/meta/flags/it.png | Bin 96 -> 0 bytes lol/meta/flags/jm.png | Bin 174 -> 0 bytes lol/meta/flags/jo.png | Bin 230 -> 0 bytes lol/meta/flags/jp.png | Bin 160 -> 0 bytes lol/meta/flags/ke.png | Bin 265 -> 0 bytes lol/meta/flags/kg.png | Bin 414 -> 0 bytes lol/meta/flags/kh.png | Bin 407 -> 0 bytes lol/meta/flags/ki.png | Bin 509 -> 0 bytes lol/meta/flags/km.png | Bin 441 -> 0 bytes lol/meta/flags/kn.png | Bin 374 -> 0 bytes lol/meta/flags/kp.png | Bin 343 -> 0 bytes lol/meta/flags/kr.png | Bin 521 -> 0 bytes lol/meta/flags/ks.png | Bin 357 -> 0 bytes lol/meta/flags/kw.png | Bin 224 -> 0 bytes lol/meta/flags/kz.png | Bin 546 -> 0 bytes lol/meta/flags/la.png | Bin 142 -> 0 bytes lol/meta/flags/lb.png | Bin 323 -> 0 bytes lol/meta/flags/lc.png | Bin 355 -> 0 bytes lol/meta/flags/li.png | Bin 226 -> 0 bytes lol/meta/flags/lk.png | Bin 665 -> 0 bytes lol/meta/flags/lr.png | Bin 338 -> 0 bytes lol/meta/flags/ls.png | Bin 216 -> 0 bytes lol/meta/flags/lt.png | Bin 109 -> 0 bytes lol/meta/flags/lu.png | Bin 121 -> 0 bytes lol/meta/flags/lv.png | Bin 93 -> 0 bytes lol/meta/flags/ly.png | Bin 244 -> 0 bytes lol/meta/flags/ma.png | Bin 309 -> 0 bytes lol/meta/flags/mc.png | Bin 90 -> 0 bytes lol/meta/flags/md.png | Bin 342 -> 0 bytes lol/meta/flags/me.png | Bin 490 -> 0 bytes lol/meta/flags/mg.png | Bin 101 -> 0 bytes lol/meta/flags/mh.png | Bin 821 -> 0 bytes lol/meta/flags/mk.png | Bin 356 -> 0 bytes lol/meta/flags/ml.png | Bin 98 -> 0 bytes lol/meta/flags/mm.png | Bin 336 -> 0 bytes lol/meta/flags/mn.png | Bin 275 -> 0 bytes lol/meta/flags/mr.png | Bin 304 -> 0 bytes lol/meta/flags/mt.png | Bin 153 -> 0 bytes lol/meta/flags/mu.png | Bin 107 -> 0 bytes lol/meta/flags/mv.png | Bin 160 -> 0 bytes lol/meta/flags/mw.png | Bin 261 -> 0 bytes lol/meta/flags/mx.png | Bin 309 -> 0 bytes lol/meta/flags/my.png | Bin 416 -> 0 bytes lol/meta/flags/mz.png | Bin 420 -> 0 bytes lol/meta/flags/na.png | Bin 267 -> 0 bytes lol/meta/flags/ne.png | Bin 150 -> 0 bytes lol/meta/flags/ng.png | Bin 99 -> 0 bytes lol/meta/flags/ni.png | Bin 281 -> 0 bytes lol/meta/flags/nl.png | Bin 108 -> 0 bytes lol/meta/flags/no.png | Bin 154 -> 0 bytes lol/meta/flags/np.png | Bin 490 -> 0 bytes lol/meta/flags/nr.png | Bin 188 -> 0 bytes lol/meta/flags/nz.png | Bin 463 -> 0 bytes lol/meta/flags/om.png | Bin 256 -> 0 bytes lol/meta/flags/pa.png | Bin 196 -> 0 bytes lol/meta/flags/pe.png | Bin 91 -> 0 bytes lol/meta/flags/pg.png | Bin 556 -> 0 bytes lol/meta/flags/ph.png | Bin 500 -> 0 bytes lol/meta/flags/pk.png | Bin 319 -> 0 bytes lol/meta/flags/pl.png | Bin 91 -> 0 bytes lol/meta/flags/pt.png | Bin 395 -> 0 bytes lol/meta/flags/pw.png | Bin 156 -> 0 bytes lol/meta/flags/py.png | Bin 228 -> 0 bytes lol/meta/flags/qa.png | Bin 229 -> 0 bytes lol/meta/flags/ro.png | Bin 98 -> 0 bytes lol/meta/flags/rs.png | Bin 523 -> 0 bytes lol/meta/flags/ru.png | Bin 114 -> 0 bytes lol/meta/flags/rw.png | Bin 285 -> 0 bytes lol/meta/flags/sa.png | Bin 390 -> 0 bytes lol/meta/flags/sb.png | Bin 326 -> 0 bytes lol/meta/flags/sc.png | Bin 467 -> 0 bytes lol/meta/flags/sd.png | Bin 265 -> 0 bytes lol/meta/flags/se.png | Bin 97 -> 0 bytes lol/meta/flags/sg.png | Bin 240 -> 0 bytes lol/meta/flags/si.png | Bin 244 -> 0 bytes lol/meta/flags/sk.png | Bin 341 -> 0 bytes lol/meta/flags/sl.png | Bin 116 -> 0 bytes lol/meta/flags/sm.png | Bin 352 -> 0 bytes lol/meta/flags/sn.png | Bin 167 -> 0 bytes lol/meta/flags/so.png | Bin 177 -> 0 bytes lol/meta/flags/sr.png | Bin 205 -> 0 bytes lol/meta/flags/st.png | Bin 207 -> 0 bytes lol/meta/flags/sv.png | Bin 260 -> 0 bytes lol/meta/flags/sy.png | Bin 171 -> 0 bytes lol/meta/flags/sz.png | Bin 537 -> 0 bytes lol/meta/flags/td.png | Bin 98 -> 0 bytes lol/meta/flags/tg.png | Bin 233 -> 0 bytes lol/meta/flags/th.png | Bin 115 -> 0 bytes lol/meta/flags/tj.png | Bin 283 -> 0 bytes lol/meta/flags/tl.png | Bin 302 -> 0 bytes lol/meta/flags/tm.png | Bin 572 -> 0 bytes lol/meta/flags/tn.png | Bin 236 -> 0 bytes lol/meta/flags/to.png | Bin 164 -> 0 bytes lol/meta/flags/tr.png | Bin 229 -> 0 bytes lol/meta/flags/tt.png | Bin 508 -> 0 bytes lol/meta/flags/tv.png | Bin 745 -> 0 bytes lol/meta/flags/tw.png | Bin 171 -> 0 bytes lol/meta/flags/tz.png | Bin 226 -> 0 bytes lol/meta/flags/ua.png | Bin 93 -> 0 bytes lol/meta/flags/ug.png | Bin 247 -> 0 bytes lol/meta/flags/us.png | Bin 564 -> 0 bytes lol/meta/flags/uy.png | Bin 403 -> 0 bytes lol/meta/flags/uz.png | Bin 304 -> 0 bytes lol/meta/flags/va.png | Bin 268 -> 0 bytes lol/meta/flags/vc.png | Bin 237 -> 0 bytes lol/meta/flags/ve.png | Bin 231 -> 0 bytes lol/meta/flags/vn.png | Bin 268 -> 0 bytes lol/meta/flags/vu.png | Bin 540 -> 0 bytes lol/meta/flags/ws.png | Bin 216 -> 0 bytes lol/meta/flags/ye.png | Bin 114 -> 0 bytes lol/meta/flags/za.png | Bin 295 -> 0 bytes lol/meta/flags/zm.png | Bin 248 -> 0 bytes lol/meta/flags/zw.png | Bin 432 -> 0 bytes lol/meta/massive_par_stat.tsv | 1335 --- lol/meta/pngscript_filenames.txt | 1189 --- lol/orchestrator/config/config.exs | 18 - lol/orchestrator/config/dev.exs | 5 - lol/orchestrator/config/prod.exs | 5 - lol/orchestrator/config/runtime.exs | 10 - lol/orchestrator/config/test.exs | 9 - lol/orchestrator/lib/lol.ex | 31 - lol/orchestrator/lib/lol/corpus_aggregator.ex | 143 - .../lib/lol/crawler_supervisor.ex | 60 - lol/orchestrator/lib/lol/crawler_worker.ex | 135 - lol/orchestrator/lib/lol/julia_bridge.ex | 146 - lol/orchestrator/lib/lol/rate_limiter.ex | 96 - lol/orchestrator/lib/lol/source_registry.ex | 74 - .../lib/lol/verisimdb_reporter.ex | 150 - lol/orchestrator/mix.exs | 40 - lol/orchestrator/test/crawler_worker_test.exs | 27 - lol/orchestrator/test/rate_limiter_test.exs | 68 - lol/orchestrator/test/test_helper.exs | 3 - lol/package.json | 35 - lol/proofs/POSTULATE-AUDIT.adoc | 101 - lol/proofs/README.adoc | 161 - lol/proofs/echidna.toml | 98 - lol/proofs/specs/alignment.spec | 185 - lol/proofs/specs/iso639.spec | 198 - lol/proofs/specs/statistics.spec | 140 - lol/proofs/theories/information_theory.agda | 140 - lol/scripts/verisimdb-ingest.sh | 43 - lol/src/Lang1000.affine | 301 - lol/src/Lol/ABI/Foreign.idr | 324 - lol/src/Lol/ABI/I18nStore.idr | 246 - lol/src/Lol/ABI/Layout.idr | 259 - lol/src/Lol/ABI/Locale.idr | 202 - lol/src/Lol/ABI/PluralForm.idr | 224 - lol/src/Lol/ABI/TranslationKey.idr | 150 - lol/src/Lol/ABI/Types.idr | 357 - lol/src/abi/Foreign.idr | 324 - lol/src/abi/I18nStore.idr | 243 - lol/src/abi/Layout.idr | 245 - lol/src/abi/Locale.idr | 202 - lol/src/abi/PluralForm.idr | 224 - lol/src/abi/TranslationKey.idr | 150 - lol/src/abi/Types.idr | 357 - lol/src/api/DigitalBiblePlatform.affine | 385 - lol/src/crawlers/BibleCloud.affine | 298 - lol/src/crawlers/BibleCom.affine | 266 - lol/src/crawlers/Crawler.affine | 146 - lol/src/crawlers/EBible.affine | 192 - lol/src/crawlers/FindBible.affine | 255 - lol/src/crawlers/PngScriptures.affine | 277 - lol/src/cyc/OpenCyc.affine | 247 - lol/src/utils/Http.affine | 149 - lol/src/utils/Iso639.affine | 170 - lol/src/utils/Statistics.affine | 252 - lol/src/verisimdb/CorpusAnalyzer.affine | 352 - lol/src/verisimdb/Export.affine | 87 - lol/src/verisimdb/VeriSimDB.affine | 135 - lol/test/Lang1000_test.affine | 102 - lol/test/Vitest.affine | 68 - lol/test/crawlers/Crawler_test.affine | 137 - lol/test/utils/Iso639_test.affine | 153 - lol/test/utils/Statistics_test.affine | 242 - lol/test/vitest.config.affine | 28 - scripts/build-registry.sh | 2 +- scripts/tests/wave0-false-green-test.sh | 21 +- 2491 files changed, 34 insertions(+), 158125 deletions(-) delete mode 100644 .machine_readable/scorecards/a2ml.scorecard.a2ml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/FUNDING.yml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/custom.md delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/documentation.md delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/feature_request.md delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/question.md delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/dependabot.yml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/codeql.yml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/governance.yml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/hypatia-scan.yml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/jekyll-gh-pages.yml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/jekyll.yml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/mirror.yml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/scorecard-enforcer.yml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/scorecard.yml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/secret-scanner.yml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.gitignore delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.gitlab-ci.yml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/AGENTIC.a2ml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/ECOSYSTEM.a2ml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/META.a2ml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/NEUROSYM.a2ml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/PLAYBOOK.a2ml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/STATE.a2ml delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/.nojekyll delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/ABI-FFI-README.adoc delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/LICENSE delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/MAINTAINERS.adoc delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/NPM-PUBLISHING.adoc delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/README.adoc delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/ROADMAP.adoc delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/RSR_OUTLINE.adoc delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/bench/manifest_bench.js delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/contractiles/README.adoc delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/contractiles/dust/Dustfile delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/contractiles/must/Mustfile delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/deno.lock delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/docs/CITATIONS.adoc delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/examples/web-project-deno.json delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/ffi/zig/build.zig delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/ffi/zig/src/main.zig delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/ffi/zig/test/integration_test.zig delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Guards-HyperpolymathMcpRepoGuardian.cmj delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Guards.affine delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Guards.ast delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/HyperpolymathMcpRepoGuardian.cmj delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/HyperpolymathMcpRepoGuardian.mlmap delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Index-HyperpolymathMcpRepoGuardian.cmj delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Index.affine delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Index.ast delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Manifest-HyperpolymathMcpRepoGuardian.cmj delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Manifest.affine delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Manifest.ast delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Session-HyperpolymathMcpRepoGuardian.cmj delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Session.affine delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Session.ast delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Types-HyperpolymathMcpRepoGuardian.cmj delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Types.affine delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Types.ast delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/rescript.lock delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Guards.affine delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Guards.mjs delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Index.affine delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Index.mjs delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Manifest.affine delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Manifest.mjs delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Session.affine delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Session.mjs delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Types.affine delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Types.mjs delete mode 100644 0-ai-gatekeeper-protocol/mcp-repo-guardian/test/manifest_test.js delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.github/FUNDING.yml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/custom.md delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/documentation.md delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/feature_request.md delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/question.md delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.github/dependabot.yml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/codeql.yml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/governance.yml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/hypatia-scan.yml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/jekyll-gh-pages.yml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/jekyll.yml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/mirror.yml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/scorecard-enforcer.yml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/scorecard.yml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/secret-scanner.yml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.gitignore delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.gitlab-ci.yml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/AGENTIC.a2ml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/ECOSYSTEM.a2ml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/META.a2ml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/NEUROSYM.a2ml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/PLAYBOOK.a2ml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/STATE.a2ml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/.nojekyll delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/0-AI-MANIFEST.a2ml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/ABI-FFI-README.adoc delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/Cargo.lock delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/Cargo.toml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/LICENSE delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/MAINTAINERS.adoc delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/README.adoc delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/ROADMAP.adoc delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/RSR_OUTLINE.adoc delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/contractiles/README.adoc delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/contractiles/dust/Dustfile delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/contractiles/must/Mustfile delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/docs/CITATIONS.adoc delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/examples/web-project-deno.json delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/ffi/zig/build.zig delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/ffi/zig/src/main.zig delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/ffi/zig/test/integration_test.zig delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/src/filesystem.rs delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/src/main.rs delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/src/manifest.rs delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/src/session_manager.rs delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/tests-offline/Cargo.lock delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/tests-offline/Cargo.toml delete mode 100644 0-ai-gatekeeper-protocol/repo-guardian-fs/tests-offline/src/lib.rs delete mode 100644 a2ml/.editorconfig delete mode 100644 a2ml/.gitattributes delete mode 100644 a2ml/.github/FUNDING.yml delete mode 100644 a2ml/.github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 a2ml/.github/ISSUE_TEMPLATE/custom.md delete mode 100644 a2ml/.github/ISSUE_TEMPLATE/documentation.md delete mode 100644 a2ml/.github/ISSUE_TEMPLATE/feature_request.md delete mode 100644 a2ml/.github/ISSUE_TEMPLATE/question.md delete mode 100644 a2ml/.github/dependabot.yml delete mode 100644 a2ml/.github/workflows/6scm-sync.yml delete mode 100644 a2ml/.github/workflows/a2ml-validation.yml delete mode 100644 a2ml/.github/workflows/codeql.yml delete mode 100644 a2ml/.github/workflows/contractiles-a2ml.yml delete mode 100644 a2ml/.github/workflows/fuzzing.yml delete mode 100644 a2ml/.github/workflows/governance.yml delete mode 100644 a2ml/.github/workflows/hypatia-scan.yml delete mode 100644 a2ml/.github/workflows/idris2-tests.yml delete mode 100644 a2ml/.github/workflows/mirror.yml delete mode 100644 a2ml/.github/workflows/rescript-tests.yml delete mode 100644 a2ml/.github/workflows/scorecard.yml delete mode 100644 a2ml/.github/workflows/secret-scanner.yml delete mode 100644 a2ml/.gitignore delete mode 100644 a2ml/.gitlab-ci.yml delete mode 100644 a2ml/.machine_readable/descriptiles/AGENTIC.a2ml delete mode 100644 a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml delete mode 100644 a2ml/.machine_readable/descriptiles/META.a2ml delete mode 100644 a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml delete mode 100644 a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml delete mode 100644 a2ml/.machine_readable/descriptiles/STATE.a2ml delete mode 100644 a2ml/.nojekyll delete mode 100644 a2ml/.well-known/ai.txt delete mode 100644 a2ml/.well-known/dnt-policy.txt delete mode 100644 a2ml/.well-known/humans.txt delete mode 100644 a2ml/.well-known/keybase.txt delete mode 100644 a2ml/.well-known/security.txt delete mode 100644 a2ml/.well-known/sellers.json delete mode 100644 a2ml/.well-known/trust.txt delete mode 100644 a2ml/ABI-FFI-README.adoc delete mode 100644 a2ml/CNAME delete mode 100644 a2ml/CODE_OF_CONDUCT.adoc delete mode 100644 a2ml/CONTRIBUTING.adoc delete mode 100644 a2ml/DOGFOODING-OPPORTUNITIES.adoc delete mode 100644 a2ml/IANA-MEDIA-TYPE-APPLICATION.adoc delete mode 100644 a2ml/Justfile delete mode 100644 a2ml/LICENSE delete mode 100644 a2ml/LICENSES/PMPL-1.0.txt delete mode 100644 a2ml/MAINTAINERS.adoc delete mode 100644 a2ml/MANIFEST-DIALECT-SPEC.adoc delete mode 100644 a2ml/READINESS.adoc delete mode 100644 a2ml/README.a2ml delete mode 100644 a2ml/README.adoc delete mode 100644 a2ml/RECORD-DIALECT-SPEC.adoc delete mode 100644 a2ml/RELEASE-NOTES-v0.1.0.adoc delete mode 100644 a2ml/RELEASE-NOTES-v0.5.0.adoc delete mode 100644 a2ml/RELEASE-NOTES-v0.6.0.adoc delete mode 100644 a2ml/RELEASE-NOTES-v1.0.0.adoc delete mode 100644 a2ml/RELEASE-NOTES-v1.1.0.adoc delete mode 100644 a2ml/ROADMAP.adoc delete mode 100644 a2ml/RSR_OUTLINE.adoc delete mode 100644 a2ml/SECURITY-SETUP.adoc delete mode 100644 a2ml/SECURITY.adoc delete mode 100644 a2ml/SPEC.adoc delete mode 100644 a2ml/VERSIONS.adoc delete mode 100644 a2ml/a2ml-core.ipkg delete mode 100644 a2ml/actions/validate/.devcontainer/Containerfile delete mode 100644 a2ml/actions/validate/.devcontainer/README.adoc delete mode 100644 a2ml/actions/validate/.devcontainer/devcontainer.json delete mode 100644 a2ml/actions/validate/.editorconfig delete mode 100644 a2ml/actions/validate/.envrc delete mode 100644 a2ml/actions/validate/.gitattributes delete mode 100644 a2ml/actions/validate/.github/.mailmap delete mode 100644 a2ml/actions/validate/.github/.nojekyll delete mode 100644 a2ml/actions/validate/.github/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/.github/CODEOWNERS delete mode 100644 a2ml/actions/validate/.github/CODE_OF_CONDUCT.md delete mode 100644 a2ml/actions/validate/.github/CONTRIBUTING.md delete mode 100644 a2ml/actions/validate/.github/DISCUSSION_TEMPLATE/ideas.yml delete mode 100644 a2ml/actions/validate/.github/DISCUSSION_TEMPLATE/q-and-a.yml delete mode 100644 a2ml/actions/validate/.github/FUNDING.yml delete mode 100644 a2ml/actions/validate/.github/GOVERNANCE.md delete mode 100644 a2ml/actions/validate/.github/ISSUE_TEMPLATE/bug_report.yml delete mode 100644 a2ml/actions/validate/.github/ISSUE_TEMPLATE/config.yml delete mode 100644 a2ml/actions/validate/.github/ISSUE_TEMPLATE/custom.yml delete mode 100644 a2ml/actions/validate/.github/ISSUE_TEMPLATE/documentation.yml delete mode 100644 a2ml/actions/validate/.github/ISSUE_TEMPLATE/feature_request.yml delete mode 100644 a2ml/actions/validate/.github/ISSUE_TEMPLATE/question.yml delete mode 100644 a2ml/actions/validate/.github/MAINTAINERS delete mode 100644 a2ml/actions/validate/.github/README.adoc delete mode 100644 a2ml/actions/validate/.github/SECURITY.md delete mode 100644 a2ml/actions/validate/.github/SUPPORT delete mode 100644 a2ml/actions/validate/.github/copilot-instructions.md delete mode 100644 a2ml/actions/validate/.github/dependabot.yml delete mode 100644 a2ml/actions/validate/.github/pull_request_template.md delete mode 100644 a2ml/actions/validate/.github/workflows/codeql.yml delete mode 100644 a2ml/actions/validate/.github/workflows/governance.yml delete mode 100644 a2ml/actions/validate/.github/workflows/hypatia-scan.yml delete mode 100644 a2ml/actions/validate/.github/workflows/jekyll.yml delete mode 100644 a2ml/actions/validate/.github/workflows/mirror.yml delete mode 100644 a2ml/actions/validate/.github/workflows/release.yml delete mode 100644 a2ml/actions/validate/.github/workflows/rhodibot.yml delete mode 100644 a2ml/actions/validate/.github/workflows/scorecard-enforcer.yml delete mode 100644 a2ml/actions/validate/.github/workflows/scorecard.yml delete mode 100644 a2ml/actions/validate/.github/workflows/secret-scanner.yml delete mode 100644 a2ml/actions/validate/.github/workflows/static-analysis-gate.yml delete mode 100644 a2ml/actions/validate/.gitignore delete mode 100644 a2ml/actions/validate/.gitlab-ci.yml delete mode 100644 a2ml/actions/validate/.guix-channel delete mode 100644 a2ml/actions/validate/.machine_readable/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/CLADE.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/ENSAID_CONFIG.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/README.adoc delete mode 100644 a2ml/actions/validate/.machine_readable/ai/.clinerules delete mode 100644 a2ml/actions/validate/.machine_readable/ai/.cursorrules delete mode 100644 a2ml/actions/validate/.machine_readable/ai/.windsurfrules delete mode 100644 a2ml/actions/validate/.machine_readable/ai/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/ai/AI.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/ai/PLACEHOLDERS.adoc delete mode 100644 a2ml/actions/validate/.machine_readable/ai/README.adoc delete mode 100644 a2ml/actions/validate/.machine_readable/anchors/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/anchors/ANCHOR.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/anchors/README.adoc delete mode 100644 a2ml/actions/validate/.machine_readable/compliance/reuse/dep5 delete mode 100644 a2ml/actions/validate/.machine_readable/compliance/rust/deny.toml delete mode 100644 a2ml/actions/validate/.machine_readable/configs/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/configs/README.adoc delete mode 100644 a2ml/actions/validate/.machine_readable/configs/git-cliff/cliff.toml delete mode 100644 a2ml/actions/validate/.machine_readable/contractiles/README.adoc delete mode 100644 a2ml/actions/validate/.machine_readable/contractiles/dust/Dustfile.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/contractiles/must/Mustfile.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/contractiles/trust/Trustfile.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/descriptiles/AGENTIC.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/descriptiles/ECOSYSTEM.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/descriptiles/META.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/descriptiles/NEUROSYM.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/descriptiles/PLAYBOOK.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/descriptiles/STATE.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/policies/.maintenance-perms-ignore delete mode 100644 a2ml/actions/validate/.machine_readable/policies/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/policies/MAINTENANCE-AXES.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/policies/README.adoc delete mode 100644 a2ml/actions/validate/.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/scripts/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/scripts/forge/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/scripts/forge/README.adoc delete mode 100755 a2ml/actions/validate/.machine_readable/scripts/forge/forge-sync.sh delete mode 100755 a2ml/actions/validate/.machine_readable/scripts/forge/git-cleanup.sh delete mode 100644 a2ml/actions/validate/.machine_readable/scripts/lifecycle/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/scripts/lifecycle/README.adoc delete mode 100755 a2ml/actions/validate/.machine_readable/scripts/lifecycle/install-tools.sh delete mode 100644 a2ml/actions/validate/.machine_readable/scripts/maintenance/maint-assault.sh delete mode 100644 a2ml/actions/validate/.machine_readable/scripts/verification/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/.machine_readable/scripts/verification/README.adoc delete mode 100644 a2ml/actions/validate/.tool-versions delete mode 100644 a2ml/actions/validate/.well-known/ai.txt delete mode 100644 a2ml/actions/validate/.well-known/humans.txt delete mode 100644 a2ml/actions/validate/.well-known/security.txt delete mode 100644 a2ml/actions/validate/0-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/CHANGELOG.adoc delete mode 100644 a2ml/actions/validate/CONTRIBUTING.adoc delete mode 100644 a2ml/actions/validate/Containerfile delete mode 100644 a2ml/actions/validate/Justfile delete mode 100644 a2ml/actions/validate/LICENSE delete mode 100644 a2ml/actions/validate/README.adoc delete mode 100644 a2ml/actions/validate/ROADMAP.adoc delete mode 100644 a2ml/actions/validate/SECURITY.adoc delete mode 100644 a2ml/actions/validate/action.yml delete mode 100644 a2ml/actions/validate/container/.gatekeeper.yaml delete mode 100644 a2ml/actions/validate/container/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/container/Containerfile delete mode 100644 a2ml/actions/validate/container/README.adoc delete mode 100644 a2ml/actions/validate/container/compose.example.toml delete mode 100644 a2ml/actions/validate/container/compose.toml delete mode 100755 a2ml/actions/validate/container/ct-build.sh delete mode 100644 a2ml/actions/validate/container/deploy.k9.ncl delete mode 100755 a2ml/actions/validate/container/entrypoint.sh delete mode 100644 a2ml/actions/validate/container/manifest.toml delete mode 100644 a2ml/actions/validate/container/vordr.toml delete mode 100644 a2ml/actions/validate/contractile.just delete mode 100644 a2ml/actions/validate/docs/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/QUICKSTART.adoc delete mode 100644 a2ml/actions/validate/docs/README.adoc delete mode 100644 a2ml/actions/validate/docs/RSR_OUTLINE.adoc delete mode 100644 a2ml/actions/validate/docs/STATE-VISUALIZER.adoc delete mode 100644 a2ml/actions/validate/docs/architecture/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/architecture/THREAT-MODEL.adoc delete mode 100644 a2ml/actions/validate/docs/attribution/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/attribution/CITATION.cff delete mode 100644 a2ml/actions/validate/docs/attribution/CITATIONS.adoc delete mode 100644 a2ml/actions/validate/docs/attribution/CODEOWNERS.adoc delete mode 100644 a2ml/actions/validate/docs/attribution/MAINTAINERS.adoc delete mode 100644 a2ml/actions/validate/docs/attribution/README.adoc delete mode 100644 a2ml/actions/validate/docs/decisions/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/decisions/0000-template.adoc delete mode 100644 a2ml/actions/validate/docs/decisions/0001-adopt-rsr-standard.adoc delete mode 100644 a2ml/actions/validate/docs/decisions/README.adoc delete mode 100644 a2ml/actions/validate/docs/developer/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/developer/ABI-FFI-README.adoc delete mode 100644 a2ml/actions/validate/docs/developer/README.adoc delete mode 100644 a2ml/actions/validate/docs/governance/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/governance/CRG-CRITERIA.a2ml delete mode 100644 a2ml/actions/validate/docs/governance/CRG-CRITERIA.adoc delete mode 100644 a2ml/actions/validate/docs/governance/MAINTENANCE-CHECKLIST.a2ml delete mode 100644 a2ml/actions/validate/docs/governance/MAINTENANCE-CHECKLIST.adoc delete mode 100644 a2ml/actions/validate/docs/governance/README.adoc delete mode 100644 a2ml/actions/validate/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.a2ml delete mode 100644 a2ml/actions/validate/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.adoc delete mode 100644 a2ml/actions/validate/docs/governance/TSDM.a2ml delete mode 100644 a2ml/actions/validate/docs/governance/TSDM.adoc delete mode 100644 a2ml/actions/validate/docs/governance/audit/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/governance/audit/README.adoc delete mode 100644 a2ml/actions/validate/docs/governance/audit/compliance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/governance/audit/compliance/README.adoc delete mode 100644 a2ml/actions/validate/docs/governance/audit/effects/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/governance/audit/effects/README.adoc delete mode 100644 a2ml/actions/validate/docs/governance/audit/systems/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/governance/audit/systems/README.adoc delete mode 100644 a2ml/actions/validate/docs/governance/maintenance/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/governance/maintenance/README.adoc delete mode 100644 a2ml/actions/validate/docs/governance/maintenance/adaptive/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/governance/maintenance/adaptive/README.adoc delete mode 100644 a2ml/actions/validate/docs/governance/maintenance/corrective/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/governance/maintenance/corrective/README.adoc delete mode 100644 a2ml/actions/validate/docs/governance/maintenance/perfective/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/governance/maintenance/perfective/README.adoc delete mode 100644 a2ml/actions/validate/docs/governance/planning/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/governance/planning/README.adoc delete mode 100644 a2ml/actions/validate/docs/governance/planning/could/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/governance/planning/could/README.adoc delete mode 100644 a2ml/actions/validate/docs/governance/planning/must/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/governance/planning/must/README.adoc delete mode 100644 a2ml/actions/validate/docs/governance/planning/should/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/governance/planning/should/README.adoc delete mode 100644 a2ml/actions/validate/docs/legal/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/legal/EXHIBIT-A-ETHICAL-USE.txt delete mode 100644 a2ml/actions/validate/docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt delete mode 100644 a2ml/actions/validate/docs/practice/.gitkeep delete mode 100644 a2ml/actions/validate/docs/practice/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/practice/AI-CONVENTIONS.adoc delete mode 100644 a2ml/actions/validate/docs/practice/README.adoc delete mode 100644 a2ml/actions/validate/docs/practice/STATE-VISUALIZER-GUIDE.adoc delete mode 100644 a2ml/actions/validate/docs/reports/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/reports/README.adoc delete mode 100644 a2ml/actions/validate/docs/reports/compliance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/reports/compliance/README.adoc delete mode 100644 a2ml/actions/validate/docs/reports/maintenance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/reports/maintenance/README.adoc delete mode 100644 a2ml/actions/validate/docs/reports/performance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/reports/performance/README.adoc delete mode 100644 a2ml/actions/validate/docs/reports/quality/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/reports/quality/README.adoc delete mode 100644 a2ml/actions/validate/docs/reports/security/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/reports/security/README.adoc delete mode 100644 a2ml/actions/validate/docs/standards/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/standards/README.adoc delete mode 100644 a2ml/actions/validate/docs/templates/contractiles/README.adoc delete mode 100644 a2ml/actions/validate/docs/templates/contractiles/dust/Dustfile.a2ml delete mode 100644 a2ml/actions/validate/docs/templates/contractiles/intend/Intentfile.a2ml delete mode 100644 a2ml/actions/validate/docs/templates/contractiles/must/Mustfile.a2ml delete mode 100644 a2ml/actions/validate/docs/templates/contractiles/trust/Trustfile.a2ml delete mode 100644 a2ml/actions/validate/docs/theory/.gitkeep delete mode 100644 a2ml/actions/validate/docs/theory/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/theory/README.adoc delete mode 100644 a2ml/actions/validate/docs/theory/computing/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/theory/computing/README.adoc delete mode 100644 a2ml/actions/validate/docs/theory/formalisms/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/theory/formalisms/README.adoc delete mode 100644 a2ml/actions/validate/docs/theory/mathematics/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/theory/mathematics/README.adoc delete mode 100644 a2ml/actions/validate/docs/theory/ontologies/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/theory/ontologies/README.adoc delete mode 100644 a2ml/actions/validate/docs/theory/other/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/theory/other/README.adoc delete mode 100644 a2ml/actions/validate/docs/theory/socio-technical/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/theory/socio-technical/README.adoc delete mode 100644 a2ml/actions/validate/docs/whitepapers/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/whitepapers/README.adoc delete mode 100644 a2ml/actions/validate/docs/whitepapers/academic/.gitkeep delete mode 100644 a2ml/actions/validate/docs/whitepapers/academic/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/whitepapers/academic/README.adoc delete mode 100644 a2ml/actions/validate/docs/whitepapers/industry/.gitkeep delete mode 100644 a2ml/actions/validate/docs/whitepapers/industry/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/whitepapers/industry/README.adoc delete mode 100644 a2ml/actions/validate/docs/whitepapers/outreach/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/whitepapers/outreach/README.adoc delete mode 100644 a2ml/actions/validate/docs/wikis/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/docs/wikis/README.adoc delete mode 100644 a2ml/actions/validate/examples/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/examples/README.adoc delete mode 100644 a2ml/actions/validate/examples/web-project-deno.json delete mode 100644 a2ml/actions/validate/features/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/features/README.adoc delete mode 100644 a2ml/actions/validate/features/boj-server/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/features/boj-server/README.adoc delete mode 100644 a2ml/actions/validate/features/panic-attacker/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/features/panic-attacker/README.adoc delete mode 100644 a2ml/actions/validate/features/ssg/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/features/ssg/README.adoc delete mode 100755 a2ml/actions/validate/features/ssg/ssg-bootstrap.sh delete mode 100644 a2ml/actions/validate/src/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/src/README.adoc delete mode 100644 a2ml/actions/validate/src/aspects/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/src/aspects/README.adoc delete mode 100644 a2ml/actions/validate/src/aspects/integrity/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/src/aspects/integrity/README.adoc delete mode 100644 a2ml/actions/validate/src/aspects/observability/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/src/aspects/observability/README.adoc delete mode 100644 a2ml/actions/validate/src/aspects/security/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/src/aspects/security/README.adoc delete mode 100644 a2ml/actions/validate/src/bridges/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/src/contracts/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/src/contracts/README.adoc delete mode 100644 a2ml/actions/validate/src/core/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/src/definitions/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/src/definitions/README.adoc delete mode 100644 a2ml/actions/validate/src/errors/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/src/errors/README.adoc delete mode 100644 a2ml/actions/validate/src/interface/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/src/interface/README.adoc delete mode 100644 a2ml/actions/validate/src/interface/abi/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/src/interface/abi/README.adoc delete mode 100644 a2ml/actions/validate/src/interface/ffi/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/src/interface/ffi/README.adoc delete mode 100644 a2ml/actions/validate/src/interface/ffi/build.zig delete mode 100644 a2ml/actions/validate/src/interface/ffi/src/0.4-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/src/interface/ffi/src/README.adoc delete mode 100644 a2ml/actions/validate/src/interface/ffi/src/main.zig delete mode 100644 a2ml/actions/validate/src/interface/ffi/test/0.4-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/src/interface/ffi/test/README.adoc delete mode 100644 a2ml/actions/validate/src/interface/ffi/test/integration_test.zig delete mode 100755 a2ml/actions/validate/validate-a2ml.sh delete mode 100755 a2ml/actions/validate/validate-manifest-dialect.sh delete mode 100644 a2ml/actions/validate/verification/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/verification/README.adoc delete mode 100644 a2ml/actions/validate/verification/benchmarks/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/verification/benchmarks/README.adoc delete mode 100644 a2ml/actions/validate/verification/coverage/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/verification/coverage/README.adoc delete mode 100644 a2ml/actions/validate/verification/fuzzing/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/verification/fuzzing/README.adoc delete mode 100644 a2ml/actions/validate/verification/proofs/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/verification/proofs/README.adoc delete mode 100644 a2ml/actions/validate/verification/safety_case/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/verification/safety_case/README.adoc delete mode 100644 a2ml/actions/validate/verification/simulations/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/verification/simulations/README.adoc delete mode 100644 a2ml/actions/validate/verification/tests/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/verification/tests/README.adoc delete mode 100644 a2ml/actions/validate/verification/traceability/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/actions/validate/verification/traceability/README.adoc delete mode 100644 a2ml/ads.txt delete mode 100644 a2ml/app-ads.txt delete mode 100644 a2ml/archive/SPEC-v0-draft.a2ml delete mode 100644 a2ml/archive/SPEC-v0-draft.adoc delete mode 100644 a2ml/archive/SPEC-v1.0.0.adoc delete mode 100755 a2ml/benchmarks/parser-bench.sh delete mode 100755 a2ml/benchmarks/stress-test.sh delete mode 100644 a2ml/bindings/README.adoc delete mode 100644 a2ml/bindings/deno/.devcontainer/Containerfile delete mode 100644 a2ml/bindings/deno/.devcontainer/README.adoc delete mode 100644 a2ml/bindings/deno/.devcontainer/devcontainer.json delete mode 100644 a2ml/bindings/deno/.editorconfig delete mode 100644 a2ml/bindings/deno/.envrc delete mode 100644 a2ml/bindings/deno/.gitattributes delete mode 100644 a2ml/bindings/deno/.github/.mailmap delete mode 100644 a2ml/bindings/deno/.github/.nojekyll delete mode 100644 a2ml/bindings/deno/.github/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/.github/CODEOWNERS delete mode 100644 a2ml/bindings/deno/.github/CODE_OF_CONDUCT.md delete mode 100644 a2ml/bindings/deno/.github/CONTRIBUTING.md delete mode 100644 a2ml/bindings/deno/.github/DISCUSSION_TEMPLATE/ideas.yml delete mode 100644 a2ml/bindings/deno/.github/DISCUSSION_TEMPLATE/q-and-a.yml delete mode 100644 a2ml/bindings/deno/.github/FUNDING.yml delete mode 100644 a2ml/bindings/deno/.github/GOVERNANCE.md delete mode 100644 a2ml/bindings/deno/.github/ISSUE_TEMPLATE/bug_report.yml delete mode 100644 a2ml/bindings/deno/.github/ISSUE_TEMPLATE/config.yml delete mode 100644 a2ml/bindings/deno/.github/ISSUE_TEMPLATE/custom.yml delete mode 100644 a2ml/bindings/deno/.github/ISSUE_TEMPLATE/documentation.yml delete mode 100644 a2ml/bindings/deno/.github/ISSUE_TEMPLATE/feature_request.yml delete mode 100644 a2ml/bindings/deno/.github/ISSUE_TEMPLATE/question.yml delete mode 100644 a2ml/bindings/deno/.github/MAINTAINERS delete mode 100644 a2ml/bindings/deno/.github/README.adoc delete mode 100644 a2ml/bindings/deno/.github/SECURITY.md delete mode 100644 a2ml/bindings/deno/.github/SUPPORT delete mode 100644 a2ml/bindings/deno/.github/copilot-instructions.md delete mode 100644 a2ml/bindings/deno/.github/dependabot.yml delete mode 100644 a2ml/bindings/deno/.github/pull_request_template.md delete mode 100644 a2ml/bindings/deno/.github/workflows/codeql.yml delete mode 100644 a2ml/bindings/deno/.github/workflows/governance.yml delete mode 100644 a2ml/bindings/deno/.github/workflows/hypatia-scan.yml delete mode 100644 a2ml/bindings/deno/.github/workflows/jekyll.yml delete mode 100644 a2ml/bindings/deno/.github/workflows/mirror.yml delete mode 100644 a2ml/bindings/deno/.github/workflows/release.yml delete mode 100644 a2ml/bindings/deno/.github/workflows/rhodibot.yml delete mode 100644 a2ml/bindings/deno/.github/workflows/scorecard-enforcer.yml delete mode 100644 a2ml/bindings/deno/.github/workflows/scorecard.yml delete mode 100644 a2ml/bindings/deno/.github/workflows/secret-scanner.yml delete mode 100644 a2ml/bindings/deno/.github/workflows/static-analysis-gate.yml delete mode 100644 a2ml/bindings/deno/.gitignore delete mode 100644 a2ml/bindings/deno/.gitlab-ci.yml delete mode 100644 a2ml/bindings/deno/.guix-channel delete mode 100644 a2ml/bindings/deno/.machine_readable/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/CLADE.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/ENSAID_CONFIG.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/README.adoc delete mode 100644 a2ml/bindings/deno/.machine_readable/ai/.clinerules delete mode 100644 a2ml/bindings/deno/.machine_readable/ai/.cursorrules delete mode 100644 a2ml/bindings/deno/.machine_readable/ai/.windsurfrules delete mode 100644 a2ml/bindings/deno/.machine_readable/ai/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/ai/AI.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/ai/PLACEHOLDERS.adoc delete mode 100644 a2ml/bindings/deno/.machine_readable/ai/README.adoc delete mode 100644 a2ml/bindings/deno/.machine_readable/anchors/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/anchors/ANCHOR.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/anchors/README.adoc delete mode 100644 a2ml/bindings/deno/.machine_readable/compliance/reuse/dep5 delete mode 100644 a2ml/bindings/deno/.machine_readable/compliance/rust/deny.toml delete mode 100644 a2ml/bindings/deno/.machine_readable/configs/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/configs/README.adoc delete mode 100644 a2ml/bindings/deno/.machine_readable/configs/git-cliff/cliff.toml delete mode 100644 a2ml/bindings/deno/.machine_readable/contractiles/README.adoc delete mode 100644 a2ml/bindings/deno/.machine_readable/contractiles/dust/Dustfile.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/contractiles/must/Mustfile.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/contractiles/trust/Trustfile.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/descriptiles/AGENTIC.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/descriptiles/ECOSYSTEM.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/descriptiles/META.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/descriptiles/NEUROSYM.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/descriptiles/PLAYBOOK.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/descriptiles/STATE.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/policies/.maintenance-perms-ignore delete mode 100644 a2ml/bindings/deno/.machine_readable/policies/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/policies/MAINTENANCE-AXES.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/policies/README.adoc delete mode 100644 a2ml/bindings/deno/.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/scripts/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/scripts/forge/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/scripts/forge/README.adoc delete mode 100755 a2ml/bindings/deno/.machine_readable/scripts/forge/forge-sync.sh delete mode 100755 a2ml/bindings/deno/.machine_readable/scripts/forge/git-cleanup.sh delete mode 100644 a2ml/bindings/deno/.machine_readable/scripts/lifecycle/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/scripts/lifecycle/README.adoc delete mode 100755 a2ml/bindings/deno/.machine_readable/scripts/lifecycle/install-tools.sh delete mode 100644 a2ml/bindings/deno/.machine_readable/scripts/maintenance/maint-assault.sh delete mode 100644 a2ml/bindings/deno/.machine_readable/scripts/verification/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/.machine_readable/scripts/verification/README.adoc delete mode 100644 a2ml/bindings/deno/.tool-versions delete mode 100644 a2ml/bindings/deno/.well-known/ai.txt delete mode 100644 a2ml/bindings/deno/.well-known/humans.txt delete mode 100644 a2ml/bindings/deno/.well-known/security.txt delete mode 100644 a2ml/bindings/deno/0-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/CHANGELOG.adoc delete mode 100644 a2ml/bindings/deno/CONTRIBUTING.adoc delete mode 100644 a2ml/bindings/deno/Containerfile delete mode 100644 a2ml/bindings/deno/Justfile delete mode 100644 a2ml/bindings/deno/LICENSE delete mode 100644 a2ml/bindings/deno/README.adoc delete mode 100644 a2ml/bindings/deno/ROADMAP.adoc delete mode 100644 a2ml/bindings/deno/SECURITY.adoc delete mode 120000 a2ml/bindings/deno/container/.gatekeeper.yaml delete mode 100644 a2ml/bindings/deno/container/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/container/Containerfile delete mode 100644 a2ml/bindings/deno/container/README.adoc delete mode 100644 a2ml/bindings/deno/container/compose.example.toml delete mode 100644 a2ml/bindings/deno/container/compose.toml delete mode 100755 a2ml/bindings/deno/container/ct-build.sh delete mode 100644 a2ml/bindings/deno/container/deploy.k9.ncl delete mode 100755 a2ml/bindings/deno/container/entrypoint.sh delete mode 100644 a2ml/bindings/deno/container/manifest.toml delete mode 100644 a2ml/bindings/deno/container/vordr.toml delete mode 100644 a2ml/bindings/deno/contractile.just delete mode 100644 a2ml/bindings/deno/docs/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/QUICKSTART.adoc delete mode 100644 a2ml/bindings/deno/docs/README.adoc delete mode 100644 a2ml/bindings/deno/docs/RSR_OUTLINE.adoc delete mode 100644 a2ml/bindings/deno/docs/STATE-VISUALIZER.adoc delete mode 100644 a2ml/bindings/deno/docs/architecture/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/architecture/THREAT-MODEL.adoc delete mode 100644 a2ml/bindings/deno/docs/attribution/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/attribution/CITATION.cff delete mode 100644 a2ml/bindings/deno/docs/attribution/CITATIONS.adoc delete mode 100644 a2ml/bindings/deno/docs/attribution/CODEOWNERS.adoc delete mode 100644 a2ml/bindings/deno/docs/attribution/MAINTAINERS.adoc delete mode 100644 a2ml/bindings/deno/docs/attribution/README.adoc delete mode 100644 a2ml/bindings/deno/docs/decisions/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/decisions/0000-template.adoc delete mode 100644 a2ml/bindings/deno/docs/decisions/0001-adopt-rsr-standard.adoc delete mode 100644 a2ml/bindings/deno/docs/decisions/README.adoc delete mode 100644 a2ml/bindings/deno/docs/developer/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/developer/ABI-FFI-README.adoc delete mode 100644 a2ml/bindings/deno/docs/developer/README.adoc delete mode 100644 a2ml/bindings/deno/docs/governance/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/governance/CRG-CRITERIA.a2ml delete mode 100644 a2ml/bindings/deno/docs/governance/CRG-CRITERIA.adoc delete mode 100644 a2ml/bindings/deno/docs/governance/MAINTENANCE-CHECKLIST.a2ml delete mode 100644 a2ml/bindings/deno/docs/governance/MAINTENANCE-CHECKLIST.adoc delete mode 100644 a2ml/bindings/deno/docs/governance/README.adoc delete mode 100644 a2ml/bindings/deno/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.a2ml delete mode 100644 a2ml/bindings/deno/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.adoc delete mode 100644 a2ml/bindings/deno/docs/governance/TSDM.a2ml delete mode 100644 a2ml/bindings/deno/docs/governance/TSDM.adoc delete mode 100644 a2ml/bindings/deno/docs/governance/audit/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/governance/audit/README.adoc delete mode 100644 a2ml/bindings/deno/docs/governance/audit/compliance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/governance/audit/compliance/README.adoc delete mode 100644 a2ml/bindings/deno/docs/governance/audit/effects/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/governance/audit/effects/README.adoc delete mode 100644 a2ml/bindings/deno/docs/governance/audit/systems/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/governance/audit/systems/README.adoc delete mode 100644 a2ml/bindings/deno/docs/governance/maintenance/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/governance/maintenance/README.adoc delete mode 100644 a2ml/bindings/deno/docs/governance/maintenance/adaptive/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/governance/maintenance/adaptive/README.adoc delete mode 100644 a2ml/bindings/deno/docs/governance/maintenance/corrective/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/governance/maintenance/corrective/README.adoc delete mode 100644 a2ml/bindings/deno/docs/governance/maintenance/perfective/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/governance/maintenance/perfective/README.adoc delete mode 100644 a2ml/bindings/deno/docs/governance/planning/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/governance/planning/README.adoc delete mode 100644 a2ml/bindings/deno/docs/governance/planning/could/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/governance/planning/could/README.adoc delete mode 100644 a2ml/bindings/deno/docs/governance/planning/must/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/governance/planning/must/README.adoc delete mode 100644 a2ml/bindings/deno/docs/governance/planning/should/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/governance/planning/should/README.adoc delete mode 100644 a2ml/bindings/deno/docs/legal/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/legal/EXHIBIT-A-ETHICAL-USE.txt delete mode 100644 a2ml/bindings/deno/docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt delete mode 100644 a2ml/bindings/deno/docs/practice/.gitkeep delete mode 100644 a2ml/bindings/deno/docs/practice/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/practice/AI-CONVENTIONS.adoc delete mode 100644 a2ml/bindings/deno/docs/practice/README.adoc delete mode 100644 a2ml/bindings/deno/docs/practice/STATE-VISUALIZER-GUIDE.adoc delete mode 100644 a2ml/bindings/deno/docs/reports/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/reports/README.adoc delete mode 100644 a2ml/bindings/deno/docs/reports/compliance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/reports/compliance/README.adoc delete mode 100644 a2ml/bindings/deno/docs/reports/maintenance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/reports/maintenance/README.adoc delete mode 100644 a2ml/bindings/deno/docs/reports/performance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/reports/performance/README.adoc delete mode 100644 a2ml/bindings/deno/docs/reports/quality/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/reports/quality/README.adoc delete mode 100644 a2ml/bindings/deno/docs/reports/security/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/reports/security/README.adoc delete mode 100644 a2ml/bindings/deno/docs/standards/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/standards/README.adoc delete mode 100644 a2ml/bindings/deno/docs/templates/contractiles/README.adoc delete mode 100644 a2ml/bindings/deno/docs/templates/contractiles/dust/Dustfile.a2ml delete mode 100644 a2ml/bindings/deno/docs/templates/contractiles/intend/Intentfile.a2ml delete mode 100644 a2ml/bindings/deno/docs/templates/contractiles/must/Mustfile.a2ml delete mode 100644 a2ml/bindings/deno/docs/templates/contractiles/trust/Trustfile.a2ml delete mode 100644 a2ml/bindings/deno/docs/theory/.gitkeep delete mode 100644 a2ml/bindings/deno/docs/theory/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/theory/README.adoc delete mode 100644 a2ml/bindings/deno/docs/theory/computing/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/theory/computing/README.adoc delete mode 100644 a2ml/bindings/deno/docs/theory/formalisms/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/theory/formalisms/README.adoc delete mode 100644 a2ml/bindings/deno/docs/theory/mathematics/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/theory/mathematics/README.adoc delete mode 100644 a2ml/bindings/deno/docs/theory/ontologies/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/theory/ontologies/README.adoc delete mode 100644 a2ml/bindings/deno/docs/theory/other/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/theory/other/README.adoc delete mode 100644 a2ml/bindings/deno/docs/theory/socio-technical/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/theory/socio-technical/README.adoc delete mode 100644 a2ml/bindings/deno/docs/whitepapers/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/whitepapers/README.adoc delete mode 100644 a2ml/bindings/deno/docs/whitepapers/academic/.gitkeep delete mode 100644 a2ml/bindings/deno/docs/whitepapers/academic/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/whitepapers/academic/README.adoc delete mode 100644 a2ml/bindings/deno/docs/whitepapers/industry/.gitkeep delete mode 100644 a2ml/bindings/deno/docs/whitepapers/industry/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/whitepapers/industry/README.adoc delete mode 100644 a2ml/bindings/deno/docs/whitepapers/outreach/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/whitepapers/outreach/README.adoc delete mode 100644 a2ml/bindings/deno/docs/wikis/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/docs/wikis/README.adoc delete mode 100644 a2ml/bindings/deno/examples/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/examples/README.adoc delete mode 100644 a2ml/bindings/deno/examples/web-project-deno.json delete mode 100644 a2ml/bindings/deno/features/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/features/README.adoc delete mode 100644 a2ml/bindings/deno/features/boj-server/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/features/boj-server/README.adoc delete mode 100644 a2ml/bindings/deno/features/panic-attacker/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/features/panic-attacker/README.adoc delete mode 100644 a2ml/bindings/deno/features/ssg/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/features/ssg/README.adoc delete mode 100755 a2ml/bindings/deno/features/ssg/ssg-bootstrap.sh delete mode 100644 a2ml/bindings/deno/jsr.json delete mode 100644 a2ml/bindings/deno/mod.affine delete mode 100644 a2ml/bindings/deno/src/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/src/A2ML.affine delete mode 100644 a2ml/bindings/deno/src/A2ML_Parser.affine delete mode 100644 a2ml/bindings/deno/src/A2ML_Renderer.affine delete mode 100644 a2ml/bindings/deno/src/A2ML_Types.affine delete mode 100644 a2ml/bindings/deno/src/README.adoc delete mode 100644 a2ml/bindings/deno/src/aspects/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/src/aspects/README.adoc delete mode 100644 a2ml/bindings/deno/src/aspects/integrity/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/src/aspects/integrity/README.adoc delete mode 100644 a2ml/bindings/deno/src/aspects/observability/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/src/aspects/observability/README.adoc delete mode 100644 a2ml/bindings/deno/src/aspects/security/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/src/aspects/security/README.adoc delete mode 100644 a2ml/bindings/deno/src/bridges/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/src/contracts/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/src/contracts/README.adoc delete mode 100644 a2ml/bindings/deno/src/core/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/src/definitions/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/src/definitions/README.adoc delete mode 100644 a2ml/bindings/deno/src/errors/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/src/errors/README.adoc delete mode 100644 a2ml/bindings/deno/src/interface/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/src/interface/README.adoc delete mode 100644 a2ml/bindings/deno/src/interface/abi/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/src/interface/abi/README.adoc delete mode 100644 a2ml/bindings/deno/src/interface/ffi/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/src/interface/ffi/README.adoc delete mode 100644 a2ml/bindings/deno/src/interface/ffi/build.zig delete mode 100644 a2ml/bindings/deno/src/interface/ffi/src/0.4-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/src/interface/ffi/src/README.adoc delete mode 100644 a2ml/bindings/deno/src/interface/ffi/src/main.zig delete mode 100644 a2ml/bindings/deno/src/interface/ffi/test/0.4-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/src/interface/ffi/test/README.adoc delete mode 100644 a2ml/bindings/deno/src/interface/ffi/test/integration_test.zig delete mode 100644 a2ml/bindings/deno/verification/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/verification/README.adoc delete mode 100644 a2ml/bindings/deno/verification/benchmarks/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/verification/benchmarks/README.adoc delete mode 100644 a2ml/bindings/deno/verification/coverage/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/verification/coverage/README.adoc delete mode 100644 a2ml/bindings/deno/verification/fuzzing/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/verification/fuzzing/README.adoc delete mode 100644 a2ml/bindings/deno/verification/proofs/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/verification/proofs/README.adoc delete mode 100644 a2ml/bindings/deno/verification/safety_case/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/verification/safety_case/README.adoc delete mode 100644 a2ml/bindings/deno/verification/simulations/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/verification/simulations/README.adoc delete mode 100644 a2ml/bindings/deno/verification/tests/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/verification/tests/README.adoc delete mode 100644 a2ml/bindings/deno/verification/traceability/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/deno/verification/traceability/README.adoc delete mode 100644 a2ml/bindings/elixir/.formatter.exs delete mode 100644 a2ml/bindings/elixir/.gitignore delete mode 100644 a2ml/bindings/elixir/LICENSE delete mode 100644 a2ml/bindings/elixir/README.adoc delete mode 100644 a2ml/bindings/elixir/lib/a2_ml.ex delete mode 100644 a2ml/bindings/elixir/lib/a2ml/parser.ex delete mode 100644 a2ml/bindings/elixir/lib/a2ml/renderer.ex delete mode 100644 a2ml/bindings/elixir/lib/a2ml/types.ex delete mode 100644 a2ml/bindings/elixir/mix.exs delete mode 100644 a2ml/bindings/elixir/test/a2_ml_test.exs delete mode 100644 a2ml/bindings/elixir/test/test_helper.exs delete mode 100644 a2ml/bindings/gleam/.github/workflows/test.yml delete mode 100644 a2ml/bindings/gleam/.gitignore delete mode 100644 a2ml/bindings/gleam/LICENSE delete mode 100644 a2ml/bindings/gleam/README.adoc delete mode 100644 a2ml/bindings/gleam/gleam.toml delete mode 100644 a2ml/bindings/gleam/manifest.toml delete mode 100644 a2ml/bindings/gleam/src/a2ml_gleam.gleam delete mode 100644 a2ml/bindings/gleam/src/a2ml_gleam/parser.gleam delete mode 100644 a2ml/bindings/gleam/src/a2ml_gleam/renderer.gleam delete mode 100644 a2ml/bindings/gleam/src/a2ml_gleam/types.gleam delete mode 100644 a2ml/bindings/gleam/test/a2ml_gleam_test.gleam delete mode 100644 a2ml/bindings/haskell/.devcontainer/Containerfile delete mode 100644 a2ml/bindings/haskell/.devcontainer/README.adoc delete mode 100644 a2ml/bindings/haskell/.devcontainer/devcontainer.json delete mode 100644 a2ml/bindings/haskell/.editorconfig delete mode 100644 a2ml/bindings/haskell/.envrc delete mode 100644 a2ml/bindings/haskell/.gitattributes delete mode 100644 a2ml/bindings/haskell/.github/.mailmap delete mode 100644 a2ml/bindings/haskell/.github/.nojekyll delete mode 100644 a2ml/bindings/haskell/.github/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/.github/CODEOWNERS delete mode 100644 a2ml/bindings/haskell/.github/CODE_OF_CONDUCT.md delete mode 100644 a2ml/bindings/haskell/.github/CONTRIBUTING.md delete mode 100644 a2ml/bindings/haskell/.github/DISCUSSION_TEMPLATE/ideas.yml delete mode 100644 a2ml/bindings/haskell/.github/DISCUSSION_TEMPLATE/q-and-a.yml delete mode 100644 a2ml/bindings/haskell/.github/FUNDING.yml delete mode 100644 a2ml/bindings/haskell/.github/GOVERNANCE.md delete mode 100644 a2ml/bindings/haskell/.github/ISSUE_TEMPLATE/bug_report.yml delete mode 100644 a2ml/bindings/haskell/.github/ISSUE_TEMPLATE/config.yml delete mode 100644 a2ml/bindings/haskell/.github/ISSUE_TEMPLATE/custom.yml delete mode 100644 a2ml/bindings/haskell/.github/ISSUE_TEMPLATE/documentation.yml delete mode 100644 a2ml/bindings/haskell/.github/ISSUE_TEMPLATE/feature_request.yml delete mode 100644 a2ml/bindings/haskell/.github/ISSUE_TEMPLATE/question.yml delete mode 100644 a2ml/bindings/haskell/.github/MAINTAINERS delete mode 100644 a2ml/bindings/haskell/.github/README.adoc delete mode 100644 a2ml/bindings/haskell/.github/SECURITY.md delete mode 100644 a2ml/bindings/haskell/.github/SUPPORT delete mode 100644 a2ml/bindings/haskell/.github/copilot-instructions.md delete mode 100644 a2ml/bindings/haskell/.github/dependabot.yml delete mode 100644 a2ml/bindings/haskell/.github/pull_request_template.md delete mode 100644 a2ml/bindings/haskell/.github/workflows/codeql.yml delete mode 100644 a2ml/bindings/haskell/.github/workflows/governance.yml delete mode 100644 a2ml/bindings/haskell/.github/workflows/hypatia-scan.yml delete mode 100644 a2ml/bindings/haskell/.github/workflows/jekyll.yml delete mode 100644 a2ml/bindings/haskell/.github/workflows/mirror.yml delete mode 100644 a2ml/bindings/haskell/.github/workflows/release.yml delete mode 100644 a2ml/bindings/haskell/.github/workflows/rhodibot.yml delete mode 100644 a2ml/bindings/haskell/.github/workflows/scorecard-enforcer.yml delete mode 100644 a2ml/bindings/haskell/.github/workflows/scorecard.yml delete mode 100644 a2ml/bindings/haskell/.github/workflows/secret-scanner.yml delete mode 100644 a2ml/bindings/haskell/.github/workflows/static-analysis-gate.yml delete mode 100644 a2ml/bindings/haskell/.gitignore delete mode 100644 a2ml/bindings/haskell/.gitlab-ci.yml delete mode 100644 a2ml/bindings/haskell/.guix-channel delete mode 100644 a2ml/bindings/haskell/.machine_readable/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/CLADE.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/ENSAID_CONFIG.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/README.adoc delete mode 100644 a2ml/bindings/haskell/.machine_readable/ai/.clinerules delete mode 100644 a2ml/bindings/haskell/.machine_readable/ai/.cursorrules delete mode 100644 a2ml/bindings/haskell/.machine_readable/ai/.windsurfrules delete mode 100644 a2ml/bindings/haskell/.machine_readable/ai/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/ai/AI.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/ai/PLACEHOLDERS.adoc delete mode 100644 a2ml/bindings/haskell/.machine_readable/ai/README.adoc delete mode 100644 a2ml/bindings/haskell/.machine_readable/anchors/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/anchors/ANCHOR.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/anchors/README.adoc delete mode 100644 a2ml/bindings/haskell/.machine_readable/compliance/reuse/dep5 delete mode 100644 a2ml/bindings/haskell/.machine_readable/compliance/rust/deny.toml delete mode 100644 a2ml/bindings/haskell/.machine_readable/configs/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/configs/README.adoc delete mode 100644 a2ml/bindings/haskell/.machine_readable/configs/git-cliff/cliff.toml delete mode 100644 a2ml/bindings/haskell/.machine_readable/contractiles/README.adoc delete mode 100644 a2ml/bindings/haskell/.machine_readable/contractiles/dust/Dustfile.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/contractiles/must/Mustfile.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/contractiles/trust/Trustfile.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/descriptiles/AGENTIC.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/descriptiles/ECOSYSTEM.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/descriptiles/META.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/descriptiles/NEUROSYM.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/descriptiles/PLAYBOOK.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/descriptiles/STATE.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/policies/.maintenance-perms-ignore delete mode 100644 a2ml/bindings/haskell/.machine_readable/policies/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/policies/MAINTENANCE-AXES.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/policies/README.adoc delete mode 100644 a2ml/bindings/haskell/.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/scripts/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/scripts/forge/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/scripts/forge/README.adoc delete mode 100755 a2ml/bindings/haskell/.machine_readable/scripts/forge/forge-sync.sh delete mode 100755 a2ml/bindings/haskell/.machine_readable/scripts/forge/git-cleanup.sh delete mode 100644 a2ml/bindings/haskell/.machine_readable/scripts/lifecycle/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/scripts/lifecycle/README.adoc delete mode 100755 a2ml/bindings/haskell/.machine_readable/scripts/lifecycle/install-tools.sh delete mode 100644 a2ml/bindings/haskell/.machine_readable/scripts/maintenance/maint-assault.sh delete mode 100644 a2ml/bindings/haskell/.machine_readable/scripts/verification/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/.machine_readable/scripts/verification/README.adoc delete mode 100644 a2ml/bindings/haskell/.tool-versions delete mode 100644 a2ml/bindings/haskell/.well-known/ai.txt delete mode 100644 a2ml/bindings/haskell/.well-known/humans.txt delete mode 100644 a2ml/bindings/haskell/.well-known/security.txt delete mode 100644 a2ml/bindings/haskell/0-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/CHANGELOG.adoc delete mode 100644 a2ml/bindings/haskell/CONTRIBUTING.adoc delete mode 100644 a2ml/bindings/haskell/Containerfile delete mode 100644 a2ml/bindings/haskell/Justfile delete mode 100644 a2ml/bindings/haskell/LICENSE delete mode 100644 a2ml/bindings/haskell/LICENSE-MPL-2.0 delete mode 100644 a2ml/bindings/haskell/README.adoc delete mode 100644 a2ml/bindings/haskell/ROADMAP.adoc delete mode 100644 a2ml/bindings/haskell/SECURITY.adoc delete mode 100644 a2ml/bindings/haskell/Setup.hs delete mode 100644 a2ml/bindings/haskell/a2ml-haskell.cabal delete mode 120000 a2ml/bindings/haskell/container/.gatekeeper.yaml delete mode 100644 a2ml/bindings/haskell/container/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/container/Containerfile delete mode 100644 a2ml/bindings/haskell/container/README.adoc delete mode 100644 a2ml/bindings/haskell/container/compose.example.toml delete mode 100644 a2ml/bindings/haskell/container/compose.toml delete mode 100755 a2ml/bindings/haskell/container/ct-build.sh delete mode 100644 a2ml/bindings/haskell/container/deploy.k9.ncl delete mode 100755 a2ml/bindings/haskell/container/entrypoint.sh delete mode 100644 a2ml/bindings/haskell/container/manifest.toml delete mode 100644 a2ml/bindings/haskell/container/vordr.toml delete mode 100644 a2ml/bindings/haskell/contractile.just delete mode 100644 a2ml/bindings/haskell/docs/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/QUICKSTART.adoc delete mode 100644 a2ml/bindings/haskell/docs/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/RSR_OUTLINE.adoc delete mode 100644 a2ml/bindings/haskell/docs/STATE-VISUALIZER.adoc delete mode 100644 a2ml/bindings/haskell/docs/architecture/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/architecture/THREAT-MODEL.adoc delete mode 100644 a2ml/bindings/haskell/docs/attribution/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/attribution/CITATION.cff delete mode 100644 a2ml/bindings/haskell/docs/attribution/CITATIONS.adoc delete mode 100644 a2ml/bindings/haskell/docs/attribution/CODEOWNERS.adoc delete mode 100644 a2ml/bindings/haskell/docs/attribution/MAINTAINERS.adoc delete mode 100644 a2ml/bindings/haskell/docs/attribution/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/decisions/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/decisions/0000-template.adoc delete mode 100644 a2ml/bindings/haskell/docs/decisions/0001-adopt-rsr-standard.adoc delete mode 100644 a2ml/bindings/haskell/docs/decisions/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/developer/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/developer/ABI-FFI-README.adoc delete mode 100644 a2ml/bindings/haskell/docs/developer/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/governance/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/governance/CRG-CRITERIA.a2ml delete mode 100644 a2ml/bindings/haskell/docs/governance/CRG-CRITERIA.adoc delete mode 100644 a2ml/bindings/haskell/docs/governance/MAINTENANCE-CHECKLIST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/governance/MAINTENANCE-CHECKLIST.adoc delete mode 100644 a2ml/bindings/haskell/docs/governance/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.a2ml delete mode 100644 a2ml/bindings/haskell/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.adoc delete mode 100644 a2ml/bindings/haskell/docs/governance/TSDM.a2ml delete mode 100644 a2ml/bindings/haskell/docs/governance/TSDM.adoc delete mode 100644 a2ml/bindings/haskell/docs/governance/audit/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/governance/audit/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/governance/audit/compliance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/governance/audit/compliance/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/governance/audit/effects/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/governance/audit/effects/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/governance/audit/systems/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/governance/audit/systems/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/governance/maintenance/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/governance/maintenance/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/governance/maintenance/adaptive/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/governance/maintenance/adaptive/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/governance/maintenance/corrective/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/governance/maintenance/corrective/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/governance/maintenance/perfective/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/governance/maintenance/perfective/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/governance/planning/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/governance/planning/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/governance/planning/could/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/governance/planning/could/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/governance/planning/must/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/governance/planning/must/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/governance/planning/should/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/governance/planning/should/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/legal/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/legal/EXHIBIT-A-ETHICAL-USE.txt delete mode 100644 a2ml/bindings/haskell/docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt delete mode 100644 a2ml/bindings/haskell/docs/practice/.gitkeep delete mode 100644 a2ml/bindings/haskell/docs/practice/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/practice/AI-CONVENTIONS.adoc delete mode 100644 a2ml/bindings/haskell/docs/practice/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/practice/STATE-VISUALIZER-GUIDE.adoc delete mode 100644 a2ml/bindings/haskell/docs/reports/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/reports/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/reports/compliance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/reports/compliance/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/reports/maintenance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/reports/maintenance/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/reports/performance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/reports/performance/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/reports/quality/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/reports/quality/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/reports/security/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/reports/security/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/standards/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/standards/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/templates/contractiles/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/templates/contractiles/dust/Dustfile.a2ml delete mode 100644 a2ml/bindings/haskell/docs/templates/contractiles/intend/Intentfile.a2ml delete mode 100644 a2ml/bindings/haskell/docs/templates/contractiles/must/Mustfile.a2ml delete mode 100644 a2ml/bindings/haskell/docs/templates/contractiles/trust/Trustfile.a2ml delete mode 100644 a2ml/bindings/haskell/docs/theory/.gitkeep delete mode 100644 a2ml/bindings/haskell/docs/theory/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/theory/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/theory/computing/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/theory/computing/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/theory/formalisms/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/theory/formalisms/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/theory/mathematics/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/theory/mathematics/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/theory/ontologies/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/theory/ontologies/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/theory/other/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/theory/other/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/theory/socio-technical/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/theory/socio-technical/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/whitepapers/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/whitepapers/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/whitepapers/academic/.gitkeep delete mode 100644 a2ml/bindings/haskell/docs/whitepapers/academic/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/whitepapers/academic/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/whitepapers/industry/.gitkeep delete mode 100644 a2ml/bindings/haskell/docs/whitepapers/industry/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/whitepapers/industry/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/whitepapers/outreach/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/whitepapers/outreach/README.adoc delete mode 100644 a2ml/bindings/haskell/docs/wikis/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/docs/wikis/README.adoc delete mode 100644 a2ml/bindings/haskell/examples/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/examples/README.adoc delete mode 100644 a2ml/bindings/haskell/examples/web-project-deno.json delete mode 100644 a2ml/bindings/haskell/features/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/features/README.adoc delete mode 100644 a2ml/bindings/haskell/features/boj-server/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/features/boj-server/README.adoc delete mode 100644 a2ml/bindings/haskell/features/panic-attacker/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/features/panic-attacker/README.adoc delete mode 100644 a2ml/bindings/haskell/features/ssg/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/features/ssg/README.adoc delete mode 100755 a2ml/bindings/haskell/features/ssg/ssg-bootstrap.sh delete mode 100644 a2ml/bindings/haskell/src/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/src/Data/A2ML.hs delete mode 100644 a2ml/bindings/haskell/src/Data/A2ML/Parser.hs delete mode 100644 a2ml/bindings/haskell/src/Data/A2ML/Renderer.hs delete mode 100644 a2ml/bindings/haskell/src/Data/A2ML/Types.hs delete mode 100644 a2ml/bindings/haskell/src/README.adoc delete mode 100644 a2ml/bindings/haskell/src/aspects/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/src/aspects/README.adoc delete mode 100644 a2ml/bindings/haskell/src/aspects/integrity/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/src/aspects/integrity/README.adoc delete mode 100644 a2ml/bindings/haskell/src/aspects/observability/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/src/aspects/observability/README.adoc delete mode 100644 a2ml/bindings/haskell/src/aspects/security/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/src/aspects/security/README.adoc delete mode 100644 a2ml/bindings/haskell/src/bridges/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/src/contracts/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/src/contracts/README.adoc delete mode 100644 a2ml/bindings/haskell/src/core/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/src/definitions/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/src/definitions/README.adoc delete mode 100644 a2ml/bindings/haskell/src/errors/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/src/errors/README.adoc delete mode 100644 a2ml/bindings/haskell/src/interface/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/src/interface/README.adoc delete mode 100644 a2ml/bindings/haskell/src/interface/abi/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/src/interface/abi/README.adoc delete mode 100644 a2ml/bindings/haskell/src/interface/ffi/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/src/interface/ffi/README.adoc delete mode 100644 a2ml/bindings/haskell/src/interface/ffi/build.zig delete mode 100644 a2ml/bindings/haskell/src/interface/ffi/src/0.4-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/src/interface/ffi/src/README.adoc delete mode 100644 a2ml/bindings/haskell/src/interface/ffi/src/main.zig delete mode 100644 a2ml/bindings/haskell/src/interface/ffi/test/0.4-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/src/interface/ffi/test/README.adoc delete mode 100644 a2ml/bindings/haskell/src/interface/ffi/test/integration_test.zig delete mode 100644 a2ml/bindings/haskell/verification/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/verification/README.adoc delete mode 100644 a2ml/bindings/haskell/verification/benchmarks/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/verification/benchmarks/README.adoc delete mode 100644 a2ml/bindings/haskell/verification/coverage/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/verification/coverage/README.adoc delete mode 100644 a2ml/bindings/haskell/verification/fuzzing/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/verification/fuzzing/README.adoc delete mode 100644 a2ml/bindings/haskell/verification/proofs/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/verification/proofs/README.adoc delete mode 100644 a2ml/bindings/haskell/verification/safety_case/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/verification/safety_case/README.adoc delete mode 100644 a2ml/bindings/haskell/verification/simulations/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/verification/simulations/README.adoc delete mode 100644 a2ml/bindings/haskell/verification/tests/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/verification/tests/README.adoc delete mode 100644 a2ml/bindings/haskell/verification/traceability/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/haskell/verification/traceability/README.adoc delete mode 100644 a2ml/bindings/rust/.devcontainer/Containerfile delete mode 100644 a2ml/bindings/rust/.devcontainer/README.adoc delete mode 100644 a2ml/bindings/rust/.devcontainer/devcontainer.json delete mode 100644 a2ml/bindings/rust/.editorconfig delete mode 100644 a2ml/bindings/rust/.envrc delete mode 100644 a2ml/bindings/rust/.gitattributes delete mode 100644 a2ml/bindings/rust/.github/.mailmap delete mode 100644 a2ml/bindings/rust/.github/.nojekyll delete mode 100644 a2ml/bindings/rust/.github/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/.github/CODEOWNERS delete mode 100644 a2ml/bindings/rust/.github/CODE_OF_CONDUCT.md delete mode 100644 a2ml/bindings/rust/.github/CONTRIBUTING.md delete mode 100644 a2ml/bindings/rust/.github/DISCUSSION_TEMPLATE/ideas.yml delete mode 100644 a2ml/bindings/rust/.github/DISCUSSION_TEMPLATE/q-and-a.yml delete mode 100644 a2ml/bindings/rust/.github/FUNDING.yml delete mode 100644 a2ml/bindings/rust/.github/GOVERNANCE.md delete mode 100644 a2ml/bindings/rust/.github/ISSUE_TEMPLATE/bug_report.yml delete mode 100644 a2ml/bindings/rust/.github/ISSUE_TEMPLATE/config.yml delete mode 100644 a2ml/bindings/rust/.github/ISSUE_TEMPLATE/custom.yml delete mode 100644 a2ml/bindings/rust/.github/ISSUE_TEMPLATE/documentation.yml delete mode 100644 a2ml/bindings/rust/.github/ISSUE_TEMPLATE/feature_request.yml delete mode 100644 a2ml/bindings/rust/.github/ISSUE_TEMPLATE/question.yml delete mode 100644 a2ml/bindings/rust/.github/MAINTAINERS delete mode 100644 a2ml/bindings/rust/.github/README.adoc delete mode 100644 a2ml/bindings/rust/.github/SECURITY.md delete mode 100644 a2ml/bindings/rust/.github/SUPPORT delete mode 100644 a2ml/bindings/rust/.github/copilot-instructions.md delete mode 100644 a2ml/bindings/rust/.github/dependabot.yml delete mode 100644 a2ml/bindings/rust/.github/pull_request_template.md delete mode 100644 a2ml/bindings/rust/.github/workflows/codeql.yml delete mode 100644 a2ml/bindings/rust/.github/workflows/governance.yml delete mode 100644 a2ml/bindings/rust/.github/workflows/hypatia-scan.yml delete mode 100644 a2ml/bindings/rust/.github/workflows/jekyll.yml delete mode 100644 a2ml/bindings/rust/.github/workflows/mirror.yml delete mode 100644 a2ml/bindings/rust/.github/workflows/release.yml delete mode 100644 a2ml/bindings/rust/.github/workflows/rhodibot.yml delete mode 100644 a2ml/bindings/rust/.github/workflows/scorecard-enforcer.yml delete mode 100644 a2ml/bindings/rust/.github/workflows/scorecard.yml delete mode 100644 a2ml/bindings/rust/.github/workflows/secret-scanner.yml delete mode 100644 a2ml/bindings/rust/.github/workflows/static-analysis-gate.yml delete mode 100644 a2ml/bindings/rust/.gitignore delete mode 100644 a2ml/bindings/rust/.gitlab-ci.yml delete mode 100644 a2ml/bindings/rust/.guix-channel delete mode 100644 a2ml/bindings/rust/.machine_readable/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/CLADE.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/ENSAID_CONFIG.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/README.adoc delete mode 100644 a2ml/bindings/rust/.machine_readable/ai/.clinerules delete mode 100644 a2ml/bindings/rust/.machine_readable/ai/.cursorrules delete mode 100644 a2ml/bindings/rust/.machine_readable/ai/.windsurfrules delete mode 100644 a2ml/bindings/rust/.machine_readable/ai/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/ai/AI.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/ai/PLACEHOLDERS.adoc delete mode 100644 a2ml/bindings/rust/.machine_readable/ai/README.adoc delete mode 100644 a2ml/bindings/rust/.machine_readable/anchors/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/anchors/ANCHOR.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/anchors/README.adoc delete mode 100644 a2ml/bindings/rust/.machine_readable/compliance/reuse/dep5 delete mode 100644 a2ml/bindings/rust/.machine_readable/compliance/rust/deny.toml delete mode 100644 a2ml/bindings/rust/.machine_readable/configs/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/configs/README.adoc delete mode 100644 a2ml/bindings/rust/.machine_readable/configs/git-cliff/cliff.toml delete mode 100644 a2ml/bindings/rust/.machine_readable/contractiles/README.adoc delete mode 100644 a2ml/bindings/rust/.machine_readable/contractiles/dust/Dustfile.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/contractiles/must/Mustfile.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/contractiles/trust/Trustfile.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/descriptiles/AGENTIC.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/descriptiles/ECOSYSTEM.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/descriptiles/META.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/descriptiles/NEUROSYM.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/descriptiles/PLAYBOOK.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/descriptiles/STATE.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/policies/.maintenance-perms-ignore delete mode 100644 a2ml/bindings/rust/.machine_readable/policies/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/policies/MAINTENANCE-AXES.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/policies/README.adoc delete mode 100644 a2ml/bindings/rust/.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/scripts/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/scripts/forge/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/scripts/forge/README.adoc delete mode 100755 a2ml/bindings/rust/.machine_readable/scripts/forge/forge-sync.sh delete mode 100755 a2ml/bindings/rust/.machine_readable/scripts/forge/git-cleanup.sh delete mode 100644 a2ml/bindings/rust/.machine_readable/scripts/lifecycle/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/scripts/lifecycle/README.adoc delete mode 100755 a2ml/bindings/rust/.machine_readable/scripts/lifecycle/install-tools.sh delete mode 100644 a2ml/bindings/rust/.machine_readable/scripts/maintenance/maint-assault.sh delete mode 100644 a2ml/bindings/rust/.machine_readable/scripts/verification/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/.machine_readable/scripts/verification/README.adoc delete mode 100644 a2ml/bindings/rust/.tool-versions delete mode 100644 a2ml/bindings/rust/.well-known/ai.txt delete mode 100644 a2ml/bindings/rust/.well-known/humans.txt delete mode 100644 a2ml/bindings/rust/.well-known/security.txt delete mode 100644 a2ml/bindings/rust/0-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/CHANGELOG.adoc delete mode 100644 a2ml/bindings/rust/CONTRIBUTING.adoc delete mode 100644 a2ml/bindings/rust/Cargo.lock delete mode 100644 a2ml/bindings/rust/Cargo.toml delete mode 100644 a2ml/bindings/rust/Containerfile delete mode 100644 a2ml/bindings/rust/Justfile delete mode 100644 a2ml/bindings/rust/LICENSE delete mode 100644 a2ml/bindings/rust/README.adoc delete mode 100644 a2ml/bindings/rust/ROADMAP.adoc delete mode 100644 a2ml/bindings/rust/SECURITY.adoc delete mode 100644 a2ml/bindings/rust/benches/a2ml_bench.rs delete mode 120000 a2ml/bindings/rust/container/.gatekeeper.yaml delete mode 100644 a2ml/bindings/rust/container/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/container/Containerfile delete mode 100644 a2ml/bindings/rust/container/README.adoc delete mode 100644 a2ml/bindings/rust/container/compose.example.toml delete mode 100644 a2ml/bindings/rust/container/compose.toml delete mode 100755 a2ml/bindings/rust/container/ct-build.sh delete mode 100644 a2ml/bindings/rust/container/deploy.k9.ncl delete mode 100755 a2ml/bindings/rust/container/entrypoint.sh delete mode 100644 a2ml/bindings/rust/container/manifest.toml delete mode 100644 a2ml/bindings/rust/container/vordr.toml delete mode 100644 a2ml/bindings/rust/contractile.just delete mode 100644 a2ml/bindings/rust/docs/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/QUICKSTART.adoc delete mode 100644 a2ml/bindings/rust/docs/README.adoc delete mode 100644 a2ml/bindings/rust/docs/RSR_OUTLINE.adoc delete mode 100644 a2ml/bindings/rust/docs/STATE-VISUALIZER.adoc delete mode 100644 a2ml/bindings/rust/docs/architecture/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/architecture/THREAT-MODEL.adoc delete mode 100644 a2ml/bindings/rust/docs/attribution/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/attribution/CITATION.cff delete mode 100644 a2ml/bindings/rust/docs/attribution/CITATIONS.adoc delete mode 100644 a2ml/bindings/rust/docs/attribution/CODEOWNERS.adoc delete mode 100644 a2ml/bindings/rust/docs/attribution/MAINTAINERS.adoc delete mode 100644 a2ml/bindings/rust/docs/attribution/README.adoc delete mode 100644 a2ml/bindings/rust/docs/decisions/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/decisions/0000-template.adoc delete mode 100644 a2ml/bindings/rust/docs/decisions/0001-adopt-rsr-standard.adoc delete mode 100644 a2ml/bindings/rust/docs/decisions/README.adoc delete mode 100644 a2ml/bindings/rust/docs/developer/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/developer/ABI-FFI-README.adoc delete mode 100644 a2ml/bindings/rust/docs/developer/README.adoc delete mode 100644 a2ml/bindings/rust/docs/governance/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/governance/CRG-CRITERIA.a2ml delete mode 100644 a2ml/bindings/rust/docs/governance/CRG-CRITERIA.adoc delete mode 100644 a2ml/bindings/rust/docs/governance/MAINTENANCE-CHECKLIST.a2ml delete mode 100644 a2ml/bindings/rust/docs/governance/MAINTENANCE-CHECKLIST.adoc delete mode 100644 a2ml/bindings/rust/docs/governance/README.adoc delete mode 100644 a2ml/bindings/rust/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.a2ml delete mode 100644 a2ml/bindings/rust/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.adoc delete mode 100644 a2ml/bindings/rust/docs/governance/TSDM.a2ml delete mode 100644 a2ml/bindings/rust/docs/governance/TSDM.adoc delete mode 100644 a2ml/bindings/rust/docs/governance/audit/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/governance/audit/README.adoc delete mode 100644 a2ml/bindings/rust/docs/governance/audit/compliance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/governance/audit/compliance/README.adoc delete mode 100644 a2ml/bindings/rust/docs/governance/audit/effects/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/governance/audit/effects/README.adoc delete mode 100644 a2ml/bindings/rust/docs/governance/audit/systems/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/governance/audit/systems/README.adoc delete mode 100644 a2ml/bindings/rust/docs/governance/maintenance/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/governance/maintenance/README.adoc delete mode 100644 a2ml/bindings/rust/docs/governance/maintenance/adaptive/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/governance/maintenance/adaptive/README.adoc delete mode 100644 a2ml/bindings/rust/docs/governance/maintenance/corrective/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/governance/maintenance/corrective/README.adoc delete mode 100644 a2ml/bindings/rust/docs/governance/maintenance/perfective/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/governance/maintenance/perfective/README.adoc delete mode 100644 a2ml/bindings/rust/docs/governance/planning/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/governance/planning/README.adoc delete mode 100644 a2ml/bindings/rust/docs/governance/planning/could/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/governance/planning/could/README.adoc delete mode 100644 a2ml/bindings/rust/docs/governance/planning/must/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/governance/planning/must/README.adoc delete mode 100644 a2ml/bindings/rust/docs/governance/planning/should/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/governance/planning/should/README.adoc delete mode 100644 a2ml/bindings/rust/docs/legal/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/legal/EXHIBIT-A-ETHICAL-USE.txt delete mode 100644 a2ml/bindings/rust/docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt delete mode 100644 a2ml/bindings/rust/docs/practice/.gitkeep delete mode 100644 a2ml/bindings/rust/docs/practice/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/practice/AI-CONVENTIONS.adoc delete mode 100644 a2ml/bindings/rust/docs/practice/README.adoc delete mode 100644 a2ml/bindings/rust/docs/practice/STATE-VISUALIZER-GUIDE.adoc delete mode 100644 a2ml/bindings/rust/docs/reports/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/reports/README.adoc delete mode 100644 a2ml/bindings/rust/docs/reports/compliance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/reports/compliance/README.adoc delete mode 100644 a2ml/bindings/rust/docs/reports/maintenance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/reports/maintenance/README.adoc delete mode 100644 a2ml/bindings/rust/docs/reports/performance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/reports/performance/README.adoc delete mode 100644 a2ml/bindings/rust/docs/reports/quality/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/reports/quality/README.adoc delete mode 100644 a2ml/bindings/rust/docs/reports/security/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/reports/security/README.adoc delete mode 100644 a2ml/bindings/rust/docs/standards/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/standards/README.adoc delete mode 100644 a2ml/bindings/rust/docs/templates/contractiles/README.adoc delete mode 100644 a2ml/bindings/rust/docs/templates/contractiles/dust/Dustfile.a2ml delete mode 100644 a2ml/bindings/rust/docs/templates/contractiles/intend/Intentfile.a2ml delete mode 100644 a2ml/bindings/rust/docs/templates/contractiles/must/Mustfile.a2ml delete mode 100644 a2ml/bindings/rust/docs/templates/contractiles/trust/Trustfile.a2ml delete mode 100644 a2ml/bindings/rust/docs/theory/.gitkeep delete mode 100644 a2ml/bindings/rust/docs/theory/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/theory/README.adoc delete mode 100644 a2ml/bindings/rust/docs/theory/computing/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/theory/computing/README.adoc delete mode 100644 a2ml/bindings/rust/docs/theory/formalisms/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/theory/formalisms/README.adoc delete mode 100644 a2ml/bindings/rust/docs/theory/mathematics/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/theory/mathematics/README.adoc delete mode 100644 a2ml/bindings/rust/docs/theory/ontologies/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/theory/ontologies/README.adoc delete mode 100644 a2ml/bindings/rust/docs/theory/other/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/theory/other/README.adoc delete mode 100644 a2ml/bindings/rust/docs/theory/socio-technical/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/theory/socio-technical/README.adoc delete mode 100644 a2ml/bindings/rust/docs/whitepapers/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/whitepapers/README.adoc delete mode 100644 a2ml/bindings/rust/docs/whitepapers/academic/.gitkeep delete mode 100644 a2ml/bindings/rust/docs/whitepapers/academic/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/whitepapers/academic/README.adoc delete mode 100644 a2ml/bindings/rust/docs/whitepapers/industry/.gitkeep delete mode 100644 a2ml/bindings/rust/docs/whitepapers/industry/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/whitepapers/industry/README.adoc delete mode 100644 a2ml/bindings/rust/docs/whitepapers/outreach/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/whitepapers/outreach/README.adoc delete mode 100644 a2ml/bindings/rust/docs/wikis/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/docs/wikis/README.adoc delete mode 100644 a2ml/bindings/rust/examples/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/examples/README.adoc delete mode 100644 a2ml/bindings/rust/examples/web-project-deno.json delete mode 100644 a2ml/bindings/rust/features/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/features/README.adoc delete mode 100644 a2ml/bindings/rust/features/boj-server/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/features/boj-server/README.adoc delete mode 100644 a2ml/bindings/rust/features/panic-attacker/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/features/panic-attacker/README.adoc delete mode 100644 a2ml/bindings/rust/features/ssg/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/features/ssg/README.adoc delete mode 100755 a2ml/bindings/rust/features/ssg/ssg-bootstrap.sh delete mode 100644 a2ml/bindings/rust/src/error.rs delete mode 100644 a2ml/bindings/rust/src/lib.rs delete mode 100644 a2ml/bindings/rust/src/parser.rs delete mode 100644 a2ml/bindings/rust/src/renderer.rs delete mode 100644 a2ml/bindings/rust/src/types.rs delete mode 100644 a2ml/bindings/rust/tests/crg_c_tests.rs delete mode 100644 a2ml/bindings/rust/verification/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/verification/README.adoc delete mode 100644 a2ml/bindings/rust/verification/benchmarks/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/verification/benchmarks/README.adoc delete mode 100644 a2ml/bindings/rust/verification/coverage/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/verification/coverage/README.adoc delete mode 100644 a2ml/bindings/rust/verification/fuzzing/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/verification/fuzzing/README.adoc delete mode 100644 a2ml/bindings/rust/verification/proofs/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/verification/proofs/README.adoc delete mode 100644 a2ml/bindings/rust/verification/safety_case/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/verification/safety_case/README.adoc delete mode 100644 a2ml/bindings/rust/verification/simulations/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/verification/simulations/README.adoc delete mode 100644 a2ml/bindings/rust/verification/tests/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/verification/tests/README.adoc delete mode 100644 a2ml/bindings/rust/verification/traceability/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/bindings/rust/verification/traceability/README.adoc delete mode 100644 a2ml/cli/a2ml-cli.idr delete mode 100644 a2ml/cli/build.sh delete mode 100644 a2ml/contractiles/README.a2ml delete mode 100644 a2ml/contractiles/README.adoc delete mode 100644 a2ml/contractiles/dust/Dustfile delete mode 100644 a2ml/contractiles/dust/Dustfile.a2ml delete mode 100644 a2ml/contractiles/intend/Intentfile.a2ml delete mode 100644 a2ml/contractiles/must/Mustfile delete mode 100644 a2ml/contractiles/must/Mustfile.a2ml delete mode 100644 a2ml/contractiles/spec/contractiles-v1.json delete mode 100644 a2ml/contractiles/trust/Trustfile delete mode 100644 a2ml/contractiles/trust/Trustfile.a2ml delete mode 100644 a2ml/docs/.well-known/dnt-policy.txt delete mode 100644 a2ml/docs/.well-known/keybase.txt delete mode 100644 a2ml/docs/.well-known/security.txt delete mode 100644 a2ml/docs/.well-known/sellers.json delete mode 100644 a2ml/docs/.well-known/trust.txt delete mode 100644 a2ml/docs/ANNOUNCEMENT-v1.0.0.adoc delete mode 100644 a2ml/docs/ANNOUNCEMENT.adoc delete mode 100644 a2ml/docs/AST-JSON.adoc delete mode 100644 a2ml/docs/CITATIONS.adoc delete mode 100644 a2ml/docs/CLI.adoc delete mode 100644 a2ml/docs/CNAME delete mode 100644 a2ml/docs/COMPARISON.adoc delete mode 100644 a2ml/docs/CONFORMANCE-PLAN-v1.adoc delete mode 100644 a2ml/docs/CONFORMANCE-REPORT-v1.adoc delete mode 100644 a2ml/docs/CONFORMANCE.adoc delete mode 100644 a2ml/docs/CONTRACTILES-A2ML-V1.adoc delete mode 100644 a2ml/docs/DEPENDABILITY.adoc delete mode 100644 a2ml/docs/DEPLOYMENT-NARRATIVE.adoc delete mode 100644 a2ml/docs/DIALECT-ARCHITECTURE.adoc delete mode 100644 a2ml/docs/DIRECTIVE-MAPPING.adoc delete mode 100644 a2ml/docs/GRAMMAR.adoc delete mode 100644 a2ml/docs/IANA-MEDIA-TYPE.a2ml delete mode 100644 a2ml/docs/IANA-MEDIA-TYPE.adoc delete mode 100644 a2ml/docs/IDRIS2-CORE.adoc delete mode 100644 a2ml/docs/INLINE-RULES.adoc delete mode 100644 a2ml/docs/INSTALL.adoc delete mode 100644 a2ml/docs/INTEROPERABILITY.adoc delete mode 100644 a2ml/docs/MIGRATION-GUIDE.adoc delete mode 100644 a2ml/docs/MODULES.adoc delete mode 100644 a2ml/docs/PACKAGING.adoc delete mode 100644 a2ml/docs/PERFORMANCE.adoc delete mode 100644 a2ml/docs/QUICKSTART.adoc delete mode 100644 a2ml/docs/RELEASE-CHECKLIST-CONTRACTILES-A2ML-V1.adoc delete mode 100644 a2ml/docs/RELEASE-NOTES-CONTRACTILES-A2ML-V1.adoc delete mode 100644 a2ml/docs/SECURITY.adoc delete mode 100644 a2ml/docs/STATE-OF-A2ML.adoc delete mode 100644 a2ml/docs/TOOLING.adoc delete mode 100644 a2ml/docs/V1-CRITERIA.adoc delete mode 100644 a2ml/docs/V1-IMPLEMENTATION.adoc delete mode 100644 a2ml/docs/VECTORS.adoc delete mode 100644 a2ml/docs/WEB-RENDERING.adoc delete mode 100644 a2ml/docs/a2ml.1 delete mode 100644 a2ml/docs/ads.txt delete mode 100644 a2ml/docs/app-ads.txt delete mode 100644 a2ml/docs/demo.html delete mode 100644 a2ml/docs/humans.txt delete mode 100644 a2ml/docs/iana/IANA-SUBMISSION-GUIDE.adoc delete mode 100644 a2ml/docs/iana/application-vnd.a2ml-registration.txt delete mode 100644 a2ml/docs/index.html delete mode 100644 a2ml/docs/paper/ARXIV-SUBMISSION-GUIDE.adoc delete mode 100644 a2ml/docs/paper/Justfile delete mode 100644 a2ml/docs/paper/a2ml-arxiv-submission.tar.gz delete mode 100644 a2ml/docs/paper/a2ml-arxiv.pdf delete mode 100644 a2ml/docs/paper/a2ml-arxiv.tex delete mode 100644 a2ml/docs/paper/arxiv-submission/a2ml-arxiv.tex delete mode 100644 a2ml/docs/paper/manifest.scm delete mode 100644 a2ml/docs/style.css delete mode 100644 a2ml/editors/a2ml-notepadpp.xml delete mode 100644 a2ml/editors/a2ml.tmLanguage.json delete mode 100644 a2ml/editors/vscode/.devcontainer/Containerfile delete mode 100644 a2ml/editors/vscode/.devcontainer/README.adoc delete mode 100644 a2ml/editors/vscode/.devcontainer/devcontainer.json delete mode 100644 a2ml/editors/vscode/.editorconfig delete mode 100644 a2ml/editors/vscode/.envrc delete mode 100644 a2ml/editors/vscode/.gitattributes delete mode 100644 a2ml/editors/vscode/.github/.mailmap delete mode 100644 a2ml/editors/vscode/.github/.nojekyll delete mode 100644 a2ml/editors/vscode/.github/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/.github/CODEOWNERS delete mode 100644 a2ml/editors/vscode/.github/CODE_OF_CONDUCT.md delete mode 100644 a2ml/editors/vscode/.github/CONTRIBUTING.md delete mode 100644 a2ml/editors/vscode/.github/DISCUSSION_TEMPLATE/ideas.yml delete mode 100644 a2ml/editors/vscode/.github/DISCUSSION_TEMPLATE/q-and-a.yml delete mode 100644 a2ml/editors/vscode/.github/FUNDING.yml delete mode 100644 a2ml/editors/vscode/.github/GOVERNANCE.md delete mode 100644 a2ml/editors/vscode/.github/ISSUE_TEMPLATE/bug_report.yml delete mode 100644 a2ml/editors/vscode/.github/ISSUE_TEMPLATE/config.yml delete mode 100644 a2ml/editors/vscode/.github/ISSUE_TEMPLATE/custom.yml delete mode 100644 a2ml/editors/vscode/.github/ISSUE_TEMPLATE/documentation.yml delete mode 100644 a2ml/editors/vscode/.github/ISSUE_TEMPLATE/feature_request.yml delete mode 100644 a2ml/editors/vscode/.github/ISSUE_TEMPLATE/question.yml delete mode 100644 a2ml/editors/vscode/.github/MAINTAINERS delete mode 100644 a2ml/editors/vscode/.github/README.adoc delete mode 100644 a2ml/editors/vscode/.github/SECURITY.md delete mode 100644 a2ml/editors/vscode/.github/SUPPORT delete mode 100644 a2ml/editors/vscode/.github/copilot-instructions.md delete mode 100644 a2ml/editors/vscode/.github/dependabot.yml delete mode 100644 a2ml/editors/vscode/.github/pull_request_template.md delete mode 100644 a2ml/editors/vscode/.github/workflows/codeql.yml delete mode 100644 a2ml/editors/vscode/.github/workflows/governance.yml delete mode 100644 a2ml/editors/vscode/.github/workflows/hypatia-scan.yml delete mode 100644 a2ml/editors/vscode/.github/workflows/jekyll.yml delete mode 100644 a2ml/editors/vscode/.github/workflows/mirror.yml delete mode 100644 a2ml/editors/vscode/.github/workflows/release.yml delete mode 100644 a2ml/editors/vscode/.github/workflows/rhodibot.yml delete mode 100644 a2ml/editors/vscode/.github/workflows/scorecard-enforcer.yml delete mode 100644 a2ml/editors/vscode/.github/workflows/scorecard.yml delete mode 100644 a2ml/editors/vscode/.github/workflows/secret-scanner.yml delete mode 100644 a2ml/editors/vscode/.github/workflows/static-analysis-gate.yml delete mode 100644 a2ml/editors/vscode/.gitignore delete mode 100644 a2ml/editors/vscode/.gitlab-ci.yml delete mode 100644 a2ml/editors/vscode/.guix-channel delete mode 100644 a2ml/editors/vscode/.machine_readable/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/CLADE.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/ENSAID_CONFIG.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/README.adoc delete mode 100644 a2ml/editors/vscode/.machine_readable/ai/.clinerules delete mode 100644 a2ml/editors/vscode/.machine_readable/ai/.cursorrules delete mode 100644 a2ml/editors/vscode/.machine_readable/ai/.windsurfrules delete mode 100644 a2ml/editors/vscode/.machine_readable/ai/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/ai/AI.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/ai/PLACEHOLDERS.adoc delete mode 100644 a2ml/editors/vscode/.machine_readable/ai/README.adoc delete mode 100644 a2ml/editors/vscode/.machine_readable/anchors/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/anchors/ANCHOR.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/anchors/README.adoc delete mode 100644 a2ml/editors/vscode/.machine_readable/compliance/reuse/dep5 delete mode 100644 a2ml/editors/vscode/.machine_readable/compliance/rust/deny.toml delete mode 100644 a2ml/editors/vscode/.machine_readable/configs/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/configs/README.adoc delete mode 100644 a2ml/editors/vscode/.machine_readable/configs/git-cliff/cliff.toml delete mode 100644 a2ml/editors/vscode/.machine_readable/contractiles/README.adoc delete mode 100644 a2ml/editors/vscode/.machine_readable/contractiles/dust/Dustfile.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/contractiles/must/Mustfile.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/contractiles/trust/Trustfile.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/descriptiles/AGENTIC.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/descriptiles/ECOSYSTEM.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/descriptiles/META.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/descriptiles/NEUROSYM.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/descriptiles/PLAYBOOK.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/descriptiles/STATE.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/policies/.maintenance-perms-ignore delete mode 100644 a2ml/editors/vscode/.machine_readable/policies/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/policies/MAINTENANCE-AXES.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/policies/README.adoc delete mode 100644 a2ml/editors/vscode/.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/scripts/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/scripts/forge/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/scripts/forge/README.adoc delete mode 100755 a2ml/editors/vscode/.machine_readable/scripts/forge/forge-sync.sh delete mode 100755 a2ml/editors/vscode/.machine_readable/scripts/forge/git-cleanup.sh delete mode 100644 a2ml/editors/vscode/.machine_readable/scripts/lifecycle/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/scripts/lifecycle/README.adoc delete mode 100755 a2ml/editors/vscode/.machine_readable/scripts/lifecycle/install-tools.sh delete mode 100644 a2ml/editors/vscode/.machine_readable/scripts/maintenance/maint-assault.sh delete mode 100644 a2ml/editors/vscode/.machine_readable/scripts/verification/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/.machine_readable/scripts/verification/README.adoc delete mode 100644 a2ml/editors/vscode/.tool-versions delete mode 100644 a2ml/editors/vscode/.well-known/ai.txt delete mode 100644 a2ml/editors/vscode/.well-known/humans.txt delete mode 100644 a2ml/editors/vscode/.well-known/security.txt delete mode 100644 a2ml/editors/vscode/0-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/CHANGELOG.adoc delete mode 100644 a2ml/editors/vscode/CONTRIBUTING.adoc delete mode 100644 a2ml/editors/vscode/Containerfile delete mode 100644 a2ml/editors/vscode/Justfile delete mode 100644 a2ml/editors/vscode/LICENSE delete mode 100644 a2ml/editors/vscode/LICENSE-PMPL delete mode 100644 a2ml/editors/vscode/README.adoc delete mode 100644 a2ml/editors/vscode/ROADMAP.adoc delete mode 100644 a2ml/editors/vscode/SECURITY.adoc delete mode 120000 a2ml/editors/vscode/container/.gatekeeper.yaml delete mode 100644 a2ml/editors/vscode/container/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/container/Containerfile delete mode 100644 a2ml/editors/vscode/container/README.adoc delete mode 100644 a2ml/editors/vscode/container/compose.example.toml delete mode 100644 a2ml/editors/vscode/container/compose.toml delete mode 100755 a2ml/editors/vscode/container/ct-build.sh delete mode 100644 a2ml/editors/vscode/container/deploy.k9.ncl delete mode 100755 a2ml/editors/vscode/container/entrypoint.sh delete mode 100644 a2ml/editors/vscode/container/manifest.toml delete mode 100644 a2ml/editors/vscode/container/vordr.toml delete mode 100644 a2ml/editors/vscode/contractile.just delete mode 100644 a2ml/editors/vscode/docs/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/QUICKSTART.adoc delete mode 100644 a2ml/editors/vscode/docs/README.adoc delete mode 100644 a2ml/editors/vscode/docs/RSR_OUTLINE.adoc delete mode 100644 a2ml/editors/vscode/docs/STATE-VISUALIZER.adoc delete mode 100644 a2ml/editors/vscode/docs/architecture/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/architecture/THREAT-MODEL.adoc delete mode 100644 a2ml/editors/vscode/docs/attribution/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/attribution/CITATION.cff delete mode 100644 a2ml/editors/vscode/docs/attribution/CITATIONS.adoc delete mode 100644 a2ml/editors/vscode/docs/attribution/CODEOWNERS.adoc delete mode 100644 a2ml/editors/vscode/docs/attribution/MAINTAINERS.adoc delete mode 100644 a2ml/editors/vscode/docs/attribution/README.adoc delete mode 100644 a2ml/editors/vscode/docs/decisions/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/decisions/0000-template.adoc delete mode 100644 a2ml/editors/vscode/docs/decisions/0001-adopt-rsr-standard.adoc delete mode 100644 a2ml/editors/vscode/docs/decisions/README.adoc delete mode 100644 a2ml/editors/vscode/docs/developer/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/developer/ABI-FFI-README.adoc delete mode 100644 a2ml/editors/vscode/docs/developer/README.adoc delete mode 100644 a2ml/editors/vscode/docs/governance/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/governance/CRG-CRITERIA.a2ml delete mode 100644 a2ml/editors/vscode/docs/governance/CRG-CRITERIA.adoc delete mode 100644 a2ml/editors/vscode/docs/governance/MAINTENANCE-CHECKLIST.a2ml delete mode 100644 a2ml/editors/vscode/docs/governance/MAINTENANCE-CHECKLIST.adoc delete mode 100644 a2ml/editors/vscode/docs/governance/README.adoc delete mode 100644 a2ml/editors/vscode/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.a2ml delete mode 100644 a2ml/editors/vscode/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.adoc delete mode 100644 a2ml/editors/vscode/docs/governance/TSDM.a2ml delete mode 100644 a2ml/editors/vscode/docs/governance/TSDM.adoc delete mode 100644 a2ml/editors/vscode/docs/governance/audit/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/governance/audit/README.adoc delete mode 100644 a2ml/editors/vscode/docs/governance/audit/compliance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/governance/audit/compliance/README.adoc delete mode 100644 a2ml/editors/vscode/docs/governance/audit/effects/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/governance/audit/effects/README.adoc delete mode 100644 a2ml/editors/vscode/docs/governance/audit/systems/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/governance/audit/systems/README.adoc delete mode 100644 a2ml/editors/vscode/docs/governance/maintenance/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/governance/maintenance/README.adoc delete mode 100644 a2ml/editors/vscode/docs/governance/maintenance/adaptive/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/governance/maintenance/adaptive/README.adoc delete mode 100644 a2ml/editors/vscode/docs/governance/maintenance/corrective/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/governance/maintenance/corrective/README.adoc delete mode 100644 a2ml/editors/vscode/docs/governance/maintenance/perfective/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/governance/maintenance/perfective/README.adoc delete mode 100644 a2ml/editors/vscode/docs/governance/planning/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/governance/planning/README.adoc delete mode 100644 a2ml/editors/vscode/docs/governance/planning/could/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/governance/planning/could/README.adoc delete mode 100644 a2ml/editors/vscode/docs/governance/planning/must/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/governance/planning/must/README.adoc delete mode 100644 a2ml/editors/vscode/docs/governance/planning/should/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/governance/planning/should/README.adoc delete mode 100644 a2ml/editors/vscode/docs/legal/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/legal/EXHIBIT-A-ETHICAL-USE.txt delete mode 100644 a2ml/editors/vscode/docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt delete mode 100644 a2ml/editors/vscode/docs/practice/.gitkeep delete mode 100644 a2ml/editors/vscode/docs/practice/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/practice/AI-CONVENTIONS.adoc delete mode 100644 a2ml/editors/vscode/docs/practice/README.adoc delete mode 100644 a2ml/editors/vscode/docs/practice/STATE-VISUALIZER-GUIDE.adoc delete mode 100644 a2ml/editors/vscode/docs/reports/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/reports/README.adoc delete mode 100644 a2ml/editors/vscode/docs/reports/compliance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/reports/compliance/README.adoc delete mode 100644 a2ml/editors/vscode/docs/reports/maintenance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/reports/maintenance/README.adoc delete mode 100644 a2ml/editors/vscode/docs/reports/performance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/reports/performance/README.adoc delete mode 100644 a2ml/editors/vscode/docs/reports/quality/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/reports/quality/README.adoc delete mode 100644 a2ml/editors/vscode/docs/reports/security/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/reports/security/README.adoc delete mode 100644 a2ml/editors/vscode/docs/standards/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/standards/README.adoc delete mode 100644 a2ml/editors/vscode/docs/templates/contractiles/README.adoc delete mode 100644 a2ml/editors/vscode/docs/templates/contractiles/dust/Dustfile.a2ml delete mode 100644 a2ml/editors/vscode/docs/templates/contractiles/intend/Intentfile.a2ml delete mode 100644 a2ml/editors/vscode/docs/templates/contractiles/must/Mustfile.a2ml delete mode 100644 a2ml/editors/vscode/docs/templates/contractiles/trust/Trustfile.a2ml delete mode 100644 a2ml/editors/vscode/docs/theory/.gitkeep delete mode 100644 a2ml/editors/vscode/docs/theory/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/theory/README.adoc delete mode 100644 a2ml/editors/vscode/docs/theory/computing/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/theory/computing/README.adoc delete mode 100644 a2ml/editors/vscode/docs/theory/formalisms/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/theory/formalisms/README.adoc delete mode 100644 a2ml/editors/vscode/docs/theory/mathematics/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/theory/mathematics/README.adoc delete mode 100644 a2ml/editors/vscode/docs/theory/ontologies/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/theory/ontologies/README.adoc delete mode 100644 a2ml/editors/vscode/docs/theory/other/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/theory/other/README.adoc delete mode 100644 a2ml/editors/vscode/docs/theory/socio-technical/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/theory/socio-technical/README.adoc delete mode 100644 a2ml/editors/vscode/docs/whitepapers/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/whitepapers/README.adoc delete mode 100644 a2ml/editors/vscode/docs/whitepapers/academic/.gitkeep delete mode 100644 a2ml/editors/vscode/docs/whitepapers/academic/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/whitepapers/academic/README.adoc delete mode 100644 a2ml/editors/vscode/docs/whitepapers/industry/.gitkeep delete mode 100644 a2ml/editors/vscode/docs/whitepapers/industry/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/whitepapers/industry/README.adoc delete mode 100644 a2ml/editors/vscode/docs/whitepapers/outreach/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/whitepapers/outreach/README.adoc delete mode 100644 a2ml/editors/vscode/docs/wikis/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/docs/wikis/README.adoc delete mode 100644 a2ml/editors/vscode/examples/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/examples/README.adoc delete mode 100644 a2ml/editors/vscode/examples/web-project-deno.json delete mode 100644 a2ml/editors/vscode/features/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/features/README.adoc delete mode 100644 a2ml/editors/vscode/features/boj-server/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/features/boj-server/README.adoc delete mode 100644 a2ml/editors/vscode/features/panic-attacker/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/features/panic-attacker/README.adoc delete mode 100644 a2ml/editors/vscode/features/ssg/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/features/ssg/README.adoc delete mode 100755 a2ml/editors/vscode/features/ssg/ssg-bootstrap.sh delete mode 100644 a2ml/editors/vscode/icons/a2ml-icon.svg delete mode 100644 a2ml/editors/vscode/language-configuration.json delete mode 100644 a2ml/editors/vscode/package.json delete mode 100644 a2ml/editors/vscode/snippets/a2ml.json delete mode 100644 a2ml/editors/vscode/src/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/src/README.adoc delete mode 100644 a2ml/editors/vscode/src/aspects/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/src/aspects/README.adoc delete mode 100644 a2ml/editors/vscode/src/aspects/integrity/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/src/aspects/integrity/README.adoc delete mode 100644 a2ml/editors/vscode/src/aspects/observability/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/src/aspects/observability/README.adoc delete mode 100644 a2ml/editors/vscode/src/aspects/security/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/src/aspects/security/README.adoc delete mode 100644 a2ml/editors/vscode/src/bridges/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/src/contracts/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/src/contracts/README.adoc delete mode 100644 a2ml/editors/vscode/src/core/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/src/definitions/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/src/definitions/README.adoc delete mode 100644 a2ml/editors/vscode/src/errors/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/src/errors/README.adoc delete mode 100644 a2ml/editors/vscode/src/interface/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/src/interface/README.adoc delete mode 100644 a2ml/editors/vscode/src/interface/abi/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/src/interface/abi/README.adoc delete mode 100644 a2ml/editors/vscode/src/interface/ffi/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/src/interface/ffi/README.adoc delete mode 100644 a2ml/editors/vscode/src/interface/ffi/build.zig delete mode 100644 a2ml/editors/vscode/src/interface/ffi/src/0.4-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/src/interface/ffi/src/README.adoc delete mode 100644 a2ml/editors/vscode/src/interface/ffi/src/main.zig delete mode 100644 a2ml/editors/vscode/src/interface/ffi/test/0.4-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/src/interface/ffi/test/README.adoc delete mode 100644 a2ml/editors/vscode/src/interface/ffi/test/integration_test.zig delete mode 100644 a2ml/editors/vscode/syntaxes/a2ml.tmLanguage.json delete mode 100644 a2ml/editors/vscode/verification/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/verification/README.adoc delete mode 100644 a2ml/editors/vscode/verification/benchmarks/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/verification/benchmarks/README.adoc delete mode 100644 a2ml/editors/vscode/verification/coverage/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/verification/coverage/README.adoc delete mode 100644 a2ml/editors/vscode/verification/fuzzing/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/verification/fuzzing/README.adoc delete mode 100644 a2ml/editors/vscode/verification/proofs/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/verification/proofs/README.adoc delete mode 100644 a2ml/editors/vscode/verification/safety_case/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/verification/safety_case/README.adoc delete mode 100644 a2ml/editors/vscode/verification/simulations/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/verification/simulations/README.adoc delete mode 100644 a2ml/editors/vscode/verification/tests/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/verification/tests/README.adoc delete mode 100644 a2ml/editors/vscode/verification/traceability/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/editors/vscode/verification/traceability/README.adoc delete mode 100644 a2ml/examples/web-project-deno.json delete mode 100644 a2ml/ffi/zig/build.zig delete mode 100644 a2ml/ffi/zig/src/main.zig delete mode 100644 a2ml/ffi/zig/test/integration_test.zig delete mode 100644 a2ml/humans.txt delete mode 100644 a2ml/lsp/A2ML-LSP.adoc delete mode 100644 a2ml/lsp/Cargo.lock delete mode 100644 a2ml/lsp/Cargo.toml delete mode 100644 a2ml/lsp/README.adoc delete mode 100644 a2ml/lsp/src/completions.rs delete mode 100644 a2ml/lsp/src/diagnostics.rs delete mode 100644 a2ml/lsp/src/hover.rs delete mode 100644 a2ml/lsp/src/main.rs delete mode 100644 a2ml/manifest.scm delete mode 100644 a2ml/pandoc/.devcontainer/Containerfile delete mode 100644 a2ml/pandoc/.devcontainer/README.adoc delete mode 100644 a2ml/pandoc/.devcontainer/devcontainer.json delete mode 100644 a2ml/pandoc/.editorconfig delete mode 100644 a2ml/pandoc/.envrc delete mode 100644 a2ml/pandoc/.gitattributes delete mode 100644 a2ml/pandoc/.github/.mailmap delete mode 100644 a2ml/pandoc/.github/.nojekyll delete mode 100644 a2ml/pandoc/.github/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/.github/CODEOWNERS delete mode 100644 a2ml/pandoc/.github/CODE_OF_CONDUCT.md delete mode 100644 a2ml/pandoc/.github/CONTRIBUTING.md delete mode 100644 a2ml/pandoc/.github/DISCUSSION_TEMPLATE/ideas.yml delete mode 100644 a2ml/pandoc/.github/DISCUSSION_TEMPLATE/q-and-a.yml delete mode 100644 a2ml/pandoc/.github/FUNDING.yml delete mode 100644 a2ml/pandoc/.github/GOVERNANCE.md delete mode 100644 a2ml/pandoc/.github/ISSUE_TEMPLATE/bug_report.yml delete mode 100644 a2ml/pandoc/.github/ISSUE_TEMPLATE/config.yml delete mode 100644 a2ml/pandoc/.github/ISSUE_TEMPLATE/custom.yml delete mode 100644 a2ml/pandoc/.github/ISSUE_TEMPLATE/documentation.yml delete mode 100644 a2ml/pandoc/.github/ISSUE_TEMPLATE/feature_request.yml delete mode 100644 a2ml/pandoc/.github/ISSUE_TEMPLATE/question.yml delete mode 100644 a2ml/pandoc/.github/MAINTAINERS delete mode 100644 a2ml/pandoc/.github/README.adoc delete mode 100644 a2ml/pandoc/.github/SECURITY.md delete mode 100644 a2ml/pandoc/.github/SUPPORT delete mode 100644 a2ml/pandoc/.github/copilot-instructions.md delete mode 100644 a2ml/pandoc/.github/dependabot.yml delete mode 100644 a2ml/pandoc/.github/pull_request_template.md delete mode 100644 a2ml/pandoc/.github/workflows/codeql.yml delete mode 100644 a2ml/pandoc/.github/workflows/governance.yml delete mode 100644 a2ml/pandoc/.github/workflows/hypatia-scan.yml delete mode 100644 a2ml/pandoc/.github/workflows/jekyll.yml delete mode 100644 a2ml/pandoc/.github/workflows/mirror.yml delete mode 100644 a2ml/pandoc/.github/workflows/release.yml delete mode 100644 a2ml/pandoc/.github/workflows/rhodibot.yml delete mode 100644 a2ml/pandoc/.github/workflows/scorecard-enforcer.yml delete mode 100644 a2ml/pandoc/.github/workflows/scorecard.yml delete mode 100644 a2ml/pandoc/.github/workflows/secret-scanner.yml delete mode 100644 a2ml/pandoc/.github/workflows/static-analysis-gate.yml delete mode 100644 a2ml/pandoc/.gitignore delete mode 100644 a2ml/pandoc/.gitlab-ci.yml delete mode 100644 a2ml/pandoc/.guix-channel delete mode 100644 a2ml/pandoc/.machine_readable/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/CLADE.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/ENSAID_CONFIG.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/README.adoc delete mode 100644 a2ml/pandoc/.machine_readable/ai/.clinerules delete mode 100644 a2ml/pandoc/.machine_readable/ai/.cursorrules delete mode 100644 a2ml/pandoc/.machine_readable/ai/.windsurfrules delete mode 100644 a2ml/pandoc/.machine_readable/ai/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/ai/AI.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/ai/PLACEHOLDERS.adoc delete mode 100644 a2ml/pandoc/.machine_readable/ai/README.adoc delete mode 100644 a2ml/pandoc/.machine_readable/anchors/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/anchors/ANCHOR.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/anchors/README.adoc delete mode 100644 a2ml/pandoc/.machine_readable/compliance/reuse/dep5 delete mode 100644 a2ml/pandoc/.machine_readable/compliance/rust/deny.toml delete mode 100644 a2ml/pandoc/.machine_readable/configs/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/configs/README.adoc delete mode 100644 a2ml/pandoc/.machine_readable/configs/git-cliff/cliff.toml delete mode 100644 a2ml/pandoc/.machine_readable/contractiles/README.adoc delete mode 100644 a2ml/pandoc/.machine_readable/contractiles/dust/Dustfile.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/contractiles/must/Mustfile.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/contractiles/trust/Trustfile.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/descriptiles/AGENTIC.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/descriptiles/ECOSYSTEM.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/descriptiles/META.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/descriptiles/NEUROSYM.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/descriptiles/PLAYBOOK.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/descriptiles/STATE.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/policies/.maintenance-perms-ignore delete mode 100644 a2ml/pandoc/.machine_readable/policies/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/policies/MAINTENANCE-AXES.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/policies/README.adoc delete mode 100644 a2ml/pandoc/.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/scripts/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/scripts/forge/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/scripts/forge/README.adoc delete mode 100755 a2ml/pandoc/.machine_readable/scripts/forge/forge-sync.sh delete mode 100755 a2ml/pandoc/.machine_readable/scripts/forge/git-cleanup.sh delete mode 100644 a2ml/pandoc/.machine_readable/scripts/lifecycle/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/scripts/lifecycle/README.adoc delete mode 100755 a2ml/pandoc/.machine_readable/scripts/lifecycle/install-tools.sh delete mode 100644 a2ml/pandoc/.machine_readable/scripts/maintenance/maint-assault.sh delete mode 100644 a2ml/pandoc/.machine_readable/scripts/verification/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/.machine_readable/scripts/verification/README.adoc delete mode 100644 a2ml/pandoc/.tool-versions delete mode 100644 a2ml/pandoc/.well-known/ai.txt delete mode 100644 a2ml/pandoc/.well-known/humans.txt delete mode 100644 a2ml/pandoc/.well-known/security.txt delete mode 100644 a2ml/pandoc/0-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/CHANGELOG.adoc delete mode 100644 a2ml/pandoc/CONTRIBUTING.adoc delete mode 100644 a2ml/pandoc/Containerfile delete mode 100644 a2ml/pandoc/Justfile delete mode 100644 a2ml/pandoc/LICENSE delete mode 100644 a2ml/pandoc/PANDOC-SUBMISSION.adoc delete mode 100644 a2ml/pandoc/README.adoc delete mode 100644 a2ml/pandoc/ROADMAP.adoc delete mode 100644 a2ml/pandoc/SECURITY.adoc delete mode 100644 a2ml/pandoc/a2ml-filter.lua delete mode 100644 a2ml/pandoc/a2ml-reader.lua delete mode 100644 a2ml/pandoc/a2ml-writer.lua delete mode 100644 a2ml/pandoc/a2ml.html delete mode 100644 a2ml/pandoc/a2ml.lua delete mode 120000 a2ml/pandoc/container/.gatekeeper.yaml delete mode 100644 a2ml/pandoc/container/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/container/Containerfile delete mode 100644 a2ml/pandoc/container/README.adoc delete mode 100644 a2ml/pandoc/container/compose.example.toml delete mode 100644 a2ml/pandoc/container/compose.toml delete mode 100755 a2ml/pandoc/container/ct-build.sh delete mode 100644 a2ml/pandoc/container/deploy.k9.ncl delete mode 100755 a2ml/pandoc/container/entrypoint.sh delete mode 100644 a2ml/pandoc/container/manifest.toml delete mode 100644 a2ml/pandoc/container/vordr.toml delete mode 100644 a2ml/pandoc/contractile.just delete mode 100644 a2ml/pandoc/docs/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/QUICKSTART.adoc delete mode 100644 a2ml/pandoc/docs/README.adoc delete mode 100644 a2ml/pandoc/docs/RSR_OUTLINE.adoc delete mode 100644 a2ml/pandoc/docs/STATE-VISUALIZER.adoc delete mode 100644 a2ml/pandoc/docs/architecture/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/architecture/THREAT-MODEL.adoc delete mode 100644 a2ml/pandoc/docs/attribution/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/attribution/CITATION.cff delete mode 100644 a2ml/pandoc/docs/attribution/CITATIONS.adoc delete mode 100644 a2ml/pandoc/docs/attribution/CODEOWNERS.adoc delete mode 100644 a2ml/pandoc/docs/attribution/MAINTAINERS.adoc delete mode 100644 a2ml/pandoc/docs/attribution/README.adoc delete mode 100644 a2ml/pandoc/docs/decisions/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/decisions/0000-template.adoc delete mode 100644 a2ml/pandoc/docs/decisions/0001-adopt-rsr-standard.adoc delete mode 100644 a2ml/pandoc/docs/decisions/README.adoc delete mode 100644 a2ml/pandoc/docs/developer/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/developer/ABI-FFI-README.adoc delete mode 100644 a2ml/pandoc/docs/developer/README.adoc delete mode 100644 a2ml/pandoc/docs/governance/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/governance/CRG-CRITERIA.a2ml delete mode 100644 a2ml/pandoc/docs/governance/CRG-CRITERIA.adoc delete mode 100644 a2ml/pandoc/docs/governance/MAINTENANCE-CHECKLIST.a2ml delete mode 100644 a2ml/pandoc/docs/governance/MAINTENANCE-CHECKLIST.adoc delete mode 100644 a2ml/pandoc/docs/governance/README.adoc delete mode 100644 a2ml/pandoc/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.a2ml delete mode 100644 a2ml/pandoc/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.adoc delete mode 100644 a2ml/pandoc/docs/governance/TSDM.a2ml delete mode 100644 a2ml/pandoc/docs/governance/TSDM.adoc delete mode 100644 a2ml/pandoc/docs/governance/audit/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/governance/audit/README.adoc delete mode 100644 a2ml/pandoc/docs/governance/audit/compliance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/governance/audit/compliance/README.adoc delete mode 100644 a2ml/pandoc/docs/governance/audit/effects/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/governance/audit/effects/README.adoc delete mode 100644 a2ml/pandoc/docs/governance/audit/systems/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/governance/audit/systems/README.adoc delete mode 100644 a2ml/pandoc/docs/governance/maintenance/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/governance/maintenance/README.adoc delete mode 100644 a2ml/pandoc/docs/governance/maintenance/adaptive/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/governance/maintenance/adaptive/README.adoc delete mode 100644 a2ml/pandoc/docs/governance/maintenance/corrective/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/governance/maintenance/corrective/README.adoc delete mode 100644 a2ml/pandoc/docs/governance/maintenance/perfective/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/governance/maintenance/perfective/README.adoc delete mode 100644 a2ml/pandoc/docs/governance/planning/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/governance/planning/README.adoc delete mode 100644 a2ml/pandoc/docs/governance/planning/could/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/governance/planning/could/README.adoc delete mode 100644 a2ml/pandoc/docs/governance/planning/must/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/governance/planning/must/README.adoc delete mode 100644 a2ml/pandoc/docs/governance/planning/should/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/governance/planning/should/README.adoc delete mode 100644 a2ml/pandoc/docs/legal/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/legal/EXHIBIT-A-ETHICAL-USE.txt delete mode 100644 a2ml/pandoc/docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt delete mode 100644 a2ml/pandoc/docs/practice/.gitkeep delete mode 100644 a2ml/pandoc/docs/practice/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/practice/AI-CONVENTIONS.adoc delete mode 100644 a2ml/pandoc/docs/practice/README.adoc delete mode 100644 a2ml/pandoc/docs/practice/STATE-VISUALIZER-GUIDE.adoc delete mode 100644 a2ml/pandoc/docs/reports/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/reports/README.adoc delete mode 100644 a2ml/pandoc/docs/reports/compliance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/reports/compliance/README.adoc delete mode 100644 a2ml/pandoc/docs/reports/maintenance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/reports/maintenance/README.adoc delete mode 100644 a2ml/pandoc/docs/reports/performance/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/reports/performance/README.adoc delete mode 100644 a2ml/pandoc/docs/reports/quality/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/reports/quality/README.adoc delete mode 100644 a2ml/pandoc/docs/reports/security/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/reports/security/README.adoc delete mode 100644 a2ml/pandoc/docs/standards/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/standards/README.adoc delete mode 100644 a2ml/pandoc/docs/templates/contractiles/README.adoc delete mode 100644 a2ml/pandoc/docs/templates/contractiles/dust/Dustfile.a2ml delete mode 100644 a2ml/pandoc/docs/templates/contractiles/intend/Intentfile.a2ml delete mode 100644 a2ml/pandoc/docs/templates/contractiles/must/Mustfile.a2ml delete mode 100644 a2ml/pandoc/docs/templates/contractiles/trust/Trustfile.a2ml delete mode 100644 a2ml/pandoc/docs/theory/.gitkeep delete mode 100644 a2ml/pandoc/docs/theory/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/theory/README.adoc delete mode 100644 a2ml/pandoc/docs/theory/computing/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/theory/computing/README.adoc delete mode 100644 a2ml/pandoc/docs/theory/formalisms/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/theory/formalisms/README.adoc delete mode 100644 a2ml/pandoc/docs/theory/mathematics/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/theory/mathematics/README.adoc delete mode 100644 a2ml/pandoc/docs/theory/ontologies/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/theory/ontologies/README.adoc delete mode 100644 a2ml/pandoc/docs/theory/other/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/theory/other/README.adoc delete mode 100644 a2ml/pandoc/docs/theory/socio-technical/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/theory/socio-technical/README.adoc delete mode 100644 a2ml/pandoc/docs/whitepapers/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/whitepapers/README.adoc delete mode 100644 a2ml/pandoc/docs/whitepapers/academic/.gitkeep delete mode 100644 a2ml/pandoc/docs/whitepapers/academic/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/whitepapers/academic/README.adoc delete mode 100644 a2ml/pandoc/docs/whitepapers/industry/.gitkeep delete mode 100644 a2ml/pandoc/docs/whitepapers/industry/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/whitepapers/industry/README.adoc delete mode 100644 a2ml/pandoc/docs/whitepapers/outreach/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/whitepapers/outreach/README.adoc delete mode 100644 a2ml/pandoc/docs/wikis/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/docs/wikis/README.adoc delete mode 100644 a2ml/pandoc/examples/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/examples/README.adoc delete mode 100644 a2ml/pandoc/examples/web-project-deno.json delete mode 100644 a2ml/pandoc/expected.a2ml delete mode 100644 a2ml/pandoc/expected.html delete mode 100644 a2ml/pandoc/features/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/features/README.adoc delete mode 100644 a2ml/pandoc/features/boj-server/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/features/boj-server/README.adoc delete mode 100644 a2ml/pandoc/features/panic-attacker/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/features/panic-attacker/README.adoc delete mode 100644 a2ml/pandoc/features/ssg/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/features/ssg/README.adoc delete mode 100755 a2ml/pandoc/features/ssg/ssg-bootstrap.sh delete mode 100644 a2ml/pandoc/pandoc-a2ml-scm-1.rockspec delete mode 100644 a2ml/pandoc/sample.a2ml delete mode 100644 a2ml/pandoc/src/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/src/README.adoc delete mode 100644 a2ml/pandoc/src/aspects/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/src/aspects/README.adoc delete mode 100644 a2ml/pandoc/src/aspects/integrity/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/src/aspects/integrity/README.adoc delete mode 100644 a2ml/pandoc/src/aspects/observability/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/src/aspects/observability/README.adoc delete mode 100644 a2ml/pandoc/src/aspects/security/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/src/aspects/security/README.adoc delete mode 100644 a2ml/pandoc/src/bridges/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/src/contracts/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/src/contracts/README.adoc delete mode 100644 a2ml/pandoc/src/core/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/src/definitions/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/src/definitions/README.adoc delete mode 100644 a2ml/pandoc/src/errors/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/src/errors/README.adoc delete mode 100644 a2ml/pandoc/src/interface/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/src/interface/README.adoc delete mode 100644 a2ml/pandoc/src/interface/abi/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/src/interface/abi/README.adoc delete mode 100644 a2ml/pandoc/src/interface/ffi/0.3-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/src/interface/ffi/README.adoc delete mode 100644 a2ml/pandoc/src/interface/ffi/build.zig delete mode 100644 a2ml/pandoc/src/interface/ffi/src/0.4-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/src/interface/ffi/src/README.adoc delete mode 100644 a2ml/pandoc/src/interface/ffi/src/main.zig delete mode 100644 a2ml/pandoc/src/interface/ffi/test/0.4-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/src/interface/ffi/test/README.adoc delete mode 100644 a2ml/pandoc/src/interface/ffi/test/integration_test.zig delete mode 100644 a2ml/pandoc/verification/0.1-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/verification/README.adoc delete mode 100644 a2ml/pandoc/verification/benchmarks/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/verification/benchmarks/README.adoc delete mode 100644 a2ml/pandoc/verification/coverage/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/verification/coverage/README.adoc delete mode 100644 a2ml/pandoc/verification/fuzzing/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/verification/fuzzing/README.adoc delete mode 100644 a2ml/pandoc/verification/proofs/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/verification/proofs/README.adoc delete mode 100644 a2ml/pandoc/verification/safety_case/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/verification/safety_case/README.adoc delete mode 100644 a2ml/pandoc/verification/simulations/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/verification/simulations/README.adoc delete mode 100644 a2ml/pandoc/verification/tests/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/verification/tests/README.adoc delete mode 100644 a2ml/pandoc/verification/traceability/0.2-AI-MANIFEST.a2ml delete mode 100644 a2ml/pandoc/verification/traceability/README.adoc delete mode 100644 a2ml/profiles/README.adoc delete mode 100644 a2ml/profiles/REGISTRY.a2ml delete mode 100644 a2ml/profiles/a2ml-agentic/PROFILE.a2ml delete mode 100644 a2ml/profiles/a2ml-anchor/PROFILE.a2ml delete mode 100644 a2ml/profiles/a2ml-ecosystem/PROFILE.a2ml delete mode 100644 a2ml/profiles/a2ml-meta/PROFILE.a2ml delete mode 100644 a2ml/profiles/a2ml-neurosym/PROFILE.a2ml delete mode 100644 a2ml/profiles/a2ml-playbook/PROFILE.a2ml delete mode 100644 a2ml/profiles/a2ml-state/PROFILE.a2ml delete mode 100644 a2ml/prototype/ada-tui/docs/README.adoc delete mode 100644 a2ml/prototype/ada-tui/src/core.adb delete mode 100644 a2ml/prototype/ada-tui/src/core.ads delete mode 100644 a2ml/prototype/ada-tui/src/main.adb delete mode 100644 a2ml/prototype/affinescript/README.adoc delete mode 100644 a2ml/prototype/affinescript/package.json delete mode 100644 a2ml/prototype/affinescript/src/A2ml.affine delete mode 100644 a2ml/prototype/affinescript/src/Cli.affine delete mode 100644 a2ml/prototype/affinescript/src/Compat.affine delete mode 100644 a2ml/prototype/affinescript/src/Demo.affine delete mode 100644 a2ml/prototype/affinescript/src/DumpAst.affine delete mode 100644 a2ml/prototype/affinescript/src/Json.affine delete mode 100644 a2ml/prototype/affinescript/src/RunReport.affine delete mode 100644 a2ml/prototype/affinescript/src/RunVectors.affine delete mode 100644 a2ml/prototype/affinescript/src/VectorReport.affine delete mode 100644 a2ml/prototype/affinescript/src/VectorRunner.affine delete mode 100644 a2ml/prototype/ddraig/DemoBuild.idr delete mode 100644 a2ml/prototype/ddraig/content/demo.adoc delete mode 100644 a2ml/prototype/wasm/README.adoc delete mode 100644 a2ml/prototype/wasm/fixtures/add.wat delete mode 100644 a2ml/prototype/wasm/src/WasmDemo.affine delete mode 100644 a2ml/repl/A2ML-REPL.idr delete mode 100755 a2ml/scripts/add-arxiv-badge.sh delete mode 100755 a2ml/scripts/build-demo-ddraig.sh delete mode 100755 a2ml/scripts/check-6scm.sh delete mode 100755 a2ml/scripts/contractiles-a2ml-emit.sh delete mode 100755 a2ml/scripts/contractiles-a2ml-test.sh delete mode 100644 a2ml/scripts/contractiles-a2ml-tool.js delete mode 100755 a2ml/scripts/contractiles-a2ml-validate.sh delete mode 100755 a2ml/scripts/contractiles-k9-validate.sh delete mode 100755 a2ml/scripts/deploy-site.sh delete mode 100755 a2ml/scripts/package-cli.sh delete mode 100644 a2ml/showcase/content/examples.adoc delete mode 100644 a2ml/showcase/content/getting-started.adoc delete mode 100644 a2ml/showcase/content/index.adoc delete mode 100644 a2ml/showcase/content/integrations.adoc delete mode 100644 a2ml/showcase/content/specification.adoc delete mode 100644 a2ml/showcase/output/examples.html delete mode 100644 a2ml/showcase/output/getting-started.html delete mode 100644 a2ml/showcase/output/index.html delete mode 100644 a2ml/showcase/output/integrations.html delete mode 100644 a2ml/showcase/output/specification.html delete mode 100644 a2ml/showcase/template.html delete mode 120000 a2ml/site/assets/style.css delete mode 100644 a2ml/site/downloads.adoc delete mode 100644 a2ml/site/index.adoc delete mode 100644 a2ml/site/public/.well-known/security.txt delete mode 100644 a2ml/site/public/CNAME delete mode 100644 a2ml/site/public/downloads/README.adoc delete mode 100644 a2ml/site/public/downloads/a2ml-templates.tar.gz delete mode 100644 a2ml/site/public/downloads/checked-example.a2ml delete mode 100644 a2ml/site/public/downloads/lax-example.a2ml delete mode 100644 a2ml/site/public/downloads/profile-example.a2ml delete mode 100644 a2ml/site/public/favicon.svg delete mode 100644 a2ml/site/public/robots.txt delete mode 100644 a2ml/site/roadmap.adoc delete mode 100644 a2ml/site/spec.adoc delete mode 100644 a2ml/site/start.adoc delete mode 120000 a2ml/site/templates/default.html delete mode 100644 a2ml/src/A2ML/BaseVocab.idr delete mode 100644 a2ml/src/A2ML/Converters.idr delete mode 100644 a2ml/src/A2ML/CoreTests.idr delete mode 100644 a2ml/src/A2ML/Parser.idr delete mode 100644 a2ml/src/A2ML/ParserTests.idr delete mode 100644 a2ml/src/A2ML/Profiles.idr delete mode 100644 a2ml/src/A2ML/Proofs.idr delete mode 100644 a2ml/src/A2ML/Surface.idr delete mode 100644 a2ml/src/A2ML/Tests.idr delete mode 100644 a2ml/src/A2ML/Translator.idr delete mode 100644 a2ml/src/A2ML/TypedCore.idr delete mode 100644 a2ml/test.a2ml delete mode 100644 a2ml/tests/contractiles/expected/dustfile.json delete mode 100644 a2ml/tests/contractiles/expected/intentfile.json delete mode 100644 a2ml/tests/contractiles/expected/mustfile.json delete mode 100644 a2ml/tests/contractiles/expected/trustfile.json delete mode 100644 a2ml/tests/contractiles/fixtures/Dustfile.a2ml delete mode 100644 a2ml/tests/contractiles/fixtures/Intentfile.a2ml delete mode 100644 a2ml/tests/contractiles/fixtures/Mustfile.a2ml delete mode 100644 a2ml/tests/contractiles/fixtures/Trustfile.a2ml delete mode 100644 a2ml/tests/contractiles/fixtures/invalid-dustfile.a2ml delete mode 100644 a2ml/tests/contractiles/fixtures/invalid-intentfile.a2ml delete mode 100644 a2ml/tests/contractiles/fixtures/invalid-mustfile.a2ml delete mode 100644 a2ml/tests/contractiles/fixtures/invalid-trustfile.a2ml delete mode 100644 a2ml/tests/record-dialect/MANIFEST.a2ml delete mode 100644 a2ml/tests/record-dialect/README.adoc delete mode 100644 a2ml/tests/record-dialect/vectors/invalid/bare-string-value.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/invalid/duplicate-key.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/invalid/hex-integer.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/invalid/leading-dot-float.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/invalid/native-date.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/invalid/profile-after-section.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/invalid/reopened-section.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/invalid/single-quoted-string.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/invalid/state-missing-required-section.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/invalid/triple-single-quote.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/invalid/unknown-directive.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/invalid/unterminated-string.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/valid/all-scalar-forms.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/valid/array-of-tables.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/valid/arrays-and-inline-tables.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/valid/comments-and-preamble.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/valid/dotted-sections.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/valid/minimal.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/valid/quoted-keys.a2ml delete mode 100644 a2ml/tests/record-dialect/vectors/valid/state-profile.a2ml delete mode 100644 a2ml/tests/vectors/directive-attrs.a2ml delete mode 100644 a2ml/tests/vectors/directive-attrs.expected delete mode 100644 a2ml/tests/vectors/directive-attrs.html.expected delete mode 100644 a2ml/tests/vectors/inline-edges.a2ml delete mode 100644 a2ml/tests/vectors/inline-edges.expected delete mode 100644 a2ml/tests/vectors/inline-edges.html.expected delete mode 100644 a2ml/tests/vectors/inline-formatting.a2ml delete mode 100644 a2ml/tests/vectors/inline-formatting.expected delete mode 100644 a2ml/tests/vectors/inline-formatting.html.expected delete mode 100644 a2ml/tests/vectors/module0-basic.a2ml delete mode 100644 a2ml/tests/vectors/module0-basic.expected delete mode 100644 a2ml/tests/vectors/module0-basic.html.expected delete mode 100644 a2ml/tests/vectors/opaque-roundtrip.a2ml delete mode 100644 a2ml/tests/vectors/opaque-roundtrip.expected delete mode 100644 a2ml/tests/vectors/opaque-roundtrip.html.expected delete mode 100644 a2ml/tests/vectors/refs-basic.a2ml delete mode 100644 a2ml/tests/vectors/refs-basic.expected delete mode 100644 a2ml/tests/vectors/refs-basic.html.expected delete mode 100644 a2ml/tests/vectors/refs-missing.a2ml delete mode 100644 a2ml/tests/vectors/refs-missing.expected delete mode 100644 a2ml/tests/vectors/table-basic.a2ml delete mode 100644 a2ml/tests/vectors/table-basic.expected delete mode 100644 a2ml/tests/vectors/table-basic.html.expected delete mode 100644 lol/.claude/CLAUDE.md delete mode 100644 lol/.editorconfig delete mode 100644 lol/.gitattributes delete mode 100644 lol/.github/FUNDING.yml delete mode 100644 lol/.github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 lol/.github/ISSUE_TEMPLATE/custom.md delete mode 100644 lol/.github/ISSUE_TEMPLATE/documentation.md delete mode 100644 lol/.github/ISSUE_TEMPLATE/feature_request.md delete mode 100644 lol/.github/ISSUE_TEMPLATE/question.md delete mode 100644 lol/.github/dependabot.yml delete mode 100644 lol/.github/workflows/codeql.yml delete mode 100644 lol/.github/workflows/comprehensive-quality.yml delete mode 100644 lol/.github/workflows/governance.yml delete mode 100644 lol/.github/workflows/hypatia-scan.yml delete mode 100644 lol/.github/workflows/jekyll-gh-pages.yml delete mode 100644 lol/.github/workflows/mirror.yml delete mode 100644 lol/.github/workflows/rescript-deno-ci.yml delete mode 100644 lol/.github/workflows/scorecard-enforcer.yml delete mode 100644 lol/.github/workflows/scorecard.yml delete mode 100644 lol/.github/workflows/secret-scanner.yml delete mode 100644 lol/.gitignore delete mode 100644 lol/.gitlab-ci.yml delete mode 100644 lol/.machine_readable/descriptiles/AGENTIC.a2ml delete mode 100644 lol/.machine_readable/descriptiles/ECOSYSTEM.a2ml delete mode 100644 lol/.machine_readable/descriptiles/META.a2ml delete mode 100644 lol/.machine_readable/descriptiles/NEUROSYM.a2ml delete mode 100644 lol/.machine_readable/descriptiles/PLAYBOOK.a2ml delete mode 100644 lol/.machine_readable/descriptiles/STATE.a2ml delete mode 100644 lol/.nojekyll delete mode 100644 lol/0-AI-MANIFEST.a2ml delete mode 100644 lol/ABI-FFI-README.adoc delete mode 100644 lol/CHANGELOG.adoc delete mode 100644 lol/CODE_OF_CONDUCT.adoc delete mode 100644 lol/CONTRIBUTING.adoc delete mode 100644 lol/Containerfile delete mode 100644 lol/FUTURE.adoc delete mode 100644 lol/Justfile delete mode 100644 lol/LICENSE delete mode 100644 lol/MAINTAINERS.adoc delete mode 100644 lol/Mustfile delete mode 100644 lol/README.adoc delete mode 100644 lol/SECURITY.adoc delete mode 100644 lol/analysis/Project.toml delete mode 100644 lol/analysis/src/LolAnalysis.jl delete mode 100644 lol/analysis/src/corpus_stats.jl delete mode 100644 lol/analysis/src/frequency_analysis.jl delete mode 100644 lol/analysis/src/language_distance.jl delete mode 100644 lol/analysis/src/phylogenetic.jl delete mode 100644 lol/analysis/src/quality_assessment.jl delete mode 100644 lol/analysis/src/server.jl delete mode 100644 lol/analysis/src/zero_frequency.jl delete mode 100644 lol/analysis/test/runtests.jl delete mode 100644 lol/api/zig-gateway/build.zig delete mode 100644 lol/api/zig-gateway/src/lol_ffi.zig delete mode 100644 lol/api/zig-gateway/src/main.zig delete mode 100644 lol/api/zig-gateway/src/types.zig delete mode 100644 lol/biome.json delete mode 100644 lol/config/main.ncl delete mode 100644 lol/contractiles/README.adoc delete mode 100644 lol/contractiles/dust/Dustfile delete mode 100644 lol/contractiles/must/Mustfile delete mode 100644 lol/docs/CITATIONS.adoc delete mode 100644 lol/eclexiaiser.toml delete mode 100644 lol/ffi/zig/build.zig delete mode 100644 lol/ffi/zig/src/ffi.zig delete mode 100644 lol/ffi/zig/src/locale.zig delete mode 100644 lol/ffi/zig/src/main.zig delete mode 100644 lol/ffi/zig/src/plural.zig delete mode 100644 lol/ffi/zig/src/store.zig delete mode 100644 lol/ffi/zig/test/integration_test.zig delete mode 100644 lol/generated/abi/lol.h delete mode 100644 lol/lib/rescript.lock delete mode 100644 lol/lol-abi.ipkg delete mode 100644 lol/manifest.scm delete mode 100755 lol/meta/ISO639-3.tsv delete mode 100755 lol/meta/api_volumes.txt delete mode 100755 lol/meta/biblecom.tsv delete mode 100755 lol/meta/bibles_list.html delete mode 100755 lol/meta/books2numbers.txt delete mode 100644 lol/meta/ebible.html delete mode 100755 lol/meta/flags/ad.png delete mode 100755 lol/meta/flags/ae.png delete mode 100755 lol/meta/flags/af.png delete mode 100755 lol/meta/flags/ag.png delete mode 100755 lol/meta/flags/al.png delete mode 100755 lol/meta/flags/am.png delete mode 100755 lol/meta/flags/ao.png delete mode 100755 lol/meta/flags/ar.png delete mode 100755 lol/meta/flags/at.png delete mode 100755 lol/meta/flags/au.png delete mode 100755 lol/meta/flags/az.png delete mode 100755 lol/meta/flags/ba.png delete mode 100755 lol/meta/flags/bb.png delete mode 100755 lol/meta/flags/bd.png delete mode 100755 lol/meta/flags/be.png delete mode 100755 lol/meta/flags/bf.png delete mode 100755 lol/meta/flags/bg.png delete mode 100755 lol/meta/flags/bh.png delete mode 100755 lol/meta/flags/bi.png delete mode 100755 lol/meta/flags/bj.png delete mode 100755 lol/meta/flags/bn.png delete mode 100755 lol/meta/flags/bo.png delete mode 100755 lol/meta/flags/br.png delete mode 100755 lol/meta/flags/bs.png delete mode 100755 lol/meta/flags/bt.png delete mode 100755 lol/meta/flags/bw.png delete mode 100755 lol/meta/flags/by.png delete mode 100755 lol/meta/flags/bz.png delete mode 100755 lol/meta/flags/ca.png delete mode 100755 lol/meta/flags/cd.png delete mode 100755 lol/meta/flags/cf.png delete mode 100755 lol/meta/flags/cg.png delete mode 100755 lol/meta/flags/ch.png delete mode 100755 lol/meta/flags/ci.png delete mode 100755 lol/meta/flags/cl.png delete mode 100755 lol/meta/flags/cm.png delete mode 100755 lol/meta/flags/cn.png delete mode 100755 lol/meta/flags/co.png delete mode 100755 lol/meta/flags/cr.png delete mode 100755 lol/meta/flags/cu.png delete mode 100755 lol/meta/flags/cv.png delete mode 100755 lol/meta/flags/cy.png delete mode 100755 lol/meta/flags/cz.png delete mode 100755 lol/meta/flags/de.png delete mode 100755 lol/meta/flags/dj.png delete mode 100755 lol/meta/flags/dk.png delete mode 100755 lol/meta/flags/dm.png delete mode 100755 lol/meta/flags/do.png delete mode 100755 lol/meta/flags/dz.png delete mode 100755 lol/meta/flags/ec.png delete mode 100755 lol/meta/flags/ee.png delete mode 100755 lol/meta/flags/eg.png delete mode 100755 lol/meta/flags/eh.png delete mode 100755 lol/meta/flags/er.png delete mode 100755 lol/meta/flags/es.png delete mode 100755 lol/meta/flags/et.png delete mode 100755 lol/meta/flags/fi.png delete mode 100755 lol/meta/flags/fj.png delete mode 100755 lol/meta/flags/fm.png delete mode 100755 lol/meta/flags/fr.png delete mode 100755 lol/meta/flags/ga.png delete mode 100755 lol/meta/flags/gb.png delete mode 100755 lol/meta/flags/gd.png delete mode 100755 lol/meta/flags/ge.png delete mode 100755 lol/meta/flags/gh.png delete mode 100755 lol/meta/flags/gm.png delete mode 100755 lol/meta/flags/gn.png delete mode 100755 lol/meta/flags/gq.png delete mode 100755 lol/meta/flags/gr.png delete mode 100755 lol/meta/flags/gt.png delete mode 100755 lol/meta/flags/gw.png delete mode 100755 lol/meta/flags/gy.png delete mode 100755 lol/meta/flags/hn.png delete mode 100755 lol/meta/flags/hr.png delete mode 100755 lol/meta/flags/ht.png delete mode 100755 lol/meta/flags/hu.png delete mode 100755 lol/meta/flags/id.png delete mode 100755 lol/meta/flags/ie.png delete mode 100755 lol/meta/flags/il.png delete mode 100755 lol/meta/flags/in.png delete mode 100755 lol/meta/flags/iq.png delete mode 100755 lol/meta/flags/ir.png delete mode 100755 lol/meta/flags/is.png delete mode 100755 lol/meta/flags/it.png delete mode 100755 lol/meta/flags/jm.png delete mode 100755 lol/meta/flags/jo.png delete mode 100755 lol/meta/flags/jp.png delete mode 100755 lol/meta/flags/ke.png delete mode 100755 lol/meta/flags/kg.png delete mode 100755 lol/meta/flags/kh.png delete mode 100755 lol/meta/flags/ki.png delete mode 100755 lol/meta/flags/km.png delete mode 100755 lol/meta/flags/kn.png delete mode 100755 lol/meta/flags/kp.png delete mode 100755 lol/meta/flags/kr.png delete mode 100755 lol/meta/flags/ks.png delete mode 100755 lol/meta/flags/kw.png delete mode 100755 lol/meta/flags/kz.png delete mode 100755 lol/meta/flags/la.png delete mode 100755 lol/meta/flags/lb.png delete mode 100755 lol/meta/flags/lc.png delete mode 100755 lol/meta/flags/li.png delete mode 100755 lol/meta/flags/lk.png delete mode 100755 lol/meta/flags/lr.png delete mode 100755 lol/meta/flags/ls.png delete mode 100755 lol/meta/flags/lt.png delete mode 100755 lol/meta/flags/lu.png delete mode 100755 lol/meta/flags/lv.png delete mode 100755 lol/meta/flags/ly.png delete mode 100755 lol/meta/flags/ma.png delete mode 100755 lol/meta/flags/mc.png delete mode 100755 lol/meta/flags/md.png delete mode 100755 lol/meta/flags/me.png delete mode 100755 lol/meta/flags/mg.png delete mode 100755 lol/meta/flags/mh.png delete mode 100755 lol/meta/flags/mk.png delete mode 100755 lol/meta/flags/ml.png delete mode 100755 lol/meta/flags/mm.png delete mode 100755 lol/meta/flags/mn.png delete mode 100755 lol/meta/flags/mr.png delete mode 100755 lol/meta/flags/mt.png delete mode 100755 lol/meta/flags/mu.png delete mode 100755 lol/meta/flags/mv.png delete mode 100755 lol/meta/flags/mw.png delete mode 100755 lol/meta/flags/mx.png delete mode 100755 lol/meta/flags/my.png delete mode 100755 lol/meta/flags/mz.png delete mode 100755 lol/meta/flags/na.png delete mode 100755 lol/meta/flags/ne.png delete mode 100755 lol/meta/flags/ng.png delete mode 100755 lol/meta/flags/ni.png delete mode 100755 lol/meta/flags/nl.png delete mode 100755 lol/meta/flags/no.png delete mode 100755 lol/meta/flags/np.png delete mode 100755 lol/meta/flags/nr.png delete mode 100755 lol/meta/flags/nz.png delete mode 100755 lol/meta/flags/om.png delete mode 100755 lol/meta/flags/pa.png delete mode 100755 lol/meta/flags/pe.png delete mode 100755 lol/meta/flags/pg.png delete mode 100755 lol/meta/flags/ph.png delete mode 100755 lol/meta/flags/pk.png delete mode 100755 lol/meta/flags/pl.png delete mode 100755 lol/meta/flags/pt.png delete mode 100755 lol/meta/flags/pw.png delete mode 100755 lol/meta/flags/py.png delete mode 100755 lol/meta/flags/qa.png delete mode 100755 lol/meta/flags/ro.png delete mode 100755 lol/meta/flags/rs.png delete mode 100755 lol/meta/flags/ru.png delete mode 100755 lol/meta/flags/rw.png delete mode 100755 lol/meta/flags/sa.png delete mode 100755 lol/meta/flags/sb.png delete mode 100755 lol/meta/flags/sc.png delete mode 100755 lol/meta/flags/sd.png delete mode 100755 lol/meta/flags/se.png delete mode 100755 lol/meta/flags/sg.png delete mode 100755 lol/meta/flags/si.png delete mode 100755 lol/meta/flags/sk.png delete mode 100755 lol/meta/flags/sl.png delete mode 100755 lol/meta/flags/sm.png delete mode 100755 lol/meta/flags/sn.png delete mode 100755 lol/meta/flags/so.png delete mode 100755 lol/meta/flags/sr.png delete mode 100755 lol/meta/flags/st.png delete mode 100755 lol/meta/flags/sv.png delete mode 100755 lol/meta/flags/sy.png delete mode 100755 lol/meta/flags/sz.png delete mode 100755 lol/meta/flags/td.png delete mode 100755 lol/meta/flags/tg.png delete mode 100755 lol/meta/flags/th.png delete mode 100755 lol/meta/flags/tj.png delete mode 100755 lol/meta/flags/tl.png delete mode 100755 lol/meta/flags/tm.png delete mode 100755 lol/meta/flags/tn.png delete mode 100755 lol/meta/flags/to.png delete mode 100755 lol/meta/flags/tr.png delete mode 100755 lol/meta/flags/tt.png delete mode 100755 lol/meta/flags/tv.png delete mode 100755 lol/meta/flags/tw.png delete mode 100755 lol/meta/flags/tz.png delete mode 100755 lol/meta/flags/ua.png delete mode 100755 lol/meta/flags/ug.png delete mode 100755 lol/meta/flags/us.png delete mode 100755 lol/meta/flags/uy.png delete mode 100755 lol/meta/flags/uz.png delete mode 100755 lol/meta/flags/va.png delete mode 100755 lol/meta/flags/vc.png delete mode 100755 lol/meta/flags/ve.png delete mode 100755 lol/meta/flags/vn.png delete mode 100755 lol/meta/flags/vu.png delete mode 100755 lol/meta/flags/ws.png delete mode 100755 lol/meta/flags/ye.png delete mode 100755 lol/meta/flags/za.png delete mode 100755 lol/meta/flags/zm.png delete mode 100755 lol/meta/flags/zw.png delete mode 100755 lol/meta/massive_par_stat.tsv delete mode 100755 lol/meta/pngscript_filenames.txt delete mode 100644 lol/orchestrator/config/config.exs delete mode 100644 lol/orchestrator/config/dev.exs delete mode 100644 lol/orchestrator/config/prod.exs delete mode 100644 lol/orchestrator/config/runtime.exs delete mode 100644 lol/orchestrator/config/test.exs delete mode 100644 lol/orchestrator/lib/lol.ex delete mode 100644 lol/orchestrator/lib/lol/corpus_aggregator.ex delete mode 100644 lol/orchestrator/lib/lol/crawler_supervisor.ex delete mode 100644 lol/orchestrator/lib/lol/crawler_worker.ex delete mode 100644 lol/orchestrator/lib/lol/julia_bridge.ex delete mode 100644 lol/orchestrator/lib/lol/rate_limiter.ex delete mode 100644 lol/orchestrator/lib/lol/source_registry.ex delete mode 100644 lol/orchestrator/lib/lol/verisimdb_reporter.ex delete mode 100644 lol/orchestrator/mix.exs delete mode 100644 lol/orchestrator/test/crawler_worker_test.exs delete mode 100644 lol/orchestrator/test/rate_limiter_test.exs delete mode 100644 lol/orchestrator/test/test_helper.exs delete mode 100644 lol/package.json delete mode 100644 lol/proofs/POSTULATE-AUDIT.adoc delete mode 100644 lol/proofs/README.adoc delete mode 100644 lol/proofs/echidna.toml delete mode 100644 lol/proofs/specs/alignment.spec delete mode 100644 lol/proofs/specs/iso639.spec delete mode 100644 lol/proofs/specs/statistics.spec delete mode 100644 lol/proofs/theories/information_theory.agda delete mode 100755 lol/scripts/verisimdb-ingest.sh delete mode 100644 lol/src/Lang1000.affine delete mode 100644 lol/src/Lol/ABI/Foreign.idr delete mode 100644 lol/src/Lol/ABI/I18nStore.idr delete mode 100644 lol/src/Lol/ABI/Layout.idr delete mode 100644 lol/src/Lol/ABI/Locale.idr delete mode 100644 lol/src/Lol/ABI/PluralForm.idr delete mode 100644 lol/src/Lol/ABI/TranslationKey.idr delete mode 100644 lol/src/Lol/ABI/Types.idr delete mode 100644 lol/src/abi/Foreign.idr delete mode 100644 lol/src/abi/I18nStore.idr delete mode 100644 lol/src/abi/Layout.idr delete mode 100644 lol/src/abi/Locale.idr delete mode 100644 lol/src/abi/PluralForm.idr delete mode 100644 lol/src/abi/TranslationKey.idr delete mode 100644 lol/src/abi/Types.idr delete mode 100644 lol/src/api/DigitalBiblePlatform.affine delete mode 100644 lol/src/crawlers/BibleCloud.affine delete mode 100644 lol/src/crawlers/BibleCom.affine delete mode 100644 lol/src/crawlers/Crawler.affine delete mode 100644 lol/src/crawlers/EBible.affine delete mode 100644 lol/src/crawlers/FindBible.affine delete mode 100644 lol/src/crawlers/PngScriptures.affine delete mode 100644 lol/src/cyc/OpenCyc.affine delete mode 100644 lol/src/utils/Http.affine delete mode 100644 lol/src/utils/Iso639.affine delete mode 100644 lol/src/utils/Statistics.affine delete mode 100644 lol/src/verisimdb/CorpusAnalyzer.affine delete mode 100644 lol/src/verisimdb/Export.affine delete mode 100644 lol/src/verisimdb/VeriSimDB.affine delete mode 100644 lol/test/Lang1000_test.affine delete mode 100644 lol/test/Vitest.affine delete mode 100644 lol/test/crawlers/Crawler_test.affine delete mode 100644 lol/test/utils/Iso639_test.affine delete mode 100644 lol/test/utils/Statistics_test.affine delete mode 100644 lol/test/vitest.config.affine diff --git a/.machine_readable/REGISTRY.a2ml b/.machine_readable/REGISTRY.a2ml index 5f85fca17..830d537d0 100644 --- a/.machine_readable/REGISTRY.a2ml +++ b/.machine_readable/REGISTRY.a2ml @@ -39,15 +39,6 @@ canonical_doc = "constitution/README.adoc" source_hash = "sha256:7fbd1015a184d33391957e73f6348c7409b6298e15ef9c8bcd26bf1a6fd7d739" route = "the highest estate-level rules, authority precedence, assurance, contribution, exceptions, and known tensions" -[[spec]] -id = "a2ml" -name = "A2ML — Attested Markup Language" -stream = "foundation" -home = "a2ml/" -canonical_doc = "a2ml/README.adoc" -source_hash = "sha256:0a1d767bef0a5eb5c9483598d92d12d998e7544a71ee1683be6938bdf346cd66" -route = "the typed/verified machine-readable document format" - [[spec]] id = "k9-svc" name = "K9 Self-Validating Components" @@ -135,7 +126,7 @@ name = "0-AI Gatekeeper Protocol" stream = "protocol" home = "0-ai-gatekeeper-protocol/" canonical_doc = "0-ai-gatekeeper-protocol/README.adoc" -source_hash = "sha256:6098f922fe32867a903871fd8436a5126553673704870e3fd011b4609e568684" +source_hash = "sha256:33dbf3f5e2a265af2e826dc22de045e9d9b846312a4c53da64ea753775b7e641" route = "the AI-agent entry/gating protocol behind 0-AI-MANIFEST" [[spec]] @@ -346,6 +337,24 @@ media_type = "application/vnd.affinescript.affmap" lineage = "affinescript:affmap@2" route = "provenance format; own pointer for independent staleness tracking" +[[spec]] +id = "a2ml" +name = "A2ML — Attested Markup Language" +stream = "foundation" +kind = "external" +spec_kind = "format-coupled" +owning_repo = "hyperpolymath/a2ml" +canonical_url = "https://github.com/hyperpolymath/a2ml/blob/main/README.adoc" +version_pin = "v1.0.0" +source_hash = "PENDING-FIRST-SYNC" +source_hash_algo = "sha256" +conformance_level = "draft" +last_synced = "never" +sync_status = "awaiting-upstream" +media_type = "application/vnd.a2ml" +lineage = "a2ml:a2ml@1" +route = "the typed/verified machine-readable document format; evicted from standards 2026-08-28 per #490" + [[spec]] id = "consent-aware-web" name = "Consent-Aware Web (AIBDP + HTTP 430)" diff --git a/.machine_readable/scorecards/0-ai-gatekeeper-protocol.scorecard.a2ml b/.machine_readable/scorecards/0-ai-gatekeeper-protocol.scorecard.a2ml index 4981f53cf..f785f66c9 100644 --- a/.machine_readable/scorecards/0-ai-gatekeeper-protocol.scorecard.a2ml +++ b/.machine_readable/scorecards/0-ai-gatekeeper-protocol.scorecard.a2ml @@ -38,10 +38,9 @@ effects = "/home/user/standards/0-ai-gatekeeper-protocol/.machine_readable/6a2/S [[must]] id = "M4" text = "Core manifest-parsing/session/guard logic (as implemented for FFI/offline consumption) MUST have an automated test suite that passes." -system = "cargo test --manifest-path repo-guardian-fs/tests-offline/Cargo.toml (Rust unit tests for manifest parsing, session management, and path-guard invariant enforcement)" -status = "pass" +system = "none in this repo — repo-guardian-fs moved to hyperpolymath/repo-guardian per standards#492 (2026-08-28). Previously verified by: cargo test --manifest-path repo-guardian-fs/tests-offline/Cargo.toml (Rust unit tests for manifest parsing, session management, and path-guard invariant enforcement)." +status = "manual-only" evidence = "Ran `cargo test` in /home/user/standards/0-ai-gatekeeper-protocol/repo-guardian-fs/tests-offline: 29 passed; 0 failed (manifest hashing, canonical-location extraction, invariant detection, session ack/expiry, path-traversal/SCM-duplication guard tests, and a dogfood test parsing the repo's real 0-AI-MANIFEST.a2ml)." -check = "cargo test --manifest-path 0-ai-gatekeeper-protocol/repo-guardian-fs/tests-offline/Cargo.toml" effects = "If these regress, any FFI/native consumer (e.g. Zig bindings, future editor plugins) linking against this logic would silently mis-enforce or fail to enforce invariants." [[must]] diff --git a/.machine_readable/scorecards/a2ml.scorecard.a2ml b/.machine_readable/scorecards/a2ml.scorecard.a2ml deleted file mode 100644 index c42eca1ba..000000000 --- a/.machine_readable/scorecards/a2ml.scorecard.a2ml +++ /dev/null @@ -1,121 +0,0 @@ -# SPDX-License-Identifier: CC-BY-SA-4.0 -# a2ml.scorecard.a2ml -# Hand-authored source. Regenerate the dashboard with: just scorecards -# Schema: .machine_readable/scorecards/scorecard.schema.json - -[scorecard] -spec_id = "a2ml" -version = "1.0.0" -assessed_date = "2026-07-03" -assessor = "estate-audit" - -[[must]] -id = "M1" -text = "The A2ML surface grammar MUST be normatively specified so that conforming parsers can be built against a single source of truth." -system = "/home/user/standards/a2ml/SPEC.adoc (29KB normative spec, v1.1.0) plus /home/user/standards/a2ml/docs/GRAMMAR.adoc" -status = "pass" -evidence = "SPEC.adoc exists at repo root (29183 bytes) as the current normative spec per README.adoc, with docs/GRAMMAR.adoc as grammar appendix; VERSIONS.adoc documents the spec lineage across v0.1.0-v1.1.0." -check = "test -f a2ml/SPEC.adoc && test -f a2ml/docs/GRAMMAR.adoc && grep -q 'normative' a2ml/SPEC.adoc" -effects = "Downstream language bindings (rust/elixir/gleam/haskell/deno) and the Idris2 reference parser all depend on this text as their shared contract; ambiguity here would fork implementations." - -[[must]] -id = "M2" -text = "A parser conformance test suite (test vectors with expected outputs) MUST exist and be runnable to validate that implementations parse Module 0 syntax and preserve opaque payloads correctly." -system = "/home/user/standards/a2ml/tests/vectors/*.a2ml + *.expected + *.html.expected (8 vector pairs); described in docs/CONFORMANCE.adoc" -status = "pass" -evidence = "tests/vectors/ contains 8 input/.expected pairs (module0-basic, refs-basic, refs-missing, inline-formatting, inline-edges, opaque-roundtrip, directive-attrs, table-basic) matching the vector list enumerated in docs/CONFORMANCE.adoc." -check = "test $(ls a2ml/tests/vectors/*.a2ml | wc -l) -eq 8 && test $(ls a2ml/tests/vectors/*.expected | grep -v html.expected | wc -l) -eq 8" -effects = "Without these vectors, the 6 language bindings and reference Idris2/ReScript parsers would have no shared ground truth for interop, risking silent divergence." - -[[must]] -id = "M3" -text = "CI MUST validate every *.a2ml file in the repository on push/PR to catch malformed manifests before merge." -system = ".github/workflows/a2ml-validation.yml job 'validate-a2ml' (builds Idris2 CLI, runs `a2ml validate` over every found *.a2ml file)" -status = "pass" -evidence = ".github/workflows/a2ml-validation.yml triggers on push/PR touching **.a2ml, cli/**, src/A2ML/**, builds the CLI via cli/build.sh and runs `find . -name '*.a2ml' | ... a2ml validate` failing the job (exit 1) on any validation failure." -check = "test -f a2ml/.github/workflows/a2ml-validation.yml && grep -q 'find . -name \"\\*.a2ml\"' a2ml/.github/workflows/a2ml-validation.yml && grep -q 'push:' a2ml/.github/workflows/a2ml-validation.yml && grep -q 'pull_request:' a2ml/.github/workflows/a2ml-validation.yml" -effects = "Prevents malformed .a2ml manifests (README.a2ml, SPEC.adoc-derived, docs/IANA-MEDIA-TYPE.a2ml) from being merged, which would break consumers of dogfood-gate across the 105+ dependent repos noted in READINESS.md." - -[[must]] -id = "M4" -text = "The reference Idris2 parser/typed-core MUST type-check in CI on every push/PR to main/master." -system = ".github/workflows/idris2-tests.yml (installs Idris2 0.7.0, runs `idris2 --check` on A2ML/Parser.idr and A2ML/TypedCore.idr)" -status = "pass" -evidence = "idris2-tests.yml pinned to Idris2 v0.7.0 release tarball, runs `idris2 --check --source-dir . A2ML/Parser.idr` and `A2ML/TypedCore.idr` on every push/PR to main/master." -check = "test -f a2ml/.github/workflows/idris2-tests.yml && grep -q 'idris2 --check --source-dir . A2ML/Parser.idr' a2ml/.github/workflows/idris2-tests.yml && grep -q 'idris2 --check --source-dir . A2ML/TypedCore.idr' a2ml/.github/workflows/idris2-tests.yml && grep -q 'branches: \\[main, master\\]' a2ml/.github/workflows/idris2-tests.yml" -effects = "A broken reference implementation would invalidate the typed-core guarantees (attested conformance level) that all downstream bindings claim to implement." - -[[must]] -id = "M5" -text = "Licence and SPDX identifiers MUST be present and correct on spec/source files (dual-licence: content under CC-BY-SA-4.0, code under PMPL/MPL as applicable)." -system = "none (manual/governance review of SPDX-License-Identifier headers; LICENSE + LICENSES/PMPL-1.0.txt present but no automated SPDX-header-checker CI job found in this repo's workflows)" -status = "manual-only" -effects = "Incorrect or missing SPDX headers create licence-compliance risk for every downstream consumer (6 language bindings, pandoc filter, contractiles) that redistributes or vendors A2ML spec/code." - -[[should]] -id = "S1" -text = "Each of the six language implementations (Rust, Elixir, Gleam, Haskell, Deno, and the Idris2/ReScript prototype) SHOULD have an automated test suite exercised in CI." -system = "bindings/rust/tests/crg_c_tests.rs (36 test fns) + src/parser.rs (8) + src/renderer.rs (3); bindings/elixir/test/a2_ml_test.exs; bindings/gleam/test/a2ml_gleam_test.gleam; .github/workflows/rescript-tests.yml; idris2-tests.yml" -status = "pass" -evidence = "bindings/rust/tests/crg_c_tests.rs contains 36 #[test] functions plus 11 more in src/parser.rs and src/renderer.rs; bindings/elixir/test/ and bindings/gleam/test/ contain dedicated test files; rescript-tests.yml and idris2-tests.yml run in CI for the ReScript/Idris2 reference stack. No Haskell/Deno test files were found under bindings/haskell or bindings/deno, so this is a partial pass across the 6 targets." -check = "test $(grep -c '#\\[test\\]' a2ml/bindings/rust/tests/crg_c_tests.rs) -ge 30 && test -f a2ml/bindings/elixir/test/a2_ml_test.exs && test -f a2ml/bindings/gleam/test/a2ml_gleam_test.gleam && test -f a2ml/.github/workflows/rescript-tests.yml && test -f a2ml/.github/workflows/idris2-tests.yml" -effects = "Untested bindings (Haskell, Deno) risk silent behavioral drift from the reference parser, which could break the Haskell/Deno-consuming repos (a2ml-haskell, scaffoldia, idaptik, nafa-app per READINESS.md) without CI catching it." - -[[should]] -id = "S2" -text = "The repo-level `just test` / `just lint` recipes SHOULD actually invoke the underlying per-language test/lint tools rather than being placeholders." -system = "Justfile `test:` and `lint:` recipes (lines ~91-107, ~128-131)" -status = "fail" -evidence = "none" -effects = "Contributors following README/READINESS.md's documented `just test` / `just lint` recipes get a silent no-op rather than real verification, undermining the 'just test / just build' recipes advertised in READINESS.md. Justfile 'test' recipe body is literally '# TODO: Add test command' with commented-out cargo test/npm test/mix test hints; 'lint' recipe is '# TODO: Add lint command'." - -[[should]] -id = "S3" -text = "Fuzz testing of the parser SHOULD run on a recurring schedule to catch crashes/panics on malformed input." -system = ".github/workflows/fuzzing.yml (weekly cron '0 0 * * 0' + push/PR, builds ReScript parser and generates fuzz inputs)" -status = "pass" -evidence = "fuzzing.yml is scheduled weekly (cron: '0 0 * * 0') in addition to push/PR triggers, and builds the ReScript prototype parser to generate/execute fuzz inputs." -check = "test -f a2ml/.github/workflows/fuzzing.yml && grep -q \"cron: '0 0 \\* \\* 0'\" a2ml/.github/workflows/fuzzing.yml" -effects = "Without scheduled fuzzing, parser crashes on malformed/adversarial input (a security and robustness concern for any tool ingesting untrusted .a2ml files) would only surface reactively rather than proactively." - -[[should]] -id = "S4" -text = "Secrets SHOULD be scanned on every push/PR to prevent credential leaks." -system = ".github/workflows/secret-scanner.yml (Gitleaks + rust/shell secret jobs)" -status = "pass" -evidence = "secret-scanner.yml runs gitleaks/gitleaks-action plus rust-secrets and shell-secrets jobs on pull_request and push to main. TruffleHog was retired as redundant to the pinned gitleaks gate (#507/#525)." -check = "test -f a2ml/.github/workflows/secret-scanner.yml && grep -qE 'gitleaks/gitleaks-action|secret-scanner-reusable' a2ml/.github/workflows/secret-scanner.yml" -effects = "Prevents accidental credential leakage into repo history, which would otherwise require costly rotation/remediation across the hyperpolymath estate." - -[[should]] -id = "S5" -text = "The internal .machine_readable/6scm legacy mirror SHOULD be kept honest (never silently green) as metadata migrates to the 6a2/descriptiles format." -system = "scripts/check-6scm.sh (byte-diff of .machine_readable/*.scm vs .machine_readable/6scm/*.scm, with explicit DRIFT/OBSOLETE states)" -status = "pass" -evidence = "scripts/check-6scm.sh explicitly implements 3 states (in-sync, obsolete no-op, DRIFT) rather than a blanket success, per its own header comment referencing 'kill the false green' remediation; this repo currently has no .scm sources so it correctly exits 0 as 'OBSOLETE (no-op)' rather than falsely claiming sync." -check = "bash a2ml/scripts/check-6scm.sh" -effects = "Prevents a false-green validator from masking real drift between legacy .scm descriptor sources and their mirror, which would otherwise mislead any tooling still reading the legacy 6scm path." - -[[could]] -id = "C1" -text = "A formal EBNF/PEG grammar for the A2ML surface syntax COULD be published to complement the prose spec." -system = "none" -status = "fail" -evidence = "none" -effects = "READINESS.md explicitly lists 'No formal grammar (EBNF/PEG) for the A2ML format' as known debt; parser implementers must reverse-engineer grammar from prose SPEC.adoc/docs/GRAMMAR.adoc, risking cross-implementation drift." - -[[could]] -id = "C2" -text = "IANA media type registration (application/vnd.a2ml+text) COULD be formally approved." -system = "none (docs/IANA-MEDIA-TYPE.adoc is a draft; IANA-MEDIA-TYPE-APPLICATION.md exists but registration is externally adjudicated by IANA, not this repo's CI)" -status = "aspirational" -evidence = "none" -effects = "Without IANA registration, external tools/MIME sniffers cannot canonically recognize .a2ml content type, limiting ecosystem interoperability beyond the hyperpolymath estate." - -[[could]] -id = "C3" -text = "Cross-reference validation between separate A2ML files (e.g. STATE.a2ml referencing META.a2ml) COULD be implemented to catch dangling cross-file references." -system = "none" -status = "fail" -evidence = "none" -effects = "READINESS.md 'Known limitations' for a2ml-validator explicitly states 'Cross-reference validation between A2ML files not yet implemented,' so consuming repos with multi-file 6a2/ descriptile sets cannot detect broken cross-links automatically." diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/FUNDING.yml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/FUNDING.yml deleted file mode 100644 index 688a442ca..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/FUNDING.yml +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Funding platforms for hyperpolymath projects -# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository - -github: hyperpolymath -ko_fi: hyperpolymath -liberapay: hyperpolymath diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/bug_report.md b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 987aab6bc..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: "[Bug]: " -labels: 'bug, priority: unset, triage' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/custom.md b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/custom.md deleted file mode 100644 index 48d5f81fa..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/custom.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: Custom issue template -about: Describe this issue template's purpose here. -title: '' -labels: '' -assignees: '' - ---- - - diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/documentation.md b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/documentation.md deleted file mode 100644 index 4fcb9f9fa..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/documentation.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -name: Documentation -about: Report unclear, missing, or incorrect documentation -title: "[DOCS]: " -labels: 'documentation, priority: unset, triage' -assignees: '' - ---- - -name: Documentation -description: Report unclear, missing, or incorrect documentation -title: "[Docs]: " -labels: ["documentation", "triage"] -body: - - type: markdown - attributes: - value: | - Help us improve our documentation by reporting issues or gaps. - - - type: dropdown - id: type - attributes: - label: Documentation issue type - options: - - Missing (documentation doesn't exist) - - Incorrect (information is wrong) - - Unclear (confusing or hard to follow) - - Outdated (no longer accurate) - - Typo or grammar - validations: - required: true - - - type: input - id: location - attributes: - label: Location - description: Where is this documentation? (URL, file path, or section name) - placeholder: README.adoc, section "Installation" - validations: - required: true - - - type: textarea - id: description - attributes: - label: Description - description: What's the problem with the current documentation? - placeholder: Describe what's wrong or missing - validations: - required: true - - - type: textarea - id: suggestion - attributes: - label: Suggested improvement - description: How should it be fixed or improved? - placeholder: The documentation should say... - validations: - required: false - - - type: checkboxes - id: contribution - attributes: - label: Contribution - options: - - label: I would be willing to submit a PR to fix this - required: false diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/feature_request.md b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 3e8fa7e7e..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: 'enhancement, priority: unset, triage' -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/question.md b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/question.md deleted file mode 100644 index fd0e2a5cc..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/ISSUE_TEMPLATE/question.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -name: Question -about: Ask a question about usage or behaviour -title: "[QUESTION]: " -labels: question, triage -assignees: '' - ---- - -name: Question -description: Ask a question about usage or behaviour -title: "[Question]: " -labels: ["question", "triage"] -body: - - type: markdown - attributes: - value: | - Have a question? You can also ask in [Discussions](../discussions) for broader conversations. - - - type: textarea - id: question - attributes: - label: Your question - description: What would you like to know? - placeholder: How do I...? - validations: - required: true - - - type: textarea - id: context - attributes: - label: Context - description: Any relevant context that helps us answer your question - placeholder: I'm trying to achieve X and I've tried Y... - validations: - required: false - - - type: textarea - id: research - attributes: - label: What I've already tried - description: What have you already looked at or attempted? - placeholder: I've read the README and searched issues but... - validations: - required: false - - - type: checkboxes - id: checked - attributes: - label: Pre-submission checklist - options: - - label: I have searched existing issues and discussions - required: true - - label: I have read the documentation - required: true diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/dependabot.yml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/dependabot.yml deleted file mode 100644 index d5cd4e996..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/dependabot.yml +++ /dev/null @@ -1,48 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Dependabot configuration for RSR-compliant repositories -# Covers common ecosystems - remove unused ones for your project - -version: 2 -updates: - # GitHub Actions - always include - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "weekly" - groups: - actions: - patterns: - - "*" - - # Rust/Cargo - - package-ecosystem: "cargo" - directory: "/" - schedule: - interval: "weekly" - ignore: - - dependency-name: "*" - update-types: ["version-update:semver-patch"] - - # Elixir/Mix - - package-ecosystem: "mix" - directory: "/" - schedule: - interval: "weekly" - - # Node.js/npm - - package-ecosystem: "npm" - directory: "/" - schedule: - interval: "weekly" - - # Python/pip - - package-ecosystem: "pip" - directory: "/" - schedule: - interval: "weekly" - - # Nix flakes - - package-ecosystem: "nix" - directory: "/" - schedule: - interval: "weekly" diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/codeql.yml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/codeql.yml deleted file mode 100644 index 1a97b10f9..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/codeql.yml +++ /dev/null @@ -1,23 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: CodeQL Security Analysis - -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] - schedule: - - cron: '0 6 1 * *' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: false - -permissions: - contents: read - -jobs: - analyze-js: - uses: ../../../.github/workflows/codeql-reusable.yml - with: - language: javascript-typescript diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/governance.yml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/governance.yml deleted file mode 100644 index f5f282ccc..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/governance.yml +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# governance.yml — single wrapper calling the shared estate governance bundle -# in hyperpolymath/standards instead of carrying per-repo copies. -# -# Replaces the per-repo governance scaffolding removed in the same commit: -# quality.yml, guix-nix-policy.yml, npm-bun-blocker.yml, ts-blocker.yml, -# security-policy.yml, rsr-antipattern.yml, wellknown-enforcement.yml, -# workflow-linter.yml -# -# Load-bearing build/security workflows stay standalone in the repo -# (rust-ci, codeql, dependabot, release, scan/mirror/pages plumbing). - -name: Governance - -on: - push: - branches: [main, master] - pull_request: - workflow_dispatch: - -permissions: - actions: read - contents: read - -jobs: - governance: - uses: ../../../.github/workflows/governance-reusable.yml diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/hypatia-scan.yml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/hypatia-scan.yml deleted file mode 100644 index f120579d4..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/hypatia-scan.yml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Hypatia Security Scan - -on: - push: - branches: [main, master, develop] - pull_request: - branches: [main, master] - schedule: - - cron: '0 0 * * 0' - workflow_dispatch: - -permissions: - actions: read - contents: read - security-events: write - -jobs: - scan: - uses: ../../../.github/workflows/hypatia-scan-reusable.yml - secrets: inherit diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/jekyll-gh-pages.yml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/jekyll-gh-pages.yml deleted file mode 100644 index d9c385e34..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/jekyll-gh-pages.yml +++ /dev/null @@ -1,54 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Sample workflow for building and deploying a Jekyll site to GitHub Pages -name: Deploy Jekyll with GitHub Pages dependencies preinstalled - -on: - # Runs on pushes targeting the default branch - push: - branches: ["main"] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - # Build job - build: - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - name: Setup Pages - uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5 - - name: Build with Jekyll - uses: actions/jekyll-build-pages@44a6e6beabd48582f863aeeb6cb2151cc1716697 # v1 - with: - source: ./ - destination: ./_site - - name: Upload artifact - uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v4 - - # Deployment job - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - timeout-minutes: 30 - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4 diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/jekyll.yml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/jekyll.yml deleted file mode 100644 index 8b69c2273..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/jekyll.yml +++ /dev/null @@ -1,68 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -# Sample workflow for building and deploying a Jekyll site to GitHub Pages -name: Deploy Jekyll site to Pages - -on: - # Runs on pushes targeting the default branch - push: - branches: ["main"] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - # Build job - build: - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - name: Setup Ruby - # https://github.com/ruby/setup-ruby/releases/tag/v1.207.0 - uses: ruby/setup-ruby@708024e6c902387ab41de36e1669e43b5ee7085e - with: - ruby-version: '3.1' # Not needed with a .ruby-version file - bundler-cache: true # runs 'bundle install' and caches installed gems automatically - cache-version: 0 # Increment this number if you need to re-download cached gems - - name: Setup Pages - id: pages - uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5 - - name: Build with Jekyll - # Outputs to the './_site' directory by default - run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" - env: - JEKYLL_ENV: production - - name: Upload artifact - # Automatically uploads an artifact from the './_site' directory by default - uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v4 - - # Deployment job - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - timeout-minutes: 30 - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4 diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/mirror.yml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/mirror.yml deleted file mode 100644 index a20ae7da7..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/mirror.yml +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Mirror to Git Forges - -on: - push: - branches: [main] - workflow_dispatch: - -permissions: - contents: read - -jobs: - mirror: - uses: ../../../.github/workflows/mirror-reusable.yml - secrets: inherit diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/scorecard-enforcer.yml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/scorecard-enforcer.yml deleted file mode 100644 index bbba795b7..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/scorecard-enforcer.yml +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Prevention workflow - runs OpenSSF Scorecard and fails on low scores -name: OpenSSF Scorecard Enforcer - -on: - push: - branches: [main] - schedule: - - cron: '0 6 * * 1' - workflow_dispatch: - -permissions: - contents: read - -jobs: - scorecard: - uses: ../../../.github/workflows/scorecard-reusable.yml diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/scorecard.yml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/scorecard.yml deleted file mode 100644 index d665a836d..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/scorecard.yml +++ /dev/null @@ -1,24 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: OSSF Scorecard - -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] - schedule: - - cron: '0 4 * * *' - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - actions: read - contents: read - -jobs: - scorecard: - uses: ../../../.github/workflows/scorecard-reusable.yml - secrets: inherit diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/secret-scanner.yml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/secret-scanner.yml deleted file mode 100644 index 82b3c70ed..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.github/workflows/secret-scanner.yml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Secret Scanner - -on: - pull_request: - push: - branches: [main] - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - scan: - permissions: - contents: read - uses: ../../../.github/workflows/secret-scanner-reusable.yml - secrets: inherit diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.gitignore b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.gitignore deleted file mode 100644 index d6614e6ad..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.gitignore +++ /dev/null @@ -1,82 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# RSR-compliant .gitignore - -# OS & Editor -.DS_Store -Thumbs.db -*.swp -*.swo -*~ -.idea/ -.vscode/ - -# Build -/target/ -/_build/ -/build/ -/dist/ -/out/ - -# Dependencies -/node_modules/ -/vendor/ -/deps/ -/.elixir_ls/ - -# Rust -# Cargo.lock # Keep for binaries - -# Elixir -/cover/ -/doc/ -*.ez -erl_crash.dump - -# Julia -*.jl.cov -*.jl.mem -/Manifest.toml - -# ReScript -/lib/bs/ -/.bsb.lock - -# Python (SaltStack only) -__pycache__/ -*.py[cod] -.venv/ - -# Ada/SPARK -*.ali -/obj/ -/bin/ - -# Haskell -/.stack-work/ -/dist-newstyle/ - -# Chapel -*.chpl.tmp.* - -# Secrets -.env -.env.* -*.pem -*.key -secrets/ - -# Test/Coverage -/coverage/ -htmlcov/ - -# Logs -*.log -/logs/ - -# Temp -/tmp/ -*.tmp -*.bak - -# Crash recovery artifacts -ai-cli-crash-capture/ diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.gitlab-ci.yml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.gitlab-ci.yml deleted file mode 100644 index 7309fa900..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.gitlab-ci.yml +++ /dev/null @@ -1,175 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Primary CI/CD - GitLab is the source of truth - -stages: - - security - - lint - - test - - build - -variables: - CARGO_HOME: ${CI_PROJECT_DIR}/.cargo - -cache: - key: ${CI_COMMIT_REF_SLUG} - paths: - - .cargo/ - - target/ - -# ================== -# Security Scanning -# ================== - -trivy: - stage: security - image: aquasec/trivy:latest - script: - - trivy fs --exit-code 0 --severity HIGH,CRITICAL --format table . - - trivy fs --exit-code 1 --severity CRITICAL . - allow_failure: false - -gitleaks: - stage: security - image: zricethezav/gitleaks:latest - script: - - gitleaks detect --source . --verbose --redact - allow_failure: false - -semgrep: - stage: security - image: returntocorp/semgrep - script: - - semgrep --config auto --error . - allow_failure: true - -cargo-audit: - stage: security - image: rust:latest - script: - - cargo install cargo-audit - - cargo audit - rules: - - exists: - - Cargo.toml - -cargo-deny: - stage: security - image: rust:latest - script: - - cargo install cargo-deny - - cargo deny check - rules: - - exists: - - Cargo.toml - allow_failure: true - -mix-audit: - stage: security - image: elixir:latest - script: - - mix local.hex --force - - mix archive.install hex mix_audit --force - - mix deps.get - - mix deps.audit - rules: - - exists: - - mix.exs - allow_failure: true - -# ================== -# Linting -# ================== - -rustfmt: - stage: lint - image: rust:latest - script: - - rustup component add rustfmt - - cargo fmt -- --check - rules: - - exists: - - Cargo.toml - -clippy: - stage: lint - image: rust:latest - script: - - rustup component add clippy - - cargo clippy -- -D warnings - rules: - - exists: - - Cargo.toml - allow_failure: true - -mix-format: - stage: lint - image: elixir:latest - script: - - mix format --check-formatted - rules: - - exists: - - mix.exs - -credo: - stage: lint - image: elixir:latest - script: - - mix local.hex --force - - mix deps.get - - mix credo --strict - rules: - - exists: - - mix.exs - allow_failure: true - -# ================== -# Testing -# ================== - -cargo-test: - stage: test - image: rust:latest - script: - - cargo test --all-features - rules: - - exists: - - Cargo.toml - -mix-test: - stage: test - image: elixir:latest - script: - - mix local.hex --force - - mix deps.get - - mix test - rules: - - exists: - - mix.exs - -# ================== -# Build -# ================== - -cargo-build: - stage: build - image: rust:latest - script: - - cargo build --release - artifacts: - paths: - - target/release/ - expire_in: 1 week - rules: - - exists: - - Cargo.toml - -mix-build: - stage: build - image: elixir:latest - script: - - mix local.hex --force - - mix deps.get - - MIX_ENV=prod mix compile - rules: - - exists: - - mix.exs diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/AGENTIC.a2ml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/AGENTIC.a2ml deleted file mode 100644 index 1699fe4a2..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/AGENTIC.a2ml +++ /dev/null @@ -1,34 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# AGENTIC.a2ml — AI agent constraints and capabilities -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[agent-permissions] -can-edit-source = true -can-edit-tests = true -can-edit-docs = true -can-edit-config = true -can-create-files = true - -[agent-constraints] -# What AI agents must NOT do: -# - Never use banned language patterns (believe_me, unsafeCoerce, etc.) -# - Never commit secrets or credentials -# - Never use banned languages (TypeScript, Python, Go, etc.) -# - Never place state files in repository root (must be in .machine_readable/) -# - Never use AGPL license (use PMPL-1.0-or-later) - -[maintenance-integrity] -fail-closed = true -require-evidence-per-step = true -allow-silent-skip = false -require-rerun-after-fix = true -release-claim-requires-hard-pass = true - -[automation-hooks] -# on-enter: Read 0-AI-MANIFEST.a2ml, then STATE.a2ml -# on-exit: Update STATE.a2ml with session outcomes -# on-commit: Run just validate-rsr diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/ECOSYSTEM.a2ml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/ECOSYSTEM.a2ml deleted file mode 100644 index 1f76eaace..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/ECOSYSTEM.a2ml +++ /dev/null @@ -1,20 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# ECOSYSTEM.a2ml — Mcp Repo Guardian ecosystem position -[metadata] -version = "1.0.0" -last-updated = "2026-04-11" - -[project] -name = "Mcp Repo Guardian" -purpose = "Hyperpolymath ecosystem component" -role = "library" - -[position-in-ecosystem] -category = "" - -[related-projects] -projects = [ - # No related projects recorded -] diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/META.a2ml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/META.a2ml deleted file mode 100644 index ce79d14e0..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/META.a2ml +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# META.a2ml — Mcp Repo Guardian meta-level information -[metadata] -version = "1.0.0" -last-updated = "2026-04-11" - -[project-info] -license = "MPL-2.0" -author = "Jonathan D.A. Jewell (hyperpolymath)" - -[architecture-decisions] -decisions = [ - # No ADRs recorded -] - -[development-practices] -versioning = "SemVer" -documentation = "AsciiDoc" -build-tool = "just" - -[maintenance-axes] -scoping-first = true -axis-1 = "must > intend > like" -axis-2 = "corrective > adaptive > perfective" -axis-3 = "systems > compliance > effects" diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/NEUROSYM.a2ml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/NEUROSYM.a2ml deleted file mode 100644 index e1d34c090..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/NEUROSYM.a2ml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# NEUROSYM.a2ml — Neurosymbolic integration metadata -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[hypatia-config] -scan-enabled = true -scan-depth = "standard" # quick | standard | deep -report-format = "logtalk" - -[symbolic-rules] -# Custom symbolic rules for this project -# - { name = "no-unsafe-ffi", pattern = "believe_me|unsafeCoerce", severity = "critical" } - -[neural-config] -# Neural pattern detection settings -# confidence-threshold = 0.85 -# model = "hypatia-v2" diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/PLAYBOOK.a2ml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/PLAYBOOK.a2ml deleted file mode 100644 index 5003fd08b..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/PLAYBOOK.a2ml +++ /dev/null @@ -1,26 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# PLAYBOOK.a2ml — Operational playbook -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[deployment] -# method = "gitops" # gitops | manual | ci-triggered -# target = "container" # container | binary | library | wasm - -[incident-response] -# 1. Check .machine_readable/STATE.a2ml for current status -# 2. Review recent commits and CI results -# 3. Run `just validate` to check compliance -# 4. Run `just security` to audit for vulnerabilities - -[release-process] -# 1. Update version in STATE.a2ml, META.a2ml -# 2. Run `just release-preflight` (validate + quality + security + maint-hard-pass) -# 3. Tag and push - -[maintenance-operations] -# Baseline audit: just maint-audit -# Hard release gate: just maint-hard-pass diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/STATE.a2ml b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/STATE.a2ml deleted file mode 100644 index d039d8de3..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.machine_readable/descriptiles/STATE.a2ml +++ /dev/null @@ -1,43 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# STATE.a2ml — Mcp Repo Guardian project state -[metadata] -project = "rsr-template-repo" -version = "0.1.0" -last-updated = "2026-01-30" -status = "active" -session = "converted from scheme — 2026-04-11" - -[project-context] -name = "Rsr Template Repo" -purpose = """Hyperpolymath ecosystem project""" -completion-percentage = 5 - -[position] -phase = "initialization" # design | implementation | testing | maintenance | archived -maturity = "experimental" # experimental | alpha | beta | production | lts - -[route-to-mvp] -milestones = [ - # No milestones recorded -] - -[blockers-and-issues] -issues = [ - # No blockers recorded -] - -[critical-next-actions] -actions = [ - "Define project scope and objectives", - "Update README.adoc with project description", - "Set up development environment", - "Create initial architecture design", - "Implement core functionality", - "Add comprehensive tests", -] - -[maintenance-status] -last-run-utc = "2026-01-30T00:00:00Z" -last-result = "unknown" # unknown | pass | warn | fail diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/.nojekyll b/0-ai-gatekeeper-protocol/mcp-repo-guardian/.nojekyll deleted file mode 100644 index e69de29bb..000000000 diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/ABI-FFI-README.adoc b/0-ai-gatekeeper-protocol/mcp-repo-guardian/ABI-FFI-README.adoc deleted file mode 100644 index f883150d8..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/ABI-FFI-README.adoc +++ /dev/null @@ -1,409 +0,0 @@ -\{\{~ Aditionally delete this line and fill out the template below ~}} - -== \{\{PROJECT}} ABI/FFI Documentation - -=== Overview - -This library follows the *Hyperpolymath RSR Standard* for ABI and FFI -design: - -* *ABI (Application Binary Interface)* defined in *Idris2* with formal -proofs -* *FFI (Foreign Function Interface)* implemented in *Zig* for C -compatibility -* *Generated C headers* bridge Idris2 ABI to Zig FFI -* *Any language* can call through standard C ABI - -=== Architecture - -.... -┌─────────────────────────────────────────────┐ -│ ABI Definitions (Idris2) │ -│ src/abi/ │ -│ - Types.idr (Type definitions) │ -│ - Layout.idr (Memory layout proofs) │ -│ - Foreign.idr (FFI declarations) │ -└─────────────────┬───────────────────────────┘ - │ - │ generates (at compile time) - ▼ -┌─────────────────────────────────────────────┐ -│ C Headers (auto-generated) │ -│ generated/abi/{{project}}.h │ -└─────────────────┬───────────────────────────┘ - │ - │ imported by - ▼ -┌─────────────────────────────────────────────┐ -│ FFI Implementation (Zig) │ -│ ffi/zig/src/main.zig │ -│ - Implements C-compatible functions │ -│ - Zero-cost abstractions │ -│ - Memory-safe by default │ -└─────────────────┬───────────────────────────┘ - │ - │ compiled to lib{{project}}.so/.a - ▼ -┌─────────────────────────────────────────────┐ -│ Any Language via C ABI │ -│ - Rust, ReScript, Julia, Python, etc. │ -└─────────────────────────────────────────────┘ -.... - -=== Directory Structure - -.... -{{project}}/ -├── src/ -│ ├── abi/ # ABI definitions (Idris2) -│ │ ├── Types.idr # Core type definitions with proofs -│ │ ├── Layout.idr # Memory layout verification -│ │ └── Foreign.idr # FFI function declarations -│ └── lib/ # Core library (any language) -│ -├── ffi/ -│ └── zig/ # FFI implementation (Zig) -│ ├── build.zig # Build configuration -│ ├── build.zig.zon # Dependencies -│ ├── src/ -│ │ └── main.zig # C-compatible FFI implementation -│ ├── test/ -│ │ └── integration_test.zig -│ └── include/ -│ └── {{project}}.h # C header (optional, can be generated) -│ -├── generated/ # Auto-generated files -│ └── abi/ -│ └── {{project}}.h # Generated from Idris2 ABI -│ -└── bindings/ # Language-specific wrappers (optional) - ├── rust/ - ├── rescript/ - └── julia/ -.... - -=== Why Idris2 for ABI? - -==== 1. *Formal Verification* - -Idris2’s dependent types allow proving properties about the ABI at -compile-time: - -[source,idris] ----- --- Prove struct size is correct -public export -exampleStructSize : HasSize ExampleStruct 16 - --- Prove field alignment is correct -public export -fieldAligned : Divides 8 (offsetOf ExampleStruct.field) - --- Prove ABI is platform-compatible -public export -abiCompatible : Compatible (ABI 1) (ABI 2) ----- - -==== 2. *Type Safety* - -Encode invariants that C/Zig cannot express: - -[source,idris] ----- --- Non-null pointer guaranteed at type level -data Handle : Type where - MkHandle : (ptr : Bits64) -> {auto 0 nonNull : So (ptr /= 0)} -> Handle - --- Array with length proof -data Buffer : (n : Nat) -> Type where - MkBuffer : Vect n Byte -> Buffer n ----- - -==== 3. *Platform Abstraction* - -Platform-specific types with compile-time selection: - -[source,idris] ----- -CInt : Platform -> Type -CInt Linux = Bits32 -CInt Windows = Bits32 - -CSize : Platform -> Type -CSize Linux = Bits64 -CSize Windows = Bits64 ----- - -==== 4. *Safe Evolution* - -Prove that new ABI versions are backward-compatible: - -[source,idris] ----- --- Compiler enforces compatibility -abiUpgrade : ABI 1 -> ABI 2 -abiUpgrade old = MkABI2 { - -- Must preserve all v1 fields - v1_compat = old, - -- Can add new fields - new_features = defaults -} ----- - -=== Why Zig for FFI? - -==== 1. *C ABI Compatibility* - -Zig exports C-compatible functions naturally: - -[source,zig] ----- -export fn library_function(param: i32) i32 { - return param * 2; -} ----- - -==== 2. *Memory Safety* - -Compile-time safety without runtime overhead: - -[source,zig] ----- -// Null check enforced at compile time -const handle = init() orelse return error.InitFailed; -defer free(handle); ----- - -==== 3. *Cross-Compilation* - -Built-in cross-compilation to any platform: - -[source,bash] ----- -zig build -Dtarget=x86_64-linux -zig build -Dtarget=aarch64-macos -zig build -Dtarget=x86_64-windows ----- - -==== 4. *Zero Dependencies* - -No runtime, no libc required (unless explicitly needed): - -[source,zig] ----- -// Minimal binary size -pub const lib = @import("std"); -// Only includes what you use ----- - -=== Building - -==== Build FFI Library - -[source,bash] ----- -cd ffi/zig -zig build # Build debug -zig build -Doptimize=ReleaseFast # Build optimized -zig build test # Run tests ----- - -==== Generate C Header from Idris2 ABI - -[source,bash] ----- -cd src/abi -idris2 --cg c-header Types.idr -o ../../generated/abi/{{project}}.h ----- - -==== Cross-Compile - -[source,bash] ----- -cd ffi/zig - -# Linux x86_64 -zig build -Dtarget=x86_64-linux - -# macOS ARM64 -zig build -Dtarget=aarch64-macos - -# Windows x86_64 -zig build -Dtarget=x86_64-windows ----- - -=== Usage - -==== From C - -[source,c] ----- -#include "{{project}}.h" - -int main() { - void* handle = {{project}}_init(); - if (!handle) return 1; - - int result = {{project}}_process(handle, 42); - if (result != 0) { - const char* err = {{project}}_last_error(); - fprintf(stderr, "Error: %s\n", err); - } - - {{project}}_free(handle); - return 0; -} ----- - -Compile with: - -[source,bash] ----- -gcc -o example example.c -l{{project}} -L./zig-out/lib ----- - -==== From Idris2 - -[source,idris] ----- -import {{PROJECT}}.ABI.Foreign - -main : IO () -main = do - Just handle <- init - | Nothing => putStrLn "Failed to initialize" - - Right result <- process handle 42 - | Left err => putStrLn $ "Error: " ++ errorDescription err - - free handle - putStrLn "Success" ----- - -==== From Rust - -[source,rust] ----- -#[link(name = "{{project}}")] -extern "C" { - fn {{project}}_init() -> *mut std::ffi::c_void; - fn {{project}}_free(handle: *mut std::ffi::c_void); - fn {{project}}_process(handle: *mut std::ffi::c_void, input: u32) -> i32; -} - -fn main() { - unsafe { - let handle = {{project}}_init(); - assert!(!handle.is_null()); - - let result = {{project}}_process(handle, 42); - assert_eq!(result, 0); - - {{project}}_free(handle); - } -} ----- - -==== From Julia - -[source,julia] ----- -const lib{{project}} = "lib{{project}}" - -function init() - handle = ccall((:{{project}}_init, lib{{project}}), Ptr{Cvoid}, ()) - handle == C_NULL && error("Failed to initialize") - handle -end - -function process(handle, input) - result = ccall((:{{project}}_process, lib{{project}}), Cint, (Ptr{Cvoid}, UInt32), handle, input) - result -end - -function cleanup(handle) - ccall((:{{project}}_free, lib{{project}}), Cvoid, (Ptr{Cvoid},), handle) -end - -# Usage -handle = init() -try - result = process(handle, 42) - println("Result: $result") -finally - cleanup(handle) -end ----- - -=== Testing - -==== Unit Tests (Zig) - -[source,bash] ----- -cd ffi/zig -zig build test ----- - -==== Integration Tests - -[source,bash] ----- -cd ffi/zig -zig build test-integration ----- - -==== ABI Verification (Idris2) - -[source,idris] ----- --- Compile-time verification -%runElab verifyABI - --- Runtime checks -main : IO () -main = do - verifyLayoutsCorrect - verifyAlignmentsCorrect - putStrLn "ABI verification passed" ----- - -=== Contributing - -When modifying the ABI/FFI: - -[arabic] -. *Update ABI first* (`+src/abi/*.idr+`) -* Modify type definitions -* Update proofs -* Ensure backward compatibility -. *Generate C header* -+ -[source,bash] ----- -idris2 --cg c-header src/abi/Types.idr -o generated/abi/{{project}}.h ----- -. *Update FFI implementation* (`+ffi/zig/src/main.zig+`) -* Implement new functions -* Match ABI types exactly -. *Add tests* -* Unit tests in Zig -* Integration tests -* ABI verification tests -. *Update documentation* -* Function signatures -* Usage examples -* Migration guide (if breaking changes) - -=== License - -PMPL-1.0-or-later - -=== See Also - -* https://idris2.readthedocs.io[Idris2 Documentation] -* https://ziglang.org/documentation/master/[Zig Documentation] -* https://github.com/hyperpolymath/rhodium-standard-repositories[Rhodium -Standard Repositories] -* link:../ffi-migration-guide.md[FFI Migration Guide] -* link:../abi-migration-guide.md[ABI Migration Guide] diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/LICENSE b/0-ai-gatekeeper-protocol/mcp-repo-guardian/LICENSE deleted file mode 100644 index ec540b341..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/LICENSE +++ /dev/null @@ -1,153 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 -SPDX-FileCopyrightText: 2024-2025 Palimpsest Stewardship Council - -================================================================================ -PALIMPSEST-MPL LICENSE VERSION 1.0 -================================================================================ - -File-level copyleft with ethical use and quantum-safe provenance - -Based on Mozilla Public License 2.0 - --------------------------------------------------------------------------------- -PREAMBLE --------------------------------------------------------------------------------- - -This License extends the Mozilla Public License 2.0 (MPL-2.0) with provisions -for ethical use, post-quantum cryptographic provenance, and emotional lineage -protection. The base MPL-2.0 terms apply except where explicitly modified by -the Exhibits below. - -Like a palimpsest manuscript where each layer builds upon what came before, -this license recognizes that creative works carry history, context, and meaning -that transcend mere code or text. - --------------------------------------------------------------------------------- -SECTION 1: BASE LICENSE --------------------------------------------------------------------------------- - -This License incorporates the full text of Mozilla Public License 2.0 by -reference. The complete MPL-2.0 text is available at: -https://www.mozilla.org/en-US/MPL/2.0/ - -All terms, conditions, and definitions from MPL-2.0 apply except where -explicitly modified by the Exhibits in this License. - --------------------------------------------------------------------------------- -SECTION 2: ADDITIONAL DEFINITIONS --------------------------------------------------------------------------------- - -2.1. "Emotional Lineage" - means the narrative, cultural, symbolic, and contextual meaning embedded - in Covered Software, including but not limited to: protest traditions, - cultural heritage, trauma narratives, and community stories. - -2.2. "Provenance Metadata" - means cryptographically signed attribution information attached to or - associated with Covered Software, including author identities, timestamps, - modification history, and lineage references. - -2.3. "Non-Interpretive System" - means any automated system that processes Covered Software without - preserving or considering its Emotional Lineage, including but not - limited to: AI training pipelines, content aggregators, and automated - summarization tools. - -2.4. "Quantum-Safe Signature" - means a cryptographic signature using algorithms resistant to attacks - by quantum computers, as specified in Exhibit B. - --------------------------------------------------------------------------------- -SECTION 3: ETHICAL USE REQUIREMENTS --------------------------------------------------------------------------------- - -In addition to the rights and obligations under MPL-2.0: - -3.1. Emotional Lineage Preservation - You must make reasonable efforts to preserve and communicate the - Emotional Lineage of Covered Software when distributing or creating - derivative works. This includes maintaining narrative context, cultural - attributions, and symbolic meaning where documented. - -3.2. Non-Interpretive System Notice - If You use Covered Software as input to a Non-Interpretive System, You - must: - (a) document such use in a publicly accessible manner; and - (b) not claim that outputs of such systems carry the Emotional Lineage - of the original work without explicit permission from Contributors. - -3.3. Ethical Use Declaration - Commercial use of Covered Software requires acknowledgment that You have - read and understood Exhibit A (Ethical Use Guidelines) and agree to act - in good faith accordance with its principles. - -See Exhibit A for complete Ethical Use Guidelines. - --------------------------------------------------------------------------------- -SECTION 4: PROVENANCE REQUIREMENTS --------------------------------------------------------------------------------- - -4.1. Metadata Preservation - You must not strip, alter, or obscure Provenance Metadata from Covered - Software except where technically necessary and with clear documentation - of any changes. - -4.2. Quantum-Safe Provenance (Optional) - Contributors may sign their Contributions using Quantum-Safe Signatures. - If Quantum-Safe Signatures are present, You must preserve them in all - distributions. - -4.3. Lineage Chain - When creating derivative works, You should extend the provenance chain - to include Your own contributions, maintaining cryptographic linkage to - prior Contributors where feasible. - -See Exhibit B for Quantum-Safe Provenance specifications. - --------------------------------------------------------------------------------- -SECTION 5: GOVERNANCE --------------------------------------------------------------------------------- - -5.1. Stewardship Council - This License is maintained by the Palimpsest Stewardship Council, which - may issue clarifications, interpretive guidance, and future versions. - -5.2. Version Selection - You may use Covered Software under this version of the License or any - later version published by the Palimpsest Stewardship Council. - -5.3. Dispute Resolution - Disputes regarding interpretation of Ethical Use Requirements (Section 3) - should first be submitted to the Palimpsest Stewardship Council for - non-binding guidance before pursuing legal remedies. - --------------------------------------------------------------------------------- -SECTION 6: COMPATIBILITY --------------------------------------------------------------------------------- - -6.1. MPL-2.0 Compatibility - Covered Software under this License may be combined with software under - MPL-2.0. The combined work must comply with both licenses. - -6.2. Secondary Licenses - The Secondary License provisions of MPL-2.0 Section 3.3 apply to this - License. - --------------------------------------------------------------------------------- -EXHIBITS --------------------------------------------------------------------------------- - -Exhibit A - Ethical Use Guidelines -Exhibit B - Quantum-Safe Provenance Specification - -See separate files: -- EXHIBIT-A-ETHICAL-USE.txt -- EXHIBIT-B-QUANTUM-SAFE.txt - --------------------------------------------------------------------------------- -END OF PALIMPSEST-MPL LICENSE VERSION 1.0 --------------------------------------------------------------------------------- - -For questions about this License: -- Repository: https://github.com/hyperpolymath/palimpsest-license -- Council: contact via repository Issues diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/MAINTAINERS.adoc b/0-ai-gatekeeper-protocol/mcp-repo-guardian/MAINTAINERS.adoc deleted file mode 100644 index 48d978175..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/MAINTAINERS.adoc +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Maintainers -:toc: preamble - -This document lists the maintainers of this project and their responsibilities. - -== Current Maintainers - -[cols="2,3,2",options="header"] -|=== -| Name | Role | Contact - -| Jonathan D.A. Jewell -| Lead Maintainer -| https://github.com/hyperpolymath[@hyperpolymath] -|=== - -== Responsibilities - -Maintainers are responsible for: - -* Reviewing and merging pull requests -* Triaging issues and feature requests -* Ensuring code quality and security standards -* Managing releases and versioning -* Upholding the project's code of conduct - -== Becoming a Maintainer - -Contributors who demonstrate: - -* Consistent, high-quality contributions -* Understanding of the project's goals and standards -* Constructive participation in discussions -* Commitment to the project's long-term health - -May be invited to become maintainers at the discretion of existing maintainers. - -== Decision Making - -* Routine decisions (bug fixes, minor improvements) can be made by any maintainer -* Significant changes require discussion and consensus among maintainers -* Breaking changes or major features should be discussed in issues before implementation - -== Contact - -For questions about project governance, open an issue or contact the maintainers listed above. diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/NPM-PUBLISHING.adoc b/0-ai-gatekeeper-protocol/mcp-repo-guardian/NPM-PUBLISHING.adoc deleted file mode 100644 index ec63487b3..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/NPM-PUBLISHING.adoc +++ /dev/null @@ -1,180 +0,0 @@ -== NPM Publishing Guide - -*SPDX-License-Identifier: CC-BY-SA-4.0* - -This document describes how to publish -`+@hyperpolymath/mcp-repo-guardian+` to npm. - -=== Prerequisites - -[arabic] -. *npm account* - Create at https://www.npmjs.com/signup -. *npm login* - Run `+npm login+` and authenticate -. *Organization access* - Join `+@hyperpolymath+` organization on npm -(or create it) - -=== Pre-Publication Checklist - -* [x] Package.json properly configured -** [x] Name: `+@hyperpolymath/mcp-repo-guardian+` -** [x] Version: `+0.1.0+` -** [x] Author: Jonathan D.A. Jewell j.d.a.jewell@open.ac.uk -** [x] License: PMPL-1.0-or-later -** [x] Repository, bugs, homepage URLs -** [x] Keywords for discoverability -* [x] .npmignore configured (excludes source, dev files) -* [x] TypeScript build working (`+npm run build+`) -* [x] README with installation instructions -* [x] LICENSE file present -* [x] All changes committed and pushed to GitHub - -=== Publishing Commands - -==== First-Time Publication - -[source,bash] ----- -cd ~/Documents/hyperpolymath-repos/mcp-repo-guardian - -# Ensure you're logged in -npm login - -# Verify package contents (dry run) -npm pack --dry-run - -# Publish as public package -npm publish --access public ----- - -==== Subsequent Releases - -[source,bash] ----- -# Update version (choose one) -npm version patch # 0.1.0 → 0.1.1 -npm version minor # 0.1.0 → 0.2.0 -npm version major # 0.1.0 → 1.0.0 - -# Push version tag -git push && git push --tags - -# Publish -npm publish --access public ----- - -=== Post-Publication - -[arabic] -. Verify package on npm: -https://www.npmjs.com/package/@hyperpolymath/mcp-repo-guardian -. Test installation: `+npm install -g @hyperpolymath/mcp-repo-guardian+` -. Test execution: `+mcp-repo-guardian --help+` (should work globally) -. Update documentation repos with npm availability - -=== Package Structure - -What gets published (via .npmignore): - -.... -@hyperpolymath/mcp-repo-guardian/ -├── dist/ # Compiled JavaScript + type definitions -│ ├── index.js -│ ├── index.d.ts -│ ├── manifest.js -│ ├── manifest.d.ts -│ ├── session.js -│ ├── session.d.ts -│ ├── guards.js -│ ├── guards.d.ts -│ ├── types.js -│ └── types.d.ts -├── README.md # Installation and usage -├── LICENSE # PMPL-1.0-or-later full text -└── package.json # Metadata -.... - -What gets excluded (via .npmignore): - -* Source files (src/) -* TypeScript config (tsconfig.json) -* Development files (.github/, .editorconfig, etc.) -* Documentation (docs/, examples/, contractiles/, etc.) -* Repository management (.bot_directives/, .machines_readable/, SCM -files) - -=== Installation Verification - -After publishing, test with: - -[source,bash] ----- -# Global installation -npm install -g @hyperpolymath/mcp-repo-guardian - -# Verify binary works -which mcp-repo-guardian -mcp-repo-guardian --version - -# Test in MCP configuration -# Edit ~/.claude/settings.json and add: -{ - "mcpServers": { - "repo-guardian": { - "command": "mcp-repo-guardian", - "env": { - "REPOS_PATH": "/path/to/repos" - } - } - } -} ----- - -=== Troubleshooting - -==== "`You do not have permission to publish`" - -You need to be added to the `+@hyperpolymath+` organization on npm: - -[source,bash] ----- -# Ask organization owner to run: -npm org:add hyperpolymath ----- - -Or publish under your own username first, then transfer to organization. - -==== "`Package name already exists`" - -If someone else registered `+@hyperpolymath/mcp-repo-guardian+`, choose -alternative: - -* `+@hyperpolymath/repo-guardian-mcp+` -* `+mcp-ai-gatekeeper+` -* Contact npm support to claim abandoned package - -==== Build errors - -[source,bash] ----- -# Clean and rebuild -rm -rf dist/ node_modules/ -npm install -npm run build ----- - -=== Version History - -* *0.1.0* (2026-02-07) - Initial release -** MCP server with hard enforcement -** Session management and attestation -** 4 tools: get_manifest, acknowledge_manifest, read_file, -list_directory - -=== Related - -* Main documentation: -https://github.com/hyperpolymath/0-ai-gatekeeper-protocol -* GitHub repository: https://github.com/hyperpolymath/mcp-repo-guardian -* npm package: -https://www.npmjs.com/package/@hyperpolymath/mcp-repo-guardian (after -publishing) diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/README.adoc b/0-ai-gatekeeper-protocol/mcp-repo-guardian/README.adoc deleted file mode 100644 index 47a9ef249..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/README.adoc +++ /dev/null @@ -1,101 +0,0 @@ -= RSR template repo - see RSR_OUTLINE.adoc in root for general background and specification - -== This is your repo - don't forget to rename me! - -== ABI/FFI Standards (Hyperpolymath Universal Standard) - -**All repos with foreign function interfaces MUST follow this standard:** - -* **ABI (Application Binary Interface)** → **Idris2** (`src/abi/*.idr`) -** Type definitions with dependent type proofs -** Memory layout verification -** Platform-specific ABIs with compile-time selection -** Formal verification of interface correctness - -* **FFI (Foreign Function Interface)** → **Zig** (`ffi/zig/src/*.zig`) -** C-compatible function implementations -** Zero-cost abstractions -** Memory-safe by default -** Cross-compilation support - -* **Generated C Headers** → Auto-generated from Idris2 ABI (`generated/abi/*.h`) -** Bridge between Idris2 and Zig -** Consumed by any language via C ABI - -**Directory Structure:** ----- -project/ -├── src/abi/ # Idris2 ABI definitions (REQUIRED) -├── ffi/zig/ # Zig FFI implementation (REQUIRED) -├── generated/abi/ # Auto-generated C headers -└── bindings/ # Language-specific wrappers (optional) ----- - -**See:** `ABI-FFI-README.md` for complete documentation - -== AI CLI standards - -- Include `ai-cli-crash-capture/` and `contractiles/` from this template in new repos. -- Mirror 6SCM files into `.machine_readable/` (NOT `.machine_readable/6scm/`). -- Before any code generation, check `$REPOS_DIR/proven` for the current Idris "unbreakable" library status. -- If a project uses that Idris library, add an *Idris Inside* badge to the repo. -- If new bindings are required, add them in `$REPOS_DIR/proven` as `idris2-zig-` during the work. -- If new code suggests additional "unbreakable" Idris modules, add them under `$REPOS_DIR/proven` and update binders across all supported languages. - -== Standard Dependencies - -=== Web Projects - -ReScript web projects in the hyperpolymath ecosystem **MUST** use these formally verified components: - -[cols="1,2,1"] -|=== -|Library |Purpose |Status - -|link:https://github.com/hyperpolymath/rescript-dom-mounter[rescript-dom-mounter] -|Formally verified DOM mounting -|**REQUIRED** - -|link:https://github.com/hyperpolymath/rescript-tea[rescript-tea] -|TEA architecture framework -|Recommended - -|link:https://github.com/hyperpolymath/cadre-tea-router[cadre-tea-router] -|Proven-safe URL routing -|Recommended - -|link:https://github.com/hyperpolymath/proven[proven] -|Idris2 formally verified library -|Core Dependency -|=== - -==== Why SafeDOM is Required - -Traditional DOM mounting can fail: - -[source,javascript] ----- -// ❌ UNSAFE: Can crash with null pointer -const el = document.getElementById('app') -el.innerHTML = html // 💥 ----- - -SafeDOM provides **compile-time proofs** that DOM operations cannot fail: - -[source,rescript] ----- -// ✅ PROVEN SAFE: Mathematically guaranteed -SafeDOM.mountSafe("#app", html, - ~onSuccess=el => Console.log("Success"), - ~onError=err => Console.error(err)) ----- - -**Mathematical Guarantees:** - -✓ No null pointer dereferences (Idris2 proof) -✓ No invalid CSS selectors (dependent types) -✓ No malformed HTML (balanced tag checking) -✓ Type-safe operations (ReScript + Idris2) -✓ Zero runtime overhead (proofs erased) - -See link:https://github.com/hyperpolymath/rescript-dom-mounter[rescript-dom-mounter documentation] for full details. diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/ROADMAP.adoc b/0-ai-gatekeeper-protocol/mcp-repo-guardian/ROADMAP.adoc deleted file mode 100644 index 42322d82b..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/ROADMAP.adoc +++ /dev/null @@ -1,22 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Mcp Repo Guardian Roadmap - -== Current Status - -Initial development phase. - -== Milestones - -=== v0.1.0 - Foundation -* [ ] Core functionality -* [ ] Basic documentation -* [ ] CI/CD pipeline - -=== v1.0.0 - Stable Release -* [ ] Full feature set -* [ ] Comprehensive tests -* [ ] Production ready - -== Future Directions - -_To be determined based on community feedback._ diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/RSR_OUTLINE.adoc b/0-ai-gatekeeper-protocol/mcp-repo-guardian/RSR_OUTLINE.adoc deleted file mode 100644 index 94a49d830..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/RSR_OUTLINE.adoc +++ /dev/null @@ -1,218 +0,0 @@ -= RSR Template Repository - -image:[Palimpsest-MPL-1.0,link="https://github.com/hyperpolymath/palimpsest-license"] image:[Palimpsest,link="https://github.com/hyperpolymath/palimpsest-license"] -:toc: -:sectnums: - -// Badges -image:https://img.shields.io/badge/RSR-Infrastructure-cd7f32[RSR Infrastructure] -image:https://img.shields.io/badge/Phase-Maintenance-brightgreen[Phase] -image:https://img.shields.io/badge/Guix-Primary-purple?logo=gnu[Guix] - -== Overview - -**The canonical template for RSR (Rhodium Standard Repository) projects.** - -This repository provides the standardized structure, configuration, and tooling for all 139 repos in the hyperpolymath ecosystem. Use it to: - -* Bootstrap new projects with RSR compliance -* Reference the standard directory structure -* Copy configuration templates (Justfile, STATE.scm, etc.) - -== Quick Start - -[source,bash] ----- -# Clone the template -git clone https://github.com/hyperpolymath/RSR-template-repo my-project -cd my-project - -# Remove template git history -rm -rf .git -git init - -# Customize -sed -i 's/RSR-template-repo/my-project/g' Justfile guix.scm README.adoc - -# Enter development environment -guix shell -D -f guix.scm - -# Validate compliance -just validate-rsr ----- - -== What's Included - -[cols="1,3"] -|=== -|File/Directory |Purpose - -|`.editorconfig` -|Editor configuration (indent, charset) - -|`.gitignore` -|Standard ignore patterns - -|`.guix-channel` -|Guix channel definition - -|`.well-known/` -|RFC-compliant metadata (security.txt, ai.txt, humans.txt) - -|`docs/` -|Documentation directory - -|`guix.scm` -|Guix package definition - -|`justfile` -|Task runner with 50+ recipes - -|`LICENSE.txt` -|AGPL + Palimpsest dual license - -|`README.adoc` -|This file - -|`RSR_COMPLIANCE.adoc` -|Compliance tracking - -|`STATE.scm` -|Project state checkpoint -|=== - -== Justfile Features - -The template Justfile provides: - -* **~10 billion recipe combinations** via matrix recipes -* **Cookbook generation**: `just cookbook` → `docs/just-cookbook.adoc` -* **Man page generation**: `just man` → `docs/man/project.1` -* **RSR validation**: `just validate-rsr` -* **STATE.scm management**: `just state-touch`, `just state-phase` -* **Container support**: `just container-build`, `just container-push` -* **CI matrix**: `just ci-matrix [stage] [depth]` - -=== Key Recipes - -[source,bash] ----- -just # Show all recipes -just help # Detailed help -just info # Project info -just combinations # Show matrix options - -just build # Build (debug) -just test # Run tests -just quality # Format + lint + test -just ci # Full CI pipeline - -just validate # RSR + STATE validation -just docs # Generate all docs -just cookbook # Generate Justfile docs - -just guix-shell # Guix dev environment -just container-build # Build container ----- - -== Directory Structure - -[source] ----- -project/ -├── .editorconfig # Editor settings -├── .gitignore # Git ignore -├── .guix-channel # Guix channel -├── .well-known/ # RFC metadata -│ ├── ai.txt -│ ├── humans.txt -│ └── security.txt -├── config/ # Nickel configs (optional) -├── docs/ # Documentation -│ ├── generated/ -│ ├── man/ -│ └── just-cookbook.adoc -├── guix.scm # Guix package -├── Justfile # Task runner -├── LICENSE.txt # Dual license -├── README.adoc # Overview -├── RSR_COMPLIANCE.adoc # Compliance -├── src/ # Source code -├── STATE.scm # State checkpoint -└── tests/ # Tests ----- - -== RSR Compliance - -=== Language Tiers - -* **Tier 1** (Gold): Rust, Elixir, Zig, Ada, Haskell, ReScript -* **Tier 2** (Silver): Nickel, Racket, Guile Scheme, Nix -* **Infrastructure**: Guix channels, derivations - -=== Required Files - -* `.editorconfig` -* `.gitignore` -* `justfile` -* `README.adoc` -* `RSR_COMPLIANCE.adoc` -* `LICENSE.txt` (AGPL + Palimpsest) -* `.well-known/security.txt` -* `.well-known/ai.txt` -* `.well-known/humans.txt` -* `guix.scm` OR `flake.nix` - -=== Prohibited - -* Python outside `salt/` directory -* TypeScript/JavaScript (use ReScript) -* CUE (use Guile/Nickel) -* `Dockerfile` (use `Containerfile`) - -== STATE.scm - -The STATE.scm file tracks project state: - -[source,scheme] ----- -(define state - `((metadata - (project . "my-project") - (updated . "2025-12-10")) - (position - (phase . implementation) ; design|implementation|testing|maintenance|archived - (maturity . beta)) ; experimental|alpha|beta|production|lts - (ecosystem - (part-of . ("RSR Framework")) - (depends-on . ())))) ----- - -== Badge Schema - -Generate badges from STATE.scm: - -[source,bash] ----- -just badges standard ----- - -See `docs/BADGE_SCHEMA.adoc` for the full badge taxonomy. - -== Ecosystem Integration - -This template is part of: - -* **STATE.scm Ecosystem**: Conversation checkpoints -* **RSR Framework**: Repository standards -* **Consent-Aware-HTTP**: .well-known compliance - -== License - -SPDX-License-Identifier: MPL-2.0 - -== Links - -* https://github.com/hyperpolymath/elegant-STATE[elegant-STATE] - STATE.scm tooling -* https://github.com/hyperpolymath/conative-gating[conative-gating] - Policy enforcement -* https://rhodium.sh[Rhodium Standard] - RSR documentation diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/bench/manifest_bench.js b/0-ai-gatekeeper-protocol/mcp-repo-guardian/bench/manifest_bench.js deleted file mode 100644 index 5bb6e89cc..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/bench/manifest_bench.js +++ /dev/null @@ -1,163 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -// -// manifest_bench.js — Throughput benchmarks for mcp-repo-guardian manifest parsing. -// -// Measures the throughput of core manifest operations: -// 1. Hash computation (SHA-256 on manifest content) -// 2. Canonical location extraction (regex parsing) -// 3. Invariant extraction (line-by-line parsing) -// 4. Full manifest build (all operations combined) -// -// Run with: deno run --allow-read bench/manifest_bench.js -// -// These benchmarks establish a baseline for CI regression detection. -// Network I/O benchmarks (MCP server calls) require a live environment. - -import { createHash, randomUUID } from "node:crypto"; - -// --------------------------------------------------------------------------- -// Benchmark infrastructure -// --------------------------------------------------------------------------- - -const ITERS = 50_000; - -function bench(name, iters, fn) { - // Warmup - for (let i = 0; i < 500; i++) fn(); - - const start = performance.now(); - for (let i = 0; i < iters; i++) fn(); - const end = performance.now(); - - const totalMs = end - start; - const nsPerIter = (totalMs * 1_000_000) / iters; - const itersPerSec = iters / (totalMs / 1_000); - - return { name, iters, totalMs, nsPerIter, itersPerSec }; -} - -function printResult(r) { - const ns = r.nsPerIter.toFixed(1).padStart(10); - const throughput = (r.itersPerSec / 1_000_000).toFixed(3).padStart(8); - console.log(` ${r.name.padEnd(50)} ${ns} ns/iter (${throughput} M/s)`); -} - -// --------------------------------------------------------------------------- -// Benchmark subjects — inline manifest parsing logic -// --------------------------------------------------------------------------- - -const VALID_MANIFEST = `# STOP - CRITICAL READING REQUIRED - -## CANONICAL LOCATIONS - -SCM files MUST be in \`.machine_readable/\` directory ONLY. -Bot directives go in \`.bot_directives/\`. - -## CORE INVARIANTS - -1. No SCM file duplication - root must NOT contain STATE.scm -2. Single source of truth - .machine_readable/ is authoritative -3. No stale metadata - if root files exist, they are OUT OF DATE - -## SESSION STARTUP CHECKLIST - -- Read THIS file first -- Understand canonical locations -- Know the invariants -`; - -function benchHash() { - return createHash("sha256").update(VALID_MANIFEST).digest("hex"); -} - -function benchExtractCanonicalLocations() { - const scmMatch = /SCM files.*?`([^`]+)`/i.exec(VALID_MANIFEST); - const botMatch = /Bot [Dd]irectives.*?`([^`]+)`/i.exec(VALID_MANIFEST); - return { - scmFiles: scmMatch?.[1] ?? ".machine_readable/", - botDirectives: botMatch?.[1] ?? ".bot_directives/", - }; -} - -function benchExtractInvariants() { - const invariants = []; - if (/No SCM file duplication/i.test(VALID_MANIFEST)) invariants.push("no_scm_duplication"); - if (/Single source of truth/i.test(VALID_MANIFEST)) invariants.push("single_source_of_truth"); - if (/No stale metadata/i.test(VALID_MANIFEST)) invariants.push("no_stale_metadata"); - return invariants; -} - -function benchFullManifestBuild() { - const hash = createHash("sha256").update(VALID_MANIFEST).digest("hex"); - const scmMatch = /SCM files.*?`([^`]+)`/i.exec(VALID_MANIFEST); - const botMatch = /Bot [Dd]irectives.*?`([^`]+)`/i.exec(VALID_MANIFEST); - const invariants = []; - if (/No SCM file duplication/i.test(VALID_MANIFEST)) invariants.push("no_scm_duplication"); - if (/Single source of truth/i.test(VALID_MANIFEST)) invariants.push("single_source_of_truth"); - if (/No stale metadata/i.test(VALID_MANIFEST)) invariants.push("no_stale_metadata"); - return { - hash, - canonicalLocations: { - scmFiles: scmMatch?.[1] ?? ".machine_readable/", - botDirectives: botMatch?.[1] ?? ".bot_directives/", - }, - invariants, - parsedAt: new Date(), - }; -} - -function benchSessionManagerOps() { - // Simulate a full session lifecycle: create → acknowledge → check access - const config = { basePath: "/tmp", strictMode: false, sessionTimeout: 3600000 }; - const sessions = {}; - - // create session - const sessionId = `bench-${randomUUID()}`; - sessions[sessionId] = { - sessionId, - acknowledgedManifest: false, - attestationHash: undefined, - acknowledgedAt: undefined, - repoPath: "/repo/test", - }; - - // acknowledge - const hash = createHash("sha256").update(VALID_MANIFEST).digest("hex"); - sessions[sessionId] = { ...sessions[sessionId], acknowledgedManifest: true, attestationHash: hash }; - - // check access - const session = sessions[sessionId]; - return session.acknowledgedManifest; -} - -// --------------------------------------------------------------------------- -// Run benchmarks -// --------------------------------------------------------------------------- - -console.log(""); -console.log("mcp-repo-guardian Manifest Parsing Benchmarks"); -console.log("=============================================="); -console.log(`Iterations: ${ITERS.toLocaleString()}`); -console.log(""); -console.log(` ${"Benchmark".padEnd(50)} ${"Time".padStart(12)} Throughput`); -console.log(` ${"-".repeat(76)}`); - -const results = [ - bench("sha256_hash (manifest ~400 bytes)", ITERS, benchHash), - bench("extract_canonical_locations (2 regex)", ITERS, benchExtractCanonicalLocations), - bench("extract_invariants (3 regex)", ITERS, benchExtractInvariants), - bench("full_manifest_build (hash + 5 regex + date)", ITERS, benchFullManifestBuild), - bench("session_lifecycle (create + ack + check)", ITERS, benchSessionManagerOps), -]; - -for (const r of results) { - printResult(r); -} - -console.log(""); -console.log("Baseline notes:"); -console.log(" - full_manifest_build: single-call cost for a complete manifest parse"); -console.log(" - sha256_hash: V8 native SHA-256 implementation"); -console.log(" - Network/MCP benchmarks require live environment (MCP_GUARDIAN_LIVE=1)"); -console.log(""); diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/contractiles/README.adoc b/0-ai-gatekeeper-protocol/mcp-repo-guardian/contractiles/README.adoc deleted file mode 100644 index d19a38774..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/contractiles/README.adoc +++ /dev/null @@ -1,19 +0,0 @@ -= Contractiles Template Set -:toc: -:sectnums: - -This directory contains the generalized contractiles templates. Copy the `contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework. - -== Fill-In Instructions - -1. Update the Mustfile to reflect your real invariants (paths, schema versions, ports). -2. Replace Trustfile.hs placeholders with your actual key paths and verification commands. -3. Adjust Dustfile handlers to match your rollback and recovery tooling. -4. Update Intentfile to mirror the roadmap you want the system to evolve toward. - -== Contents - -* `must/Mustfile` - required invariants and validations. -* `trust/Trustfile.hs` - cryptographic verification steps. -* `dust/Dustfile` - rollback and recovery semantics. -* `lust/Intentfile` - future intent and roadmap direction. diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/contractiles/dust/Dustfile b/0-ai-gatekeeper-protocol/mcp-repo-guardian/contractiles/dust/Dustfile deleted file mode 100644 index 314903cca..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/contractiles/dust/Dustfile +++ /dev/null @@ -1,29 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Dustfile template - recovery and rollback semantics - -version: 1 - -recovery: - logs: - - name: decision-log - path: logs/decisions.json - reversible: true - handler: "log-replay --reverse logs/decisions.json" - - policy: - - name: policy-rollback - path: policy/policy.ncl - rollback: "git checkout HEAD~1 -- policy/policy.ncl" - notes: "Rollback policy to the previous known-good revision." - - gateway: - - name: bad-deployment - event: "deploy.failure" - undo: "kubectl rollout undo deployment/gateway" - notes: "Undo a failed deployment while preserving audit logs." - - dust-events: - - name: decision-log-to-dust - source: logs/decisions.json - transform: "dustify --input logs/decisions.json --output logs/dust-events.json" - notes: "Map gateway decision logs into reversible dust events." diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/contractiles/must/Mustfile b/0-ai-gatekeeper-protocol/mcp-repo-guardian/contractiles/must/Mustfile deleted file mode 100644 index dc7b3be51..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/contractiles/must/Mustfile +++ /dev/null @@ -1,35 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Mustfile - declarative state contract (template) -# See: https://github.com/hyperpolymath/mustfile - -version: 1 - -metadata: - name: project-state-contract - spec: v0.0.1 - description: "Invariant checks for config, policy, gateway, logs, and schema." - -parameters: - gateway_port: "8080" - schema_version: "v0.0.1" - -checks: - - name: config-valid - description: "config/service.yaml must be valid." - run: "yq -e '.' config/service.yaml >/dev/null" - - - name: policy-compiles - description: "policy/policy.ncl must compile." - run: "nickel check policy/policy.ncl" - - - name: gateway-exposes-port - description: "Service must expose the configured port." - run: "bash -uc 'ss -lnt | rg \":${GATEWAY_PORT:-8080}\"'" - - - name: logs-are-json - description: "Logs must be JSON." - run: "bash -uc 'rg --files -g \"*.json\" logs | xargs -r jq -e .'" - - - name: schema-version-matches - description: "Schema must match version spec." - run: "bash -uc 'rg -n \"${SCHEMA_VERSION:-v0.0.1}\" schema'" diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/deno.lock b/0-ai-gatekeeper-protocol/mcp-repo-guardian/deno.lock deleted file mode 100644 index 2e0650de2..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/deno.lock +++ /dev/null @@ -1,30 +0,0 @@ -{ - "version": "5", - "specifiers": { - "jsr:@std/assert@1": "1.0.18", - "jsr:@std/internal@^1.0.12": "1.0.12", - "jsr:@std/path@1": "1.1.4" - }, - "jsr": { - "@std/assert@1.0.18": { - "integrity": "270245e9c2c13b446286de475131dc688ca9abcd94fc5db41d43a219b34d1c78", - "dependencies": [ - "jsr:@std/internal" - ] - }, - "@std/internal@1.0.12": { - "integrity": "972a634fd5bc34b242024402972cd5143eac68d8dffaca5eaa4dba30ce17b027" - }, - "@std/path@1.1.4": { - "integrity": "1d2d43f39efb1b42f0b1882a25486647cb851481862dc7313390b2bb044314b5", - "dependencies": [ - "jsr:@std/internal" - ] - } - }, - "workspace": { - "dependencies": [ - "npm:@modelcontextprotocol/sdk@0.5" - ] - } -} diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/docs/CITATIONS.adoc b/0-ai-gatekeeper-protocol/mcp-repo-guardian/docs/CITATIONS.adoc deleted file mode 100644 index 6f167bdfa..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/docs/CITATIONS.adoc +++ /dev/null @@ -1,36 +0,0 @@ -= RSR-template-repo - Citation Guide -:toc: - -== BibTeX - -[source,bibtex] ----- -@software{rsr-template-repo_2025, - author = {Polymath, Hyper}, - title = {RSR-template-repo}, - year = {2025}, - url = {https://github.com/hyperpolymath/RSR-template-repo}, - license = {PMPL-1.0-or-later} -} ----- - -== Harvard Style - -Polymath, H. (2025) _RSR-template-repo_ [Computer software]. Available at: https://github.com/hyperpolymath/RSR-template-repo - -== OSCOLA - -Hyper Polymath, 'RSR-template-repo' (2025) - -== MLA - -Polymath, Hyper. "RSR-template-repo." 2025, github.com/hyperpolymath/RSR-template-repo. - -== APA 7 - -Polymath, H. (2025). _RSR-template-repo_ [Computer software]. GitHub. https://github.com/hyperpolymath/RSR-template-repo - -== See Also - -* link:../CITATION.cff[CITATION.cff] -* link:../codemeta.json[codemeta.json] diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/examples/web-project-deno.json b/0-ai-gatekeeper-protocol/mcp-repo-guardian/examples/web-project-deno.json deleted file mode 100644 index 5ddd3bd7f..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/examples/web-project-deno.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "// NOTE": "Example deno.json for ReScript web projects", - "tasks": { - "build": "deno run -A npm:rescript", - "clean": "deno run -A npm:rescript clean", - "watch": "deno run -A npm:rescript -w", - "serve": "deno run -A jsr:@std/http/file-server .", - "test": "deno test --allow-all" - }, - "imports": { - "rescript": "^12.0.0", - "@rescript/core": "npm:@rescript/core@^1.6.0", - "safe-dom/": "https://raw.githubusercontent.com/hyperpolymath/rescript-dom-mounter/main/src/", - "proven/": "../proven/bindings/rescript/src/" - }, - "compilerOptions": { - "allowJs": true, - "checkJs": false - } -} diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/ffi/zig/build.zig b/0-ai-gatekeeper-protocol/mcp-repo-guardian/ffi/zig/build.zig deleted file mode 100644 index 4a2e049a4..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/ffi/zig/build.zig +++ /dev/null @@ -1,94 +0,0 @@ -// {{PROJECT}} FFI Build Configuration -// SPDX-License-Identifier: MPL-2.0 - -const std = @import("std"); - -pub fn build(b: *std.Build) void { - const target = b.standardTargetOptions(.{}); - const optimize = b.standardOptimizeOption(.{}); - - // Shared library (.so, .dylib, .dll) - const lib = b.addSharedLibrary(.{ - .name = "{{project}}", - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - }); - - // Set version - lib.version = .{ .major = 0, .minor = 1, .patch = 0 }; - - // Static library (.a) - const lib_static = b.addStaticLibrary(.{ - .name = "{{project}}", - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - }); - - // Install artifacts - b.installArtifact(lib); - b.installArtifact(lib_static); - - // Generate header file for C compatibility - const header = b.addInstallHeader( - b.path("include/{{project}}.h"), - "{{project}}.h", - ); - b.getInstallStep().dependOn(&header.step); - - // Unit tests - const lib_tests = b.addTest(.{ - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - }); - - const run_lib_tests = b.addRunArtifact(lib_tests); - - const test_step = b.step("test", "Run library tests"); - test_step.dependOn(&run_lib_tests.step); - - // Integration tests - const integration_tests = b.addTest(.{ - .root_source_file = b.path("test/integration_test.zig"), - .target = target, - .optimize = optimize, - }); - - integration_tests.linkLibrary(lib); - - const run_integration_tests = b.addRunArtifact(integration_tests); - - const integration_test_step = b.step("test-integration", "Run integration tests"); - integration_test_step.dependOn(&run_integration_tests.step); - - // Documentation - const docs = b.addTest(.{ - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = .Debug, - }); - - const docs_step = b.step("docs", "Generate documentation"); - docs_step.dependOn(&b.addInstallDirectory(.{ - .source_dir = docs.getEmittedDocs(), - .install_dir = .prefix, - .install_subdir = "docs", - }).step); - - // Benchmark (if needed) - const bench = b.addExecutable(.{ - .name = "{{project}}-bench", - .root_source_file = b.path("bench/bench.zig"), - .target = target, - .optimize = .ReleaseFast, - }); - - bench.linkLibrary(lib); - - const run_bench = b.addRunArtifact(bench); - - const bench_step = b.step("bench", "Run benchmarks"); - bench_step.dependOn(&run_bench.step); -} diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/ffi/zig/src/main.zig b/0-ai-gatekeeper-protocol/mcp-repo-guardian/ffi/zig/src/main.zig deleted file mode 100644 index 6b233bc79..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/ffi/zig/src/main.zig +++ /dev/null @@ -1,274 +0,0 @@ -// {{PROJECT}} FFI Implementation -// -// This module implements the C-compatible FFI declared in src/abi/Foreign.idr -// All types and layouts must match the Idris2 ABI definitions. -// -// SPDX-License-Identifier: MPL-2.0 - -const std = @import("std"); - -// Version information (keep in sync with project) -const VERSION = "0.1.0"; -const BUILD_INFO = "{{PROJECT}} built with Zig " ++ @import("builtin").zig_version_string; - -/// Thread-local error storage -threadlocal var last_error: ?[]const u8 = null; - -/// Set the last error message -fn setError(msg: []const u8) void { - last_error = msg; -} - -/// Clear the last error -fn clearError() void { - last_error = null; -} - -//============================================================================== -// Core Types (must match src/abi/Types.idr) -//============================================================================== - -/// Result codes (must match Idris2 Result type) -pub const Result = enum(c_int) { - ok = 0, - @"error" = 1, - invalid_param = 2, - out_of_memory = 3, - null_pointer = 4, -}; - -/// Library handle (opaque to prevent direct access) -pub const Handle = opaque { - // Internal state hidden from C - allocator: std.mem.Allocator, - initialized: bool, - // Add your fields here -}; - -//============================================================================== -// Library Lifecycle -//============================================================================== - -/// Initialize the library -/// Returns a handle, or null on failure -export fn {{project}}_init() ?*Handle { - const allocator = std.heap.c_allocator; - - const handle = allocator.create(Handle) catch { - setError("Failed to allocate handle"); - return null; - }; - - // Initialize handle - handle.* = .{ - .allocator = allocator, - .initialized = true, - }; - - clearError(); - return handle; -} - -/// Free the library handle -export fn {{project}}_free(handle: ?*Handle) void { - const h = handle orelse return; - const allocator = h.allocator; - - // Clean up resources - h.initialized = false; - - allocator.destroy(h); - clearError(); -} - -//============================================================================== -// Core Operations -//============================================================================== - -/// Process data (example operation) -export fn {{project}}_process(handle: ?*Handle, input: u32) Result { - const h = handle orelse { - setError("Null handle"); - return .null_pointer; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return .@"error"; - } - - // Example processing logic - _ = input; - - clearError(); - return .ok; -} - -//============================================================================== -// String Operations -//============================================================================== - -/// Get a string result (example) -/// Caller must free the returned string -export fn {{project}}_get_string(handle: ?*Handle) ?[*:0]const u8 { - const h = handle orelse { - setError("Null handle"); - return null; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return null; - } - - // Example: allocate and return a string - const result = h.allocator.dupeZ(u8, "Example result") catch { - setError("Failed to allocate string"); - return null; - }; - - clearError(); - return result.ptr; -} - -/// Free a string allocated by the library -export fn {{project}}_free_string(str: ?[*:0]const u8) void { - const s = str orelse return; - const allocator = std.heap.c_allocator; - - const slice = std.mem.span(s); - allocator.free(slice); -} - -//============================================================================== -// Array/Buffer Operations -//============================================================================== - -/// Process an array of data -export fn {{project}}_process_array( - handle: ?*Handle, - buffer: ?[*]const u8, - len: u32, -) Result { - const h = handle orelse { - setError("Null handle"); - return .null_pointer; - }; - - const buf = buffer orelse { - setError("Null buffer"); - return .null_pointer; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return .@"error"; - } - - // Access the buffer - const data = buf[0..len]; - _ = data; - - // Process data here - - clearError(); - return .ok; -} - -//============================================================================== -// Error Handling -//============================================================================== - -/// Get the last error message -/// Returns null if no error -export fn {{project}}_last_error() ?[*:0]const u8 { - const err = last_error orelse return null; - - // Return C string (static storage, no need to free) - const allocator = std.heap.c_allocator; - const c_str = allocator.dupeZ(u8, err) catch return null; - return c_str.ptr; -} - -//============================================================================== -// Version Information -//============================================================================== - -/// Get the library version -export fn {{project}}_version() [*:0]const u8 { - return VERSION.ptr; -} - -/// Get build information -export fn {{project}}_build_info() [*:0]const u8 { - return BUILD_INFO.ptr; -} - -//============================================================================== -// Callback Support -//============================================================================== - -/// Callback function type (C ABI) -pub const Callback = *const fn (u64, u32) callconv(.C) u32; - -/// Register a callback -export fn {{project}}_register_callback( - handle: ?*Handle, - callback: ?Callback, -) Result { - const h = handle orelse { - setError("Null handle"); - return .null_pointer; - }; - - const cb = callback orelse { - setError("Null callback"); - return .null_pointer; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return .@"error"; - } - - // Store callback for later use - _ = cb; - - clearError(); - return .ok; -} - -//============================================================================== -// Utility Functions -//============================================================================== - -/// Check if handle is initialized -export fn {{project}}_is_initialized(handle: ?*Handle) u32 { - const h = handle orelse return 0; - return if (h.initialized) 1 else 0; -} - -//============================================================================== -// Tests -//============================================================================== - -test "lifecycle" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - try std.testing.expect({{project}}_is_initialized(handle) == 1); -} - -test "error handling" { - const result = {{project}}_process(null, 0); - try std.testing.expectEqual(Result.null_pointer, result); - - const err = {{project}}_last_error(); - try std.testing.expect(err != null); -} - -test "version" { - const ver = {{project}}_version(); - const ver_str = std.mem.span(ver); - try std.testing.expectEqualStrings(VERSION, ver_str); -} diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/ffi/zig/test/integration_test.zig b/0-ai-gatekeeper-protocol/mcp-repo-guardian/ffi/zig/test/integration_test.zig deleted file mode 100644 index 034199499..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/ffi/zig/test/integration_test.zig +++ /dev/null @@ -1,182 +0,0 @@ -// {{PROJECT}} Integration Tests -// SPDX-License-Identifier: MPL-2.0 -// -// These tests verify that the Zig FFI correctly implements the Idris2 ABI - -const std = @import("std"); -const testing = std.testing; - -// Import FFI functions -extern fn {{project}}_init() ?*opaque {}; -extern fn {{project}}_free(?*opaque {}) void; -extern fn {{project}}_process(?*opaque {}, u32) c_int; -extern fn {{project}}_get_string(?*opaque {}) ?[*:0]const u8; -extern fn {{project}}_free_string(?[*:0]const u8) void; -extern fn {{project}}_last_error() ?[*:0]const u8; -extern fn {{project}}_version() [*:0]const u8; -extern fn {{project}}_is_initialized(?*opaque {}) u32; - -//============================================================================== -// Lifecycle Tests -//============================================================================== - -test "create and destroy handle" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - try testing.expect(handle != null); -} - -test "handle is initialized" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const initialized = {{project}}_is_initialized(handle); - try testing.expectEqual(@as(u32, 1), initialized); -} - -test "null handle is not initialized" { - const initialized = {{project}}_is_initialized(null); - try testing.expectEqual(@as(u32, 0), initialized); -} - -//============================================================================== -// Operation Tests -//============================================================================== - -test "process with valid handle" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const result = {{project}}_process(handle, 42); - try testing.expectEqual(@as(c_int, 0), result); // 0 = ok -} - -test "process with null handle returns error" { - const result = {{project}}_process(null, 42); - try testing.expectEqual(@as(c_int, 4), result); // 4 = null_pointer -} - -//============================================================================== -// String Tests -//============================================================================== - -test "get string result" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const str = {{project}}_get_string(handle); - defer if (str) |s| {{project}}_free_string(s); - - try testing.expect(str != null); -} - -test "get string with null handle" { - const str = {{project}}_get_string(null); - try testing.expect(str == null); -} - -//============================================================================== -// Error Handling Tests -//============================================================================== - -test "last error after null handle operation" { - _ = {{project}}_process(null, 0); - - const err = {{project}}_last_error(); - try testing.expect(err != null); - - if (err) |e| { - const err_str = std.mem.span(e); - try testing.expect(err_str.len > 0); - } -} - -test "no error after successful operation" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - _ = {{project}}_process(handle, 0); - - // Error should be cleared after successful operation - // (This depends on implementation) -} - -//============================================================================== -// Version Tests -//============================================================================== - -test "version string is not empty" { - const ver = {{project}}_version(); - const ver_str = std.mem.span(ver); - - try testing.expect(ver_str.len > 0); -} - -test "version string is semantic version format" { - const ver = {{project}}_version(); - const ver_str = std.mem.span(ver); - - // Should be in format X.Y.Z - try testing.expect(std.mem.count(u8, ver_str, ".") >= 1); -} - -//============================================================================== -// Memory Safety Tests -//============================================================================== - -test "multiple handles are independent" { - const h1 = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(h1); - - const h2 = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(h2); - - try testing.expect(h1 != h2); - - // Operations on h1 should not affect h2 - _ = {{project}}_process(h1, 1); - _ = {{project}}_process(h2, 2); -} - -test "double free is safe" { - const handle = {{project}}_init() orelse return error.InitFailed; - - {{project}}_free(handle); - {{project}}_free(handle); // Should not crash -} - -test "free null is safe" { - {{project}}_free(null); // Should not crash -} - -//============================================================================== -// Thread Safety Tests (if applicable) -//============================================================================== - -test "concurrent operations" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const ThreadContext = struct { - h: *opaque {}, - id: u32, - }; - - const thread_fn = struct { - fn run(ctx: ThreadContext) void { - _ = {{project}}_process(ctx.h, ctx.id); - } - }.run; - - var threads: [4]std.Thread = undefined; - for (&threads, 0..) |*thread, i| { - thread.* = try std.Thread.spawn(.{}, thread_fn, .{ - ThreadContext{ .h = handle, .id = @intCast(i) }, - }); - } - - for (threads) |thread| { - thread.join(); - } -} diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Guards-HyperpolymathMcpRepoGuardian.cmj b/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Guards-HyperpolymathMcpRepoGuardian.cmj deleted file mode 100644 index 8d24865ac8f2aa69e90e0af2ea55ec61ff7ca792..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125 zcmY%DO=9{u_zFG0lao`6i``2Ti&7>Y zSg^p!!2y|Yb^w9}6F3zdGAavFiwg2{DsvM{GW2tk3v`Q83-Wc-K^ij?^A>DyR4y(` MR?*ANDt2%H0D)30kpKVy diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Guards.affine b/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Guards.affine deleted file mode 100644 index 7feaeb4d2..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Guards.affine +++ /dev/null @@ -1,97 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Guards; - -// SPDX-License-Identifier: MPL-2.0 - -// Access control guard module -module AccessGuard = { - struct t { { - sessionManager: Session.SessionManager.t, - manifest: Types.aiManifest, - } - - fn make = (sessionManager: Session.SessionManager.t, manifest: Types.aiManifest): t => { - { - sessionManager, - manifest, - } - } - - // Check if session has access to perform operations - fn checkAccess = (guard: t, sessionId: string): Types.accessResult => { - switch Session.SessionManager.getSession(guard.sessionManager, sessionId) { - | None => { - allowed: false, - reason: Some("Invalid session ID. Session may have expired."), - } - | Some(session) => - if !session.acknowledgedManifest { - fn hashPreview = String.substring(guard.manifest.hash, ~start=0, ~end=16) - { - allowed: false, - reason: Some( - "⚠️ ACCESS DENIED\n\n" ++ - "You must read and acknowledge the AI manifest (AI.a2ml) before " ++ - "accessing any files in this repository.\n\n" ++ - "Call the acknowledge_manifest tool with the manifest hash to proceed.\n\n" ++ - `Expected hash: ${hashPreview}...`, - ), - } - } else { - {allowed: true, reason: None} - } - } - } - - // Validate that a file path doesn't violate manifest invariants - fn validatePath = (guard: t, path: string): Types.accessResult => { - // Check for SCM file duplication invariant - if Array.includes(guard.manifest.invariants, "no_scm_duplication") { - fn scmFiles = [ - "STATE.scm", - "META.scm", - "ECOSYSTEM.scm", - "AGENTIC.scm", - "NEUROSYM.scm", - "PLAYBOOK.scm", - "LANGUAGES.scm", - ] - - fn isViolation = Array.some(scmFiles, scmFile => { - String.endsWith(path, scmFile) && !String.includes(path, ".machine_readable/") - }) - - if isViolation { - fn violatedFile = - Array.find(scmFiles, scmFile => - String.endsWith(path, scmFile) - )->Belt.Option.getWithDefault("unknown") - - { - allowed: false, - reason: Some( - "⚠️ INVARIANT VIOLATION\n\n" ++ - `Attempted to access ${violatedFile} outside of .machine_readable/ directory.\n\n` ++ - "Per AI.a2ml manifest: SCM files MUST be in .machine_readable/ only.\n" ++ "This prevents duplicate file errors.", - ), - } - } else { - {allowed: true, reason: None} - } - } else { - {allowed: true, reason: None} - } - } - - // Require acknowledgment before any operation - fn requireAcknowledgment = (guard: t, sessionId: string, operation: string): unit => { - fn access = checkAccess(guard, sessionId) - if !access.allowed { - fn reason = Belt.Option.getWithDefault(access.reason, "Unknown reason") - JsError.throwWithMessage(`Cannot perform ${operation}: ${reason}`) - } - } -} - diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Guards.ast b/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Guards.ast deleted file mode 100644 index 6352804c0cb2da7e0a059df2b80c0f9c15efd20f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9035 zcmb7K3wTu3wLa_2-e-~tBH$Z7${0fu0tBR}7)53X5yB&ZB%mmWLvoUgBr{=V0^$R$ zk5=ooOhByA4?DcPR;V2xwa{8RDz++IYwbg%t@Ux$szvO*^~t5)fA6(Vm=L`EuHX3O zpSAwA_Bwm7z4uyYuqWHK6$1sYR{Xsj*Jw5rQZ z2F9(3BuW};=GHeZnO55{uCuvoY{Kn|k8SIYBwC`8*tle(dE9jMC0UsO|F-oH?6Iuk zH!aIQ%(8}NE$gi3GMRgGnbG0qW(=UI*<9fT|4+x$tU7CcPT1=2)uC)pCbKn^DX^?_ ztjyV|Y)+h1W4TsGP7G9kJ42yRPv-SZWs)ChP9zp-a}%JQcBz%HR^-I#_)FGp;AOXF zHg8UsnTM}5e~pE9eYWO)Gbf5QxF0scCv5d+knn{<7^u865{tIFNfk-Obh0vJZOe(# zjCPt)(j)bhRz#xk?y)B_=i!_x)kAY)8>3-)&vdF@bWGtT z;-pY0JynhQkfvELi$N-va$+Zc|CJb`3~g}=LNIACy1CtLUdEdZ%v}vcYlzn8#BN5J zKG`r*?_=}Q0e?%f3gRK&e&J<4pl+7`Gyz-*-VtBii) zxh+lVV+NepS+hGQ-eB~Le!h8yw`cca>ArfmR?*#k7Qe=H(bomLq%>k{mYtO~YAR=7d; z+OBBAZK+HbS6rjUo5eob0B1A2S51|JC(1(;;`w9cN4$+P@1RvQAiH!*x(bJG(e&C6o(l^t$No7-~ic93)%(_VnZ z?F?V@@=e7ePS;!SQN962w?~rga}(~0sJl{y)^i2fZ;*Wma4o~n^dsqAlrH6aepIr1 zskap+ZDQULnB1?Sujts*9JgqLHxVADfp|fLD zaH-oGPq;zxcQry42mS!yMGW6HYdpX^#xd6Dh%Q%A2xFX8!PaPpn+!%{7$lm+@Llm_ zG!;**s??DmQGTcCY4d#wSi>_|V*H+-=eM>Rr?n0>FZ3n7F{k43j^N5@s$Elh#cG=b zQ}JL|BHrxc&{U&Jl4{sGUek$y^$c$^!v?)!k7YyYk{IrkCE<|urLeEfl!)li*FN!&_e4PcDn_hFG4qe`EY+u79-Nx9-I z6guWAJnlTQZ(yU%u)mSvPL&thB9I} zo1P8ncUby}_7N15;6uA@Rz+S`Yyf3_Gl|DYpuScb2)=tI`6iO@V!-=aNaRR7uef{E zw59u9t@hSd60eeY6ZCBi-{Y;AN_49W(cZz*4*+*EJba=(Z9m4!zk~NU!%x|fx$o_t zvGj8go@98G9dX=ySoQ|gzhL-JRy@Tw#2zS~ZX@v}Nj$uM)V;dQpx2;zwwy6kZuf+fsqoGXE&xObwmEYOlc@7qV|Qi&V#A>XmZ1xl|pj z%6LJXoYTk|0eBh1GCjeYG8l7IV^g@PrV@N|1xh(=ZAoE9pGr&QQt z{OAUJ`x#bw4mnm+>6W7gOkRe&RT;g?%(DOwGA#FuP&)N)`?pv(3bg-ZI5v-#AL$`h zj|1~VhUY7$PX99?{D_4YU?njrDllo^sUrED6&C@1!SG^lh`!H`SvMQBAq?kwG;HL`&Pa266!m~Ary@%`+;P(W4MGw_ncDz3jA5&K5NzbrAsWu2 zHX|xk_oY@&S0@i{72jRTNeQpl$$%rTCx1KnIznODJS?kMjJYR z*2%dC6O}$LHN|;1l0QLy9JAtlhTl|=L8nm>&OJ#l~-XW+QndY`e_^uOmR+#*sQ-K5XdV_=BH1ZPhDPGbV)m?^IbQAfv zk^f;BEM~aN_O+4E`{Wn3w9J$LK!-cdfynDz44~B)hoBNIx^{UCK(VJgO~m zpP5ADfZ7W^Tgtj)s{M`O=vT{?F?tksVza>&CSRsQw$;c+n}pfUYucj|=J-ZTJZw#) zf(xi149g!GJVO^;(s#QW?#D(r6Zi>(>rYg zmr_BL3f2O@WAHs5v1iLArst}yTM%xj4c9dV7u43z4mZ`-*Xd5ew_Q2;&={h|5r+-# z$v>{XFYQhEs6lM2TMsaRln{eD{%!WpBEZGINW8G!Pgp}b;@T}Tnp7?tCk9{qr%%+1<4evnhM5J z!Fj+TYbF(biwZFVS+Pl3^>3KuENeCuW~lH7Fqmy{mN%aLpbDkI2pI$BQfh}~8_75IDA#gr{t`6nthrS9B?W}eWbvhn^FHoYHUe(2=21XW zpx|HhfO0F_+yOW5ZH zzdT_0EwFvn;7-r|vCdGwZgg?*-Y~fPtH+3Uxe2clmxm00C2T)5_~sLg@v+g}0^TPE z-_dUj?mtZnR?4R|Ce;zvdt|Xm-hJyEK&dCNpqUh>O!g1c) zkUM7@Ew;IHmcjaGAj9l4p-!=3pdxb4F<8G**GDai3umN}KBFY~US_^;(Dy$#)>7n@ zYP_|80(&X25BOYz_j^I=*V%a!aIr@Kd9uMTYjQg8#jZ2esL-D~)dn9#vgmeN2ifPP z{IQ=@oOPli1-|NOqJ~fe@-+sV_w#un z#f@eNSX~C6={*eJE|v4SI8!fO@!Jq?A~mzC40$Nd`IiUdQ|*cPN>z2w!SD6>rCtqir*%0MjiI6mz~44_ruVSQUWzIyCgGzqjwN9! zrr?t&nIXlc_~c3IrI>?{mf&4ybtHyga)Q`zct_kBl%iUV{;(Nw7VwV@z7iFI2x~j! z_o)0W>g+Zgyg6`wYH+KHRwsm4tEhq9-dd%&3ZpGjqy5UW0DjKks2c4GwjZvy6}~T$ zB4z9mLf$&QVyu?I!vTYr_l`dX*H{Ksi&!Sbt-a%8^y}2;cMMLb(REpn73fTz z_l!Krey*2d9sKBrYlZr-QK!^tlT??c-kJYpw#Rdz{I|7`in^)jIz@TW1ms+;0{GmV zRqKGiu&$t@>#1n9xqZ?l-La@T^!>JB-39D3c#U#qPU*jx*_Jd^{csMAr14@P?(J$7 zj6Yy(77F!NN=XJ7$z=R~4nMZOgCIXy{UeiRfI-%kRCE&+-K@R&)jMiscZ$;2sTTHs E0isq3J^%m! diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/HyperpolymathMcpRepoGuardian.cmj b/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/HyperpolymathMcpRepoGuardian.cmj deleted file mode 100644 index 6977e97a3e28244cbcddde48fb8238baa59d8c60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43 ucmb134VANx{^i_#dE=tf8Y>D~rY_sZz`(!`#7scU0m26w92Yn^H~;`qRt*6F diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/HyperpolymathMcpRepoGuardian.mlmap b/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/HyperpolymathMcpRepoGuardian.mlmap deleted file mode 100644 index 4095fc569..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/HyperpolymathMcpRepoGuardian.mlmap +++ /dev/null @@ -1,6 +0,0 @@ -randjbuildsystem -Guards -Index -Manifest -Session -Types diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Index-HyperpolymathMcpRepoGuardian.cmj b/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Index-HyperpolymathMcpRepoGuardian.cmj deleted file mode 100644 index 0f38a8432cb0a99f2fda18e6b5b2d08dbf6ab450..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmea}X)52uvRS^VpiQi~>D04oDaE?D5~-~c5+S{)Wl;8bwPs4Pe= oD#*{N%uOuG(9caS&@D, - } - - struct toolResponse { {content: array} - - // External functions - @module("@modelcontextprotocol/sdk/server/index.js") @new - external createServer: {"name": string, "version": string} => server = "Server" - - @module("@modelcontextprotocol/sdk/server/stdio.js") @new - external createStdioTransport: unit => transport = "StdioServerTransport" - - @send external connect: (server, transport) => promise = "connect" - - @send - external setRequestHandler: (server, string, toolRequest => promise) => unit = - "setRequestHandler" -} - -// File system external bindings -@module("node:fs/promises") external readFile: (string, string) => promise = "readFile" -@module("node:fs/promises") external readdir: string => promise> = "readdir" -@module("node:path") external resolve: (string, string) => string = "resolve" -@module("node:path") external join: (string, string) => string = "join" - -// Get environment variable with default -fn getEnv = (name: string, default: string): string => { - fn env: dict = %raw("process.env") - switch Dict.get(env, name) { - | Some(v) => v - | None => default - } -} - -// Main server class -module GuardianServer = { - struct t { { - server: MCP.server, - config: Types.guardianConfig, - sessionManager: Session.SessionManager.t, - mutable manifests: dict, - } - - fn make = (): t => { - fn cwd: unit => string = %raw("() => process.cwd()") - fn config: Types.guardianConfig = { - basePath: getEnv("REPOS_PATH", cwd()), - strictMode: getEnv("STRICT_MODE", "false") == "true", - sessionTimeout: Belt.Int.fromString( - getEnv("SESSION_TIMEOUT", "3600000"), - )->Belt.Option.getWithDefault(3600000), - } - - fn server = MCP.createServer({"name": "repo-guardian", "version": "0.1.0"}) - fn sessionManager = Session.SessionManager.make(config) - - { - server, - config, - sessionManager, - manifests: Dict.make(), - } - } - - // Handle get_manifest tool - fn handleGetManifest = async (guardian: t, repoPath: string): MCP.toolResponse => { - fn fullPath = resolve(guardian.config.basePath, repoPath) - fn manifest = await Manifest.parseManifest(fullPath) - - // Store manifest - Dict.set(guardian.manifests, repoPath, manifest) - - // Return manifest info - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ( - "text", - JSON.Encode.string( - `Manifest hash: ${manifest.hash}\n\nYou must acknowledge this manifest with the hash to proceed.`, - ), - ), - ]), - ), - ] - - {content: content} - } - - // Handle acknowledge_manifest tool - fn handleAcknowledgeManifest = async ( - guardian: t, - repoPath: string, - attestationHash: string, - ): MCP.toolResponse => { - switch Dict.get(guardian.manifests, repoPath) { - | None => { - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string("ERROR: You must call get_manifest first")), - ]), - ), - ] - {content: content} - } - | Some(manifest) => - if !Manifest.validateAttestation(manifest, attestationHash) { - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string("ERROR: Invalid attestation hash")), - ]), - ), - ] - {content: content} - } else { - // Create session - fn session = Session.SessionManager.createSession(guardian.sessionManager, repoPath) - - // Acknowledge manifest - fn _ = Session.SessionManager.acknowledgeManifest( - guardian.sessionManager, - session.sessionId, - manifest, - attestationHash, - ) - - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ( - "text", - JSON.Encode.string(`✅ Manifest acknowledged! Session ID: ${session.sessionId}`), - ), - ]), - ), - ] - {content: content} - } - } - } - - // Handle read_file tool - fn handleReadFile = async (guardian: t, sessionId: string, path: string): MCP.toolResponse => { - // Get manifest for session - switch Session.SessionManager.getSession(guardian.sessionManager, sessionId) { - | None => { - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string("ERROR: Invalid session ID")), - ]), - ), - ] - {content: content} - } - | Some(session) => - switch Dict.get(guardian.manifests, session.repoPath) { - | None => { - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string("ERROR: Manifest not found")), - ]), - ), - ] - {content: content} - } - | Some(manifest) => - fn accessGuard = Guards.AccessGuard.make(guardian.sessionManager, manifest) - - // Check access - fn accessResult = Guards.AccessGuard.checkAccess(accessGuard, sessionId) - if !accessResult.allowed { - fn reason = Belt.Option.getWithDefault(accessResult.reason, "Unknown") - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string(`ERROR: ${reason}`)), - ]), - ), - ] - {content: content} - } else { - // Validate path - fn pathResult = Guards.AccessGuard.validatePath(accessGuard, path) - if !pathResult.allowed { - fn reason = Belt.Option.getWithDefault(pathResult.reason, "Unknown") - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string(`ERROR: ${reason}`)), - ]), - ), - ] - {content: content} - } else { - // Read file - fn fullPath = join(guardian.config.basePath, join(session.repoPath, path)) - try { - fn fileContent = await readFile(fullPath, "utf-8") - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string(fileContent)), - ]), - ), - ] - {content: content} - } catch { - | _ => { - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string(`ERROR: Failed to read file ${path}`)), - ]), - ), - ] - {content: content} - } - } - } - } - } - } - } - - // Start server - fn start = async (guardian: t): unit => { - // Set up request handlers - MCP.setRequestHandler(guardian.server, "tools/list", async _request => { - fn content = [] - ({content: content}: MCP.toolResponse) - }) - - MCP.setRequestHandler(guardian.server, "tools/call", async request => { - fn name = request.name - fn args = request.arguments - - switch name { - | "get_manifest" => { - fn repoPath = - Dict.get(args, "repoPath") - ->Belt.Option.flatMap(JSON.Decode.string) - ->Belt.Option.getWithDefault("") - await handleGetManifest(guardian, repoPath) - } - | "acknowledge_manifest" => { - fn repoPath = - Dict.get(args, "repoPath") - ->Belt.Option.flatMap(JSON.Decode.string) - ->Belt.Option.getWithDefault("") - fn attestationHash = - Dict.get(args, "attestationHash") - ->Belt.Option.flatMap(JSON.Decode.string) - ->Belt.Option.getWithDefault("") - await handleAcknowledgeManifest(guardian, repoPath, attestationHash) - } - | "read_file" => { - fn sessionId = - Dict.get(args, "sessionId") - ->Belt.Option.flatMap(JSON.Decode.string) - ->Belt.Option.getWithDefault("") - fn path = - Dict.get(args, "path") - ->Belt.Option.flatMap(JSON.Decode.string) - ->Belt.Option.getWithDefault("") - await handleReadFile(guardian, sessionId, path) - } - | _ => { - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string(`Unknown tool: ${name}`)), - ]), - ), - ] - {content: content} - } - } - }) - - // Connect to stdio transport - fn transport = MCP.createStdioTransport() - await MCP.connect(guardian.server, transport) - - Console.log("MCP Repository Guardian started") - } -} - -// Main entry point -fn main = async () => { - fn guardian = GuardianServer.make() - await GuardianServer.start(guardian) -} - -// Run main -main()->ignore - diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Index.ast b/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Index.ast deleted file mode 100644 index 63534de8622c9ad5e2b7418916d14b6e78b59271..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32366 zcmb7t2Vhmj^7onKoaFZ0n+_xp(&zyd8;S-25fwqeX9F>Y0MU>@5p0GSfqiP~nggR7>YEzs zY64?wtD6Jk7F0FPYzpi@W#U1B303vAvuc`}1CttS=himYF07d`ud!inZBtEPN=;K! zZ9{!v>f(7dO@W~cs~SrukDWAe%8W7NCl8%lJ#R>3&Af&ov$?R^s`{Z#jnzZP*Uzju zzM>K0XI*j2oTTi$D{^eE%?ZYmHr#dRx_ zlm|37R@FDnYiMkST+i|3TuRQBZEi1tZfq~3P$)~fEM-u0LqpxKyn@< z=jk@Lzd)~`oF(y(;-&Rfb88?lbOJeVlCz=B9VXCw5NN$A-csJw+*n&b8zQ?3q*6V(_mQ)-7%B4FcT-fevH8Qs}GO+*<^? zS8GMj;{7n$d0nFGtAu@jo4Z<|Cps5(pU~H}x%Uh7Y@#RtZSF%tUD@V7EYNdWg7#^h z(Er`$J}J=ai4s~yp@j8Qi6#+EZgZa%{`;7kV~?ZO*4-hDocB4t#K>IHeu-TpPSz5rn_la#u$R( zb_kkh);3H{TFY-9Mk&20rM%63OP~>UC}8Q*1@*N&w>}iko^9?&0-UT`0;lj{uZ~k#N)h} z)_1A&e=<`O*H+P`nRrFj*BCeO#}Sk=hf)@|xqk|DTDxTuzSN^MVV>FMQM!QVCweTC zx|4}K$`rW^p^_!w(smU{_p>`oD+GFpz|{Z?1dN+ytApcFsgRdLqD;V*iPA7kVbJ>v z{T3cKpaTUx7T_QO@2;$D*@r#8_CM|~vBuAU(Ovuv<8P>S$v&0$sf?LpzE;=grpp}L zp{b_XdiVXR>SxyRX5-QB(<$XqN_iIG2mv>AX~;3c{14>D3ixrN9|=Py9KT1CL}(M_ z4;FB9Cwb#iV9$=*jz=>@{3~c4E#S}Xnw{)FM+AO{Y^?!PN$lUrNqaP3*eQ@~6flw~ z)sDjgp=ZF_qj+E7ofh@kb>`72!p}w#rwW*#R0ODJOrw;0Ddm2EXC6hVy(o1@Ug)Wn zEu(q#wjF@De~2B&9(Ej~_&3tJWb~N(wv|pEQ8QC6V8|mOD$y&RamgNLvj}_#+5Zaovsg(Z2akRf z`Y#aKBH*9f81fHc`~{gm4QOV!L}J#Ee+%7ZL%R8GUJ41pGwT7kD`h+Y&=Xb+yMr1a z?%&-Swagl|7yixXUGhzp`3IXO?}iXZn7@!`YD(rzax=*t1~5y&UAwYrN}(`EK(4od zrXLb&s;g0b|voL z(ORdswGOZNJTv7~rloa&nQ`-~n&+VL{9lKuR(fnhE#f6FWo!+(N0WOBzEJ6OOA6AkZT^`=Y{p^G6uUBJuRx0?4cvusG2KaR@2T3%!KtdFIH5Hf7|*`|i&@eO0*S0ACYupgGZE zs~NPQzNuT70)Z!|zpzyr7#uDd1PV#gpgBCG=;l_B87 zBq^O~srkY?7-BsHJjApKmAe?5)LugT7o2EY3-CV2k#{(GN4Bm+&@rWf&)8mSxe%uV z>?dGVWeXb9muG!yg^-Q`I8?xDuAgT-}>5n?^Su>v-lpvDxMH1|^v6z)O@P7v^9(_b!RqV#o7fRpBucM5r@vl*sg zTE*k>fpGX0$23-9WLfx7vnIR%z{BdvJA=G4D_bDmVTq<5Em97ossv1&)={!alyDU< zxM6lYJQGr9%VPV`jj~NZs1?HNZYGPSxLIfovO5(fw}f<%o{7EG#`)x3LmuMz)FuJf zbWGrI=D|xnrIEaQ$$JFgsRBNVsyG|aeke&jr-{6E=!DKqB8YG# z^=1Ko>!Om1CP}0r)mAmzoE=i{T0q_(~z6zL2o zJ|tkjq#C2PTLb3Wte%+^>lRYl07}~#I!_9?7Y>>xK$pyrm-@WWDP0gl@1~qUX$vUrWPqsxo@Pqbs7DVlZdkZyKrkZUIoeiZ$oBo+%@zIy5X}>i7obc$ zFXbj2T-gYGNmVx-ob((GA%Bz@vk(1%QG*0Gfc{YNJ@0 z_+wqON3%VehP@{b%aXnSPW=ZIjohn9_W<<2{{S8tcTcGZ;fOm@z*QI`Sgi<_h{xkQ z)*=(vSYK6FfjtSSQY45ynu#tM?J=UV7}{e6Tn$EI>uq0N?!hNg+8RoG0Fsjhe9V}d zm+tn~mwTj0J^`g^0=|LbJ1pYXJCG7<>3>XBQ_Unqf83?nCsEo4O8Wrd905NUyR@`N zJ??zrd7lIUubU5^}C$ z^wQ?W1vTzeR(x4ly90bhz`dPCR6) z+k#Gc0g*cqU{Jt|)MEX1+GQC3=U&Z%S;D;pV77qE+O6&73h63K!u0a;Z9kXW^5R+^ zkFi%|xsLC{(q96T3+peedyMNd?g2*-N$xUx zM`tvpze4Hn0N%;M@3Ud7JLA2*Q?A|f_OgOFk9d1q_{tbDR*)$KPDsagAy*Au$7*^@l;-A?^_T zpBl$YxzkIDyTje#SV%2#cYv32BRqb`+c}SXY>6{$XOQ;u&a@3hdyHOxFXayCl?|)d zp<);^xGaCMmB|HsiG>TzfV=xw;tvn6I~mLt%k0Ax;Fk%W{zmeM>ym8`guLsVG2|;E zUw`OaZ{c0qM}E7}kOl_c9aagx!n@PLQ*{==Gq-O+-o2K62t@C*@R2NPdJzWo0ZW}` zd-0IPOHD7#PLniipLE8NZzlN=Zg@{wcpk_0$Q-BPe!@8Ir21cS_9I^-`HqMD%N9PR zvwRme+Te^Q-)ZDK2YMSVytK1khmguS8jz6JIl&c5V3ihMX)d4D z9Nr~u9}8z`>Ftqc+IY*u=9;#@g>j?WsR~IB?6A#s|6rSXsA^hVU+wmB`@lvfKGj@G zOT7QA1$A}Ws%mEv`G=Dq2h+5f79L|-Wi~xc&9QmrS~fQ3w0a94#G+ioo%kQtX$O0r zXoV(1;Uo(mY7~;zbK2>aa~Pz~u<%jnuAk>w$CxnfJj~8QVY-LCh(MU2Y`B|rQ%G_E-&pWi|@ul5(C3zdJQd}hLA z%Uj$-6N9j*if<^rv{hE@BEYLHeAg&zIvL9TI&p{0t7>ejQ4D(xbRMxfD=N`ZHaGV( zc^IFz0tkH4p0V(qiGKEUdvJ#UfPUjcaY1(z@+c$96^EU6qo~eHw)MECS|JV)H;0*#Y^AUiq3=D zI18Vl^>7U}$2WT^Z*dJ1E&EKslPr9`nLkMUf;QRGE&z??r&@eA;6p5oJbR+;rsU69 za)vXF0#{RDCE%kid}sG)B`f@u)9RxxLeMH+UjCiq~Bx7dvf0qd%7FZ3d21B+=rYQ6x@q~2QUTrBhHZ&xR?UV z06*#+O~DBiJk0VQx0Cot@Sbq0D0l<~tGOuDbTw$}ERD0WOuHSlr<`LbIE#XFnF9P7 zyYdiDrmuIZDcC^4X3Kld@_HKoY=XJu1^k**L&1do( zE+xgy!N}TRX?F>hMzzl;T^%UPm*&(`@IeaV#OO=6@H=dq_OK=?X!6CJV=4Fv1#wg4 z%e1h`!Ek2M1Wmpkmi#?LdRq90_P+f?(Bvz3j-%if3jPAseir`QG^Rr?+*cvI5b`m; zp%zZxZWTkTnw#;AUlnH&_LDX0+rz1&ke@<0K=}5wa6uO}jkY`tly8iMOSh?sU64n= zyTjaJ#&1aGva2f>-!!M5LZc{z9l$r;!il5LHao3vjupZ2$5(6N>D*2{>7)*U^Tob; z%RCBjgM~R(lDI0qO|0ZwY=saj`A)EKd#qFh>PeQ0SSil;CBD;~1_~{p(Bk9^6W_U( ziZ$pv&%&q5DWi)$*LRsSk3wftXbHqGxA0ZQ^4;yZzMGu+6uO>5IQ95$w(vv780a65 z0ro?_-s-UD`qny)6ncb0&qC{N3%{jW9rs*!Up8f%(?p>S6#4@2Itzc(?Y`xE#fl;t z@x3Z=n6w_| z%Xj6zFP&xzhbY_&@Ma75?Y`~5SkV%w{c7Qz+uQE%H+J&miIYbZC3dIks=B%&WaMV( zBrKX$+t`FwoP$;%8zQYh7Sm4_#xnxiKYyyF9nBQTcoy#oIL*RUmgloWh76V8?<}Bj zHHGJa$F@2Gw4kNUw=^8={b6Szg_|gR3QGacu=DI%z)@!rg-@d}$2iQ(w7iRrkMF$0 z_2V1fp zzra$F)$rR~JkwH+s%)%qJo7;0y z{u`ZBD6%(25PkXM7Cv0HI=U!tI9qeIb1FrqQRFzlYb=Zf(9N;H|Ckj;rpEuch0oS{ z)J1s*at-S(8~H2$vld27WDExv<$vDNE@lew7cI`q@81@_q?3#Crm^JPm zn>{x=ujMRw6PHfgDAOxYg#Vn3lwfu{Y#sdY~^k=TgT0l<_Yh#fq3fMNg{zy1pSF zqEF+S*H*Z!p{jl~kYS3PrPFkq7%8xa%A5^_Jr%jwC?sy25cAr5{JO0fEOjCe;EG&UhNR%7B!oTa49fR$+y}eJ6H*m&6t_|0}piIFmf)SjOQuiEg*+0 z@-|FtJj8bM=Q|~x36o;@z$`6dBg&g?k!b4nE!IfRg%tHD%Cn_Ok-Y6%?06O7S+iJ? z@??vdVdD2_#ea}?QK>KI@J$McPT;6mk&0CJHcqmzs8v_k~0By$DHDXvdZ)Ai$8{fBu&3ht~*0#Vj~P*fhl{wigS4K5fecn;Q6;L9WL4*N6WmRO7DHoqMNTu#Z0WFW zkfX7kI31#UD{_IZ8)NT0OhOJYQy=hrvlF={G;cjO53WqiZ~+j!B__y)+`Ok{yx7Wc zWWu;eih9=bEz*S1Xz&kJz6}O~@M%|2ERAA#c>oz9=PHUVp;%l-J2*`z>#N{SC+BL4 zt)SQ%t`AMexiC0GiLI81wGpf$=NgLLO|i#V4uoo5X;%Q5NzSztdxB!mSuUKSEXs4u zvh5t$Bgy1kN3rKA_ByoZDYCKiju~8}tp7j`j!=|7;qkCFouEXd!-FR(vWYt*&yl(t zO%pt-FxO|0I?V>FF9JTDoa-s}DaF3B<(+BI-FQ+fcosP~Q0!}p{a{S*+lf1VzB89X zY-a{H?o!8^!VL7AD9iLE4fry}O* z)mAncKm40~trWaZWrjiFenrefF^Qa05HD^@sn|h+k1LYgKlAowqK1y^=mk}P{|~;X z$i6(pTt)kBUGQ~f?gz;?6gh}HZtd8yp3-^pcvJ90m7N5|j}$S9pH5YLp-hBQ!7mlT z<#wkkjCb;GaJ$SoZ8wA%h%>u&Qy9EZ3OP4Z<`t9~2a>ADI`xU$#9E<<$~*~$3`JfL z@3ieTcnD5cD!@z+!RZQuRn{Ta>M$IkJ}QP47b;T3Jhskrj)ScbVoWLOGdO-uPGLPb zD=G6!%KSPxI~5wD;J&14<2OJ!QwfIyf&UUNqNxt) zDql7ie+fBv5T1d`LMR@(RFS3Kcj9`Ly%LHyC~{kSCwA|27PJ8;_GZsFn5(`;m2f2y zx>XUg>)D>&uEb}!vyg(jlGa`fUJehMifQ8`jR#Dbxl=ZFUKB!!W9kx73nG}nL5J9e{tnVo6 zS7<+}$lsl}wb1jHl}(U?12jt6J~p7O>EEi1Y<%b?l|V|eJ!|DZnau(}C@T-Cm(ZK! ztfA}xWycbEtI$SrS}8k|vU8IYS0T7TA!92DeXK}Jt#il?fUlF+q?(j@QxKNo#LbA6a)ml3Dn4fG2_f^(R>k-3cn67szD{NPLJ{s!6nARxgnGop;RV^SucX zL0t7pRT>Ti?ompZnAEe|lsJhy3#mJlfF&G;dlZ#}Eq9d;+pFNhJw8Y|Qz+*cTOd4Q z7>8vcR$C%GV)$-y9-^EY%CQgWgzwckhqFN#?(t#DX{H?9F_|_zpxiUN^oZd$avq_a z(AW?YtLJ?wt4_ld*;j>Xp)pR8M8F1( z4)Jqjl8P*ZJkIV?-Khy1;4UOGMaidG8yup9U5yRo2FUZG+~lLkd6IHZr`(Hx%uqxU zta1B%*f!QWHX#S4;}p5t^s}WOt`8d))$lBg;Os4>Ujt;mBFlA@xqWy^l7k&PFy(j$ zy@@}i;zi($pQ7BGDfez5aK?f>$d%}j{PQ~mkqcGn5tML|B8mH9Gl{q9+cK4V8%kFx zVsZjFF19xhZdh7`9Vv2yBAc~qJb{<2=yymxKj~BN1%_~!5Q>TpHlqj}t{^|b3~UJ8 z4MgB{g}9YTAl#*d)yZZ`iV7nLBcG<+pD7QAng|@GApf^RP2^c}o}s)b zow3{7!Xs~yv!3#XQ63U*k+&5&Q1v<wYdVMd#m0mmohpV?^(4_t=g zGeYD%M|o#c-jzVYieQ`QW(&{grLwqX$S6=G@mx0>+Dl*Mh4#fCBw1vNd+GOjp$Yh7 zD40(6;Nzv=$&J}ji&+a~Cq*7YhA;hgqXGBPK4UZBkfiNc4jFqXViE#o{zdG4b^3i? zs0KMenZiY0`qNz50SN^l2P*O;SN0@Zx79@mpD|GxPeC25XS~n?6lM4$z=tc6Ht=DL zi$(Y+1SI-04pYRQ$}*5&lxa2r+#|_(p7Jm{dc-;p#OX@J+oYzJt3ZSwdx7#cQr_pb zmMUEqICo_nL(Yqo_a)_RvD}%;b<7&;oKDP`OU}P3?BLuAIB^d*kaJ9lT`J=oa$ceQk(7S`)X!Dq5UxO7 zVi&vAV7<1tPl{(ORn5at%oU0((#5;&HkASYCKVqKjT;p)k4oE}TC-spaBCup8@r6# z6**sxz_;}ocPiOFc$$G|Qk2G-5wJT{8b5NG0sreotFpd<+|P<^(T;W6oq}hxq2U;% z4_n*3sH4dLcE&chrNI z7B~JOT^2ooJWS3;>giC=u;o6gT)BSeygNmoA?ID{8KIuNpuJv^;?BEM^d)7LLhfZn z2Ju9-HNC1tZpUki;QDntyHoOeE71?gd7pY7PCapwiGHYvdFs^cO)dJ(pXis$Y=-1! zMUK}M)5ZHoQFt&Z92ck2Ulcjrs3g6C6h-tWa%Vse(Vrmap#xpKgA~KLRs_y(^J1qUEuu%3KbGm?F#CTMpr*>}Cvco>YKgj})blCo`4*H$De@85XolAd+`z@{r<~0|##^M9oBV8atbukEvG)_1X!_ z2;T%5t4-hD4i>wdoKL9NIO>Iqme^87W~*Mu9W2c6hTxvv*+lpdPp?yfz#j^7cDK$y zwpL}41I8V^RZIj}x`Ty{z2Kgt;Ax+bu;yP2*`_yJkfn8HmWRg%CUD9c|#4xF>R+Ay-9`MgvO_ee8?KyaQ>cU z>~kf5Wcvc&CGC3BdJQBojmH3M#9tYz0{GH%l zzfl36`!*K)QD+(Qy|FFid_e^vD(GdoTa}w-mTcz@A@)CVzNCTzDi{Q91a*S!*m*<9 zOjFkIHZL<>kv-G^Ao`Vv_$xD@$e!F8`}D(2XaaAgkw-9knQ)08P|vm06N7-~0G!QK zFp>)PPvk~3^YA%jDwskAGg`T$nLQP+0)iv5FpuGmZo3jQ%gFhP3g%G3NsumA#GFF9 zjU_X8A?IrJgwobRYGg9`DKQ07UBbpI??CgMI(tbiioK0(YCR3erP7I+!= z;Sc7H-9CaPUdE&NV<<~j>|rw<`&MBan#nK1@uqs-U5N15=8-&0{N74mBj zTp^;%%zrD9uS=MSFe4L@-49fFIu+UjMCPlyP|gAOHFAEW!YirpR#pJv4dou+r8CKV zkDM)3cpDYMA!oj?NZU5f@J?~D#KfK z{1JXHYXCWaQSVafja?vXpdv$gXj?a-#?Fs*Wer!E-J!6vBBP7~p1Crw5@zkG^wAI+ zsmPe5j>&n)oHRpQ%m+N!Tgdx&`ldU7h-TZ*3v;UvAqS%~k9y;jk@YV{Odg7h+2#f- z3pqkjxBv?9#DbV7efc>t`}uV*3n8Vja0tknqsY}5ki;VaOI8fzFY7lAt*ga*Q;}b| zJ#e?8b}f)bMX(IHHEc#a8#kj-f3m>Kg3A?o+!tn@tjGh#h{h)29q?HbpHbg-ugtoH z$f4ekQE%jyvMyERWutz*nXs2D5&k7>sUmOK>3pRUo-%$xtll})$XZVLulJkO`#qGg zLXl0Ky+hXR%K8j)cPL`gR<^#ol=vS=tWpHW=It+y`&H^Ys63zuQd5bgVZJKZ>cYKd zJ!1KN9J3;$d?k^EU{q}U2#|F|Db$CkPnz*G*s%7)cT4d3?D70$CpXhY3MOm4ilu|n z{WN@o$fZ7h>Vt4H>rF+9c^tZ)hWKW^D3n0qBSp+Hy~8y8Oj&~=_qig7^17IY{6?Rb zv4Fe$ok}9;%lcjs^sapx;!7d+hcmpa-&JBii2tF;#H3lcrt>V+kA`N4h&<|Z2=#&M z$_^`H_FP$hNfl-1Dj!ZiJ5Q0h#!m9lCA2=fKpFKw3KeP8PV>CZE>iN5=80UpHcIi! z9Q-nE_CWj;2K8y8J|_biq=-o+Y}=~g%0COjJ1cUbv?}?>KD_J^%Do7pdnj^6ho>4E(PtU;K`uIbKSkuRH+~8-`#>VhqdTe3+Sbcf3{HMQ)63Yv zU7M@|_W+rqhwcoVOKA$K^eLkW- zUqj;pMSfBZ4)}DK;oU@ZD@5Vl1o=%xm#j#b!iyGjYpzq7KY(0sks^M~hgW_sh&L(` zTRyKAypyaS=@?UEJ|U9$NJlo@ne=S{6yeSUNt~@*1l8GVl#Bxvm$zg^5mL|G7C1Ap zD=&rz6`5n(vIB?@E3uZF2g0K|e)1-Z*&!l5nDZ1-go=)(q7#5Tt;mfXQZik9bcu5_ z*{`TLraZsQY8-p=Biz{=RD!4dMn#sYoiQW{Lvv$3Q3>3iW^YpD1{ODVE_VBxUb-bP z`aq;);)tYUOIh{5I-#Ed@)drihKk};bUQn1^OSHlyjhfr?x3PptdHSI?^7jSWcH%` z2v7FUDu`@%_AiQ$57wN zC?Tpyof^rUJu#K`Y5yW((mKh(o|Hv>Bhm+Bi68T_hs@v{5 z$(f|x83slCqL1`#pTvB?I>B>gmOMIXoqWt~IZ{nI7sxb45FDGfV4dW^t%>F5F$sjD zb^JD%xW(BSBfA)}E{6ShqI~MRm5NhQ!eT`V)wW#} zl059^5#>?eC#dgB(1zy|$* z&+H_SrlSwfClZf$Kl%@8uRca;aB0%TE!+xI9*;g8 zn~-sKQ!g3YpW6aoCg$x8zRvQuG|=XDrQG^5WW;ANCE=T)K}R9sBO zI|6x4k$D}wB&<5v9b|0e4uP45yXJo91|aNeGw(tPxo~pgN&gKbm8d5b z&!^%O60SDaN7RdoPo(10;c5qPYGwwfX2etHMwELd)ZzO?6mN_tvU(jJYRm0GR6xZ` zsdxqCdn$4#H~9bNU~~H+Y^RbCmEh(ox4$C8)lmPu(sJPgdsFe-RQxHl;R6NvrGs{d zm6kh}sE~?RQ}M&l*jJG!RU>Jo`+=WWqjf(>TUQb5z2D8RA{5KC9Z9dz-2Rdnd8_{>y%#$>0x>`S6jDtVJi zcs*^lNNKo(FRkeG`XD>d+@Dkt4;ptFZsz`_5{PVa|EEZDWYfN!(3HG%75NJYyq0NK zsreMB7&MV0&WkD62hmJLLWza)Pi`}dACb$0>k?OY8IWE?WmFoW(!7M*%qt=)r_y{X z?QO0<@=6rPeQjQ;B4)F)%O>ejnmhz@{iqawuom-%Dq^07>Gt{~Z*QXhR62@ECqTJU zkr_IP&7u(>*Wn9Gc@u~RP-zvFHbCznMNU?|j@KWVpRgGahz+FD)2MU_5F9cES%xW> z@aFvcmipbr#Gxq7< zo+)p!5?a7LL6Lj8VM!lb$_jAtXAupe()+0t`7=E4X_1$@?*tB>qWB6FmnxEYs7sbf znV0=I{+LBAl)+y1Gx%fOZ-sqs7#AN6bt7;rEa5gG-jbp}0dl7zczf83_O<>Ykt)f% zPx)9WdG{+~HZ|i9^u{AP#LIr4&rooF<^;MYSM^jv0SMfX)cY$}HG)lSZanZTre)xV zOXFaT^s>J}QHDPPiZ3bOeg-A)6(y_(_f4yLlhP>`3}CifJnAEGxr2-&Nkk&mEFvWQcF zxI{Zr+2K@nlqs>Y(!&qQaB34jo}sx-&)o%*ewCbovaJhB{?$z{KZ|H*Dm#fS zF-p?0Y5V;plx-Q6{qO8{-H&u~$Fb5LX1&AOz8X2cnDQ+WlW+?KBPAz4!&k`1hns>KgdRbMoOzccZe;sBAM3xKcrWQaj^&N*JZ0$@r*sQ*CoYzIy%555>m49DXk?|8%|hnFs`-;qFwPPvyOMp7Oi%`gFv(-;Xlvg-(eZWrMIZyZstmiNtY?993LHrb_#!IlNndYPaz>Cl#g@t2r4h2 z@gAMU60peCB61CSl=ut+-k37KWS4(4(MT%aiOP3{mtdzKeL@?}kM`uh zpu*Fk`Jy88bXM@{RFLK%$D6TRYxh**q;eWqKe)6ye(;T%gFRq~XZfkqbqbC~~WTlq!P9 V`Z^8=w=0An7~+4!_hYbA0lX!3toy9TrUBRB*_sEJ!UX$j_ promise = "readFile" -@module("node:path") external join: (string, string) => string = "join" -@module("node:crypto") external createHash: string => 'a = "createHash" - -struct rec hashObj = { - update: string => hashObj, - digest: string => string, -} - -@send external update: (hashObj, string) => hashObj = "update" -@send external digest: (hashObj, string) => string = "digest" - -// Extract canonical locations from manifest content -fn extractCanonicalLocations = (content: string): Types.canonicalLocations => { - // Use regex to find canonical locations - fn scmMatch = RegExp.exec(/SCM files.*?`([^`]+)`/i, content) - fn botMatch = RegExp.exec(/Bot [Dd]irectives.*?`([^`]+)`/i, content) - - fn scmFiles = switch scmMatch { - | Some(result) => { - fn matches = RegExp.Result.matches(result) - switch matches[1] { - | Some(v) => Belt.Option.getWithDefault(v, ".machine_readable/") - | None => ".machine_readable/" - } - } - | None => ".machine_readable/" - } - - fn botDirectives = switch botMatch { - | Some(result) => { - fn matches = RegExp.Result.matches(result) - switch matches[1] { - | Some(v) => Belt.Option.getWithDefault(v, ".bot_directives/") - | None => ".bot_directives/" - } - } - | None => ".bot_directives/" - } - - fn agentInstructions = [".claude/CLAUDE.md", "AI.a2ml", "0-AI-MANIFEST.a2ml"] - - { - scmFiles, - botDirectives, - agentInstructions, - } -} - -// Extract invariants from manifest content -fn extractInvariants = (content: string): array => { - fn invariants = [] - - if String.match(content, /No SCM file duplication/i)->Belt.Option.isSome { - Array.push(invariants, "no_scm_duplication") - } - - if String.match(content, /Single source of truth/i)->Belt.Option.isSome { - Array.push(invariants, "single_source_of_truth") - } - - if String.match(content, /No stale metadata/i)->Belt.Option.isSome { - Array.push(invariants, "no_stale_metadata") - } - - invariants -} - -// Parse and validate an AI.a2ml manifest file -fn parseManifest = async (repoPath: string): Types.aiManifest => { - fn manifestNames = ["0-AI-MANIFEST.a2ml", "AI.a2ml", "!AI.a2ml"] - - fn rec tryReadManifest = async (names: array, index: int): option<(string, string)> => { - if index >= Array.length(names) { - None - } else { - switch names[index] { - | None => await tryReadManifest(names, index + 1) - | Some(name) => { - fn path = join(repoPath, name) - try { - fn content = await readFile(path, "utf-8") - Some((content, path)) - } catch { - | _ => await tryReadManifest(names, index + 1) - } - } - } - } - } - - fn result = await tryReadManifest(manifestNames, 0) - - switch result { - | None => { - fn msg = `No AI manifest found in ${repoPath}. Expected one of: ${Array.join( - manifestNames, - ", ", - )}` - JsError.throwWithMessage(msg) - } - | Some((manifestContent, _manifestPath)) => { - // Compute SHA-256 hash - fn hashObj = createHash("sha256") - fn hash = hashObj->update(manifestContent)->digest("hex") - - // Parse manifest structure - fn canonicalLocations = extractCanonicalLocations(manifestContent) - fn invariants = extractInvariants(manifestContent) - - { - hash, - canonicalLocations, - invariants, - parsedAt: Date.make(), - } - } - } -} - -// Validate manifest attestation hash -fn validateAttestation = (manifest: Types.aiManifest, providedHash: string): bool => { - manifest.hash === providedHash -} - diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Manifest.ast b/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Manifest.ast deleted file mode 100644 index 4a1c4f0654f7c7994629b0160d35708eea203121..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13918 zcmb7L34B!5)qi*9zIiim60j;FAR0&rn-CB|K#_?o5)?r|P!ZygOp<{l6DJck7iJ8E6q>iE^&E-LOTO5Me}Z(p(B|J-xlWU^@c@eAbt&iUW_&OP_s zbGL_OS@Yb=WHP$mJucRma%VB2g z^Z@);)&-qZ)HhsQg9?Wj^~E_o)PNsHGF@Ld%81iBJ=%aP^Y!4>#W_9JNUw@OoYUj* zV9mC#yh8@aXXatr<{&3dbl@d%w^qUIeh}7C-Uv+#dS-V^HfeR zW%PU}yGw6Wv-*{sK9kX&JdylS!@?aoUCZbL&n3qCOsGQKF-Y7o0KfYicNjuCJJPtK zC7Nnr7j*T(s2T)YDmEwD+JLtuXDe&3Qs|UcM*Vy9#JQ{+kkjWeIxKH;Ha#SYdN#4V zET=a!8V0K?p}5#QT6=SP3oDL{L^1_7WI{(tdrGA}1M&OdYl3hJKD6WCb_;P zmGIi-WVNFM=-cZnGeOHLwKBsS(60F_SK-Z9%~5KSQqyz#r;KK!SbJu7ro64C79IfQ zx+9*> z5_NqLZ5n@z@wbRZ(d|NkU%C#Qd}rCJ-$_b6q|`Hb!9fgP>TFY|3v5-w+E+mw!tl+! zsXgP&R);g`ZSco1+}p`7%p$g$$ofw}oy72~Jk@w%3QHdXVXA>XbU7ziY0CF{fkU&a z7q&+-xokQ!CAKb=jMk)PM4J=M@tSDkiHVwMDxPR=CGVebvhqz;zGDGTWVkefXvLL@$82;h?v$wK=BU)>k z=0#IA$Z)o5TBLk;DBm9dn;AY}-thoz*`6-vsl6<=E>=VA^-Osfa0A1qh@Htqviu7C z+qYk4$Xp_CV#Y4O%?#g90}(NC(@~W4f$ghNSeU2>(!f(#Tu|eQ`UtU@sbT2gA>(<@l4; z(;>Wzg`blEkN5E7UB>&K-&ZD5dA~ofSoywCzJG%Ipn-nOSCKA)~AqvmymxEfeRygKfNFR$$Pa~*XaJbzj!rNQgK`&RkCbm z?ecgsRzr)y9_}4%+&egeu7G>>0$mc}pPugYDK>0k&i45j9+P+Hkq~MYPGfia0_M^8 zRTp<6jA>O!!^*ec66K$+{IdXmz;K>%=ML(}!hrV;Wc5-o2QjQRuFRz&Ic%x&uT=ip z?2b&jY*C^K)1d7uXJH-SaE7ZQY1CVeRcl)#ja1)Qmahh^V0e~!y$(Y%o+U|Yi-f}P zCK`Wi`q8H<|2pOW5tzp?++xa_=*|y8j6`}_VZkb9Uy6cr8E!W%;ovQ>ZV_ucKwQl5 zMk10uSa90DB`o}vIQvw7JkL0Lhm5jeW^+(lA2aQZou>RZDgV7FT*vVKf>#$BnPByu zV75phkJ+9XGM)yDZyhV{163DF0(!x@I#A|BR9sGJL{x z&5$)z?^YH)3Al}+$yQm@D`}SOqW6fa%V_IUKEH*M^;ooYX*|_1GgcRsPQHdqJcsJ8 zW%#kz6a*Q+@&;C5-tpbY@KcY|-f_g(rf5w=92t&wG|`ofv5NH2QCN-HzFV36IpA#u z>X5kLV2EyKk?Z;5?qy1cmHvV8#Ysq+R7H-381}yV8TLo6L^o%9eY5UQg&t<+Aizf$ zR**yR_!##D!N<=~dYsZnQIE7?Zdevi~lB z_$!!w2MUg3_&61mY~7hZ{8LzqQRbh@(2OIphw_L27#5nLgvVp~@kZlu&L8?MIN5(Z zJp8oM?*PtW_dYGcGh<4BsPt!D zI;5V3U!Y_I!*4pXhCjig|An@N;XjQ(OLA7u^yMpMF8sP24*gS@7AS;N1D z6^DRx2}8`H+!O5`=nJ`7zk@tzXhxZ(!aGz#AE!LaxB$P22}B0^VG&>?O)xPJNN!e4%#} z=N69S4B)K|%3h)DntYn@-x*hSt+MO7n0PM>8&KjthK=8CBDNm%mIs;G0{9R^?Cy+> zkMMxq0L`PTlzoA+FBHw=tf@0GD}!u&v>prbs%D%NwPD4>3wZxCjmo}Q+1pUZvkb2@ z;c-m{d3OBRn#O2bZLDI(iIu0!oHe$o)>ai{(`!t<9&k6qJJ2;KF}$*BZ1jkxMq3?4 zyti3-7vMV#?`Pf-t3i=kLm-@Que=8z>k9c7#>(y&{(VoHY@u@Wxov4pri^MqyhsdyhfO#I=#p= z#8wl`34-l2M+jNlS8vWgGPYU_Pw8R2J=y|T-l_rvRbUW>pVG}ukYCV|+Q}qF4uTLL{1S>nm@v>8_YQ|wH&O}qR zl+`oWs6Z8V>438st}p?%2j#o%5cPZ}tOR!fLu_*}ZFSip>ZPp0>QtY~@GP>0k2!nW zA&!c7v8ZmX3S6WDTT#BA;Z+>+rp2pSbTzb%49!f1$7X)qVmjxy*?W7-nC0s8=d6?hgU&u91!y@uu^lWNoDi_DqrFtd0jS8Zh)MwQ;i@V8zGKRCaIvi*l(4+RN2A0>eXbl*nV{)x7KRKZ4S zYQ;&35^slEQrp(jh$8|@F0?`Ix`V>Z&-*9*OTnbEG1B+5Jx`MaqDguNezALaiC)&y zMrW6{{>ugxcwYtn0r*#jUwci4bGmi$bIkY#H=$R-#B{5 zZsrC6UuQT_48tU(_poRXS&GLu*>q%o{npvaIYc>hQ2OuV;>&ZDGekM3qTE*uS9uNT zJuYmUY2`WF4lq2zE73JB?7pm?0Oo!Sr+Un;ad9PDU=Lu*F@OUZViWDf#T5l{ak+_$ zD@hL0+*@IUUN`@t=f-ov9L>E(t z=srN99wDNK**FXDJcBusQb%hliXdr!bpg+Pm=y(podWbRySzPT|Z2L>dQBMdr1pK7n zL&Q3y4ttl#C?gX88EL_R5!4+f?w*9G8LE`DRG5g7V;l~j~D!8w-vYlT4J6gS{zdc<_mtAnIndHi*x@@ zqAn3NE-V5|1-~O5becT>0lL!#zbm>k*`K2ihgMb!_q4T1-DkJZ4BM1ymnzy*S7cojx# z;6hOhB}IQTmhxuBn`>k1$Vcr$Dg(Yu@JP?B(zveVGqd~e_@Yww83L{Cc)r0h) zf>7Z_WP0ea)97tkYn}?tSD`b2ZxL)(%aW~zt2#s|9~TR+-~%Cn};(>9vwy%jl~I zD!bZRq(WaS7xzg{qu{V9YaApWg4j-*=#XQaHG=o|S`Hr-P9x4nA>aVoIbU$$QCHsb zEutI@;w6HIP_1OD?homuB1NX5+0WS~&we6hcY5t9*x)%=Tc;>@f^uho{&T@|^G(w2 zR85D-7Xe={cvY8x%YQP1J_G4DLPDa*M_S&AcZw3Z$GJ=JnVxgnJBGET>c&jQwu0WA z6FoNS&i#Vp)Lt}rh%PZmQ(lGs0ntx40?H7wL3SRumMC|%a@T_OXTfJ9Dz3^O#<77kr872{L4lNX`NNyWsyKi!n<$Z;9Yi5|kPDWNdp7 zmHWV2tlU!NjtAarEmiJT<^D8(&gXn$ovPgJ%Dp*jn)|st{u=Br1mo)lPRjZNs&Jo( zaVq9~EBJ*j{nl%u2!@3Fa6$Lwb9Qil(LR#1g9ixyi`Rc<9O!rP_TXUAJp+8G;AcHv zVWJ2Q7cEjxaD?D|>hTgqaGYpxj}#m)n9k+Mk)4U+C_Tx@^km4voG4Bm13bw(O}Q^B z_f0Btljr-@L_0=?{g=SgtkaeImU90=zBiRbB(whn+DdDgaz9e;m#ms0^ApBKaHe&J za=%jUK4e#PD$VP`Dw(F|0nfFTEB9L!R^Gz6JYnw4h__I9==|U!!AD`eaap(Jad3qw zr+`>37{|}DV3m>h*Gf~s;1e=q7_r&M^$(i@Fc{Lzp~+UA z3csMjZ%DjVi35(eotyIxDA7x(u2~)zc(&j@XzgMSRh$Hdszm&E)9$6V^Ltc6K^~ef z?TX^NR&QxPTs~zUmug5R*3!NHyjW{1?surb=~lf8zp29S121D-fwQsm;=9{mo!Pdp9b7)HK?MHD(aJ;6hp06Tov_IMSP_%6Mkre zNDn}vvjz9Zgnv0r_!VC0&d7f;7TPSN0Vr^x;1Q-NC@`klD*;recLU12C-@F3Lye{#XXpcw-pT2yy`!`tw$65DQlmc;T@Ltj z!4HZHsk^@v*+b&OujTpDLKpUaS?2n!gerPZ6@8YoUCp>S(CN_c{XEhwmI9bc-9Cbc ze!nZ+{=&oQv3sy!bKdW{!W}5m3EUj_5PmNDsIWO*Z$#X3t3?$bsfzKXraN5loX%$S zdUxlJ6XFRdG+yu-|Hk~O!ds3qM+c2s(7<1-ioq|1z*>_Y&SQpu-a7dc2$gnS+`p7ZQaX^Fh`WN zm9*`5OC zEvEr*v(~BNmsRoW-rCx2msJpHFSFLG;x|+=Ezq&XG*#o{LQ}V`r=oI9*0%E~)q1s@ zq+&{Te{OA1#c!$Nw`F0C`P*DekBY|U$uX9^5Ky!ih4i zYTcWKcaC>4?fzOMD|@+_p0Fm`7^nXRP?<{M6MS<)NwwTY=3o%JaG8O^evv10c32BugWe2L+{ntZdqcy0gox9^ za9_a}ksT&$9EhS6VnNFG;eOIUET+Q;SsPWKi&dX3-rlWjWg^i?tV4x`JQO}maJ0ZB k!@SDp;MNM8C0cBShY4|{-j9=0c(_RV>iwy(kD}}U0N-M;5&!@I diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Session-HyperpolymathMcpRepoGuardian.cmj b/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Session-HyperpolymathMcpRepoGuardian.cmj deleted file mode 100644 index 6aed4935f0f4a9701374e74959866321205495bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143 zcmcEOzO&16ep&8Hv1eztePT^)nYwHr0|P@g5K9AbJP=15n6N=FIJLMqGe6HaF)uMa zwP@mp1q&P<92P8af)g%q7FY}@3lx~Zso;=NS&&*(ke^eTn^=;epPO8uTa;RmubW<) YSd@~Pn73eqqjGUkvWi}AR string = "randomUUID" -@val external setTimeout: (unit => unit, int) => unit = "setTimeout" - -// Session manager class -module SessionManager = { - struct t { { - mutable sessions: dict, - config: Types.guardianConfig, - } - - fn make = (config: Types.guardianConfig): t => { - { - sessions: Dict.make(), - config, - } - } - - // Create a new session for an AI agent - fn createSession = (manager: t, repoPath: string): Types.sessionState => { - fn session: Types.sessionState = { - sessionId: randomUUID(), - acknowledgedManifest: false, - attestationHash: None, - acknowledgedAt: None, - repoPath, - } - - Dict.set(manager.sessions, session.sessionId, session) - - // Set timeout to clean up session - setTimeout(() => { - Dict.set(manager.sessions, session.sessionId, session) - () - }, manager.config.sessionTimeout)->ignore - - session - } - - // Get session by ID - fn getSession = (manager: t, sessionId: string): option => { - Dict.get(manager.sessions, sessionId) - } - - // Acknowledge manifest for a session - fn acknowledgeManifest = ( - manager: t, - sessionId: string, - manifest: Types.aiManifest, - attestationHash: string, - ): bool => { - switch Dict.get(manager.sessions, sessionId) { - | None => false - | Some(session) => - if manifest.hash !== attestationHash { - false - } else { - fn updatedSession: Types.sessionState = { - ...session, - acknowledgedManifest: true, - attestationHash: Some(attestationHash), - acknowledgedAt: Some(Date.make()), - } - - Dict.set(manager.sessions, sessionId, updatedSession) - true - } - } - } - - // Check if session has acknowledged manifest - fn isAcknowledged = (manager: t, sessionId: string): bool => { - switch Dict.get(manager.sessions, sessionId) { - | None => false - | Some(session) => session.acknowledgedManifest - } - } - - // Destroy a session - fn destroySession = (manager: t, sessionId: string): unit => { - Dict.set(manager.sessions, sessionId, Dict.get(manager.sessions, sessionId)->Belt.Option.getExn) - () - } - - // Get all active sessions - fn getActiveSessions = (manager: t): array => { - Dict.valuesToArray(manager.sessions) - } -} - diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Session.ast b/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Session.ast deleted file mode 100644 index e69f5995fc7b57581166c14a9294139bcf1a9842..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8692 zcmb7J3wTu3wLa^dz0b_>Py|HrfhYk2LPA?Fpk8!>;R02V5>O$acT9#D9+@~vz*GVC z0=D*Y9n?}pkU>Qee2lMBYsInR^ZL4lYi&UazH4ixO0O4MYyZ91I+HU=;C?sXmoIIOq=z2o@bIL=9<9j9+& zHhb$^*`et~Lv3oo^yw2TbNSfl|F7XnXNuF9SFZW{{dn%tTs)q;Cz~m0X{c|`!3<1abaL#aIFGG|azbGp8v4y@y?c3EEavEb$cEmHyQNyf&MygJz`?}*34bI!)j z<)t};9mk2`w?BUSy0x)673Uun$*G9)OIZ1zd37nHHw&~ltjuKL+Ptb}v^O5ljK%Y^L)%uI zjg^Wgd&7eYzdi7KY;M)q%3UFvxGkDfQ5AvPR_C*25@?eW4T-vB8V{_WK+Yi|C$Hu* zIwqc5mCfE0&qf_*fRjDltgU4tQ7@vC@@gTYlVN*Rc3-x%i37I@q{ZJQ>Q6K*ua+=6 z3)^a!UW;r1VL6LO=G6*D=ftznZ_Es|nKDdlRW&1nK+iDg+`L-FXi~^i>e#%xoyC(O z&a2h@Pl@snb^Ee|YElhz>P^J1yO3xK(X_l;&uAv*9(rt9kcbxqBkp6~th~CPQDfo3 zX7BL;6R$A6m7Q^XUOjjbQJSbFAZD{0|P#CKD|pTAWu;F}fiRL%H`c zU<+t%(|w-R%kydnqaRsfo0~e$_jM+&%&RvTZ49P?9Jce#VK2M(%x%f$vYGIf?S^9> zCEAu(dl)?%&+Wi;HfBo92^LKLV^%(wSD!F?)yxTLo7-#e+5Y}HXdM$1^ z#?`93IYzM6*-YCq4}Xv74WeCn^;br}jpMlpR38~`M&&g*7ZYtIdIXTB673<{kB8z& zNj8;TnNHLs5p|j(yygc0qg6!j5q%iXzyOXm6T6yvFyUUn;}~u-v*N=|^)|E2AW)(1 z!|G+~See0zENE57nGvq)iRa744zEck5vP(*W^~CVP`0dc7yO~KBf~VBflPQVjtIRAanSB=EIEMcmST3C6nl571 zd0V!$?n!&Gs%60+&3{`1H--6WXa@IgSB`cOZS0rKf@2& zES805T4Cq-a5cFfk^4vRA7Oa7*x*lD`Zo}^S?D=!28$wT`z-QY@}giq%dkhs9Noct zxg4YyW|P;Gyb~mMUSds+4b?}&$I1XyGUKgXSCH42yi)=Ho8iD<%eErmGU0^T$Am%P z?q@jMa>K`&rjJ-v2G++6Ml;f61iL;2&goK3gpg!b7Z!gLatV#IRX2 z)i$H9V#1yKLQ-WaHZXKnSq@5vN7(+8uD% zG29qfZND+@SSH*J?gb1Vu-u}JaVM~93s@5wqC-3K#<~woG3j&gZ)f;5_&w|aXM(U5il4CJ?`HK7U8`2$Pdk5Ys3R36)eZD4!(L`? zIkn7~%BeSPYO8lmcWNAQw{gT~E+?}AAGnHCZ&D{nIX+Tpa3AL(<1yq3hBJ(LDbNRG zi%D69=OtgA2hgSkO!LHe+3NJmw^&dT3p;xr+N#!+d!jsS%_`0=~kK zchn?|Ep%;l+TF>7N^o~EywJKJXfE8{ES&_x9)_kJ4dz~4r;B6v6Q)nW$lo)Z5twc( z)b0URRfF|shKUaLxlo7twgFf$R_ZzPNi8Gw13+S!vB8xMj>5K;dfk|S0QR~wTw}RK zdF=IM6;1}P7sHKMZQ+1L02M9LJC#W&xn4hp4;rgB=K4d}pM?+E0CG<=lOD*+yb*BF z0#Xl?dNkN2NNP8!{dnH@7#_6S-bwU% z)mM``MCxmBXIZF~SX( zYGv5(i1tenOhK#UEpH;-pL7WZu3$J!%m=5y&_sRMEw?ZWmD|fOJTLSlZVv+&b<#+A z>zYZ&Nh49c^$e>zS(kME5i?pJRc4|)rT27K|X=uZgzdiRor%~Q&_wQj8hrzYv=Y(VoVKY>W3Ir%Fw2+ zb$)MK60QH%nhBSGpY&IxzX2R!p^qK_JC(^5E>vYLjkUNz*0z-CnCENY@%wwS@fHRP2(x3eoB|(eDEH zcERu3@XFe@(R
  • `u|_1zsokckDE?JNB}fQ+=V`AliLc0sA0ymr(aFCVxEn(?HzJ zu-dL2|8L>l9tXJ9sUZJ7^8Wx6=IIZy>J)P_blTyopF0)iXUn7`K64B6zK32i=H1Q^e~)876prXk|y~NAzgn zZ@}2I1#b?_w{;{sE;`&Kb%kK_AtUhK|5d~FROdp9JVTL}VW3LzTjoKXRdIc}F#Zed zD+Iq|*+r4BYen}P@REY}A1(5AN?7k>M5Ew88p|fo6e@sDi}W)o=6a!X5k(GA%}7d9}HO{_%I(eww`;Ro6TM(8l7j7YnHu}bhU z_LK@8QhJSO&_nAx1amiO%DTQ&ME1o{`&TgfUeO|*^(Mh*u!oOSvGf+<4ZxVKf=313 zwyE*3`0hC{9&sj9bTmcB*gRDa8+SY*q4PBGlX%Y@J&&Rl9TN2!VLcAkcEQ_1!4{;d zy4hqZ-%RxmA>OKbn61Rn7e%tzB&xY4^ukQ!Zdz80SAywOYg-ebf8|W2=uC?KD~9eA z%&%A9$MAMHRQ;|n(qQiu+-m$+cmb|I6!Ep7d?fg~&@zsemtP2f3C4aY*fz4pd?+su zi|&Wu{Z;TS9iG9xb!RUF{ccVbMb}X@o7aAK!S(>?EHC{Ng@L#JeqX^kj+)T-4ej?6 z-J{^0Citl!QjF#HH&%a$un-ykP{BK_Ww32SfR|S4Tjm&GgP^t%Q0pyYhw;ncyXq$H_k{o(A#e6pK=$LWl3JX^s|9Ziz&0M5xE(+#*Yg;b*D};D;kc<8g zL^7+BT>KWcvZAKBeqr!c$9!M%Z+9-E*ied%0RFMy3gey5%A~(R7--A z{UV+W%4WeAhgK3UVL=Cqk8#5nCg!&!o2I2I(&YfOA81||%^kdvubKJ$N*0p>-s#Mw*jkFM z4>odOBAE7Wp-lyCkKjv>`trvANNAT~$j5@`7F>qOq4fBliejEo{F7Cs96&ZdS2_0|43PAVmNG diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Types.affine b/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Types.affine deleted file mode 100644 index c8eb0b587..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Types.affine +++ /dev/null @@ -1,43 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Types; - -// SPDX-License-Identifier: MPL-2.0 - -// AI.a2ml manifest structure -struct canonicalLocations { { - scmFiles: string, - botDirectives: string, - agentInstructions: array, -} - -struct aiManifest { { - hash: string, - canonicalLocations: canonicalLocations, - invariants: array, - parsedAt: Date.t, -} - -// Session state for an AI agent -struct sessionState { { - sessionId: string, - acknowledgedManifest: bool, - attestationHash: option, - acknowledgedAt: option, - repoPath: string, -} - -// Access control result -struct accessResult { { - allowed: bool, - reason: option, -} - -// Guardian configuration -struct guardianConfig { { - basePath: string, - strictMode: bool, - sessionTimeout: int, -} - diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Types.ast b/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/ocaml/Types.ast deleted file mode 100644 index fea7e0e429396c297756aecc87ceb0639ad5fcff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2295 zcmb7_U2GLq5Xa9P&T3mkBR&uyDQZith4#kM@PH66=`B#{rKDewP-wS%m)i}uyVu=q zOCtsvO%xR^Ng?=Py`%;~6RF04L8vGA;715bFi{et5cR>&_#n|3O`Nl{ds*AQ_^{bu zW@cyRocW)#jIrCwQo3)JC5CjjvaM-rYkNisx+#XP~)>kct5nZ#VReU6{9T+{Hap&;Rs4eSZFUy7yp2KM}{jQ0oj7o?~NV0@08 z59wLc_M2_&Vi5BN>lQ0E0y_%qm=r6CPKBwL>#nPhV6Usl{)Q9{L{rJae^;}X>~Bf2 zj_7Q$IxcB}6iG6_tIUhkLX+zerD#;!mzE;63D`Mc??s=*rd6X`Y2CJVo1Tv!Y9xGk>i>aJw)F`Wn=q4r$|J$1=tN> z-%8O>bTiC8ceq1Ae@KxJ2ukOuRAbpFZ&b0bbh9@NFdqQ-Y=mf0SfMzM17u$;#VAqv z%yAqf`!Xq>C0brAOXE01<|<_l#-YTU*Im!dtXI1{z6GEfphk)#MD^6f@v%yE9`92z z6Xa=-;uWGb#UfMUPNm{-#*;Lt3sSt=3a}PnT@)Cb@=DM2JXB=6kNGkCn{5ES0HzeD zi5|mzYR(Uafz26=I@1m?1h7|%vqYoeX5Bhy)8u$kiuZ{QM%81(ZqSWAwlkbFGg&he zQ`?6f0M7v&lHwzx<6-{FKF7&n1D}$4Qi{)rUYjF(Lic@CZ*bFWB9(sG32+JkkJL4y zb5Y|?UL8zKeVrWVrMN+KapstRAo~YW{7Ce1u{e$S7czgM%+Z+Z;!6#N{d*U{C4kFP z+$8#HRxf{(<7+AYA^I-pB_;_%bsx{J z1`D?V{0i_J;yr|aM!iHgrv^*N^A`p!4Un^9q454B;PU4yaI6rVFKGw>U%)X<(y#?wWmRSH}D4Fs}WZbqOgN&K2(PW zYsmfxhCEEz7}du%qN~2jHFZzTT!Y4)z?*mNMA?%zX4GlWT z(SV7w{h7z0tR^U8{?JzKxE(+rodE2D^3O z`+$!kW(i*m_pQ25_snR@b|3I@;72jcA)JU7d27l;!H{PN@#xL^`__fGOougKI)i~I#xlUq1E0nZ4-=|i nkNOW*SauL`jLerY;w8c>GgC*xe3`aqABIktz^?-Tycqf~wnoUc diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/rescript.lock b/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/rescript.lock deleted file mode 100644 index b7d8a4fb2..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/lib/rescript.lock +++ /dev/null @@ -1 +0,0 @@ -672471 \ No newline at end of file diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Guards.affine b/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Guards.affine deleted file mode 100644 index 7feaeb4d2..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Guards.affine +++ /dev/null @@ -1,97 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Guards; - -// SPDX-License-Identifier: MPL-2.0 - -// Access control guard module -module AccessGuard = { - struct t { { - sessionManager: Session.SessionManager.t, - manifest: Types.aiManifest, - } - - fn make = (sessionManager: Session.SessionManager.t, manifest: Types.aiManifest): t => { - { - sessionManager, - manifest, - } - } - - // Check if session has access to perform operations - fn checkAccess = (guard: t, sessionId: string): Types.accessResult => { - switch Session.SessionManager.getSession(guard.sessionManager, sessionId) { - | None => { - allowed: false, - reason: Some("Invalid session ID. Session may have expired."), - } - | Some(session) => - if !session.acknowledgedManifest { - fn hashPreview = String.substring(guard.manifest.hash, ~start=0, ~end=16) - { - allowed: false, - reason: Some( - "⚠️ ACCESS DENIED\n\n" ++ - "You must read and acknowledge the AI manifest (AI.a2ml) before " ++ - "accessing any files in this repository.\n\n" ++ - "Call the acknowledge_manifest tool with the manifest hash to proceed.\n\n" ++ - `Expected hash: ${hashPreview}...`, - ), - } - } else { - {allowed: true, reason: None} - } - } - } - - // Validate that a file path doesn't violate manifest invariants - fn validatePath = (guard: t, path: string): Types.accessResult => { - // Check for SCM file duplication invariant - if Array.includes(guard.manifest.invariants, "no_scm_duplication") { - fn scmFiles = [ - "STATE.scm", - "META.scm", - "ECOSYSTEM.scm", - "AGENTIC.scm", - "NEUROSYM.scm", - "PLAYBOOK.scm", - "LANGUAGES.scm", - ] - - fn isViolation = Array.some(scmFiles, scmFile => { - String.endsWith(path, scmFile) && !String.includes(path, ".machine_readable/") - }) - - if isViolation { - fn violatedFile = - Array.find(scmFiles, scmFile => - String.endsWith(path, scmFile) - )->Belt.Option.getWithDefault("unknown") - - { - allowed: false, - reason: Some( - "⚠️ INVARIANT VIOLATION\n\n" ++ - `Attempted to access ${violatedFile} outside of .machine_readable/ directory.\n\n` ++ - "Per AI.a2ml manifest: SCM files MUST be in .machine_readable/ only.\n" ++ "This prevents duplicate file errors.", - ), - } - } else { - {allowed: true, reason: None} - } - } else { - {allowed: true, reason: None} - } - } - - // Require acknowledgment before any operation - fn requireAcknowledgment = (guard: t, sessionId: string, operation: string): unit => { - fn access = checkAccess(guard, sessionId) - if !access.allowed { - fn reason = Belt.Option.getWithDefault(access.reason, "Unknown reason") - JsError.throwWithMessage(`Cannot perform ${operation}: ${reason}`) - } - } -} - diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Guards.mjs b/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Guards.mjs deleted file mode 100644 index ff5280e21..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Guards.mjs +++ /dev/null @@ -1,90 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE - -import * as Belt_Option from "@rescript/runtime/lib/es6/Belt_Option.js"; -import * as Stdlib_JsError from "@rescript/runtime/lib/es6/Stdlib_JsError.js"; -import * as Session$HyperpolymathMcpRepoGuardian from "./Session.mjs"; - -function make(sessionManager, manifest) { - return { - sessionManager: sessionManager, - manifest: manifest - }; -} - -function checkAccess(guard, sessionId) { - let session = Session$HyperpolymathMcpRepoGuardian.SessionManager.getSession(guard.sessionManager, sessionId); - if (session === undefined) { - return { - allowed: false, - reason: "Invalid session ID. Session may have expired." - }; - } - if (session.acknowledgedManifest) { - return { - allowed: true, - reason: undefined - }; - } - let hashPreview = guard.manifest.hash.substring(0, 16); - return { - allowed: false, - reason: "⚠️ ACCESS DENIED\n\nYou must read and acknowledge the AI manifest (AI.a2ml) before accessing any files in this repository.\n\nCall the acknowledge_manifest tool with the manifest hash to proceed.\n\n" + (`Expected hash: ` + hashPreview + `...`) - }; -} - -function validatePath(guard, path) { - if (!guard.manifest.invariants.includes("no_scm_duplication")) { - return { - allowed: true, - reason: undefined - }; - } - let scmFiles = [ - "STATE.scm", - "META.scm", - "ECOSYSTEM.scm", - "AGENTIC.scm", - "NEUROSYM.scm", - "PLAYBOOK.scm", - "LANGUAGES.scm" - ]; - let isViolation = scmFiles.some(scmFile => { - if (path.endsWith(scmFile)) { - return !path.includes(".machine_readable/"); - } else { - return false; - } - }); - if (!isViolation) { - return { - allowed: true, - reason: undefined - }; - } - let violatedFile = Belt_Option.getWithDefault(scmFiles.find(scmFile => path.endsWith(scmFile)), "unknown"); - return { - allowed: false, - reason: "⚠️ INVARIANT VIOLATION\n\n" + (`Attempted to access ` + violatedFile + ` outside of .machine_readable/ directory.\n\n`) + "Per AI.a2ml manifest: SCM files MUST be in .machine_readable/ only.\nThis prevents duplicate file errors." - }; -} - -function requireAcknowledgment(guard, sessionId, operation) { - let access = checkAccess(guard, sessionId); - if (access.allowed) { - return; - } - let reason = Belt_Option.getWithDefault(access.reason, "Unknown reason"); - Stdlib_JsError.throwWithMessage(`Cannot perform ` + operation + `: ` + reason); -} - -let AccessGuard = { - make: make, - checkAccess: checkAccess, - validatePath: validatePath, - requireAcknowledgment: requireAcknowledgment -}; - -export { - AccessGuard, -} -/* Session-HyperpolymathMcpRepoGuardian Not a pure module */ diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Index.affine b/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Index.affine deleted file mode 100644 index 3b1d8468f..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Index.affine +++ /dev/null @@ -1,329 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Index; - -// SPDX-License-Identifier: MPL-2.0 - -// MCP SDK External Bindings -module MCP = { - // Server struct - struct server - - // Transport struct - struct transport - - // Request/Response structs - struct toolRequest { { - name: string, - arguments: dict, - } - - struct toolResponse { {content: array} - - // External functions - @module("@modelcontextprotocol/sdk/server/index.js") @new - external createServer: {"name": string, "version": string} => server = "Server" - - @module("@modelcontextprotocol/sdk/server/stdio.js") @new - external createStdioTransport: unit => transport = "StdioServerTransport" - - @send external connect: (server, transport) => promise = "connect" - - @send - external setRequestHandler: (server, string, toolRequest => promise) => unit = - "setRequestHandler" -} - -// File system external bindings -@module("node:fs/promises") external readFile: (string, string) => promise = "readFile" -@module("node:fs/promises") external readdir: string => promise> = "readdir" -@module("node:path") external resolve: (string, string) => string = "resolve" -@module("node:path") external join: (string, string) => string = "join" - -// Get environment variable with default -fn getEnv = (name: string, default: string): string => { - fn env: dict = %raw("process.env") - switch Dict.get(env, name) { - | Some(v) => v - | None => default - } -} - -// Main server class -module GuardianServer = { - struct t { { - server: MCP.server, - config: Types.guardianConfig, - sessionManager: Session.SessionManager.t, - mutable manifests: dict, - } - - fn make = (): t => { - fn cwd: unit => string = %raw("() => process.cwd()") - fn config: Types.guardianConfig = { - basePath: getEnv("REPOS_PATH", cwd()), - strictMode: getEnv("STRICT_MODE", "false") == "true", - sessionTimeout: Belt.Int.fromString( - getEnv("SESSION_TIMEOUT", "3600000"), - )->Belt.Option.getWithDefault(3600000), - } - - fn server = MCP.createServer({"name": "repo-guardian", "version": "0.1.0"}) - fn sessionManager = Session.SessionManager.make(config) - - { - server, - config, - sessionManager, - manifests: Dict.make(), - } - } - - // Handle get_manifest tool - fn handleGetManifest = async (guardian: t, repoPath: string): MCP.toolResponse => { - fn fullPath = resolve(guardian.config.basePath, repoPath) - fn manifest = await Manifest.parseManifest(fullPath) - - // Store manifest - Dict.set(guardian.manifests, repoPath, manifest) - - // Return manifest info - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ( - "text", - JSON.Encode.string( - `Manifest hash: ${manifest.hash}\n\nYou must acknowledge this manifest with the hash to proceed.`, - ), - ), - ]), - ), - ] - - {content: content} - } - - // Handle acknowledge_manifest tool - fn handleAcknowledgeManifest = async ( - guardian: t, - repoPath: string, - attestationHash: string, - ): MCP.toolResponse => { - switch Dict.get(guardian.manifests, repoPath) { - | None => { - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string("ERROR: You must call get_manifest first")), - ]), - ), - ] - {content: content} - } - | Some(manifest) => - if !Manifest.validateAttestation(manifest, attestationHash) { - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string("ERROR: Invalid attestation hash")), - ]), - ), - ] - {content: content} - } else { - // Create session - fn session = Session.SessionManager.createSession(guardian.sessionManager, repoPath) - - // Acknowledge manifest - fn _ = Session.SessionManager.acknowledgeManifest( - guardian.sessionManager, - session.sessionId, - manifest, - attestationHash, - ) - - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ( - "text", - JSON.Encode.string(`✅ Manifest acknowledged! Session ID: ${session.sessionId}`), - ), - ]), - ), - ] - {content: content} - } - } - } - - // Handle read_file tool - fn handleReadFile = async (guardian: t, sessionId: string, path: string): MCP.toolResponse => { - // Get manifest for session - switch Session.SessionManager.getSession(guardian.sessionManager, sessionId) { - | None => { - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string("ERROR: Invalid session ID")), - ]), - ), - ] - {content: content} - } - | Some(session) => - switch Dict.get(guardian.manifests, session.repoPath) { - | None => { - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string("ERROR: Manifest not found")), - ]), - ), - ] - {content: content} - } - | Some(manifest) => - fn accessGuard = Guards.AccessGuard.make(guardian.sessionManager, manifest) - - // Check access - fn accessResult = Guards.AccessGuard.checkAccess(accessGuard, sessionId) - if !accessResult.allowed { - fn reason = Belt.Option.getWithDefault(accessResult.reason, "Unknown") - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string(`ERROR: ${reason}`)), - ]), - ), - ] - {content: content} - } else { - // Validate path - fn pathResult = Guards.AccessGuard.validatePath(accessGuard, path) - if !pathResult.allowed { - fn reason = Belt.Option.getWithDefault(pathResult.reason, "Unknown") - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string(`ERROR: ${reason}`)), - ]), - ), - ] - {content: content} - } else { - // Read file - fn fullPath = join(guardian.config.basePath, join(session.repoPath, path)) - try { - fn fileContent = await readFile(fullPath, "utf-8") - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string(fileContent)), - ]), - ), - ] - {content: content} - } catch { - | _ => { - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string(`ERROR: Failed to read file ${path}`)), - ]), - ), - ] - {content: content} - } - } - } - } - } - } - } - - // Start server - fn start = async (guardian: t): unit => { - // Set up request handlers - MCP.setRequestHandler(guardian.server, "tools/list", async _request => { - fn content = [] - ({content: content}: MCP.toolResponse) - }) - - MCP.setRequestHandler(guardian.server, "tools/call", async request => { - fn name = request.name - fn args = request.arguments - - switch name { - | "get_manifest" => { - fn repoPath = - Dict.get(args, "repoPath") - ->Belt.Option.flatMap(JSON.Decode.string) - ->Belt.Option.getWithDefault("") - await handleGetManifest(guardian, repoPath) - } - | "acknowledge_manifest" => { - fn repoPath = - Dict.get(args, "repoPath") - ->Belt.Option.flatMap(JSON.Decode.string) - ->Belt.Option.getWithDefault("") - fn attestationHash = - Dict.get(args, "attestationHash") - ->Belt.Option.flatMap(JSON.Decode.string) - ->Belt.Option.getWithDefault("") - await handleAcknowledgeManifest(guardian, repoPath, attestationHash) - } - | "read_file" => { - fn sessionId = - Dict.get(args, "sessionId") - ->Belt.Option.flatMap(JSON.Decode.string) - ->Belt.Option.getWithDefault("") - fn path = - Dict.get(args, "path") - ->Belt.Option.flatMap(JSON.Decode.string) - ->Belt.Option.getWithDefault("") - await handleReadFile(guardian, sessionId, path) - } - | _ => { - fn content = [ - JSON.Encode.object( - Dict.fromArray([ - ("struct", JSON.Encode.string("text")), - ("text", JSON.Encode.string(`Unknown tool: ${name}`)), - ]), - ), - ] - {content: content} - } - } - }) - - // Connect to stdio transport - fn transport = MCP.createStdioTransport() - await MCP.connect(guardian.server, transport) - - Console.log("MCP Repository Guardian started") - } -} - -// Main entry point -fn main = async () => { - fn guardian = GuardianServer.make() - await GuardianServer.start(guardian) -} - -// Run main -main()->ignore - diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Index.mjs b/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Index.mjs deleted file mode 100644 index 67587ca83..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Index.mjs +++ /dev/null @@ -1,286 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE - -import * as Belt_Int from "@rescript/runtime/lib/es6/Belt_Int.js"; -import * as Nodepath from "node:path"; -import * as Belt_Option from "@rescript/runtime/lib/es6/Belt_Option.js"; -import * as Stdlib_JSON from "@rescript/runtime/lib/es6/Stdlib_JSON.js"; -import * as Promises from "node:fs/promises"; -import * as Guards$HyperpolymathMcpRepoGuardian from "./Guards.mjs"; -import * as Session$HyperpolymathMcpRepoGuardian from "./Session.mjs"; -import * as Manifest$HyperpolymathMcpRepoGuardian from "./Manifest.mjs"; -import * as IndexJs from "@modelcontextprotocol/sdk/server/index.js"; -import * as StdioJs from "@modelcontextprotocol/sdk/server/stdio.js"; - -let MCP = {}; - -function getEnv(name, $$default) { - let env = process.env; - let v = env[name]; - if (v !== undefined) { - return v; - } else { - return $$default; - } -} - -function make() { - let cwd = (() => process.cwd()); - let config_basePath = getEnv("REPOS_PATH", cwd()); - let config_strictMode = getEnv("STRICT_MODE", "false") === "true"; - let config_sessionTimeout = Belt_Option.getWithDefault(Belt_Int.fromString(getEnv("SESSION_TIMEOUT", "3600000")), 3600000); - let config = { - basePath: config_basePath, - strictMode: config_strictMode, - sessionTimeout: config_sessionTimeout - }; - let server = new IndexJs.Server({ - name: "repo-guardian", - version: "0.1.0" - }); - let sessionManager = Session$HyperpolymathMcpRepoGuardian.SessionManager.make(config); - return { - server: server, - config: config, - sessionManager: sessionManager, - manifests: {} - }; -} - -async function handleGetManifest(guardian, repoPath) { - let fullPath = Nodepath.resolve(guardian.config.basePath, repoPath); - let manifest = await Manifest$HyperpolymathMcpRepoGuardian.parseManifest(fullPath); - guardian.manifests[repoPath] = manifest; - let content = [Object.fromEntries([ - [ - "type", - "text" - ], - [ - "text", - `Manifest hash: ` + manifest.hash + `\n\nYou must acknowledge this manifest with the hash to proceed.` - ] - ])]; - return { - content: content - }; -} - -async function handleAcknowledgeManifest(guardian, repoPath, attestationHash) { - let manifest = guardian.manifests[repoPath]; - if (manifest !== undefined) { - if (Manifest$HyperpolymathMcpRepoGuardian.validateAttestation(manifest, attestationHash)) { - let session = Session$HyperpolymathMcpRepoGuardian.SessionManager.createSession(guardian.sessionManager, repoPath); - Session$HyperpolymathMcpRepoGuardian.SessionManager.acknowledgeManifest(guardian.sessionManager, session.sessionId, manifest, attestationHash); - let content = [Object.fromEntries([ - [ - "type", - "text" - ], - [ - "text", - `✅ Manifest acknowledged! Session ID: ` + session.sessionId - ] - ])]; - return { - content: content - }; - } - let content$1 = [Object.fromEntries([ - [ - "type", - "text" - ], - [ - "text", - "ERROR: Invalid attestation hash" - ] - ])]; - return { - content: content$1 - }; - } - let content$2 = [Object.fromEntries([ - [ - "type", - "text" - ], - [ - "text", - "ERROR: You must call get_manifest first" - ] - ])]; - return { - content: content$2 - }; -} - -async function handleReadFile(guardian, sessionId, path) { - let session = Session$HyperpolymathMcpRepoGuardian.SessionManager.getSession(guardian.sessionManager, sessionId); - if (session !== undefined) { - let manifest = guardian.manifests[session.repoPath]; - if (manifest !== undefined) { - let accessGuard = Guards$HyperpolymathMcpRepoGuardian.AccessGuard.make(guardian.sessionManager, manifest); - let accessResult = Guards$HyperpolymathMcpRepoGuardian.AccessGuard.checkAccess(accessGuard, sessionId); - if (accessResult.allowed) { - let pathResult = Guards$HyperpolymathMcpRepoGuardian.AccessGuard.validatePath(accessGuard, path); - if (pathResult.allowed) { - let fullPath = Nodepath.join(guardian.config.basePath, Nodepath.join(session.repoPath, path)); - try { - let fileContent = await Promises.readFile(fullPath, "utf-8"); - let content = [Object.fromEntries([ - [ - "type", - "text" - ], - [ - "text", - fileContent - ] - ])]; - return { - content: content - }; - } catch (exn) { - let content$1 = [Object.fromEntries([ - [ - "type", - "text" - ], - [ - "text", - `ERROR: Failed to read file ` + path - ] - ])]; - return { - content: content$1 - }; - } - } else { - let reason = Belt_Option.getWithDefault(pathResult.reason, "Unknown"); - let content$2 = [Object.fromEntries([ - [ - "type", - "text" - ], - [ - "text", - `ERROR: ` + reason - ] - ])]; - return { - content: content$2 - }; - } - } else { - let reason$1 = Belt_Option.getWithDefault(accessResult.reason, "Unknown"); - let content$3 = [Object.fromEntries([ - [ - "type", - "text" - ], - [ - "text", - `ERROR: ` + reason$1 - ] - ])]; - return { - content: content$3 - }; - } - } else { - let content$4 = [Object.fromEntries([ - [ - "type", - "text" - ], - [ - "text", - "ERROR: Manifest not found" - ] - ])]; - return { - content: content$4 - }; - } - } else { - let content$5 = [Object.fromEntries([ - [ - "type", - "text" - ], - [ - "text", - "ERROR: Invalid session ID" - ] - ])]; - return { - content: content$5 - }; - } -} - -async function start(guardian) { - guardian.server.setRequestHandler("tools/list", async _request => { - let content = []; - return { - content: content - }; - }); - guardian.server.setRequestHandler("tools/call", async request => { - let name = request.name; - let args = request.arguments; - switch (name) { - case "acknowledge_manifest" : - let repoPath = Belt_Option.getWithDefault(Belt_Option.flatMap(args["repoPath"], Stdlib_JSON.Decode.string), ""); - let attestationHash = Belt_Option.getWithDefault(Belt_Option.flatMap(args["attestationHash"], Stdlib_JSON.Decode.string), ""); - return await handleAcknowledgeManifest(guardian, repoPath, attestationHash); - case "get_manifest" : - let repoPath$1 = Belt_Option.getWithDefault(Belt_Option.flatMap(args["repoPath"], Stdlib_JSON.Decode.string), ""); - return await handleGetManifest(guardian, repoPath$1); - case "read_file" : - let sessionId = Belt_Option.getWithDefault(Belt_Option.flatMap(args["sessionId"], Stdlib_JSON.Decode.string), ""); - let path = Belt_Option.getWithDefault(Belt_Option.flatMap(args["path"], Stdlib_JSON.Decode.string), ""); - return await handleReadFile(guardian, sessionId, path); - default: - let content = [Object.fromEntries([ - [ - "type", - "text" - ], - [ - "text", - `Unknown tool: ` + name - ] - ])]; - return { - content: content - }; - } - }); - let transport = new StdioJs.StdioServerTransport(); - await guardian.server.connect(transport); - console.log("MCP Repository Guardian started"); -} - -let GuardianServer = { - make: make, - handleGetManifest: handleGetManifest, - handleAcknowledgeManifest: handleAcknowledgeManifest, - handleReadFile: handleReadFile, - start: start -}; - -async function main() { - let guardian = make(); - return await start(guardian); -} - -main(); - -export { - MCP, - getEnv, - GuardianServer, - main, -} -/* Not a pure module */ diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Manifest.affine b/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Manifest.affine deleted file mode 100644 index 9991ed88c..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Manifest.affine +++ /dev/null @@ -1,133 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Manifest; - -// SPDX-License-Identifier: MPL-2.0 - -// External Deno APIs -@module("node:fs/promises") external readFile: (string, string) => promise = "readFile" -@module("node:path") external join: (string, string) => string = "join" -@module("node:crypto") external createHash: string => 'a = "createHash" - -struct rec hashObj = { - update: string => hashObj, - digest: string => string, -} - -@send external update: (hashObj, string) => hashObj = "update" -@send external digest: (hashObj, string) => string = "digest" - -// Extract canonical locations from manifest content -fn extractCanonicalLocations = (content: string): Types.canonicalLocations => { - // Use regex to find canonical locations - fn scmMatch = RegExp.exec(/SCM files.*?`([^`]+)`/i, content) - fn botMatch = RegExp.exec(/Bot [Dd]irectives.*?`([^`]+)`/i, content) - - fn scmFiles = switch scmMatch { - | Some(result) => { - fn matches = RegExp.Result.matches(result) - switch matches[1] { - | Some(v) => Belt.Option.getWithDefault(v, ".machine_readable/") - | None => ".machine_readable/" - } - } - | None => ".machine_readable/" - } - - fn botDirectives = switch botMatch { - | Some(result) => { - fn matches = RegExp.Result.matches(result) - switch matches[1] { - | Some(v) => Belt.Option.getWithDefault(v, ".bot_directives/") - | None => ".bot_directives/" - } - } - | None => ".bot_directives/" - } - - fn agentInstructions = [".claude/CLAUDE.md", "AI.a2ml", "0-AI-MANIFEST.a2ml"] - - { - scmFiles, - botDirectives, - agentInstructions, - } -} - -// Extract invariants from manifest content -fn extractInvariants = (content: string): array => { - fn invariants = [] - - if String.match(content, /No SCM file duplication/i)->Belt.Option.isSome { - Array.push(invariants, "no_scm_duplication") - } - - if String.match(content, /Single source of truth/i)->Belt.Option.isSome { - Array.push(invariants, "single_source_of_truth") - } - - if String.match(content, /No stale metadata/i)->Belt.Option.isSome { - Array.push(invariants, "no_stale_metadata") - } - - invariants -} - -// Parse and validate an AI.a2ml manifest file -fn parseManifest = async (repoPath: string): Types.aiManifest => { - fn manifestNames = ["0-AI-MANIFEST.a2ml", "AI.a2ml", "!AI.a2ml"] - - fn rec tryReadManifest = async (names: array, index: int): option<(string, string)> => { - if index >= Array.length(names) { - None - } else { - switch names[index] { - | None => await tryReadManifest(names, index + 1) - | Some(name) => { - fn path = join(repoPath, name) - try { - fn content = await readFile(path, "utf-8") - Some((content, path)) - } catch { - | _ => await tryReadManifest(names, index + 1) - } - } - } - } - } - - fn result = await tryReadManifest(manifestNames, 0) - - switch result { - | None => { - fn msg = `No AI manifest found in ${repoPath}. Expected one of: ${Array.join( - manifestNames, - ", ", - )}` - JsError.throwWithMessage(msg) - } - | Some((manifestContent, _manifestPath)) => { - // Compute SHA-256 hash - fn hashObj = createHash("sha256") - fn hash = hashObj->update(manifestContent)->digest("hex") - - // Parse manifest structure - fn canonicalLocations = extractCanonicalLocations(manifestContent) - fn invariants = extractInvariants(manifestContent) - - { - hash, - canonicalLocations, - invariants, - parsedAt: Date.make(), - } - } - } -} - -// Validate manifest attestation hash -fn validateAttestation = (manifest: Types.aiManifest, providedHash: string): bool => { - manifest.hash === providedHash -} - diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Manifest.mjs b/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Manifest.mjs deleted file mode 100644 index 24c7e3525..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Manifest.mjs +++ /dev/null @@ -1,107 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE - -import * as Nodepath from "node:path"; -import * as Belt_Option from "@rescript/runtime/lib/es6/Belt_Option.js"; -import * as Nodecrypto from "node:crypto"; -import * as Stdlib_JsError from "@rescript/runtime/lib/es6/Stdlib_JsError.js"; -import * as Primitive_option from "@rescript/runtime/lib/es6/Primitive_option.js"; -import * as Promises from "node:fs/promises"; - -function extractCanonicalLocations(content) { - let scmMatch = /SCM files.*?`([^`]+)`/i.exec(content); - let botMatch = /Bot [Dd]irectives.*?`([^`]+)`/i.exec(content); - let scmFiles; - if (scmMatch == null) { - scmFiles = ".machine_readable/"; - } else { - let matches = scmMatch.slice(1); - let v = matches[1]; - scmFiles = v !== undefined ? Belt_Option.getWithDefault(Primitive_option.valFromOption(v), ".machine_readable/") : ".machine_readable/"; - } - let botDirectives; - if (botMatch == null) { - botDirectives = ".bot_directives/"; - } else { - let matches$1 = botMatch.slice(1); - let v$1 = matches$1[1]; - botDirectives = v$1 !== undefined ? Belt_Option.getWithDefault(Primitive_option.valFromOption(v$1), ".bot_directives/") : ".bot_directives/"; - } - let agentInstructions = [ - ".claude/CLAUDE.md", - "AI.a2ml", - "0-AI-MANIFEST.a2ml" - ]; - return { - scmFiles: scmFiles, - botDirectives: botDirectives, - agentInstructions: agentInstructions - }; -} - -function extractInvariants(content) { - let invariants = []; - if (Belt_Option.isSome(Primitive_option.fromNullable(content.match(/No SCM file duplication/i)))) { - invariants.push("no_scm_duplication"); - } - if (Belt_Option.isSome(Primitive_option.fromNullable(content.match(/Single source of truth/i)))) { - invariants.push("single_source_of_truth"); - } - if (Belt_Option.isSome(Primitive_option.fromNullable(content.match(/No stale metadata/i)))) { - invariants.push("no_stale_metadata"); - } - return invariants; -} - -async function parseManifest(repoPath) { - let manifestNames = [ - "0-AI-MANIFEST.a2ml", - "AI.a2ml", - "!AI.a2ml" - ]; - let tryReadManifest = async (names, index) => { - if (index >= names.length) { - return; - } - let name = names[index]; - if (name === undefined) { - return await tryReadManifest(names, index + 1 | 0); - } - let path = Nodepath.join(repoPath, name); - try { - let content = await Promises.readFile(path, "utf-8"); - return [ - content, - path - ]; - } catch (exn) { - return await tryReadManifest(names, index + 1 | 0); - } - }; - let result = await tryReadManifest(manifestNames, 0); - if (result === undefined) { - return Stdlib_JsError.throwWithMessage(`No AI manifest found in ` + repoPath + `. Expected one of: ` + manifestNames.join(", ")); - } - let manifestContent = result[0]; - let hashObj = Nodecrypto.createHash("sha256"); - let hash = hashObj.update(manifestContent).digest("hex"); - let canonicalLocations = extractCanonicalLocations(manifestContent); - let invariants = extractInvariants(manifestContent); - return { - hash: hash, - canonicalLocations: canonicalLocations, - invariants: invariants, - parsedAt: new Date() - }; -} - -function validateAttestation(manifest, providedHash) { - return manifest.hash === providedHash; -} - -export { - extractCanonicalLocations, - extractInvariants, - parseManifest, - validateAttestation, -} -/* node:path Not a pure module */ diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Session.affine b/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Session.affine deleted file mode 100644 index 57d0c09ce..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Session.affine +++ /dev/null @@ -1,97 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Session; - -// SPDX-License-Identifier: MPL-2.0 - -// External Deno/Node crypto API -@module("node:crypto") external randomUUID: unit => string = "randomUUID" -@val external setTimeout: (unit => unit, int) => unit = "setTimeout" - -// Session manager class -module SessionManager = { - struct t { { - mutable sessions: dict, - config: Types.guardianConfig, - } - - fn make = (config: Types.guardianConfig): t => { - { - sessions: Dict.make(), - config, - } - } - - // Create a new session for an AI agent - fn createSession = (manager: t, repoPath: string): Types.sessionState => { - fn session: Types.sessionState = { - sessionId: randomUUID(), - acknowledgedManifest: false, - attestationHash: None, - acknowledgedAt: None, - repoPath, - } - - Dict.set(manager.sessions, session.sessionId, session) - - // Set timeout to clean up session - setTimeout(() => { - Dict.set(manager.sessions, session.sessionId, session) - () - }, manager.config.sessionTimeout)->ignore - - session - } - - // Get session by ID - fn getSession = (manager: t, sessionId: string): option => { - Dict.get(manager.sessions, sessionId) - } - - // Acknowledge manifest for a session - fn acknowledgeManifest = ( - manager: t, - sessionId: string, - manifest: Types.aiManifest, - attestationHash: string, - ): bool => { - switch Dict.get(manager.sessions, sessionId) { - | None => false - | Some(session) => - if manifest.hash !== attestationHash { - false - } else { - fn updatedSession: Types.sessionState = { - ...session, - acknowledgedManifest: true, - attestationHash: Some(attestationHash), - acknowledgedAt: Some(Date.make()), - } - - Dict.set(manager.sessions, sessionId, updatedSession) - true - } - } - } - - // Check if session has acknowledged manifest - fn isAcknowledged = (manager: t, sessionId: string): bool => { - switch Dict.get(manager.sessions, sessionId) { - | None => false - | Some(session) => session.acknowledgedManifest - } - } - - // Destroy a session - fn destroySession = (manager: t, sessionId: string): unit => { - Dict.set(manager.sessions, sessionId, Dict.get(manager.sessions, sessionId)->Belt.Option.getExn) - () - } - - // Get all active sessions - fn getActiveSessions = (manager: t): array => { - Dict.valuesToArray(manager.sessions) - } -} - diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Session.mjs b/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Session.mjs deleted file mode 100644 index 5c5e5a6fa..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Session.mjs +++ /dev/null @@ -1,86 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE - -import * as Belt_Option from "@rescript/runtime/lib/es6/Belt_Option.js"; -import * as Nodecrypto from "node:crypto"; - -function make(config) { - return { - sessions: {}, - config: config - }; -} - -function createSession(manager, repoPath) { - let session_sessionId = Nodecrypto.randomUUID(); - let session = { - sessionId: session_sessionId, - acknowledgedManifest: false, - attestationHash: undefined, - acknowledgedAt: undefined, - repoPath: repoPath - }; - manager.sessions[session_sessionId] = session; - setTimeout(() => { - manager.sessions[session_sessionId] = session; - }, manager.config.sessionTimeout); - return session; -} - -function getSession(manager, sessionId) { - return manager.sessions[sessionId]; -} - -function acknowledgeManifest(manager, sessionId, manifest, attestationHash) { - let session = manager.sessions[sessionId]; - if (session === undefined) { - return false; - } - if (manifest.hash !== attestationHash) { - return false; - } - let updatedSession_sessionId = session.sessionId; - let updatedSession_attestationHash = attestationHash; - let updatedSession_acknowledgedAt = new Date(); - let updatedSession_repoPath = session.repoPath; - let updatedSession = { - sessionId: updatedSession_sessionId, - acknowledgedManifest: true, - attestationHash: updatedSession_attestationHash, - acknowledgedAt: updatedSession_acknowledgedAt, - repoPath: updatedSession_repoPath - }; - manager.sessions[sessionId] = updatedSession; - return true; -} - -function isAcknowledged(manager, sessionId) { - let session = manager.sessions[sessionId]; - if (session !== undefined) { - return session.acknowledgedManifest; - } else { - return false; - } -} - -function destroySession(manager, sessionId) { - manager.sessions[sessionId] = Belt_Option.getExn(manager.sessions[sessionId]); -} - -function getActiveSessions(manager) { - return Object.values(manager.sessions); -} - -let SessionManager = { - make: make, - createSession: createSession, - getSession: getSession, - acknowledgeManifest: acknowledgeManifest, - isAcknowledged: isAcknowledged, - destroySession: destroySession, - getActiveSessions: getActiveSessions -}; - -export { - SessionManager, -} -/* node:crypto Not a pure module */ diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Types.affine b/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Types.affine deleted file mode 100644 index c8eb0b587..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Types.affine +++ /dev/null @@ -1,43 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Types; - -// SPDX-License-Identifier: MPL-2.0 - -// AI.a2ml manifest structure -struct canonicalLocations { { - scmFiles: string, - botDirectives: string, - agentInstructions: array, -} - -struct aiManifest { { - hash: string, - canonicalLocations: canonicalLocations, - invariants: array, - parsedAt: Date.t, -} - -// Session state for an AI agent -struct sessionState { { - sessionId: string, - acknowledgedManifest: bool, - attestationHash: option, - acknowledgedAt: option, - repoPath: string, -} - -// Access control result -struct accessResult { { - allowed: bool, - reason: option, -} - -// Guardian configuration -struct guardianConfig { { - basePath: string, - strictMode: bool, - sessionTimeout: int, -} - diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Types.mjs b/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Types.mjs deleted file mode 100644 index d856702bf..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/src/Types.mjs +++ /dev/null @@ -1,2 +0,0 @@ -// Generated by ReScript, PLEASE EDIT WITH CARE -/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ diff --git a/0-ai-gatekeeper-protocol/mcp-repo-guardian/test/manifest_test.js b/0-ai-gatekeeper-protocol/mcp-repo-guardian/test/manifest_test.js deleted file mode 100644 index d33ede3c7..000000000 --- a/0-ai-gatekeeper-protocol/mcp-repo-guardian/test/manifest_test.js +++ /dev/null @@ -1,480 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -// -// manifest_test.js — Unit + security tests for mcp-repo-guardian manifest parsing. -// -// Tests the compiled ReScript Manifest.mjs module offline (no MCP server needed, -// no network, no filesystem access to real repos). -// -// Run with: deno test test/manifest_test.js -// -// Live-environment tests (requiring a running MCP server or real repos) are marked -// with the "live" tag and skipped in CI unless MCP_GUARDIAN_LIVE=1 is set. - -import { assertEquals, assertRejects } from "jsr:@std/assert@1"; -import { join, dirname, fromFileUrl } from "jsr:@std/path@1"; -import { createHash } from "node:crypto"; - -// --------------------------------------------------------------------------- -// Module loading helpers -// --------------------------------------------------------------------------- - -const ROOT = join(dirname(fromFileUrl(import.meta.url)), ".."); -const SRC = join(ROOT, "src"); - -// Inline versions of the key functions to avoid import complications with -// @modelcontextprotocol/sdk. These mirror the compiled Guards.mjs and -// Session.mjs logic exactly. - -// --------------------------------------------------------------------------- -// Inline manifest parsing logic (mirrors Manifest.mjs) -// --------------------------------------------------------------------------- - -/** Extract canonical locations from manifest content (mirrors extractCanonicalLocations). */ -function extractCanonicalLocations(content) { - const scmMatch = /SCM files.*?`([^`]+)`/i.exec(content); - const botMatch = /Bot [Dd]irectives.*?`([^`]+)`/i.exec(content); - - const scmFiles = - scmMatch && scmMatch[1] ? scmMatch[1] : ".machine_readable/"; - const botDirectives = - botMatch && botMatch[1] ? botMatch[1] : ".bot_directives/"; - - return { - scmFiles, - botDirectives, - agentInstructions: [".claude/CLAUDE.md", "AI.a2ml", "0-AI-MANIFEST.a2ml"], - }; -} - -/** Extract invariants from manifest content (mirrors extractInvariants). */ -function extractInvariants(content) { - const invariants = []; - if (/No SCM file duplication/i.test(content)) - invariants.push("no_scm_duplication"); - if (/Single source of truth/i.test(content)) - invariants.push("single_source_of_truth"); - if (/No stale metadata/i.test(content)) - invariants.push("no_stale_metadata"); - return invariants; -} - -/** Build a manifest object from content (mirrors parseManifest without I/O). */ -function buildManifest(content) { - const hash = createHash("sha256").update(content).digest("hex"); - return { - hash, - canonicalLocations: extractCanonicalLocations(content), - invariants: extractInvariants(content), - parsedAt: new Date(), - }; -} - -// --------------------------------------------------------------------------- -// Inline session + access guard logic (mirrors Session.mjs and Guards.mjs) -// --------------------------------------------------------------------------- - -function makeSessionManager(config) { - return { sessions: {}, config }; -} - -function createSession(manager, repoPath) { - // Use a deterministic ID for testing (real impl uses randomUUID) - const sessionId = `test-session-${Object.keys(manager.sessions).length}`; - const session = { - sessionId, - acknowledgedManifest: false, - attestationHash: undefined, - acknowledgedAt: undefined, - repoPath, - }; - manager.sessions[sessionId] = session; - return session; -} - -function acknowledgeManifest(manager, sessionId, manifest, attestationHash) { - const session = manager.sessions[sessionId]; - if (!session) return false; - if (manifest.hash !== attestationHash) return false; - manager.sessions[sessionId] = { - ...session, - acknowledgedManifest: true, - attestationHash, - acknowledgedAt: new Date(), - }; - return true; -} - -function checkAccess(guard, sessionId) { - const session = guard.sessionManager.sessions[sessionId]; - if (!session) { - return { allowed: false, reason: "Invalid session ID. Session may have expired." }; - } - if (session.acknowledgedManifest) { - return { allowed: true, reason: undefined }; - } - const hashPreview = guard.manifest.hash.substring(0, 16); - return { - allowed: false, - reason: `⚠️ ACCESS DENIED\n\nYou must read and acknowledge the AI manifest (AI.a2ml) before accessing any files in this repository.\n\nCall the acknowledge_manifest tool with the manifest hash to proceed.\n\nExpected hash: ${hashPreview}...`, - }; -} - -function validatePath(guard, path) { - if (!guard.manifest.invariants.includes("no_scm_duplication")) { - return { allowed: true, reason: undefined }; - } - const scmFiles = [ - "STATE.scm", "META.scm", "ECOSYSTEM.scm", "AGENTIC.scm", - "NEUROSYM.scm", "PLAYBOOK.scm", "LANGUAGES.scm", - ]; - const violatedFile = scmFiles.find( - (f) => path.endsWith(f) && !path.includes(".machine_readable/") - ); - if (!violatedFile) return { allowed: true, reason: undefined }; - return { - allowed: false, - reason: `⚠️ INVARIANT VIOLATION\n\nAttempted to access ${violatedFile} outside of .machine_readable/ directory.`, - }; -} - -// =========================================================================== -// Test fixtures -// =========================================================================== - -const VALID_MANIFEST = `# STOP - CRITICAL READING REQUIRED - -## CANONICAL LOCATIONS - -SCM files MUST be in \`.machine_readable/\` directory ONLY. -Bot directives go in \`.bot_directives/\`. - -## CORE INVARIANTS - -1. No SCM file duplication - root must NOT contain STATE.scm -2. Single source of truth - .machine_readable/ is authoritative -3. No stale metadata - if root files exist, they are OUT OF DATE - -## ATTESTATION PROOF - -State your understanding. -`; - -const MINIMAL_MANIFEST = `# AI Manifest - -This is a minimal manifest. -`; - -const MANIFEST_WITHOUT_CANONICAL = `# AI Manifest - -No canonical locations specified here. -`; - -// =========================================================================== -// Unit tests: manifest parsing -// =========================================================================== - -Deno.test("manifest: valid manifest parses without error", () => { - const m = buildManifest(VALID_MANIFEST); - assertEquals(typeof m.hash, "string"); - assertEquals(m.hash.length, 64); // SHA-256 hex = 64 chars -}); - -Deno.test("manifest: hash is deterministic for same input", () => { - const m1 = buildManifest(VALID_MANIFEST); - const m2 = buildManifest(VALID_MANIFEST); - assertEquals(m1.hash, m2.hash); -}); - -Deno.test("manifest: hash differs for different content", () => { - const m1 = buildManifest(VALID_MANIFEST); - const m2 = buildManifest(MINIMAL_MANIFEST); - assertEquals(m1.hash === m2.hash, false); -}); - -Deno.test("manifest: extracts scmFiles canonical location", () => { - const m = buildManifest(VALID_MANIFEST); - assertEquals(m.canonicalLocations.scmFiles, ".machine_readable/"); -}); - -Deno.test("manifest: extracts botDirectives canonical location", () => { - const m = buildManifest(VALID_MANIFEST); - assertEquals(m.canonicalLocations.botDirectives, ".bot_directives/"); -}); - -Deno.test("manifest: defaults scmFiles when not found", () => { - const m = buildManifest(MINIMAL_MANIFEST); - assertEquals(m.canonicalLocations.scmFiles, ".machine_readable/"); -}); - -Deno.test("manifest: defaults botDirectives when not found", () => { - const m = buildManifest(MINIMAL_MANIFEST); - assertEquals(m.canonicalLocations.botDirectives, ".bot_directives/"); -}); - -Deno.test("manifest: always includes expected agentInstructions", () => { - const m = buildManifest(VALID_MANIFEST); - assertEquals(m.canonicalLocations.agentInstructions.includes("0-AI-MANIFEST.a2ml"), true); - assertEquals(m.canonicalLocations.agentInstructions.includes(".claude/CLAUDE.md"), true); -}); - -Deno.test("manifest: extracts no_scm_duplication invariant", () => { - const m = buildManifest(VALID_MANIFEST); - assertEquals(m.invariants.includes("no_scm_duplication"), true); -}); - -Deno.test("manifest: extracts single_source_of_truth invariant", () => { - const m = buildManifest(VALID_MANIFEST); - assertEquals(m.invariants.includes("single_source_of_truth"), true); -}); - -Deno.test("manifest: extracts no_stale_metadata invariant", () => { - const m = buildManifest(VALID_MANIFEST); - assertEquals(m.invariants.includes("no_stale_metadata"), true); -}); - -Deno.test("manifest: no invariants in minimal manifest", () => { - const m = buildManifest(MINIMAL_MANIFEST); - assertEquals(m.invariants.length, 0); -}); - -Deno.test("manifest: parsedAt is a Date", () => { - const m = buildManifest(VALID_MANIFEST); - assertEquals(m.parsedAt instanceof Date, true); -}); - -// =========================================================================== -// Security aspect tests: malicious manifest inputs -// =========================================================================== - -Deno.test("security: empty string manifest produces valid (empty) result", () => { - // Must not throw; empty manifest is technically parseable - const m = buildManifest(""); - assertEquals(m.invariants.length, 0); - assertEquals(m.hash.length, 64); -}); - -Deno.test("security: manifest with path traversal in canonical location is extracted literally", () => { - // Path traversal in the manifest content should NOT be executed — it is - // stored as a string only. This test verifies we do not attempt to use the - // path for any filesystem operation in the parser itself. - const malicious = "SCM files MUST be in `../../etc/passwd` directory ONLY.\n"; - const m = buildManifest(malicious); - // The value is stored, not executed - assertEquals(m.canonicalLocations.scmFiles, "../../etc/passwd"); - // But the agentInstructions are always the safe defaults - assertEquals(m.canonicalLocations.agentInstructions.includes("0-AI-MANIFEST.a2ml"), true); -}); - -Deno.test("security: manifest with script injection in invariant section is treated as plain text", () => { - const malicious = "No SCM file duplication \n"; - const m = buildManifest(malicious); - // The invariant is detected (pattern matches) but stored as-is, not executed - assertEquals(m.invariants.includes("no_scm_duplication"), true); -}); - -Deno.test("security: very large manifest (1MB) does not error", () => { - // Ensures no catastrophic backtracking or OOM on large inputs - const large = "x".repeat(1_000_000); - const m = buildManifest(large); - assertEquals(m.hash.length, 64); -}); - -Deno.test("security: null byte in manifest is handled", () => { - const withNull = "# Title\n\0\nBody"; - // Must not throw - const m = buildManifest(withNull); - assertEquals(m.hash.length, 64); -}); - -// =========================================================================== -// Unit tests: session management -// =========================================================================== - -Deno.test("session: new session starts unacknowledged", () => { - const config = { basePath: "/tmp", strictMode: false, sessionTimeout: 3600000 }; - const manager = makeSessionManager(config); - const session = createSession(manager, "/repo/test"); - assertEquals(session.acknowledgedManifest, false); - assertEquals(session.attestationHash, undefined); -}); - -Deno.test("session: session created with correct repoPath", () => { - const config = { basePath: "/tmp", strictMode: false, sessionTimeout: 3600000 }; - const manager = makeSessionManager(config); - const session = createSession(manager, "/repo/myproject"); - assertEquals(session.repoPath, "/repo/myproject"); -}); - -Deno.test("session: acknowledge with correct hash succeeds", () => { - const config = { basePath: "/tmp", strictMode: false, sessionTimeout: 3600000 }; - const manager = makeSessionManager(config); - const manifest = buildManifest(VALID_MANIFEST); - const session = createSession(manager, "/repo/test"); - const result = acknowledgeManifest(manager, session.sessionId, manifest, manifest.hash); - assertEquals(result, true); - assertEquals(manager.sessions[session.sessionId].acknowledgedManifest, true); -}); - -Deno.test("session: acknowledge with wrong hash fails", () => { - const config = { basePath: "/tmp", strictMode: false, sessionTimeout: 3600000 }; - const manager = makeSessionManager(config); - const manifest = buildManifest(VALID_MANIFEST); - const session = createSession(manager, "/repo/test"); - const result = acknowledgeManifest(manager, session.sessionId, manifest, "wronghash"); - assertEquals(result, false); - assertEquals(manager.sessions[session.sessionId].acknowledgedManifest, false); -}); - -Deno.test("session: acknowledge with unknown sessionId fails", () => { - const config = { basePath: "/tmp", strictMode: false, sessionTimeout: 3600000 }; - const manager = makeSessionManager(config); - const manifest = buildManifest(VALID_MANIFEST); - const result = acknowledgeManifest(manager, "nonexistent-session", manifest, manifest.hash); - assertEquals(result, false); -}); - -Deno.test("session: multiple independent sessions", () => { - const config = { basePath: "/tmp", strictMode: false, sessionTimeout: 3600000 }; - const manager = makeSessionManager(config); - const manifest = buildManifest(VALID_MANIFEST); - const s1 = createSession(manager, "/repo/a"); - const s2 = createSession(manager, "/repo/b"); - // Acknowledge only s1 - acknowledgeManifest(manager, s1.sessionId, manifest, manifest.hash); - assertEquals(manager.sessions[s1.sessionId].acknowledgedManifest, true); - assertEquals(manager.sessions[s2.sessionId].acknowledgedManifest, false); -}); - -// =========================================================================== -// Unit tests: access guard -// =========================================================================== - -Deno.test("guard: unacknowledged session is denied access", () => { - const config = { basePath: "/tmp", strictMode: false, sessionTimeout: 3600000 }; - const manager = makeSessionManager(config); - const manifest = buildManifest(VALID_MANIFEST); - const session = createSession(manager, "/repo/test"); - const guard = { sessionManager: manager, manifest }; - const result = checkAccess(guard, session.sessionId); - assertEquals(result.allowed, false); - assertEquals(typeof result.reason, "string"); -}); - -Deno.test("guard: access denied message contains hash preview", () => { - const config = { basePath: "/tmp", strictMode: false, sessionTimeout: 3600000 }; - const manager = makeSessionManager(config); - const manifest = buildManifest(VALID_MANIFEST); - const session = createSession(manager, "/repo/test"); - const guard = { sessionManager: manager, manifest }; - const result = checkAccess(guard, session.sessionId); - assertEquals(result.reason.includes(manifest.hash.substring(0, 16)), true); -}); - -Deno.test("guard: acknowledged session is allowed access", () => { - const config = { basePath: "/tmp", strictMode: false, sessionTimeout: 3600000 }; - const manager = makeSessionManager(config); - const manifest = buildManifest(VALID_MANIFEST); - const session = createSession(manager, "/repo/test"); - acknowledgeManifest(manager, session.sessionId, manifest, manifest.hash); - const guard = { sessionManager: manager, manifest }; - const result = checkAccess(guard, session.sessionId); - assertEquals(result.allowed, true); -}); - -Deno.test("guard: invalid sessionId is denied access", () => { - const config = { basePath: "/tmp", strictMode: false, sessionTimeout: 3600000 }; - const manager = makeSessionManager(config); - const manifest = buildManifest(VALID_MANIFEST); - const guard = { sessionManager: manager, manifest }; - const result = checkAccess(guard, "no-such-session"); - assertEquals(result.allowed, false); - assertEquals(result.reason.includes("Invalid session ID"), true); -}); - -// =========================================================================== -// Security aspect tests: path validation / invariant enforcement -// =========================================================================== - -Deno.test("guard/path: SCM file in root is rejected", () => { - const manifest = buildManifest(VALID_MANIFEST); // has no_scm_duplication - const guard = { sessionManager: makeSessionManager({}), manifest }; - const result = validatePath(guard, "/repo/STATE.scm"); - assertEquals(result.allowed, false); - assertEquals(result.reason.includes("INVARIANT VIOLATION"), true); -}); - -Deno.test("guard/path: SCM file in .machine_readable/ is allowed", () => { - const manifest = buildManifest(VALID_MANIFEST); - const guard = { sessionManager: makeSessionManager({}), manifest }; - const result = validatePath(guard, "/repo/.machine_readable/STATE.scm"); - assertEquals(result.allowed, true); -}); - -Deno.test("guard/path: all SCM file variants are blocked at root", () => { - const scmFiles = [ - "STATE.scm", "META.scm", "ECOSYSTEM.scm", "AGENTIC.scm", - "NEUROSYM.scm", "PLAYBOOK.scm", "LANGUAGES.scm", - ]; - const manifest = buildManifest(VALID_MANIFEST); - const guard = { sessionManager: makeSessionManager({}), manifest }; - for (const f of scmFiles) { - const result = validatePath(guard, `/repo/${f}`); - assertEquals(result.allowed, false, `Expected ${f} to be blocked at root`); - } -}); - -Deno.test("guard/path: A2ML file variants (.a2ml extension) are NOT blocked", () => { - // .a2ml files are the new format; old .scm files are what's blocked - const manifest = buildManifest(VALID_MANIFEST); - const guard = { sessionManager: makeSessionManager({}), manifest }; - const result = validatePath(guard, "/repo/STATE.a2ml"); - assertEquals(result.allowed, true); -}); - -Deno.test("guard/path: path traversal via SCM file path is blocked", () => { - const manifest = buildManifest(VALID_MANIFEST); - const guard = { sessionManager: makeSessionManager({}), manifest }; - // Even if the path has traversal segments, if it ends with STATE.scm not in - // .machine_readable/, it's blocked - const result = validatePath(guard, "/repo/../../STATE.scm"); - assertEquals(result.allowed, false); -}); - -Deno.test("guard/path: normal source files are always allowed", () => { - const manifest = buildManifest(VALID_MANIFEST); - const guard = { sessionManager: makeSessionManager({}), manifest }; - const paths = [ - "/repo/src/main.rs", - "/repo/README.adoc", - "/repo/.github/workflows/ci.yml", - "/repo/Justfile", - ]; - for (const p of paths) { - const result = validatePath(guard, p); - assertEquals(result.allowed, true, `Expected ${p} to be allowed`); - } -}); - -Deno.test("guard/path: no invariant = all paths allowed", () => { - // Manifest without no_scm_duplication invariant → no path restriction - const manifest = buildManifest(MINIMAL_MANIFEST); - const guard = { sessionManager: makeSessionManager({}), manifest }; - const result = validatePath(guard, "/repo/STATE.scm"); - assertEquals(result.allowed, true); -}); - -// =========================================================================== -// E2E test: parse the standards repo's own manifest (dogfood) -// =========================================================================== - -Deno.test("e2e/dogfood: standards repo 0-AI-MANIFEST.a2ml is parseable", async () => { - // This verifies the manifest we actually use passes our own parser - const manifestPath = join(ROOT, "..", "..", "0-AI-MANIFEST.a2ml"); - const content = await Deno.readTextFile(manifestPath); - const m = buildManifest(content); - assertEquals(m.hash.length, 64); - assertEquals(m.canonicalLocations.scmFiles, ".machine_readable/"); - // Should have at least one invariant (the manifest has "No A2ML duplication") - assertEquals(typeof m.invariants, "object"); -}); diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/FUNDING.yml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/FUNDING.yml deleted file mode 100644 index 688a442ca..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/FUNDING.yml +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Funding platforms for hyperpolymath projects -# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository - -github: hyperpolymath -ko_fi: hyperpolymath -liberapay: hyperpolymath diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/bug_report.md b/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 987aab6bc..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: "[Bug]: " -labels: 'bug, priority: unset, triage' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/custom.md b/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/custom.md deleted file mode 100644 index 48d5f81fa..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/custom.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: Custom issue template -about: Describe this issue template's purpose here. -title: '' -labels: '' -assignees: '' - ---- - - diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/documentation.md b/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/documentation.md deleted file mode 100644 index 4fcb9f9fa..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/documentation.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -name: Documentation -about: Report unclear, missing, or incorrect documentation -title: "[DOCS]: " -labels: 'documentation, priority: unset, triage' -assignees: '' - ---- - -name: Documentation -description: Report unclear, missing, or incorrect documentation -title: "[Docs]: " -labels: ["documentation", "triage"] -body: - - type: markdown - attributes: - value: | - Help us improve our documentation by reporting issues or gaps. - - - type: dropdown - id: type - attributes: - label: Documentation issue type - options: - - Missing (documentation doesn't exist) - - Incorrect (information is wrong) - - Unclear (confusing or hard to follow) - - Outdated (no longer accurate) - - Typo or grammar - validations: - required: true - - - type: input - id: location - attributes: - label: Location - description: Where is this documentation? (URL, file path, or section name) - placeholder: README.adoc, section "Installation" - validations: - required: true - - - type: textarea - id: description - attributes: - label: Description - description: What's the problem with the current documentation? - placeholder: Describe what's wrong or missing - validations: - required: true - - - type: textarea - id: suggestion - attributes: - label: Suggested improvement - description: How should it be fixed or improved? - placeholder: The documentation should say... - validations: - required: false - - - type: checkboxes - id: contribution - attributes: - label: Contribution - options: - - label: I would be willing to submit a PR to fix this - required: false diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/feature_request.md b/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 3e8fa7e7e..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: 'enhancement, priority: unset, triage' -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/question.md b/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/question.md deleted file mode 100644 index fd0e2a5cc..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/ISSUE_TEMPLATE/question.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -name: Question -about: Ask a question about usage or behaviour -title: "[QUESTION]: " -labels: question, triage -assignees: '' - ---- - -name: Question -description: Ask a question about usage or behaviour -title: "[Question]: " -labels: ["question", "triage"] -body: - - type: markdown - attributes: - value: | - Have a question? You can also ask in [Discussions](../discussions) for broader conversations. - - - type: textarea - id: question - attributes: - label: Your question - description: What would you like to know? - placeholder: How do I...? - validations: - required: true - - - type: textarea - id: context - attributes: - label: Context - description: Any relevant context that helps us answer your question - placeholder: I'm trying to achieve X and I've tried Y... - validations: - required: false - - - type: textarea - id: research - attributes: - label: What I've already tried - description: What have you already looked at or attempted? - placeholder: I've read the README and searched issues but... - validations: - required: false - - - type: checkboxes - id: checked - attributes: - label: Pre-submission checklist - options: - - label: I have searched existing issues and discussions - required: true - - label: I have read the documentation - required: true diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/dependabot.yml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/dependabot.yml deleted file mode 100644 index d5cd4e996..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/dependabot.yml +++ /dev/null @@ -1,48 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Dependabot configuration for RSR-compliant repositories -# Covers common ecosystems - remove unused ones for your project - -version: 2 -updates: - # GitHub Actions - always include - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "weekly" - groups: - actions: - patterns: - - "*" - - # Rust/Cargo - - package-ecosystem: "cargo" - directory: "/" - schedule: - interval: "weekly" - ignore: - - dependency-name: "*" - update-types: ["version-update:semver-patch"] - - # Elixir/Mix - - package-ecosystem: "mix" - directory: "/" - schedule: - interval: "weekly" - - # Node.js/npm - - package-ecosystem: "npm" - directory: "/" - schedule: - interval: "weekly" - - # Python/pip - - package-ecosystem: "pip" - directory: "/" - schedule: - interval: "weekly" - - # Nix flakes - - package-ecosystem: "nix" - directory: "/" - schedule: - interval: "weekly" diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/codeql.yml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/codeql.yml deleted file mode 100644 index 1a97b10f9..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/codeql.yml +++ /dev/null @@ -1,23 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: CodeQL Security Analysis - -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] - schedule: - - cron: '0 6 1 * *' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: false - -permissions: - contents: read - -jobs: - analyze-js: - uses: ../../../.github/workflows/codeql-reusable.yml - with: - language: javascript-typescript diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/governance.yml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/governance.yml deleted file mode 100644 index f5f282ccc..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/governance.yml +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# governance.yml — single wrapper calling the shared estate governance bundle -# in hyperpolymath/standards instead of carrying per-repo copies. -# -# Replaces the per-repo governance scaffolding removed in the same commit: -# quality.yml, guix-nix-policy.yml, npm-bun-blocker.yml, ts-blocker.yml, -# security-policy.yml, rsr-antipattern.yml, wellknown-enforcement.yml, -# workflow-linter.yml -# -# Load-bearing build/security workflows stay standalone in the repo -# (rust-ci, codeql, dependabot, release, scan/mirror/pages plumbing). - -name: Governance - -on: - push: - branches: [main, master] - pull_request: - workflow_dispatch: - -permissions: - actions: read - contents: read - -jobs: - governance: - uses: ../../../.github/workflows/governance-reusable.yml diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/hypatia-scan.yml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/hypatia-scan.yml deleted file mode 100644 index f120579d4..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/hypatia-scan.yml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Hypatia Security Scan - -on: - push: - branches: [main, master, develop] - pull_request: - branches: [main, master] - schedule: - - cron: '0 0 * * 0' - workflow_dispatch: - -permissions: - actions: read - contents: read - security-events: write - -jobs: - scan: - uses: ../../../.github/workflows/hypatia-scan-reusable.yml - secrets: inherit diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/jekyll-gh-pages.yml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/jekyll-gh-pages.yml deleted file mode 100644 index d9c385e34..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/jekyll-gh-pages.yml +++ /dev/null @@ -1,54 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Sample workflow for building and deploying a Jekyll site to GitHub Pages -name: Deploy Jekyll with GitHub Pages dependencies preinstalled - -on: - # Runs on pushes targeting the default branch - push: - branches: ["main"] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - # Build job - build: - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - name: Setup Pages - uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5 - - name: Build with Jekyll - uses: actions/jekyll-build-pages@44a6e6beabd48582f863aeeb6cb2151cc1716697 # v1 - with: - source: ./ - destination: ./_site - - name: Upload artifact - uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v4 - - # Deployment job - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - timeout-minutes: 30 - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4 diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/jekyll.yml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/jekyll.yml deleted file mode 100644 index 8b69c2273..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/jekyll.yml +++ /dev/null @@ -1,68 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -# Sample workflow for building and deploying a Jekyll site to GitHub Pages -name: Deploy Jekyll site to Pages - -on: - # Runs on pushes targeting the default branch - push: - branches: ["main"] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - # Build job - build: - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - name: Setup Ruby - # https://github.com/ruby/setup-ruby/releases/tag/v1.207.0 - uses: ruby/setup-ruby@708024e6c902387ab41de36e1669e43b5ee7085e - with: - ruby-version: '3.1' # Not needed with a .ruby-version file - bundler-cache: true # runs 'bundle install' and caches installed gems automatically - cache-version: 0 # Increment this number if you need to re-download cached gems - - name: Setup Pages - id: pages - uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5 - - name: Build with Jekyll - # Outputs to the './_site' directory by default - run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" - env: - JEKYLL_ENV: production - - name: Upload artifact - # Automatically uploads an artifact from the './_site' directory by default - uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v4 - - # Deployment job - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - timeout-minutes: 30 - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4 diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/mirror.yml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/mirror.yml deleted file mode 100644 index a20ae7da7..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/mirror.yml +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Mirror to Git Forges - -on: - push: - branches: [main] - workflow_dispatch: - -permissions: - contents: read - -jobs: - mirror: - uses: ../../../.github/workflows/mirror-reusable.yml - secrets: inherit diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/scorecard-enforcer.yml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/scorecard-enforcer.yml deleted file mode 100644 index bbba795b7..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/scorecard-enforcer.yml +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Prevention workflow - runs OpenSSF Scorecard and fails on low scores -name: OpenSSF Scorecard Enforcer - -on: - push: - branches: [main] - schedule: - - cron: '0 6 * * 1' - workflow_dispatch: - -permissions: - contents: read - -jobs: - scorecard: - uses: ../../../.github/workflows/scorecard-reusable.yml diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/scorecard.yml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/scorecard.yml deleted file mode 100644 index d665a836d..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/scorecard.yml +++ /dev/null @@ -1,24 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: OSSF Scorecard - -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] - schedule: - - cron: '0 4 * * *' - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - actions: read - contents: read - -jobs: - scorecard: - uses: ../../../.github/workflows/scorecard-reusable.yml - secrets: inherit diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/secret-scanner.yml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/secret-scanner.yml deleted file mode 100644 index 82b3c70ed..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.github/workflows/secret-scanner.yml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Secret Scanner - -on: - pull_request: - push: - branches: [main] - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - scan: - permissions: - contents: read - uses: ../../../.github/workflows/secret-scanner-reusable.yml - secrets: inherit diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.gitignore b/0-ai-gatekeeper-protocol/repo-guardian-fs/.gitignore deleted file mode 100644 index d6614e6ad..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.gitignore +++ /dev/null @@ -1,82 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# RSR-compliant .gitignore - -# OS & Editor -.DS_Store -Thumbs.db -*.swp -*.swo -*~ -.idea/ -.vscode/ - -# Build -/target/ -/_build/ -/build/ -/dist/ -/out/ - -# Dependencies -/node_modules/ -/vendor/ -/deps/ -/.elixir_ls/ - -# Rust -# Cargo.lock # Keep for binaries - -# Elixir -/cover/ -/doc/ -*.ez -erl_crash.dump - -# Julia -*.jl.cov -*.jl.mem -/Manifest.toml - -# ReScript -/lib/bs/ -/.bsb.lock - -# Python (SaltStack only) -__pycache__/ -*.py[cod] -.venv/ - -# Ada/SPARK -*.ali -/obj/ -/bin/ - -# Haskell -/.stack-work/ -/dist-newstyle/ - -# Chapel -*.chpl.tmp.* - -# Secrets -.env -.env.* -*.pem -*.key -secrets/ - -# Test/Coverage -/coverage/ -htmlcov/ - -# Logs -*.log -/logs/ - -# Temp -/tmp/ -*.tmp -*.bak - -# Crash recovery artifacts -ai-cli-crash-capture/ diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.gitlab-ci.yml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.gitlab-ci.yml deleted file mode 100644 index 7309fa900..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.gitlab-ci.yml +++ /dev/null @@ -1,175 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Primary CI/CD - GitLab is the source of truth - -stages: - - security - - lint - - test - - build - -variables: - CARGO_HOME: ${CI_PROJECT_DIR}/.cargo - -cache: - key: ${CI_COMMIT_REF_SLUG} - paths: - - .cargo/ - - target/ - -# ================== -# Security Scanning -# ================== - -trivy: - stage: security - image: aquasec/trivy:latest - script: - - trivy fs --exit-code 0 --severity HIGH,CRITICAL --format table . - - trivy fs --exit-code 1 --severity CRITICAL . - allow_failure: false - -gitleaks: - stage: security - image: zricethezav/gitleaks:latest - script: - - gitleaks detect --source . --verbose --redact - allow_failure: false - -semgrep: - stage: security - image: returntocorp/semgrep - script: - - semgrep --config auto --error . - allow_failure: true - -cargo-audit: - stage: security - image: rust:latest - script: - - cargo install cargo-audit - - cargo audit - rules: - - exists: - - Cargo.toml - -cargo-deny: - stage: security - image: rust:latest - script: - - cargo install cargo-deny - - cargo deny check - rules: - - exists: - - Cargo.toml - allow_failure: true - -mix-audit: - stage: security - image: elixir:latest - script: - - mix local.hex --force - - mix archive.install hex mix_audit --force - - mix deps.get - - mix deps.audit - rules: - - exists: - - mix.exs - allow_failure: true - -# ================== -# Linting -# ================== - -rustfmt: - stage: lint - image: rust:latest - script: - - rustup component add rustfmt - - cargo fmt -- --check - rules: - - exists: - - Cargo.toml - -clippy: - stage: lint - image: rust:latest - script: - - rustup component add clippy - - cargo clippy -- -D warnings - rules: - - exists: - - Cargo.toml - allow_failure: true - -mix-format: - stage: lint - image: elixir:latest - script: - - mix format --check-formatted - rules: - - exists: - - mix.exs - -credo: - stage: lint - image: elixir:latest - script: - - mix local.hex --force - - mix deps.get - - mix credo --strict - rules: - - exists: - - mix.exs - allow_failure: true - -# ================== -# Testing -# ================== - -cargo-test: - stage: test - image: rust:latest - script: - - cargo test --all-features - rules: - - exists: - - Cargo.toml - -mix-test: - stage: test - image: elixir:latest - script: - - mix local.hex --force - - mix deps.get - - mix test - rules: - - exists: - - mix.exs - -# ================== -# Build -# ================== - -cargo-build: - stage: build - image: rust:latest - script: - - cargo build --release - artifacts: - paths: - - target/release/ - expire_in: 1 week - rules: - - exists: - - Cargo.toml - -mix-build: - stage: build - image: elixir:latest - script: - - mix local.hex --force - - mix deps.get - - MIX_ENV=prod mix compile - rules: - - exists: - - mix.exs diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/AGENTIC.a2ml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/AGENTIC.a2ml deleted file mode 100644 index 1699fe4a2..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/AGENTIC.a2ml +++ /dev/null @@ -1,34 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# AGENTIC.a2ml — AI agent constraints and capabilities -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[agent-permissions] -can-edit-source = true -can-edit-tests = true -can-edit-docs = true -can-edit-config = true -can-create-files = true - -[agent-constraints] -# What AI agents must NOT do: -# - Never use banned language patterns (believe_me, unsafeCoerce, etc.) -# - Never commit secrets or credentials -# - Never use banned languages (TypeScript, Python, Go, etc.) -# - Never place state files in repository root (must be in .machine_readable/) -# - Never use AGPL license (use PMPL-1.0-or-later) - -[maintenance-integrity] -fail-closed = true -require-evidence-per-step = true -allow-silent-skip = false -require-rerun-after-fix = true -release-claim-requires-hard-pass = true - -[automation-hooks] -# on-enter: Read 0-AI-MANIFEST.a2ml, then STATE.a2ml -# on-exit: Update STATE.a2ml with session outcomes -# on-commit: Run just validate-rsr diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/ECOSYSTEM.a2ml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/ECOSYSTEM.a2ml deleted file mode 100644 index 77b402c22..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/ECOSYSTEM.a2ml +++ /dev/null @@ -1,20 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# ECOSYSTEM.a2ml — Repo Guardian Fs ecosystem position -[metadata] -version = "1.0.0" -last-updated = "2026-04-11" - -[project] -name = "Repo Guardian Fs" -purpose = "Hyperpolymath ecosystem component" -role = "library" - -[position-in-ecosystem] -category = "" - -[related-projects] -projects = [ - # No related projects recorded -] diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/META.a2ml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/META.a2ml deleted file mode 100644 index 36d00998c..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/META.a2ml +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# META.a2ml — Repo Guardian Fs meta-level information -[metadata] -version = "1.0.0" -last-updated = "2026-04-11" - -[project-info] -license = "MPL-2.0" -author = "Jonathan D.A. Jewell (hyperpolymath)" - -[architecture-decisions] -decisions = [ - # No ADRs recorded -] - -[development-practices] -versioning = "SemVer" -documentation = "AsciiDoc" -build-tool = "just" - -[maintenance-axes] -scoping-first = true -axis-1 = "must > intend > like" -axis-2 = "corrective > adaptive > perfective" -axis-3 = "systems > compliance > effects" diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/NEUROSYM.a2ml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/NEUROSYM.a2ml deleted file mode 100644 index e1d34c090..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/NEUROSYM.a2ml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# NEUROSYM.a2ml — Neurosymbolic integration metadata -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[hypatia-config] -scan-enabled = true -scan-depth = "standard" # quick | standard | deep -report-format = "logtalk" - -[symbolic-rules] -# Custom symbolic rules for this project -# - { name = "no-unsafe-ffi", pattern = "believe_me|unsafeCoerce", severity = "critical" } - -[neural-config] -# Neural pattern detection settings -# confidence-threshold = 0.85 -# model = "hypatia-v2" diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/PLAYBOOK.a2ml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/PLAYBOOK.a2ml deleted file mode 100644 index 5003fd08b..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/PLAYBOOK.a2ml +++ /dev/null @@ -1,26 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# PLAYBOOK.a2ml — Operational playbook -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[deployment] -# method = "gitops" # gitops | manual | ci-triggered -# target = "container" # container | binary | library | wasm - -[incident-response] -# 1. Check .machine_readable/STATE.a2ml for current status -# 2. Review recent commits and CI results -# 3. Run `just validate` to check compliance -# 4. Run `just security` to audit for vulnerabilities - -[release-process] -# 1. Update version in STATE.a2ml, META.a2ml -# 2. Run `just release-preflight` (validate + quality + security + maint-hard-pass) -# 3. Tag and push - -[maintenance-operations] -# Baseline audit: just maint-audit -# Hard release gate: just maint-hard-pass diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/STATE.a2ml b/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/STATE.a2ml deleted file mode 100644 index 9a1c5d857..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/.machine_readable/descriptiles/STATE.a2ml +++ /dev/null @@ -1,43 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# STATE.a2ml — Repo Guardian Fs project state -[metadata] -project = "rsr-template-repo" -version = "0.1.0" -last-updated = "2026-01-30" -status = "active" -session = "converted from scheme — 2026-04-11" - -[project-context] -name = "Rsr Template Repo" -purpose = """Hyperpolymath ecosystem project""" -completion-percentage = 5 - -[position] -phase = "initialization" # design | implementation | testing | maintenance | archived -maturity = "experimental" # experimental | alpha | beta | production | lts - -[route-to-mvp] -milestones = [ - # No milestones recorded -] - -[blockers-and-issues] -issues = [ - # No blockers recorded -] - -[critical-next-actions] -actions = [ - "Define project scope and objectives", - "Update README.adoc with project description", - "Set up development environment", - "Create initial architecture design", - "Implement core functionality", - "Add comprehensive tests", -] - -[maintenance-status] -last-run-utc = "2026-01-30T00:00:00Z" -last-result = "unknown" # unknown | pass | warn | fail diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/.nojekyll b/0-ai-gatekeeper-protocol/repo-guardian-fs/.nojekyll deleted file mode 100644 index e69de29bb..000000000 diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/0-AI-MANIFEST.a2ml b/0-ai-gatekeeper-protocol/repo-guardian-fs/0-AI-MANIFEST.a2ml deleted file mode 100644 index 2619af3d8..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/0-AI-MANIFEST.a2ml +++ /dev/null @@ -1,116 +0,0 @@ -# ⚠️ STOP - CRITICAL READING REQUIRED - -**THIS FILE MUST BE READ FIRST BY ALL AI AGENTS** - -## WHAT IS THIS? - -This is the AI manifest for **[YOUR-REPO-NAME]**. It declares: -- Canonical file locations (where things MUST be, and nowhere else) -- Critical invariants (rules that must NEVER be violated) -- Repository structure and organization - -## CANONICAL LOCATIONS (UNIVERSAL RULE) - -### Machine-Readable Metadata: `.machine_readable/` ONLY - -These 6 SCM files MUST exist in `.machine_readable/` directory ONLY: -1. **STATE.scm** - Project state, progress, blockers -2. **META.scm** - Architecture decisions, governance -3. **ECOSYSTEM.scm** - Position in ecosystem, relationships -4. **AGENTIC.scm** - AI agent interaction patterns -5. **NEUROSYM.scm** - Neurosymbolic integration config -6. **PLAYBOOK.scm** - Operational runbook - -**CRITICAL:** If ANY of these files exist in the root directory, this is an ERROR. - -### Bot Directives: `.bot_directives/` ONLY - -Bot-specific instructions for: -- rhodibot - Git operations -- echidnabot - Code quality -- sustainabot - Dependency updates -- glambot - Documentation -- seambot - Integration -- finishbot - Task completion - -### Agent Instructions - -- `.claude/CLAUDE.md` - Claude-specific patterns (if exists) -- `0-AI-MANIFEST.a2ml` - THIS FILE (universal entry point) - -## CORE INVARIANTS - -1. **No SCM duplication** - Root must NOT contain STATE.scm, META.scm, etc. -2. **Single source of truth** - `.machine_readable/` is authoritative -3. **No stale metadata** - If root SCMs exist, they are OUT OF DATE -4. **License consistency** - All code PMPL-1.0-or-later unless platform requires MPL-2.0 -5. **Author attribution** - Always "Jonathan D.A. Jewell " - -## REPOSITORY STRUCTURE - - - -This repo contains: - -``` -[YOUR-REPO-NAME]/ -├── 0-AI-MANIFEST.a2ml # THIS FILE (start here) -├── README.md # Project overview -├── [your source files] # Main code -├── .machine_readable/ # SCM files (6 files) -│ ├── STATE.scm -│ ├── META.scm -│ ├── ECOSYSTEM.scm -│ ├── AGENTIC.scm -│ ├── NEUROSYM.scm -│ └── PLAYBOOK.scm -└── .bot_directives/ # Bot instructions -``` - -## SESSION STARTUP CHECKLIST - -✅ Read THIS file (0-AI-MANIFEST.a2ml) first -✅ Understand canonical locations (.machine_readable/, .bot_directives/) -✅ Know the invariants (no SCM duplication, etc.) -✅ Check for MCP enforcement (if applicable) -✅ Read `.machine_readable/STATE.scm` for current status -✅ Read `.machine_readable/AGENTIC.scm` for interaction patterns - -## LIFECYCLE HOOKS - -### on-enter (Session Start) - -When starting a new session: - -1. Read and acknowledge this manifest -2. Log session start (optional but recommended) - - Format: `[YYYY-MM-DD HH:MM:SS] Session started: [agent-name]` - - Location: `.machine_readable/session-log.txt` -3. Read `.machine_readable/STATE.scm` -4. Check for blockers -5. State understanding of canonical locations - -### on-exit (Session End) - -When ending a session: - -1. Update `.machine_readable/STATE.scm` if changes made -2. Log session end (optional but recommended) - - Format: `[YYYY-MM-DD HH:MM:SS] Session ended: [summary]` - - Location: `.machine_readable/session-log.txt` -3. Document new blockers -4. Summarize outcomes - -## ATTESTATION PROOF - -After reading this file, demonstrate understanding by stating: - -**"I have read the AI manifest. SCM files are located in `.machine_readable/` ONLY, bot directives in `.bot_directives/`, and I will not create duplicate files in the root directory."** - -## META - -- **Format Version:** 1.0.0 -- **Created:** [DATE] -- **Maintained By:** [YOUR-NAME/ORG] -- **License:** PMPL-1.0-or-later -- **Protocol:** https://github.com/hyperpolymath/0-ai-gatekeeper-protocol diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/ABI-FFI-README.adoc b/0-ai-gatekeeper-protocol/repo-guardian-fs/ABI-FFI-README.adoc deleted file mode 100644 index f883150d8..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/ABI-FFI-README.adoc +++ /dev/null @@ -1,409 +0,0 @@ -\{\{~ Aditionally delete this line and fill out the template below ~}} - -== \{\{PROJECT}} ABI/FFI Documentation - -=== Overview - -This library follows the *Hyperpolymath RSR Standard* for ABI and FFI -design: - -* *ABI (Application Binary Interface)* defined in *Idris2* with formal -proofs -* *FFI (Foreign Function Interface)* implemented in *Zig* for C -compatibility -* *Generated C headers* bridge Idris2 ABI to Zig FFI -* *Any language* can call through standard C ABI - -=== Architecture - -.... -┌─────────────────────────────────────────────┐ -│ ABI Definitions (Idris2) │ -│ src/abi/ │ -│ - Types.idr (Type definitions) │ -│ - Layout.idr (Memory layout proofs) │ -│ - Foreign.idr (FFI declarations) │ -└─────────────────┬───────────────────────────┘ - │ - │ generates (at compile time) - ▼ -┌─────────────────────────────────────────────┐ -│ C Headers (auto-generated) │ -│ generated/abi/{{project}}.h │ -└─────────────────┬───────────────────────────┘ - │ - │ imported by - ▼ -┌─────────────────────────────────────────────┐ -│ FFI Implementation (Zig) │ -│ ffi/zig/src/main.zig │ -│ - Implements C-compatible functions │ -│ - Zero-cost abstractions │ -│ - Memory-safe by default │ -└─────────────────┬───────────────────────────┘ - │ - │ compiled to lib{{project}}.so/.a - ▼ -┌─────────────────────────────────────────────┐ -│ Any Language via C ABI │ -│ - Rust, ReScript, Julia, Python, etc. │ -└─────────────────────────────────────────────┘ -.... - -=== Directory Structure - -.... -{{project}}/ -├── src/ -│ ├── abi/ # ABI definitions (Idris2) -│ │ ├── Types.idr # Core type definitions with proofs -│ │ ├── Layout.idr # Memory layout verification -│ │ └── Foreign.idr # FFI function declarations -│ └── lib/ # Core library (any language) -│ -├── ffi/ -│ └── zig/ # FFI implementation (Zig) -│ ├── build.zig # Build configuration -│ ├── build.zig.zon # Dependencies -│ ├── src/ -│ │ └── main.zig # C-compatible FFI implementation -│ ├── test/ -│ │ └── integration_test.zig -│ └── include/ -│ └── {{project}}.h # C header (optional, can be generated) -│ -├── generated/ # Auto-generated files -│ └── abi/ -│ └── {{project}}.h # Generated from Idris2 ABI -│ -└── bindings/ # Language-specific wrappers (optional) - ├── rust/ - ├── rescript/ - └── julia/ -.... - -=== Why Idris2 for ABI? - -==== 1. *Formal Verification* - -Idris2’s dependent types allow proving properties about the ABI at -compile-time: - -[source,idris] ----- --- Prove struct size is correct -public export -exampleStructSize : HasSize ExampleStruct 16 - --- Prove field alignment is correct -public export -fieldAligned : Divides 8 (offsetOf ExampleStruct.field) - --- Prove ABI is platform-compatible -public export -abiCompatible : Compatible (ABI 1) (ABI 2) ----- - -==== 2. *Type Safety* - -Encode invariants that C/Zig cannot express: - -[source,idris] ----- --- Non-null pointer guaranteed at type level -data Handle : Type where - MkHandle : (ptr : Bits64) -> {auto 0 nonNull : So (ptr /= 0)} -> Handle - --- Array with length proof -data Buffer : (n : Nat) -> Type where - MkBuffer : Vect n Byte -> Buffer n ----- - -==== 3. *Platform Abstraction* - -Platform-specific types with compile-time selection: - -[source,idris] ----- -CInt : Platform -> Type -CInt Linux = Bits32 -CInt Windows = Bits32 - -CSize : Platform -> Type -CSize Linux = Bits64 -CSize Windows = Bits64 ----- - -==== 4. *Safe Evolution* - -Prove that new ABI versions are backward-compatible: - -[source,idris] ----- --- Compiler enforces compatibility -abiUpgrade : ABI 1 -> ABI 2 -abiUpgrade old = MkABI2 { - -- Must preserve all v1 fields - v1_compat = old, - -- Can add new fields - new_features = defaults -} ----- - -=== Why Zig for FFI? - -==== 1. *C ABI Compatibility* - -Zig exports C-compatible functions naturally: - -[source,zig] ----- -export fn library_function(param: i32) i32 { - return param * 2; -} ----- - -==== 2. *Memory Safety* - -Compile-time safety without runtime overhead: - -[source,zig] ----- -// Null check enforced at compile time -const handle = init() orelse return error.InitFailed; -defer free(handle); ----- - -==== 3. *Cross-Compilation* - -Built-in cross-compilation to any platform: - -[source,bash] ----- -zig build -Dtarget=x86_64-linux -zig build -Dtarget=aarch64-macos -zig build -Dtarget=x86_64-windows ----- - -==== 4. *Zero Dependencies* - -No runtime, no libc required (unless explicitly needed): - -[source,zig] ----- -// Minimal binary size -pub const lib = @import("std"); -// Only includes what you use ----- - -=== Building - -==== Build FFI Library - -[source,bash] ----- -cd ffi/zig -zig build # Build debug -zig build -Doptimize=ReleaseFast # Build optimized -zig build test # Run tests ----- - -==== Generate C Header from Idris2 ABI - -[source,bash] ----- -cd src/abi -idris2 --cg c-header Types.idr -o ../../generated/abi/{{project}}.h ----- - -==== Cross-Compile - -[source,bash] ----- -cd ffi/zig - -# Linux x86_64 -zig build -Dtarget=x86_64-linux - -# macOS ARM64 -zig build -Dtarget=aarch64-macos - -# Windows x86_64 -zig build -Dtarget=x86_64-windows ----- - -=== Usage - -==== From C - -[source,c] ----- -#include "{{project}}.h" - -int main() { - void* handle = {{project}}_init(); - if (!handle) return 1; - - int result = {{project}}_process(handle, 42); - if (result != 0) { - const char* err = {{project}}_last_error(); - fprintf(stderr, "Error: %s\n", err); - } - - {{project}}_free(handle); - return 0; -} ----- - -Compile with: - -[source,bash] ----- -gcc -o example example.c -l{{project}} -L./zig-out/lib ----- - -==== From Idris2 - -[source,idris] ----- -import {{PROJECT}}.ABI.Foreign - -main : IO () -main = do - Just handle <- init - | Nothing => putStrLn "Failed to initialize" - - Right result <- process handle 42 - | Left err => putStrLn $ "Error: " ++ errorDescription err - - free handle - putStrLn "Success" ----- - -==== From Rust - -[source,rust] ----- -#[link(name = "{{project}}")] -extern "C" { - fn {{project}}_init() -> *mut std::ffi::c_void; - fn {{project}}_free(handle: *mut std::ffi::c_void); - fn {{project}}_process(handle: *mut std::ffi::c_void, input: u32) -> i32; -} - -fn main() { - unsafe { - let handle = {{project}}_init(); - assert!(!handle.is_null()); - - let result = {{project}}_process(handle, 42); - assert_eq!(result, 0); - - {{project}}_free(handle); - } -} ----- - -==== From Julia - -[source,julia] ----- -const lib{{project}} = "lib{{project}}" - -function init() - handle = ccall((:{{project}}_init, lib{{project}}), Ptr{Cvoid}, ()) - handle == C_NULL && error("Failed to initialize") - handle -end - -function process(handle, input) - result = ccall((:{{project}}_process, lib{{project}}), Cint, (Ptr{Cvoid}, UInt32), handle, input) - result -end - -function cleanup(handle) - ccall((:{{project}}_free, lib{{project}}), Cvoid, (Ptr{Cvoid},), handle) -end - -# Usage -handle = init() -try - result = process(handle, 42) - println("Result: $result") -finally - cleanup(handle) -end ----- - -=== Testing - -==== Unit Tests (Zig) - -[source,bash] ----- -cd ffi/zig -zig build test ----- - -==== Integration Tests - -[source,bash] ----- -cd ffi/zig -zig build test-integration ----- - -==== ABI Verification (Idris2) - -[source,idris] ----- --- Compile-time verification -%runElab verifyABI - --- Runtime checks -main : IO () -main = do - verifyLayoutsCorrect - verifyAlignmentsCorrect - putStrLn "ABI verification passed" ----- - -=== Contributing - -When modifying the ABI/FFI: - -[arabic] -. *Update ABI first* (`+src/abi/*.idr+`) -* Modify type definitions -* Update proofs -* Ensure backward compatibility -. *Generate C header* -+ -[source,bash] ----- -idris2 --cg c-header src/abi/Types.idr -o generated/abi/{{project}}.h ----- -. *Update FFI implementation* (`+ffi/zig/src/main.zig+`) -* Implement new functions -* Match ABI types exactly -. *Add tests* -* Unit tests in Zig -* Integration tests -* ABI verification tests -. *Update documentation* -* Function signatures -* Usage examples -* Migration guide (if breaking changes) - -=== License - -PMPL-1.0-or-later - -=== See Also - -* https://idris2.readthedocs.io[Idris2 Documentation] -* https://ziglang.org/documentation/master/[Zig Documentation] -* https://github.com/hyperpolymath/rhodium-standard-repositories[Rhodium -Standard Repositories] -* link:../ffi-migration-guide.md[FFI Migration Guide] -* link:../abi-migration-guide.md[ABI Migration Guide] diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/Cargo.lock b/0-ai-gatekeeper-protocol/repo-guardian-fs/Cargo.lock deleted file mode 100644 index 3c3622969..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/Cargo.lock +++ /dev/null @@ -1,796 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "aho-corasick" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" -dependencies = [ - "memchr", -] - -[[package]] -name = "anstream" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" - -[[package]] -name = "anstyle-parse" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" -dependencies = [ - "anstyle", - "once_cell_polyfill", - "windows-sys", -] - -[[package]] -name = "anyhow" -version = "1.0.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" - -[[package]] -name = "async-notify" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63273b0e33b8941a02eabc1684f0230d3011ea45117351beb94c69253065a194" -dependencies = [ - "event-listener", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bitflags" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "bytes" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" - -[[package]] -name = "cfg-if" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" - -[[package]] -name = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - -[[package]] -name = "clap" -version = "4.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1110bd8a634a1ab8cb04345d8d878267d57c3cf1b38d91b71af6686408bbca6a" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "clap_lex" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" - -[[package]] -name = "colorchoice" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" - -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crypto-common" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "errno" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" -dependencies = [ - "libc", - "windows-sys", -] - -[[package]] -name = "event-listener" -version = "5.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "fuse3" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3175b0f85e74bbabc3bbb1135f9c37a429a26a3fb16169ee6d9608138b0697d8" -dependencies = [ - "async-notify", - "bincode", - "bytes", - "futures-channel", - "futures-util", - "libc", - "nix", - "serde", - "slab", - "tracing", - "trait-make", -] - -[[package]] -name = "futures-channel" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" - -[[package]] -name = "futures-macro" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-sink" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" - -[[package]] -name = "futures-task" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" - -[[package]] -name = "futures-util" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" -dependencies = [ - "futures-core", - "futures-macro", - "futures-sink", - "futures-task", - "pin-project-lite", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" - -[[package]] -name = "itoa" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - -[[package]] -name = "libc" -version = "0.2.184" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" - -[[package]] -name = "lock_api" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" - -[[package]] -name = "matchers" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" -dependencies = [ - "regex-automata", -] - -[[package]] -name = "memchr" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" - -[[package]] -name = "mio" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" -dependencies = [ - "libc", - "wasi", - "windows-sys", -] - -[[package]] -name = "nix" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" -dependencies = [ - "bitflags", - "cfg-if", - "cfg_aliases", - "libc", -] - -[[package]] -name = "nu-ansi-term" -version = "0.50.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "once_cell" -version = "1.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" - -[[package]] -name = "once_cell_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" - -[[package]] -name = "parking" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" - -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-link", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" - -[[package]] -name = "proc-macro2" -version = "1.0.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags", -] - -[[package]] -name = "regex-automata" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" - -[[package]] -name = "repo-guardian-fs" -version = "0.1.0" -dependencies = [ - "anyhow", - "clap", - "fuse3", - "serde", - "serde_json", - "sha2", - "tokio", - "tracing", - "tracing-subscriber", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "serde" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" -dependencies = [ - "serde_core", - "serde_derive", -] - -[[package]] -name = "serde_core" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.149" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" -dependencies = [ - "itoa", - "memchr", - "serde", - "serde_core", - "zmij", -] - -[[package]] -name = "sha2" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" -dependencies = [ - "errno", - "libc", -] - -[[package]] -name = "slab" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" - -[[package]] -name = "smallvec" -version = "1.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" - -[[package]] -name = "socket2" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" -dependencies = [ - "libc", - "windows-sys", -] - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "syn" -version = "2.0.117" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "thread_local" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "tokio" -version = "1.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bd1c4c0fc4a7ab90fc15ef6daaa3ec3b893f004f915f2392557ed23237820cd" -dependencies = [ - "bytes", - "libc", - "mio", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "windows-sys", -] - -[[package]] -name = "tokio-macros" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tracing" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" -dependencies = [ - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tracing-core" -version = "0.1.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex-automata", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "trait-make" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96cbd06a7b648f1603e60d75d9ed295d096b340d30e9f9324f4b512b5d40cd92" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "typenum" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" - -[[package]] -name = "unicode-ident" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" - -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - -[[package]] -name = "valuable" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" - -[[package]] -name = "windows-link" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" - -[[package]] -name = "windows-sys" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" -dependencies = [ - "windows-link", -] - -[[package]] -name = "zmij" -version = "1.0.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/Cargo.toml b/0-ai-gatekeeper-protocol/repo-guardian-fs/Cargo.toml deleted file mode 100644 index 7e5bf4751..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/Cargo.toml +++ /dev/null @@ -1,28 +0,0 @@ -[package] -name = "repo-guardian-fs" -version = "0.1.0" -edition = "2021" -authors = ["Jonathan D.A. Jewell "] -description = "FUSE filesystem wrapper enforcing AI.a2ml manifest acknowledgment before repo access" -license = "AGPL-3.0-or-later" -repository = "https://github.com/hyperpolymath/repo-guardian-fs" -readme = "README.md" -keywords = ["fuse", "filesystem", "ai", "gatekeeper", "manifest"] -categories = ["filesystem", "development-tools"] - -[dependencies] -fuse3 = "0.7" -tokio = { version = "1", features = ["full"] } -anyhow = "1.0" -clap = { version = "4.5", features = ["derive"] } -serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0" -sha2 = "0.10" -tracing = "0.1" -tracing-subscriber = { version = "0.3", features = ["env-filter"] } - -[profile.release] -opt-level = 3 -lto = true -codegen-units = 1 -strip = true diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/LICENSE b/0-ai-gatekeeper-protocol/repo-guardian-fs/LICENSE deleted file mode 100644 index ec540b341..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/LICENSE +++ /dev/null @@ -1,153 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 -SPDX-FileCopyrightText: 2024-2025 Palimpsest Stewardship Council - -================================================================================ -PALIMPSEST-MPL LICENSE VERSION 1.0 -================================================================================ - -File-level copyleft with ethical use and quantum-safe provenance - -Based on Mozilla Public License 2.0 - --------------------------------------------------------------------------------- -PREAMBLE --------------------------------------------------------------------------------- - -This License extends the Mozilla Public License 2.0 (MPL-2.0) with provisions -for ethical use, post-quantum cryptographic provenance, and emotional lineage -protection. The base MPL-2.0 terms apply except where explicitly modified by -the Exhibits below. - -Like a palimpsest manuscript where each layer builds upon what came before, -this license recognizes that creative works carry history, context, and meaning -that transcend mere code or text. - --------------------------------------------------------------------------------- -SECTION 1: BASE LICENSE --------------------------------------------------------------------------------- - -This License incorporates the full text of Mozilla Public License 2.0 by -reference. The complete MPL-2.0 text is available at: -https://www.mozilla.org/en-US/MPL/2.0/ - -All terms, conditions, and definitions from MPL-2.0 apply except where -explicitly modified by the Exhibits in this License. - --------------------------------------------------------------------------------- -SECTION 2: ADDITIONAL DEFINITIONS --------------------------------------------------------------------------------- - -2.1. "Emotional Lineage" - means the narrative, cultural, symbolic, and contextual meaning embedded - in Covered Software, including but not limited to: protest traditions, - cultural heritage, trauma narratives, and community stories. - -2.2. "Provenance Metadata" - means cryptographically signed attribution information attached to or - associated with Covered Software, including author identities, timestamps, - modification history, and lineage references. - -2.3. "Non-Interpretive System" - means any automated system that processes Covered Software without - preserving or considering its Emotional Lineage, including but not - limited to: AI training pipelines, content aggregators, and automated - summarization tools. - -2.4. "Quantum-Safe Signature" - means a cryptographic signature using algorithms resistant to attacks - by quantum computers, as specified in Exhibit B. - --------------------------------------------------------------------------------- -SECTION 3: ETHICAL USE REQUIREMENTS --------------------------------------------------------------------------------- - -In addition to the rights and obligations under MPL-2.0: - -3.1. Emotional Lineage Preservation - You must make reasonable efforts to preserve and communicate the - Emotional Lineage of Covered Software when distributing or creating - derivative works. This includes maintaining narrative context, cultural - attributions, and symbolic meaning where documented. - -3.2. Non-Interpretive System Notice - If You use Covered Software as input to a Non-Interpretive System, You - must: - (a) document such use in a publicly accessible manner; and - (b) not claim that outputs of such systems carry the Emotional Lineage - of the original work without explicit permission from Contributors. - -3.3. Ethical Use Declaration - Commercial use of Covered Software requires acknowledgment that You have - read and understood Exhibit A (Ethical Use Guidelines) and agree to act - in good faith accordance with its principles. - -See Exhibit A for complete Ethical Use Guidelines. - --------------------------------------------------------------------------------- -SECTION 4: PROVENANCE REQUIREMENTS --------------------------------------------------------------------------------- - -4.1. Metadata Preservation - You must not strip, alter, or obscure Provenance Metadata from Covered - Software except where technically necessary and with clear documentation - of any changes. - -4.2. Quantum-Safe Provenance (Optional) - Contributors may sign their Contributions using Quantum-Safe Signatures. - If Quantum-Safe Signatures are present, You must preserve them in all - distributions. - -4.3. Lineage Chain - When creating derivative works, You should extend the provenance chain - to include Your own contributions, maintaining cryptographic linkage to - prior Contributors where feasible. - -See Exhibit B for Quantum-Safe Provenance specifications. - --------------------------------------------------------------------------------- -SECTION 5: GOVERNANCE --------------------------------------------------------------------------------- - -5.1. Stewardship Council - This License is maintained by the Palimpsest Stewardship Council, which - may issue clarifications, interpretive guidance, and future versions. - -5.2. Version Selection - You may use Covered Software under this version of the License or any - later version published by the Palimpsest Stewardship Council. - -5.3. Dispute Resolution - Disputes regarding interpretation of Ethical Use Requirements (Section 3) - should first be submitted to the Palimpsest Stewardship Council for - non-binding guidance before pursuing legal remedies. - --------------------------------------------------------------------------------- -SECTION 6: COMPATIBILITY --------------------------------------------------------------------------------- - -6.1. MPL-2.0 Compatibility - Covered Software under this License may be combined with software under - MPL-2.0. The combined work must comply with both licenses. - -6.2. Secondary Licenses - The Secondary License provisions of MPL-2.0 Section 3.3 apply to this - License. - --------------------------------------------------------------------------------- -EXHIBITS --------------------------------------------------------------------------------- - -Exhibit A - Ethical Use Guidelines -Exhibit B - Quantum-Safe Provenance Specification - -See separate files: -- EXHIBIT-A-ETHICAL-USE.txt -- EXHIBIT-B-QUANTUM-SAFE.txt - --------------------------------------------------------------------------------- -END OF PALIMPSEST-MPL LICENSE VERSION 1.0 --------------------------------------------------------------------------------- - -For questions about this License: -- Repository: https://github.com/hyperpolymath/palimpsest-license -- Council: contact via repository Issues diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/MAINTAINERS.adoc b/0-ai-gatekeeper-protocol/repo-guardian-fs/MAINTAINERS.adoc deleted file mode 100644 index 48d978175..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/MAINTAINERS.adoc +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Maintainers -:toc: preamble - -This document lists the maintainers of this project and their responsibilities. - -== Current Maintainers - -[cols="2,3,2",options="header"] -|=== -| Name | Role | Contact - -| Jonathan D.A. Jewell -| Lead Maintainer -| https://github.com/hyperpolymath[@hyperpolymath] -|=== - -== Responsibilities - -Maintainers are responsible for: - -* Reviewing and merging pull requests -* Triaging issues and feature requests -* Ensuring code quality and security standards -* Managing releases and versioning -* Upholding the project's code of conduct - -== Becoming a Maintainer - -Contributors who demonstrate: - -* Consistent, high-quality contributions -* Understanding of the project's goals and standards -* Constructive participation in discussions -* Commitment to the project's long-term health - -May be invited to become maintainers at the discretion of existing maintainers. - -== Decision Making - -* Routine decisions (bug fixes, minor improvements) can be made by any maintainer -* Significant changes require discussion and consensus among maintainers -* Breaking changes or major features should be discussed in issues before implementation - -== Contact - -For questions about project governance, open an issue or contact the maintainers listed above. diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/README.adoc b/0-ai-gatekeeper-protocol/repo-guardian-fs/README.adoc deleted file mode 100644 index 209eb9b24..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/README.adoc +++ /dev/null @@ -1,133 +0,0 @@ -= RSR template repo - see RSR_OUTLINE.adoc in root for general background and specification - -== This is your repo - don't forget to rename me! - -== ABI/FFI Standards (Hyperpolymath Universal Standard) - -**All repos with foreign function interfaces MUST follow this standard:** - -* **ABI (Application Binary Interface)** → **Idris2** (`src/abi/*.idr`) -** Type definitions with dependent type proofs -** Memory layout verification -** Platform-specific ABIs with compile-time selection -** Formal verification of interface correctness - -* **FFI (Foreign Function Interface)** → **Zig** (`ffi/zig/src/*.zig`) -** C-compatible function implementations -** Zero-cost abstractions -** Memory-safe by default -** Cross-compilation support - -* **Generated C Headers** → Auto-generated from Idris2 ABI (`generated/abi/*.h`) -** Bridge between Idris2 and Zig -** Consumed by any language via C ABI - -**Directory Structure:** ----- -project/ -├── src/abi/ # Idris2 ABI definitions (REQUIRED) -├── ffi/zig/ # Zig FFI implementation (REQUIRED) -├── generated/abi/ # Auto-generated C headers -└── bindings/ # Language-specific wrappers (optional) ----- - -**See:** `ABI-FFI-README.md` for complete documentation - -== AI Gatekeeper Protocol (MANDATORY) - -**CRITICAL:** All hyperpolymath repos MUST include an AI manifest. - -* **File:** `0-AI-MANIFEST.a2ml` (included in this template) -* **Purpose:** Universal entry point for ALL AI agents (Claude, Gemini, OpenAI, etc.) -* **Location:** Repository root (alphabetically first) -* **Customize:** Update `[YOUR-REPO-NAME]` placeholders and repository structure section - -**The manifest declares:** - -* Canonical file locations (e.g., "SCM files ONLY in `.machine_readable/`") -* Critical invariants (rules that must NEVER be violated) -* Repository structure and organization -* Lifecycle hooks (on-enter, on-exit) for session logging - -**Benefits:** - -* ✅ Prevents duplicate file errors (e.g., SCM files in wrong locations) -* ✅ Context preserved across sessions and AI platforms -* ✅ No repeated explanations - mechanical enforcement -* ✅ Works universally (not just Claude) - -**See:** link:https://github.com/hyperpolymath/0-ai-gatekeeper-protocol[AI Gatekeeper Protocol] for details - -**Enforcement:** - -* MCP server (mcp-repo-guardian) - Hard enforcement for Claude -* FUSE wrapper (repo-guardian-fs) - Universal enforcement (coming soon) -* CI/CD validation - Continuous compliance checking - -== AI CLI standards - -- **FIRST:** Customize `0-AI-MANIFEST.a2ml` for your repo before any other work -- Include `ai-cli-crash-capture/` and `contractiles/` from this template in new repos. -- Mirror 6SCM files into `.machine_readable/` (NOT `.machine_readable/6scm/`). -- Before any code generation, check `$REPOS_DIR/proven` for the current Idris "unbreakable" library status. -- If a project uses that Idris library, add an *Idris Inside* badge to the repo. -- If new bindings are required, add them in `$REPOS_DIR/proven` as `idris2-zig-` during the work. -- If new code suggests additional "unbreakable" Idris modules, add them under `$REPOS_DIR/proven` and update binders across all supported languages. - -== Standard Dependencies - -=== Web Projects - -ReScript web projects in the hyperpolymath ecosystem **MUST** use these formally verified components: - -[cols="1,2,1"] -|=== -|Library |Purpose |Status - -|link:https://github.com/hyperpolymath/rescript-dom-mounter[rescript-dom-mounter] -|Formally verified DOM mounting -|**REQUIRED** - -|link:https://github.com/hyperpolymath/rescript-tea[rescript-tea] -|TEA architecture framework -|Recommended - -|link:https://github.com/hyperpolymath/cadre-tea-router[cadre-tea-router] -|Proven-safe URL routing -|Recommended - -|link:https://github.com/hyperpolymath/proven[proven] -|Idris2 formally verified library -|Core Dependency -|=== - -==== Why SafeDOM is Required - -Traditional DOM mounting can fail: - -[source,javascript] ----- -// ❌ UNSAFE: Can crash with null pointer -const el = document.getElementById('app') -el.innerHTML = html // 💥 ----- - -SafeDOM provides **compile-time proofs** that DOM operations cannot fail: - -[source,rescript] ----- -// ✅ PROVEN SAFE: Mathematically guaranteed -SafeDOM.mountSafe("#app", html, - ~onSuccess=el => Console.log("Success"), - ~onError=err => Console.error(err)) ----- - -**Mathematical Guarantees:** - -✓ No null pointer dereferences (Idris2 proof) -✓ No invalid CSS selectors (dependent types) -✓ No malformed HTML (balanced tag checking) -✓ Type-safe operations (ReScript + Idris2) -✓ Zero runtime overhead (proofs erased) - -See link:https://github.com/hyperpolymath/rescript-dom-mounter[rescript-dom-mounter documentation] for full details. diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/ROADMAP.adoc b/0-ai-gatekeeper-protocol/repo-guardian-fs/ROADMAP.adoc deleted file mode 100644 index e81350c91..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/ROADMAP.adoc +++ /dev/null @@ -1,22 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Repo Guardian Fs Roadmap - -== Current Status - -Initial development phase. - -== Milestones - -=== v0.1.0 - Foundation -* [ ] Core functionality -* [ ] Basic documentation -* [ ] CI/CD pipeline - -=== v1.0.0 - Stable Release -* [ ] Full feature set -* [ ] Comprehensive tests -* [ ] Production ready - -== Future Directions - -_To be determined based on community feedback._ diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/RSR_OUTLINE.adoc b/0-ai-gatekeeper-protocol/repo-guardian-fs/RSR_OUTLINE.adoc deleted file mode 100644 index 82754186e..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/RSR_OUTLINE.adoc +++ /dev/null @@ -1,218 +0,0 @@ -= RSR Template Repository - -image:[Palimpsest-MPL-1.0,link="https://github.com/hyperpolymath/palimpsest-license"] image:[Palimpsest,link="https://github.com/hyperpolymath/palimpsest-license"] -:toc: -:sectnums: - -// Badges -image:https://img.shields.io/badge/RSR-Infrastructure-cd7f32[RSR Infrastructure] -image:https://img.shields.io/badge/Phase-Maintenance-brightgreen[Phase] -image:https://img.shields.io/badge/Guix-Primary-purple?logo=gnu[Guix] - -== Overview - -**The canonical template for RSR (Rhodium Standard Repository) projects.** - -This repository provides the standardized structure, configuration, and tooling for all 139 repos in the hyperpolymath ecosystem. Use it to: - -* Bootstrap new projects with RSR compliance -* Reference the standard directory structure -* Copy configuration templates (Justfile, STATE.scm, etc.) - -== Quick Start - -[source,bash] ----- -# Clone the template -git clone https://github.com/hyperpolymath/RSR-template-repo my-project -cd my-project - -# Remove template git history -rm -rf .git -git init - -# Customize -sed -i 's/RSR-template-repo/my-project/g' Justfile guix.scm README.adoc - -# Enter development environment -guix shell -D -f guix.scm - -# Validate compliance -just validate-rsr ----- - -== What's Included - -[cols="1,3"] -|=== -|File/Directory |Purpose - -|`.editorconfig` -|Editor configuration (indent, charset) - -|`.gitignore` -|Standard ignore patterns - -|`.guix-channel` -|Guix channel definition - -|`.well-known/` -|RFC-compliant metadata (security.txt, ai.txt, humans.txt) - -|`docs/` -|Documentation directory - -|`guix.scm` -|Guix package definition - -|`justfile` -|Task runner with 50+ recipes - -|`LICENSE.txt` -|AGPL + Palimpsest dual license - -|`README.adoc` -|This file - -|`RSR_COMPLIANCE.adoc` -|Compliance tracking - -|`STATE.scm` -|Project state checkpoint -|=== - -== Justfile Features - -The template Justfile provides: - -* **~10 billion recipe combinations** via matrix recipes -* **Cookbook generation**: `just cookbook` → `docs/just-cookbook.adoc` -* **Man page generation**: `just man` → `docs/man/project.1` -* **RSR validation**: `just validate-rsr` -* **STATE.scm management**: `just state-touch`, `just state-phase` -* **Container support**: `just container-build`, `just container-push` -* **CI matrix**: `just ci-matrix [stage] [depth]` - -=== Key Recipes - -[source,bash] ----- -just # Show all recipes -just help # Detailed help -just info # Project info -just combinations # Show matrix options - -just build # Build (debug) -just test # Run tests -just quality # Format + lint + test -just ci # Full CI pipeline - -just validate # RSR + STATE validation -just docs # Generate all docs -just cookbook # Generate Justfile docs - -just guix-shell # Guix dev environment -just container-build # Build container ----- - -== Directory Structure - -[source] ----- -project/ -├── .editorconfig # Editor settings -├── .gitignore # Git ignore -├── .guix-channel # Guix channel -├── .well-known/ # RFC metadata -│ ├── ai.txt -│ ├── humans.txt -│ └── security.txt -├── config/ # Nickel configs (optional) -├── docs/ # Documentation -│ ├── generated/ -│ ├── man/ -│ └── just-cookbook.adoc -├── guix.scm # Guix package -├── Justfile # Task runner -├── LICENSE.txt # Dual license -├── README.adoc # Overview -├── RSR_COMPLIANCE.adoc # Compliance -├── src/ # Source code -├── STATE.scm # State checkpoint -└── tests/ # Tests ----- - -== RSR Compliance - -=== Language Tiers - -* **Tier 1** (Gold): Rust(+SPARK), Elixir, Zig, Ada, Haskell, AffineScript, Agda -* **Tier 2** (Silver): Nickel, Racket, Guile Scheme, Nix -* **Infrastructure**: Guix channels, derivations - -=== Required Files - -* `.editorconfig` -* `.gitignore` -* `justfile` -* `README.adoc` -* `RSR_COMPLIANCE.adoc` -* `LICENSE.txt` (AGPL + Palimpsest) -* `.well-known/security.txt` -* `.well-known/ai.txt` -* `.well-known/humans.txt` -* `guix.scm` OR `flake.nix` - -=== Prohibited - -* Python outside `salt/` directory -* TypeScript/JavaScript/ReScript (use AffineScript) -* CUE (use Guile/Nickel) -* `Dockerfile` (use `Containerfile`) - -== STATE.scm - -The STATE.scm file tracks project state: - -[source,scheme] ----- -(define state - `((metadata - (project . "my-project") - (updated . "2025-12-10")) - (position - (phase . implementation) ; design|implementation|testing|maintenance|archived - (maturity . beta)) ; experimental|alpha|beta|production|lts - (ecosystem - (part-of . ("RSR Framework")) - (depends-on . ())))) ----- - -== Badge Schema - -Generate badges from STATE.scm: - -[source,bash] ----- -just badges standard ----- - -See `docs/BADGE_SCHEMA.adoc` for the full badge taxonomy. - -== Ecosystem Integration - -This template is part of: - -* **STATE.scm Ecosystem**: Conversation checkpoints -* **RSR Framework**: Repository standards -* **Consent-Aware-HTTP**: .well-known compliance - -== License - -SPDX-License-Identifier: MPL-2.0 - -== Links - -* https://github.com/hyperpolymath/elegant-STATE[elegant-STATE] - STATE.scm tooling -* https://github.com/hyperpolymath/conative-gating[conative-gating] - Policy enforcement -* https://rhodium.sh[Rhodium Standard] - RSR documentation diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/contractiles/README.adoc b/0-ai-gatekeeper-protocol/repo-guardian-fs/contractiles/README.adoc deleted file mode 100644 index d19a38774..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/contractiles/README.adoc +++ /dev/null @@ -1,19 +0,0 @@ -= Contractiles Template Set -:toc: -:sectnums: - -This directory contains the generalized contractiles templates. Copy the `contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework. - -== Fill-In Instructions - -1. Update the Mustfile to reflect your real invariants (paths, schema versions, ports). -2. Replace Trustfile.hs placeholders with your actual key paths and verification commands. -3. Adjust Dustfile handlers to match your rollback and recovery tooling. -4. Update Intentfile to mirror the roadmap you want the system to evolve toward. - -== Contents - -* `must/Mustfile` - required invariants and validations. -* `trust/Trustfile.hs` - cryptographic verification steps. -* `dust/Dustfile` - rollback and recovery semantics. -* `lust/Intentfile` - future intent and roadmap direction. diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/contractiles/dust/Dustfile b/0-ai-gatekeeper-protocol/repo-guardian-fs/contractiles/dust/Dustfile deleted file mode 100644 index 314903cca..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/contractiles/dust/Dustfile +++ /dev/null @@ -1,29 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Dustfile template - recovery and rollback semantics - -version: 1 - -recovery: - logs: - - name: decision-log - path: logs/decisions.json - reversible: true - handler: "log-replay --reverse logs/decisions.json" - - policy: - - name: policy-rollback - path: policy/policy.ncl - rollback: "git checkout HEAD~1 -- policy/policy.ncl" - notes: "Rollback policy to the previous known-good revision." - - gateway: - - name: bad-deployment - event: "deploy.failure" - undo: "kubectl rollout undo deployment/gateway" - notes: "Undo a failed deployment while preserving audit logs." - - dust-events: - - name: decision-log-to-dust - source: logs/decisions.json - transform: "dustify --input logs/decisions.json --output logs/dust-events.json" - notes: "Map gateway decision logs into reversible dust events." diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/contractiles/must/Mustfile b/0-ai-gatekeeper-protocol/repo-guardian-fs/contractiles/must/Mustfile deleted file mode 100644 index dc7b3be51..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/contractiles/must/Mustfile +++ /dev/null @@ -1,35 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Mustfile - declarative state contract (template) -# See: https://github.com/hyperpolymath/mustfile - -version: 1 - -metadata: - name: project-state-contract - spec: v0.0.1 - description: "Invariant checks for config, policy, gateway, logs, and schema." - -parameters: - gateway_port: "8080" - schema_version: "v0.0.1" - -checks: - - name: config-valid - description: "config/service.yaml must be valid." - run: "yq -e '.' config/service.yaml >/dev/null" - - - name: policy-compiles - description: "policy/policy.ncl must compile." - run: "nickel check policy/policy.ncl" - - - name: gateway-exposes-port - description: "Service must expose the configured port." - run: "bash -uc 'ss -lnt | rg \":${GATEWAY_PORT:-8080}\"'" - - - name: logs-are-json - description: "Logs must be JSON." - run: "bash -uc 'rg --files -g \"*.json\" logs | xargs -r jq -e .'" - - - name: schema-version-matches - description: "Schema must match version spec." - run: "bash -uc 'rg -n \"${SCHEMA_VERSION:-v0.0.1}\" schema'" diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/docs/CITATIONS.adoc b/0-ai-gatekeeper-protocol/repo-guardian-fs/docs/CITATIONS.adoc deleted file mode 100644 index 6f167bdfa..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/docs/CITATIONS.adoc +++ /dev/null @@ -1,36 +0,0 @@ -= RSR-template-repo - Citation Guide -:toc: - -== BibTeX - -[source,bibtex] ----- -@software{rsr-template-repo_2025, - author = {Polymath, Hyper}, - title = {RSR-template-repo}, - year = {2025}, - url = {https://github.com/hyperpolymath/RSR-template-repo}, - license = {PMPL-1.0-or-later} -} ----- - -== Harvard Style - -Polymath, H. (2025) _RSR-template-repo_ [Computer software]. Available at: https://github.com/hyperpolymath/RSR-template-repo - -== OSCOLA - -Hyper Polymath, 'RSR-template-repo' (2025) - -== MLA - -Polymath, Hyper. "RSR-template-repo." 2025, github.com/hyperpolymath/RSR-template-repo. - -== APA 7 - -Polymath, H. (2025). _RSR-template-repo_ [Computer software]. GitHub. https://github.com/hyperpolymath/RSR-template-repo - -== See Also - -* link:../CITATION.cff[CITATION.cff] -* link:../codemeta.json[codemeta.json] diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/examples/web-project-deno.json b/0-ai-gatekeeper-protocol/repo-guardian-fs/examples/web-project-deno.json deleted file mode 100644 index 5ddd3bd7f..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/examples/web-project-deno.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "// NOTE": "Example deno.json for ReScript web projects", - "tasks": { - "build": "deno run -A npm:rescript", - "clean": "deno run -A npm:rescript clean", - "watch": "deno run -A npm:rescript -w", - "serve": "deno run -A jsr:@std/http/file-server .", - "test": "deno test --allow-all" - }, - "imports": { - "rescript": "^12.0.0", - "@rescript/core": "npm:@rescript/core@^1.6.0", - "safe-dom/": "https://raw.githubusercontent.com/hyperpolymath/rescript-dom-mounter/main/src/", - "proven/": "../proven/bindings/rescript/src/" - }, - "compilerOptions": { - "allowJs": true, - "checkJs": false - } -} diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/ffi/zig/build.zig b/0-ai-gatekeeper-protocol/repo-guardian-fs/ffi/zig/build.zig deleted file mode 100644 index 4a2e049a4..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/ffi/zig/build.zig +++ /dev/null @@ -1,94 +0,0 @@ -// {{PROJECT}} FFI Build Configuration -// SPDX-License-Identifier: MPL-2.0 - -const std = @import("std"); - -pub fn build(b: *std.Build) void { - const target = b.standardTargetOptions(.{}); - const optimize = b.standardOptimizeOption(.{}); - - // Shared library (.so, .dylib, .dll) - const lib = b.addSharedLibrary(.{ - .name = "{{project}}", - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - }); - - // Set version - lib.version = .{ .major = 0, .minor = 1, .patch = 0 }; - - // Static library (.a) - const lib_static = b.addStaticLibrary(.{ - .name = "{{project}}", - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - }); - - // Install artifacts - b.installArtifact(lib); - b.installArtifact(lib_static); - - // Generate header file for C compatibility - const header = b.addInstallHeader( - b.path("include/{{project}}.h"), - "{{project}}.h", - ); - b.getInstallStep().dependOn(&header.step); - - // Unit tests - const lib_tests = b.addTest(.{ - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - }); - - const run_lib_tests = b.addRunArtifact(lib_tests); - - const test_step = b.step("test", "Run library tests"); - test_step.dependOn(&run_lib_tests.step); - - // Integration tests - const integration_tests = b.addTest(.{ - .root_source_file = b.path("test/integration_test.zig"), - .target = target, - .optimize = optimize, - }); - - integration_tests.linkLibrary(lib); - - const run_integration_tests = b.addRunArtifact(integration_tests); - - const integration_test_step = b.step("test-integration", "Run integration tests"); - integration_test_step.dependOn(&run_integration_tests.step); - - // Documentation - const docs = b.addTest(.{ - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = .Debug, - }); - - const docs_step = b.step("docs", "Generate documentation"); - docs_step.dependOn(&b.addInstallDirectory(.{ - .source_dir = docs.getEmittedDocs(), - .install_dir = .prefix, - .install_subdir = "docs", - }).step); - - // Benchmark (if needed) - const bench = b.addExecutable(.{ - .name = "{{project}}-bench", - .root_source_file = b.path("bench/bench.zig"), - .target = target, - .optimize = .ReleaseFast, - }); - - bench.linkLibrary(lib); - - const run_bench = b.addRunArtifact(bench); - - const bench_step = b.step("bench", "Run benchmarks"); - bench_step.dependOn(&run_bench.step); -} diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/ffi/zig/src/main.zig b/0-ai-gatekeeper-protocol/repo-guardian-fs/ffi/zig/src/main.zig deleted file mode 100644 index 6b233bc79..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/ffi/zig/src/main.zig +++ /dev/null @@ -1,274 +0,0 @@ -// {{PROJECT}} FFI Implementation -// -// This module implements the C-compatible FFI declared in src/abi/Foreign.idr -// All types and layouts must match the Idris2 ABI definitions. -// -// SPDX-License-Identifier: MPL-2.0 - -const std = @import("std"); - -// Version information (keep in sync with project) -const VERSION = "0.1.0"; -const BUILD_INFO = "{{PROJECT}} built with Zig " ++ @import("builtin").zig_version_string; - -/// Thread-local error storage -threadlocal var last_error: ?[]const u8 = null; - -/// Set the last error message -fn setError(msg: []const u8) void { - last_error = msg; -} - -/// Clear the last error -fn clearError() void { - last_error = null; -} - -//============================================================================== -// Core Types (must match src/abi/Types.idr) -//============================================================================== - -/// Result codes (must match Idris2 Result type) -pub const Result = enum(c_int) { - ok = 0, - @"error" = 1, - invalid_param = 2, - out_of_memory = 3, - null_pointer = 4, -}; - -/// Library handle (opaque to prevent direct access) -pub const Handle = opaque { - // Internal state hidden from C - allocator: std.mem.Allocator, - initialized: bool, - // Add your fields here -}; - -//============================================================================== -// Library Lifecycle -//============================================================================== - -/// Initialize the library -/// Returns a handle, or null on failure -export fn {{project}}_init() ?*Handle { - const allocator = std.heap.c_allocator; - - const handle = allocator.create(Handle) catch { - setError("Failed to allocate handle"); - return null; - }; - - // Initialize handle - handle.* = .{ - .allocator = allocator, - .initialized = true, - }; - - clearError(); - return handle; -} - -/// Free the library handle -export fn {{project}}_free(handle: ?*Handle) void { - const h = handle orelse return; - const allocator = h.allocator; - - // Clean up resources - h.initialized = false; - - allocator.destroy(h); - clearError(); -} - -//============================================================================== -// Core Operations -//============================================================================== - -/// Process data (example operation) -export fn {{project}}_process(handle: ?*Handle, input: u32) Result { - const h = handle orelse { - setError("Null handle"); - return .null_pointer; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return .@"error"; - } - - // Example processing logic - _ = input; - - clearError(); - return .ok; -} - -//============================================================================== -// String Operations -//============================================================================== - -/// Get a string result (example) -/// Caller must free the returned string -export fn {{project}}_get_string(handle: ?*Handle) ?[*:0]const u8 { - const h = handle orelse { - setError("Null handle"); - return null; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return null; - } - - // Example: allocate and return a string - const result = h.allocator.dupeZ(u8, "Example result") catch { - setError("Failed to allocate string"); - return null; - }; - - clearError(); - return result.ptr; -} - -/// Free a string allocated by the library -export fn {{project}}_free_string(str: ?[*:0]const u8) void { - const s = str orelse return; - const allocator = std.heap.c_allocator; - - const slice = std.mem.span(s); - allocator.free(slice); -} - -//============================================================================== -// Array/Buffer Operations -//============================================================================== - -/// Process an array of data -export fn {{project}}_process_array( - handle: ?*Handle, - buffer: ?[*]const u8, - len: u32, -) Result { - const h = handle orelse { - setError("Null handle"); - return .null_pointer; - }; - - const buf = buffer orelse { - setError("Null buffer"); - return .null_pointer; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return .@"error"; - } - - // Access the buffer - const data = buf[0..len]; - _ = data; - - // Process data here - - clearError(); - return .ok; -} - -//============================================================================== -// Error Handling -//============================================================================== - -/// Get the last error message -/// Returns null if no error -export fn {{project}}_last_error() ?[*:0]const u8 { - const err = last_error orelse return null; - - // Return C string (static storage, no need to free) - const allocator = std.heap.c_allocator; - const c_str = allocator.dupeZ(u8, err) catch return null; - return c_str.ptr; -} - -//============================================================================== -// Version Information -//============================================================================== - -/// Get the library version -export fn {{project}}_version() [*:0]const u8 { - return VERSION.ptr; -} - -/// Get build information -export fn {{project}}_build_info() [*:0]const u8 { - return BUILD_INFO.ptr; -} - -//============================================================================== -// Callback Support -//============================================================================== - -/// Callback function type (C ABI) -pub const Callback = *const fn (u64, u32) callconv(.C) u32; - -/// Register a callback -export fn {{project}}_register_callback( - handle: ?*Handle, - callback: ?Callback, -) Result { - const h = handle orelse { - setError("Null handle"); - return .null_pointer; - }; - - const cb = callback orelse { - setError("Null callback"); - return .null_pointer; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return .@"error"; - } - - // Store callback for later use - _ = cb; - - clearError(); - return .ok; -} - -//============================================================================== -// Utility Functions -//============================================================================== - -/// Check if handle is initialized -export fn {{project}}_is_initialized(handle: ?*Handle) u32 { - const h = handle orelse return 0; - return if (h.initialized) 1 else 0; -} - -//============================================================================== -// Tests -//============================================================================== - -test "lifecycle" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - try std.testing.expect({{project}}_is_initialized(handle) == 1); -} - -test "error handling" { - const result = {{project}}_process(null, 0); - try std.testing.expectEqual(Result.null_pointer, result); - - const err = {{project}}_last_error(); - try std.testing.expect(err != null); -} - -test "version" { - const ver = {{project}}_version(); - const ver_str = std.mem.span(ver); - try std.testing.expectEqualStrings(VERSION, ver_str); -} diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/ffi/zig/test/integration_test.zig b/0-ai-gatekeeper-protocol/repo-guardian-fs/ffi/zig/test/integration_test.zig deleted file mode 100644 index 034199499..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/ffi/zig/test/integration_test.zig +++ /dev/null @@ -1,182 +0,0 @@ -// {{PROJECT}} Integration Tests -// SPDX-License-Identifier: MPL-2.0 -// -// These tests verify that the Zig FFI correctly implements the Idris2 ABI - -const std = @import("std"); -const testing = std.testing; - -// Import FFI functions -extern fn {{project}}_init() ?*opaque {}; -extern fn {{project}}_free(?*opaque {}) void; -extern fn {{project}}_process(?*opaque {}, u32) c_int; -extern fn {{project}}_get_string(?*opaque {}) ?[*:0]const u8; -extern fn {{project}}_free_string(?[*:0]const u8) void; -extern fn {{project}}_last_error() ?[*:0]const u8; -extern fn {{project}}_version() [*:0]const u8; -extern fn {{project}}_is_initialized(?*opaque {}) u32; - -//============================================================================== -// Lifecycle Tests -//============================================================================== - -test "create and destroy handle" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - try testing.expect(handle != null); -} - -test "handle is initialized" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const initialized = {{project}}_is_initialized(handle); - try testing.expectEqual(@as(u32, 1), initialized); -} - -test "null handle is not initialized" { - const initialized = {{project}}_is_initialized(null); - try testing.expectEqual(@as(u32, 0), initialized); -} - -//============================================================================== -// Operation Tests -//============================================================================== - -test "process with valid handle" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const result = {{project}}_process(handle, 42); - try testing.expectEqual(@as(c_int, 0), result); // 0 = ok -} - -test "process with null handle returns error" { - const result = {{project}}_process(null, 42); - try testing.expectEqual(@as(c_int, 4), result); // 4 = null_pointer -} - -//============================================================================== -// String Tests -//============================================================================== - -test "get string result" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const str = {{project}}_get_string(handle); - defer if (str) |s| {{project}}_free_string(s); - - try testing.expect(str != null); -} - -test "get string with null handle" { - const str = {{project}}_get_string(null); - try testing.expect(str == null); -} - -//============================================================================== -// Error Handling Tests -//============================================================================== - -test "last error after null handle operation" { - _ = {{project}}_process(null, 0); - - const err = {{project}}_last_error(); - try testing.expect(err != null); - - if (err) |e| { - const err_str = std.mem.span(e); - try testing.expect(err_str.len > 0); - } -} - -test "no error after successful operation" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - _ = {{project}}_process(handle, 0); - - // Error should be cleared after successful operation - // (This depends on implementation) -} - -//============================================================================== -// Version Tests -//============================================================================== - -test "version string is not empty" { - const ver = {{project}}_version(); - const ver_str = std.mem.span(ver); - - try testing.expect(ver_str.len > 0); -} - -test "version string is semantic version format" { - const ver = {{project}}_version(); - const ver_str = std.mem.span(ver); - - // Should be in format X.Y.Z - try testing.expect(std.mem.count(u8, ver_str, ".") >= 1); -} - -//============================================================================== -// Memory Safety Tests -//============================================================================== - -test "multiple handles are independent" { - const h1 = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(h1); - - const h2 = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(h2); - - try testing.expect(h1 != h2); - - // Operations on h1 should not affect h2 - _ = {{project}}_process(h1, 1); - _ = {{project}}_process(h2, 2); -} - -test "double free is safe" { - const handle = {{project}}_init() orelse return error.InitFailed; - - {{project}}_free(handle); - {{project}}_free(handle); // Should not crash -} - -test "free null is safe" { - {{project}}_free(null); // Should not crash -} - -//============================================================================== -// Thread Safety Tests (if applicable) -//============================================================================== - -test "concurrent operations" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const ThreadContext = struct { - h: *opaque {}, - id: u32, - }; - - const thread_fn = struct { - fn run(ctx: ThreadContext) void { - _ = {{project}}_process(ctx.h, ctx.id); - } - }.run; - - var threads: [4]std.Thread = undefined; - for (&threads, 0..) |*thread, i| { - thread.* = try std.Thread.spawn(.{}, thread_fn, .{ - ThreadContext{ .h = handle, .id = @intCast(i) }, - }); - } - - for (threads) |thread| { - thread.join(); - } -} diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/src/filesystem.rs b/0-ai-gatekeeper-protocol/repo-guardian-fs/src/filesystem.rs deleted file mode 100644 index eddbb9674..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/src/filesystem.rs +++ /dev/null @@ -1,255 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 - -//! Guardian FUSE filesystem implementation - -use anyhow::Result; -use fuse3::path::prelude::*; -use fuse3::{Errno, Result as FuseResult}; -use std::path::PathBuf; -use std::time::SystemTime; -use tracing::{debug, warn}; - -use crate::manifest::{find_and_parse_manifest, Manifest}; -use crate::session_manager::{SessionId, SessionManager}; - -/// Guardian FUSE filesystem -pub struct GuardianFs { - /// Source directory (actual repo location) - source: PathBuf, - /// Session manager for tracking acknowledgments - session_manager: SessionManager, - /// Strict mode - block all operations until acknowledgment - strict_mode: bool, - /// Parsed manifest (if available) - manifest: Option, -} - -impl GuardianFs { - /// Create a new guardian filesystem - pub fn new(source: PathBuf, strict_mode: bool, session_timeout: u64) -> Result { - // Try to parse manifest from source - let manifest = find_and_parse_manifest(&source).ok(); - - if manifest.is_none() { - warn!("No manifest found in {:?}, enforcement disabled", source); - } - - Ok(Self { - source, - session_manager: SessionManager::new(session_timeout), - strict_mode, - manifest, - }) - } - - /// Check if session has access (acknowledged manifest or non-strict mode) - fn check_access(&self, session_id: SessionId) -> FuseResult<()> { - // If no manifest, allow access - if self.manifest.is_none() { - return Ok(()); - } - - // If not strict mode, allow access - if !self.strict_mode { - return Ok(()); - } - - // Check if session has acknowledged - if self.session_manager.is_acknowledged(session_id) { - Ok(()) - } else { - debug!("Access denied for session {}: manifest not acknowledged", session_id); - Err(Errno::from(libc::EACCES)) - } - } - - /// Translate virtual path to real path - fn real_path(&self, path: &Path) -> PathBuf { - self.source.join(path.strip_prefix("/").unwrap_or(path)) - } -} - -impl PathFilesystem for GuardianFs { - type DirEntryStream = ReaddirStream; - - async fn init(&self, _req: Request) -> FuseResult<()> { - debug!("Filesystem initialized"); - Ok(()) - } - - async fn destroy(&self, _req: Request) { - debug!("Filesystem destroyed"); - } - - async fn lookup(&self, req: Request, parent: &Path, name: &OsStr) -> FuseResult { - // Check access for this session - self.check_access(req.uid)?; - - let path = parent.join(name); - let real_path = self.real_path(&path); - - match tokio::fs::metadata(&real_path).await { - Ok(metadata) => { - let attr = FileAttr { - ino: 1, // Would use real inode in production - size: metadata.len(), - blocks: metadata.len() / 512, - atime: metadata.accessed().unwrap_or_else(|_| SystemTime::now()), - mtime: metadata.modified().unwrap_or_else(|_| SystemTime::now()), - ctime: metadata.modified().unwrap_or_else(|_| SystemTime::now()), - kind: if metadata.is_dir() { - FileType::Directory - } else { - FileType::RegularFile - }, - perm: if metadata.is_dir() { 0o755 } else { 0o644 }, - nlink: 1, - uid: req.uid, - gid: req.gid, - rdev: 0, - blksize: 4096, - }; - - Ok(ReplyEntry { - ttl: std::time::Duration::from_secs(1), - attr, - }) - } - Err(e) => Err(Errno::from(e.raw_os_error().unwrap_or(libc::ENOENT))), - } - } - - async fn getattr(&self, req: Request, path: &Path, _fh: Option, _flags: u32) -> FuseResult { - // Check access for this session - self.check_access(req.uid)?; - - let real_path = self.real_path(path); - - match tokio::fs::metadata(&real_path).await { - Ok(metadata) => { - let attr = FileAttr { - ino: 1, - size: metadata.len(), - blocks: metadata.len() / 512, - atime: metadata.accessed().unwrap_or_else(|_| SystemTime::now()), - mtime: metadata.modified().unwrap_or_else(|_| SystemTime::now()), - ctime: metadata.modified().unwrap_or_else(|_| SystemTime::now()), - kind: if metadata.is_dir() { - FileType::Directory - } else { - FileType::RegularFile - }, - perm: if metadata.is_dir() { 0o755 } else { 0o644 }, - nlink: 1, - uid: req.uid, - gid: req.gid, - rdev: 0, - blksize: 4096, - }; - - Ok(ReplyAttr { - ttl: std::time::Duration::from_secs(1), - attr, - }) - } - Err(e) => Err(Errno::from(e.raw_os_error().unwrap_or(libc::ENOENT))), - } - } - - async fn read(&self, req: Request, path: &Path, _fh: u64, offset: u64, size: u32) -> FuseResult { - // Check access for this session - self.check_access(req.uid)?; - - let real_path = self.real_path(path); - - match tokio::fs::read(&real_path).await { - Ok(data) => { - let start = offset as usize; - let end = std::cmp::min(start + size as usize, data.len()); - Ok(ReplyData { - data: data[start..end].to_vec().into(), - }) - } - Err(e) => Err(Errno::from(e.raw_os_error().unwrap_or(libc::EIO))), - } - } - - async fn readdir(&self, req: Request, path: &Path, _fh: u64, offset: i64) -> FuseResult> { - // Check access for this session - self.check_access(req.uid)?; - - let real_path = self.real_path(path); - - let mut entries = Vec::new(); - - // Add . and .. - if offset == 0 { - entries.push(DirectoryEntry { - inode: 1, - kind: FileType::Directory, - name: OsString::from("."), - offset: 1, - }); - } - - if offset <= 1 { - entries.push(DirectoryEntry { - inode: 1, - kind: FileType::Directory, - name: OsString::from(".."), - offset: 2, - }); - } - - // Read directory entries - let mut dir_offset = 2; - if let Ok(mut read_dir) = tokio::fs::read_dir(&real_path).await { - while let Ok(Some(entry)) = read_dir.next_entry().await { - dir_offset += 1; - - if dir_offset <= offset { - continue; - } - - let file_type = if entry.file_type().await.map(|t| t.is_dir()).unwrap_or(false) { - FileType::Directory - } else { - FileType::RegularFile - }; - - entries.push(DirectoryEntry { - inode: 1, - kind: file_type, - name: entry.file_name(), - offset: dir_offset, - }); - } - } - - Ok(ReplyDirectory { - entries: ReaddirStream::new(entries.into_iter()), - }) - } -} - -/// Directory entry stream -pub struct ReaddirStream { - entries: std::vec::IntoIter, -} - -impl ReaddirStream { - fn new(iter: std::vec::IntoIter) -> Self { - Self { entries: iter } - } -} - -impl futures::Stream for ReaddirStream { - type Item = FuseResult; - - fn poll_next( - mut self: std::pin::Pin<&mut Self>, - _cx: &mut std::task::Context<'_>, - ) -> std::task::Poll> { - std::task::Poll::Ready(self.entries.next().map(Ok)) - } -} diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/src/main.rs b/0-ai-gatekeeper-protocol/repo-guardian-fs/src/main.rs deleted file mode 100644 index abb430382..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/src/main.rs +++ /dev/null @@ -1,108 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 - -//! Repository Guardian Filesystem -//! -//! FUSE filesystem wrapper that enforces AI.a2ml manifest acknowledgment -//! before allowing any file access in repositories. -//! -//! Universal enforcement for ANY AI agent (not just MCP-compatible). - -#![forbid(unsafe_code)] -use anyhow::{Context, Result}; -use clap::Parser; -use fuse3::path::Session; -use fuse3::MountOptions; -use std::path::PathBuf; -use tracing::{info, Level}; - -mod filesystem; -mod manifest; -mod session_manager; - -use filesystem::GuardianFs; - -/// Repository Guardian Filesystem - Universal AI manifest enforcement -#[derive(Parser, Debug)] -#[command(author, version, about, long_about = None)] -struct Args { - /// Source directory containing repositories - #[arg(short, long)] - source: PathBuf, - - /// Mount point where guarded filesystem will be accessible - #[arg(short, long)] - mount: PathBuf, - - /// Strict mode - block ALL operations until acknowledgment - #[arg(long, default_value_t = true)] - strict: bool, - - /// Session timeout in seconds - #[arg(long, default_value_t = 3600)] - session_timeout: u64, - - /// Allow root to access filesystem - #[arg(long)] - allow_root: bool, - - /// Allow other users to access filesystem - #[arg(long)] - allow_other: bool, -} - -#[tokio::main] -async fn main() -> Result<()> { - // Initialize tracing - tracing_subscriber::fmt() - .with_max_level(Level::INFO) - .with_target(false) - .init(); - - let args = Args::parse(); - - info!("Repository Guardian Filesystem starting"); - info!("Source: {:?}", args.source); - info!("Mount: {:?}", args.mount); - info!("Strict mode: {}", args.strict); - - // Verify source directory exists - if !args.source.exists() { - anyhow::bail!("Source directory does not exist: {:?}", args.source); - } - - // Verify mount point exists - if !args.mount.exists() { - anyhow::bail!("Mount point does not exist: {:?}", args.mount); - } - - // Create guardian filesystem - let fs = GuardianFs::new(args.source.clone(), args.strict, args.session_timeout)?; - - // Configure mount options - let mut mount_options = MountOptions::default(); - - if args.allow_root { - mount_options.allow_root(true); - } - - if args.allow_other { - mount_options.allow_other(true); - } - - // Set filesystem name - mount_options.fs_name("repo-guardian-fs"); - - info!("Mounting filesystem..."); - - // Mount and run - Session::new(mount_options) - .mount_with_unprivileged(fs, &args.mount) - .await - .context("Failed to mount filesystem")? - .await - .context("Filesystem error")?; - - info!("Filesystem unmounted"); - - Ok(()) -} diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/src/manifest.rs b/0-ai-gatekeeper-protocol/repo-guardian-fs/src/manifest.rs deleted file mode 100644 index 1c56d0a90..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/src/manifest.rs +++ /dev/null @@ -1,215 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 - -//! AI Manifest parsing and validation - -use anyhow::{Context, Result}; -use sha2::{Digest, Sha256}; -use std::fs; -use std::path::Path; - -/// Parsed AI manifest -#[derive(Debug, Clone)] -pub struct Manifest { - /// SHA-256 hash of manifest content - pub hash: String, - /// Canonical locations extracted from manifest - pub canonical_locations: CanonicalLocations, - /// Critical invariants - pub invariants: Vec, -} - -/// Canonical file locations declared in manifest -#[derive(Debug, Clone)] -pub struct CanonicalLocations { - /// Location for SCM files (e.g., ".machine_readable/") - pub scm_files: String, - /// Location for bot directives (e.g., ".bot_directives/") - pub bot_directives: String, - /// Agent-specific instruction files - pub agent_instructions: Vec, -} - -impl Default for CanonicalLocations { - fn default() -> Self { - Self { - scm_files: ".machine_readable/".to_string(), - bot_directives: ".bot_directives/".to_string(), - agent_instructions: vec![ - ".claude/CLAUDE.md".to_string(), - "AI.a2ml".to_string(), - "0-AI-MANIFEST.a2ml".to_string(), - ], - } - } -} - -/// Find and parse manifest in a repository -pub fn find_and_parse_manifest(repo_path: &Path) -> Result { - // Try manifest names in order of preference - let manifest_names = ["0-AI-MANIFEST.a2ml", "AI.a2ml", "!AI.a2ml"]; - - for name in &manifest_names { - let manifest_path = repo_path.join(name); - if manifest_path.exists() { - return parse_manifest(&manifest_path); - } - } - - anyhow::bail!( - "No AI manifest found in {:?}. Expected one of: {}", - repo_path, - manifest_names.join(", ") - ) -} - -/// Parse an AI manifest file -pub fn parse_manifest(path: &Path) -> Result { - let content = fs::read_to_string(path) - .with_context(|| format!("Failed to read manifest: {:?}", path))?; - - // Compute SHA-256 hash - let mut hasher = Sha256::new(); - hasher.update(content.as_bytes()); - let hash = format!("{:x}", hasher.finalize()); - - // Extract canonical locations - let canonical_locations = extract_canonical_locations(&content); - - // Extract invariants - let invariants = extract_invariants(&content); - - Ok(Manifest { - hash, - canonical_locations, - invariants, - }) -} - -/// Extract canonical locations from manifest content -fn extract_canonical_locations(content: &str) -> CanonicalLocations { - let mut locations = CanonicalLocations::default(); - - // Look for SCM files location - for line in content.lines() { - let line_lower = line.to_lowercase(); - - // Match patterns like "SCM files ... .machine_readable/" - if line_lower.contains("scm") && line_lower.contains("machine_readable") { - if let Some(path) = extract_path(line) { - if path.contains("machine_readable") { - locations.scm_files = path; - } - } - } - - // Match patterns like "Bot directives ... .bot_directives/" - if line_lower.contains("bot") && line_lower.contains("directive") { - if let Some(path) = extract_path(line) { - if path.contains("bot_directive") { - locations.bot_directives = path; - } - } - } - } - - locations -} - -/// Extract invariants from manifest content -fn extract_invariants(content: &str) -> Vec { - let mut invariants = Vec::new(); - let mut in_invariants_section = false; - - for line in content.lines() { - let line_trimmed = line.trim(); - - // Detect start of CORE INVARIANTS section - if line_trimmed.to_lowercase().contains("core invariant") { - in_invariants_section = true; - continue; - } - - // Detect end of section (next ## heading) - if in_invariants_section && line_trimmed.starts_with("##") { - break; - } - - // Extract numbered invariants - if in_invariants_section { - // Match patterns like "1. **No SCM duplication** - description" - if let Some(stripped) = line_trimmed.strip_prefix(char::is_numeric) { - if stripped.trim_start().starts_with('.') { - let invariant = stripped - .trim_start_matches('.') - .trim() - .trim_start_matches("**") - .split("**") - .next() - .unwrap_or("") - .trim() - .to_string(); - - if !invariant.is_empty() { - invariants.push(invariant); - } - } - } - } - } - - // If no invariants found, add defaults - if invariants.is_empty() { - invariants.push("no_scm_duplication".to_string()); - invariants.push("single_source_of_truth".to_string()); - } - - invariants -} - -/// Extract path from a line (looks for backtick-enclosed paths) -fn extract_path(line: &str) -> Option { - // Look for paths in backticks like `.machine_readable/` - if let Some(start) = line.find('`') { - if let Some(end) = line[start + 1..].find('`') { - let path = line[start + 1..start + 1 + end].to_string(); - return Some(path); - } - } - None -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_extract_canonical_locations() { - let content = r#" -## CANONICAL LOCATIONS - -SCM files MUST be in `.machine_readable/` directory ONLY. -Bot directives go in `.bot_directives/`. - "#; - - let locations = extract_canonical_locations(content); - assert_eq!(locations.scm_files, ".machine_readable/"); - assert_eq!(locations.bot_directives, ".bot_directives/"); - } - - #[test] - fn test_extract_invariants() { - let content = r#" -## CORE INVARIANTS - -1. **No SCM duplication** - Root must NOT contain STATE.scm -2. **Single source of truth** - .machine_readable/ is authoritative - -## NEXT SECTION - "#; - - let invariants = extract_invariants(content); - assert_eq!(invariants.len(), 2); - assert_eq!(invariants[0], "No SCM duplication"); - assert_eq!(invariants[1], "Single source of truth"); - } -} diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/src/session_manager.rs b/0-ai-gatekeeper-protocol/repo-guardian-fs/src/session_manager.rs deleted file mode 100644 index 967189264..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/src/session_manager.rs +++ /dev/null @@ -1,170 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 - -//! Session management for AI agent access control - -use std::collections::HashMap; -use std::sync::{Arc, RwLock}; -use std::time::{Duration, Instant}; - -/// Session identifier (process ID or similar) -pub type SessionId = u32; - -/// Session state for an AI agent/process -#[derive(Debug, Clone)] -pub struct Session { - /// Unique session ID (typically process ID) - pub id: SessionId, - /// Whether the agent has acknowledged the manifest - pub acknowledged: bool, - /// Timestamp when session was created - pub created_at: Instant, - /// Timestamp of last activity - pub last_activity: Instant, -} - -/// Manages sessions and manifest acknowledgments -#[derive(Clone)] -pub struct SessionManager { - // ⚠ Lock poisoning is handled PER FUNCTION here, never by one blanket - // pattern. `RwLock::read`/`write` fail only when another thread panicked - // while holding the lock, and the right response depends on what the - // function MEANS: - // - // is_acknowledged -> FAIL CLOSED. It reports whether a session cleared - // the manifest gate. Recovering a poisoned lock could - // read a half-updated map and answer `true` for a - // session that had not acknowledged — failing OPEN in - // a gatekeeper. On doubt it denies. - // acknowledge -> propagate Err; it already returns Result, so the - // caller decides. - // others -> recover. Creating a session, counting them and - // expiring them grant no access. - sessions: Arc>>, - timeout: Duration, -} - -impl SessionManager { - /// Create a new session manager - pub fn new(timeout_secs: u64) -> Self { - Self { - sessions: Arc::new(RwLock::new(HashMap::new())), - timeout: Duration::from_secs(timeout_secs), - } - } - - /// Get or create a session for the given ID - pub fn get_or_create_session(&self, session_id: SessionId) -> Session { - let mut sessions = self.sessions.write().unwrap_or_else(|e| e.into_inner()); - - // Check if session exists and is not expired - if let Some(session) = sessions.get_mut(&session_id) { - if session.last_activity.elapsed() < self.timeout { - session.last_activity = Instant::now(); - return session.clone(); - } - // Session expired, will create new one - } - - // Create new session - let session = Session { - id: session_id, - acknowledged: false, - created_at: Instant::now(), - last_activity: Instant::now(), - }; - - sessions.insert(session_id, session.clone()); - session - } - - /// Check if a session has acknowledged the manifest - pub fn is_acknowledged(&self, session_id: SessionId) -> bool { - // Fail CLOSED: a poisoned lock means some handler panicked mid-update, - // so the map may be half-written. Denying is the safe answer for a gate. - let Ok(sessions) = self.sessions.read() else { - return false; - }; - sessions - .get(&session_id) - .map(|s| s.acknowledged && s.last_activity.elapsed() < self.timeout) - .unwrap_or(false) - } - - /// Acknowledge manifest for a session - pub fn acknowledge(&self, session_id: SessionId, manifest_hash: &str) -> Result<(), String> { - // Propagate rather than panic: this already returns Result, so the - // caller can decide. Silently succeeding on a poisoned lock would - // record an acknowledgement that may not have been stored. - let mut sessions = self - .sessions - .write() - .map_err(|_| "session store poisoned".to_string())?; - - if let Some(session) = sessions.get_mut(&session_id) { - // In a real implementation, would verify manifest_hash matches - // For now, just mark as acknowledged - session.acknowledged = true; - session.last_activity = Instant::now(); - Ok(()) - } else { - Err(format!("Session {} not found", session_id)) - } - } - - /// Clean up expired sessions - pub fn cleanup_expired(&self) { - let mut sessions = self.sessions.write().unwrap_or_else(|e| e.into_inner()); - sessions.retain(|_, session| session.last_activity.elapsed() < self.timeout); - } - - /// Get number of active sessions - pub fn active_count(&self) -> usize { - let sessions = self.sessions.read().unwrap_or_else(|e| e.into_inner()); - sessions - .values() - .filter(|s| s.last_activity.elapsed() < self.timeout) - .count() - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_session_creation() { - let manager = SessionManager::new(3600); - let session = manager.get_or_create_session(1234); - - assert_eq!(session.id, 1234); - assert!(!session.acknowledged); - } - - #[test] - fn test_acknowledgment() { - let manager = SessionManager::new(3600); - manager.get_or_create_session(1234); - - assert!(!manager.is_acknowledged(1234)); - - manager - .acknowledge(1234, "test_hash") - .expect("Failed to acknowledge"); - - assert!(manager.is_acknowledged(1234)); - } - - #[test] - fn test_session_timeout() { - let manager = SessionManager::new(0); // 0 second timeout - manager.get_or_create_session(1234); - manager - .acknowledge(1234, "test_hash") - .expect("Failed to acknowledge"); - - std::thread::sleep(Duration::from_millis(10)); - - // Session should be expired - assert!(!manager.is_acknowledged(1234)); - } -} diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/tests-offline/Cargo.lock b/0-ai-gatekeeper-protocol/repo-guardian-fs/tests-offline/Cargo.lock deleted file mode 100644 index 3976dc1f5..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/tests-offline/Cargo.lock +++ /dev/null @@ -1,515 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "anyhow" -version = "1.0.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" - -[[package]] -name = "bitflags" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "cfg-if" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crypto-common" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "errno" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" -dependencies = [ - "libc", - "windows-sys", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" -dependencies = [ - "cfg-if", - "libc", - "r-efi", - "wasip2", - "wasip3", -] - -[[package]] -name = "hashbrown" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" -dependencies = [ - "foldhash", -] - -[[package]] -name = "hashbrown" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "id-arena" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" - -[[package]] -name = "indexmap" -version = "2.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a8a2b9cb3e0b0c1803dbb0758ffac5de2f425b23c28f518faabd9d805342ff" -dependencies = [ - "equivalent", - "hashbrown 0.16.1", - "serde", - "serde_core", -] - -[[package]] -name = "itoa" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" - -[[package]] -name = "leb128fmt" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" - -[[package]] -name = "libc" -version = "0.2.184" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" - -[[package]] -name = "linux-raw-sys" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" - -[[package]] -name = "log" -version = "0.4.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" - -[[package]] -name = "memchr" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" - -[[package]] -name = "once_cell" -version = "1.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" - -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn", -] - -[[package]] -name = "proc-macro2" -version = "1.0.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r-efi" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" - -[[package]] -name = "repo-guardian-fs-tests" -version = "0.1.0" -dependencies = [ - "anyhow", - "sha2", - "tempfile", -] - -[[package]] -name = "rustix" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys", -] - -[[package]] -name = "semver" -version = "1.0.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" - -[[package]] -name = "serde" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" -dependencies = [ - "serde_core", -] - -[[package]] -name = "serde_core" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.149" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" -dependencies = [ - "itoa", - "memchr", - "serde", - "serde_core", - "zmij", -] - -[[package]] -name = "sha2" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "syn" -version = "2.0.117" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "tempfile" -version = "3.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" -dependencies = [ - "fastrand", - "getrandom", - "once_cell", - "rustix", - "windows-sys", -] - -[[package]] -name = "typenum" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" - -[[package]] -name = "unicode-ident" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" - -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "wasip2" -version = "1.0.2+wasi-0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasip3" -version = "0.4.0+wasi-0.3.0-rc-2026-01-06" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasm-encoder" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" -dependencies = [ - "leb128fmt", - "wasmparser", -] - -[[package]] -name = "wasm-metadata" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" -dependencies = [ - "anyhow", - "indexmap", - "wasm-encoder", - "wasmparser", -] - -[[package]] -name = "wasmparser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" -dependencies = [ - "bitflags", - "hashbrown 0.15.5", - "indexmap", - "semver", -] - -[[package]] -name = "windows-link" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" - -[[package]] -name = "windows-sys" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" -dependencies = [ - "windows-link", -] - -[[package]] -name = "wit-bindgen" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" -dependencies = [ - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen-core" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" -dependencies = [ - "anyhow", - "heck", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" -dependencies = [ - "anyhow", - "heck", - "indexmap", - "prettyplease", - "syn", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" -dependencies = [ - "anyhow", - "prettyplease", - "proc-macro2", - "quote", - "syn", - "wit-bindgen-core", - "wit-bindgen-rust", -] - -[[package]] -name = "wit-component" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" -dependencies = [ - "anyhow", - "bitflags", - "indexmap", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser", -] - -[[package]] -name = "zmij" -version = "1.0.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/tests-offline/Cargo.toml b/0-ai-gatekeeper-protocol/repo-guardian-fs/tests-offline/Cargo.toml deleted file mode 100644 index 884250b6d..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/tests-offline/Cargo.toml +++ /dev/null @@ -1,24 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Offline tests for repo-guardian-fs manifest and session logic. -# -# This is a SEPARATE crate from repo-guardian-fs to avoid the broken fuse3 -# dependency (fuse3 v0.7.3 fails to compile on Rust stable >= 1.80 due to -# removed features). The fuse3 dependency is only needed for the FUSE mount -# operations, not for the manifest parsing and session management logic. -# -# Run with: cargo test (from this directory) -# Or from repo root: cargo test --manifest-path tests-offline/Cargo.toml - -[package] -name = "repo-guardian-fs-tests" -version = "0.1.0" -edition = "2021" -authors = ["Jonathan D.A. Jewell "] -description = "Offline unit tests for repo-guardian-fs manifest and session logic" -license = "PMPL-1.0-or-later" -publish = false - -[dependencies] -anyhow = "1.0" -sha2 = "0.10" -tempfile = "3" diff --git a/0-ai-gatekeeper-protocol/repo-guardian-fs/tests-offline/src/lib.rs b/0-ai-gatekeeper-protocol/repo-guardian-fs/tests-offline/src/lib.rs deleted file mode 100644 index 1dc20fd0f..000000000 --- a/0-ai-gatekeeper-protocol/repo-guardian-fs/tests-offline/src/lib.rs +++ /dev/null @@ -1,575 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -// -// Offline unit tests for repo-guardian-fs manifest and session logic. -// -// These tests are in a SEPARATE crate to avoid the broken fuse3 dependency -// (fuse3 v0.7.3 fails on Rust stable >= 1.80). The FUSE mount functionality -// requires a live environment (Linux with FUSE support + privileges); those -// are marked as "live environment" and not included here. -// -// LIVE ENVIRONMENT TESTS (not included — require FUSE kernel module + privileges): -// - Filesystem mount/unmount lifecycle -// - Access control via FUSE operations (open, read, readdir) -// - FUSE passthrough to underlying filesystem -// - Concurrent FUSE access patterns -// -// WHAT IS TESTED HERE: -// - Manifest file parsing (find_and_parse_manifest, parse_manifest) -// - Canonical location extraction -// - Invariant extraction -// - SHA-256 hash computation -// - Session management (get_or_create, acknowledge, expiry) - -use anyhow::Result; -use sha2::{Digest, Sha256}; -use std::collections::HashMap; -use std::path::Path; -use std::sync::{Arc, RwLock}; -use std::time::{Duration, Instant}; - -// =========================================================================== -// Inlined manifest logic (from ../src/manifest.rs, without fuse3 imports) -// =========================================================================== - -/// Canonical file locations declared in manifest. -#[derive(Debug, Clone, PartialEq)] -pub struct CanonicalLocations { - pub scm_files: String, - pub bot_directives: String, - pub agent_instructions: Vec, -} - -impl Default for CanonicalLocations { - fn default() -> Self { - Self { - scm_files: ".machine_readable/".to_string(), - bot_directives: ".bot_directives/".to_string(), - agent_instructions: vec![ - ".claude/CLAUDE.md".to_string(), - "AI.a2ml".to_string(), - "0-AI-MANIFEST.a2ml".to_string(), - ], - } - } -} - -/// Parsed AI manifest. -#[derive(Debug, Clone)] -pub struct Manifest { - pub hash: String, - pub canonical_locations: CanonicalLocations, - pub invariants: Vec, -} - -fn extract_path(line: &str) -> Option { - if let Some(start) = line.find('`') { - if let Some(end) = line[start + 1..].find('`') { - let path = line[start + 1..start + 1 + end].to_string(); - return Some(path); - } - } - None -} - -fn extract_canonical_locations(content: &str) -> CanonicalLocations { - let mut locations = CanonicalLocations::default(); - for line in content.lines() { - let line_lower = line.to_lowercase(); - if line_lower.contains("scm") && line_lower.contains("machine_readable") { - if let Some(path) = extract_path(line) { - if path.contains("machine_readable") { - locations.scm_files = path; - } - } - } - if line_lower.contains("bot") && line_lower.contains("directive") { - if let Some(path) = extract_path(line) { - if path.contains("bot_directive") { - locations.bot_directives = path; - } - } - } - } - locations -} - -fn extract_invariants(content: &str) -> Vec { - let mut invariants = Vec::new(); - let mut in_section = false; - for line in content.lines() { - let trimmed = line.trim(); - if trimmed.to_lowercase().contains("core invariant") { - in_section = true; - continue; - } - if in_section && trimmed.starts_with("##") { - break; - } - if in_section { - if let Some(stripped) = trimmed.strip_prefix(char::is_numeric) { - if stripped.trim_start().starts_with('.') { - let invariant = stripped - .trim_start_matches('.') - .trim() - .trim_start_matches("**") - .split("**") - .next() - .unwrap_or("") - .trim() - .to_string(); - if !invariant.is_empty() { - invariants.push(invariant); - } - } - } - } - } - if invariants.is_empty() { - invariants.push("no_scm_duplication".to_string()); - invariants.push("single_source_of_truth".to_string()); - } - invariants -} - -pub fn parse_manifest_from_content(content: &str) -> Manifest { - let mut hasher = Sha256::new(); - hasher.update(content.as_bytes()); - let hash = format!("{:x}", hasher.finalize()); - Manifest { - hash, - canonical_locations: extract_canonical_locations(content), - invariants: extract_invariants(content), - } -} - -pub fn parse_manifest(path: &Path) -> Result { - let content = std::fs::read_to_string(path) - .map_err(|e| anyhow::anyhow!("Failed to read manifest {:?}: {}", path, e))?; - Ok(parse_manifest_from_content(&content)) -} - -pub fn find_and_parse_manifest(repo_path: &Path) -> Result { - let names = ["0-AI-MANIFEST.a2ml", "AI.a2ml", "!AI.a2ml"]; - for name in &names { - let p = repo_path.join(name); - if p.exists() { - return parse_manifest(&p); - } - } - anyhow::bail!( - "No AI manifest found in {:?}. Expected one of: {}", - repo_path, - names.join(", ") - ) -} - -// =========================================================================== -// Inlined session logic (from ../src/session_manager.rs, without fuse3) -// =========================================================================== - -pub type SessionId = u32; - -#[derive(Debug, Clone)] -pub struct Session { - pub id: SessionId, - pub acknowledged: bool, - pub created_at: Instant, - pub last_activity: Instant, -} - -#[derive(Clone)] -pub struct SessionManager { - // ⚠ Lock poisoning is handled PER FUNCTION here, never by one blanket - // pattern. `RwLock::read`/`write` fail only when another thread panicked - // while holding the lock, and the right response depends on what the - // function MEANS: - // - // is_acknowledged -> FAIL CLOSED. It reports whether a session cleared - // the manifest gate. Recovering a poisoned lock could - // read a half-updated map and answer `true` for a - // session that had not acknowledged — failing OPEN in - // a gatekeeper. On doubt it denies. - // acknowledge -> propagate Err; it already returns Result, so the - // caller decides. - // others -> recover. Creating a session, counting them and - // expiring them grant no access. - sessions: Arc>>, - timeout: Duration, -} - -impl SessionManager { - pub fn new(timeout_secs: u64) -> Self { - Self { - sessions: Arc::new(RwLock::new(HashMap::new())), - timeout: Duration::from_secs(timeout_secs), - } - } - - pub fn get_or_create_session(&self, session_id: SessionId) -> Session { - let mut sessions = self.sessions.write().unwrap_or_else(|e| e.into_inner()); - if let Some(session) = sessions.get_mut(&session_id) { - if session.last_activity.elapsed() < self.timeout { - session.last_activity = Instant::now(); - return session.clone(); - } - } - let session = Session { - id: session_id, - acknowledged: false, - created_at: Instant::now(), - last_activity: Instant::now(), - }; - sessions.insert(session_id, session.clone()); - session - } - - pub fn is_acknowledged(&self, session_id: SessionId) -> bool { - // Fail CLOSED: a poisoned lock means some handler panicked mid-update, - // so the map may be half-written. Denying is the safe answer for a gate. - let Ok(sessions) = self.sessions.read() else { - return false; - }; - sessions - .get(&session_id) - .map(|s| s.acknowledged && s.last_activity.elapsed() < self.timeout) - .unwrap_or(false) - } - - pub fn acknowledge(&self, session_id: SessionId, _manifest_hash: &str) -> Result<()> { - let mut sessions = self.sessions.write().unwrap_or_else(|e| e.into_inner()); - if let Some(session) = sessions.get_mut(&session_id) { - session.acknowledged = true; - session.last_activity = Instant::now(); - Ok(()) - } else { - anyhow::bail!("Session {} not found", session_id) - } - } - - pub fn cleanup_expired(&self) { - let mut sessions = self.sessions.write().unwrap_or_else(|e| e.into_inner()); - sessions.retain(|_, s| s.last_activity.elapsed() < self.timeout); - } - - pub fn active_count(&self) -> usize { - let sessions = self.sessions.read().unwrap_or_else(|e| e.into_inner()); - sessions - .values() - .filter(|s| s.last_activity.elapsed() < self.timeout) - .count() - } -} - -// =========================================================================== -// Unit tests: manifest parsing -// =========================================================================== - -#[cfg(test)] -mod tests { - use super::*; - use std::io::Write; - use tempfile::TempDir; - - const VALID_MANIFEST: &str = r#"# STOP - CRITICAL READING REQUIRED - -## CANONICAL LOCATIONS - -SCM files MUST be in `.machine_readable/` directory ONLY. -Bot directives go in `.bot_directives/`. - -## CORE INVARIANTS - -1. **No SCM duplication** - Root must NOT contain STATE.scm -2. **Single source of truth** - .machine_readable/ is authoritative - -## NEXT SECTION -"#; - - const MINIMAL_MANIFEST: &str = "# AI Manifest\n\nThis is a minimal manifest.\n"; - - // ----------------------------------------------------------------------- - // Manifest content tests - // ----------------------------------------------------------------------- - - #[test] - fn manifest_hash_is_64_hex_chars() { - let m = parse_manifest_from_content(VALID_MANIFEST); - assert_eq!(m.hash.len(), 64, "SHA-256 hex should be 64 chars"); - assert!(m.hash.chars().all(|c| c.is_ascii_hexdigit()), "Hash should be hex"); - } - - #[test] - fn manifest_hash_is_deterministic() { - let m1 = parse_manifest_from_content(VALID_MANIFEST); - let m2 = parse_manifest_from_content(VALID_MANIFEST); - assert_eq!(m1.hash, m2.hash); - } - - #[test] - fn manifest_hash_differs_for_different_content() { - let m1 = parse_manifest_from_content(VALID_MANIFEST); - let m2 = parse_manifest_from_content(MINIMAL_MANIFEST); - assert_ne!(m1.hash, m2.hash); - } - - #[test] - fn manifest_extracts_scm_files_canonical_location() { - let m = parse_manifest_from_content(VALID_MANIFEST); - assert_eq!(m.canonical_locations.scm_files, ".machine_readable/"); - } - - #[test] - fn manifest_extracts_bot_directives_canonical_location() { - let m = parse_manifest_from_content(VALID_MANIFEST); - assert_eq!(m.canonical_locations.bot_directives, ".bot_directives/"); - } - - #[test] - fn manifest_defaults_scm_files_when_absent() { - let m = parse_manifest_from_content(MINIMAL_MANIFEST); - assert_eq!(m.canonical_locations.scm_files, ".machine_readable/"); - } - - #[test] - fn manifest_defaults_bot_directives_when_absent() { - let m = parse_manifest_from_content(MINIMAL_MANIFEST); - assert_eq!(m.canonical_locations.bot_directives, ".bot_directives/"); - } - - #[test] - fn manifest_extracts_invariants_from_core_invariants_section() { - let m = parse_manifest_from_content(VALID_MANIFEST); - assert_eq!(m.invariants.len(), 2); - assert_eq!(m.invariants[0], "No SCM duplication"); - assert_eq!(m.invariants[1], "Single source of truth"); - } - - #[test] - fn manifest_defaults_invariants_when_section_absent() { - // When no CORE INVARIANTS section, defaults are used - let m = parse_manifest_from_content(MINIMAL_MANIFEST); - assert!(m.invariants.contains(&"no_scm_duplication".to_string())); - assert!(m.invariants.contains(&"single_source_of_truth".to_string())); - } - - #[test] - fn manifest_empty_content_does_not_panic() { - let m = parse_manifest_from_content(""); - assert_eq!(m.hash.len(), 64); - } - - #[test] - fn manifest_always_has_agent_instructions() { - let m = parse_manifest_from_content(MINIMAL_MANIFEST); - assert!(m.canonical_locations.agent_instructions.contains(&"0-AI-MANIFEST.a2ml".to_string())); - assert!(m.canonical_locations.agent_instructions.contains(&".claude/CLAUDE.md".to_string())); - } - - // ----------------------------------------------------------------------- - // File I/O tests - // ----------------------------------------------------------------------- - - #[test] - fn parse_manifest_from_file_succeeds() { - let dir = TempDir::new().unwrap(); - let path = dir.path().join("0-AI-MANIFEST.a2ml"); - let mut f = std::fs::File::create(&path).unwrap(); - writeln!(f, "{}", VALID_MANIFEST).unwrap(); - let m = parse_manifest(&path).expect("Should parse manifest file"); - assert_eq!(m.hash.len(), 64); - } - - #[test] - fn parse_manifest_from_file_errors_on_missing_file() { - let dir = TempDir::new().unwrap(); - let path = dir.path().join("nonexistent.a2ml"); - let result = parse_manifest(&path); - assert!(result.is_err(), "Should fail for missing file"); - } - - #[test] - fn find_and_parse_manifest_finds_0_ai_manifest() { - let dir = TempDir::new().unwrap(); - let path = dir.path().join("0-AI-MANIFEST.a2ml"); - let mut f = std::fs::File::create(&path).unwrap(); - writeln!(f, "{}", VALID_MANIFEST).unwrap(); - let m = find_and_parse_manifest(dir.path()).expect("Should find manifest"); - assert_eq!(m.hash.len(), 64); - } - - #[test] - fn find_and_parse_manifest_finds_ai_a2ml_as_fallback() { - let dir = TempDir::new().unwrap(); - let path = dir.path().join("AI.a2ml"); - let mut f = std::fs::File::create(&path).unwrap(); - writeln!(f, "{}", MINIMAL_MANIFEST).unwrap(); - let m = find_and_parse_manifest(dir.path()).expect("Should find AI.a2ml"); - assert_eq!(m.hash.len(), 64); - } - - #[test] - fn find_and_parse_manifest_errors_when_no_manifest_exists() { - let dir = TempDir::new().unwrap(); - let result = find_and_parse_manifest(dir.path()); - assert!(result.is_err(), "Should fail when no manifest exists"); - let err_msg = result.unwrap_err().to_string(); - assert!(err_msg.contains("No AI manifest"), "Error should mention manifest"); - } - - // ----------------------------------------------------------------------- - // Security aspect tests - // ----------------------------------------------------------------------- - - #[test] - fn security_path_traversal_in_canonical_location_stored_literally() { - // The canonical location extractor only accepts paths that contain - // "machine_readable" (for scm_files) or "bot_directive" (for bot_directives). - // A path traversal like "../../etc/passwd" does NOT contain those strings, - // so it is rejected and the safe default ".machine_readable/" is used instead. - // This is the correct security behaviour: reject unknown paths, use safe default. - let malicious = "SCM files MUST be in `../../etc/passwd` directory ONLY.\n"; - let m = parse_manifest_from_content(malicious); - // The path traversal is rejected; safe default is used - assert_eq!( - m.canonical_locations.scm_files, ".machine_readable/", - "Path traversal should be rejected; safe default should be used" - ); - // Agent instructions are always the safe defaults - assert!(m.canonical_locations.agent_instructions.contains(&"0-AI-MANIFEST.a2ml".to_string())); - } - - #[test] - fn security_large_manifest_1mb_does_not_panic() { - let large = "x".repeat(1_000_000); - let m = parse_manifest_from_content(&large); - assert_eq!(m.hash.len(), 64); - } - - #[test] - fn security_manifest_with_null_bytes_does_not_panic() { - let content = "# Title\n\0\nBody content\n"; - let m = parse_manifest_from_content(content); - assert_eq!(m.hash.len(), 64); - } - - #[test] - fn security_manifest_prefers_0_ai_manifest_over_ai_a2ml() { - // 0-AI-MANIFEST.a2ml should be preferred over AI.a2ml - let dir = TempDir::new().unwrap(); - - let path1 = dir.path().join("0-AI-MANIFEST.a2ml"); - let mut f1 = std::fs::File::create(&path1).unwrap(); - writeln!(f1, "# Primary manifest\nSCM files MUST be in `.machine_readable/` ONLY.\n").unwrap(); - - let path2 = dir.path().join("AI.a2ml"); - let mut f2 = std::fs::File::create(&path2).unwrap(); - writeln!(f2, "# Fallback manifest\n").unwrap(); - - let m = find_and_parse_manifest(dir.path()).expect("Should find primary manifest"); - // Should have parsed the primary (which has the SCM line) - assert_eq!(m.canonical_locations.scm_files, ".machine_readable/"); - } - - // ----------------------------------------------------------------------- - // E2E / dogfood: parse the real standards repo manifest - // ----------------------------------------------------------------------- - - #[test] - fn dogfood_standards_repo_manifest_is_parseable() { - // Parse the standards repo's own manifest. - // Use CARGO_MANIFEST_DIR (set by cargo test) to navigate to the standards root. - // CARGO_MANIFEST_DIR = .../standards/0-ai-gatekeeper-protocol/repo-guardian-fs/tests-offline - let manifest_dir = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR")); - // Navigate from tests-offline/ → 0-ai-gatekeeper-protocol/ → standards/ - let standards_root = manifest_dir - .parent() // repo-guardian-fs/ - .and_then(|p| p.parent()) // 0-ai-gatekeeper-protocol/ - .and_then(|p| p.parent()); // standards/ - if let Some(root) = standards_root { - let manifest_path = root.join("0-AI-MANIFEST.a2ml"); - if manifest_path.exists() { - let m = find_and_parse_manifest(root).expect("Should parse standards manifest"); - assert_eq!(m.hash.len(), 64); - assert_eq!(m.canonical_locations.scm_files, ".machine_readable/"); - } - // If the path doesn't resolve (e.g., CI path differences), skip gracefully - } - } - - // ----------------------------------------------------------------------- - // Session management tests - // ----------------------------------------------------------------------- - - #[test] - fn session_new_session_is_unacknowledged() { - let mgr = SessionManager::new(3600); - let s = mgr.get_or_create_session(42); - assert_eq!(s.id, 42); - assert!(!s.acknowledged); - assert!(!mgr.is_acknowledged(42)); - } - - #[test] - fn session_acknowledgment_marks_session() { - let mgr = SessionManager::new(3600); - mgr.get_or_create_session(1); - assert!(!mgr.is_acknowledged(1)); - mgr.acknowledge(1, "any_hash").expect("Should acknowledge"); - assert!(mgr.is_acknowledged(1)); - } - - #[test] - fn session_acknowledge_unknown_id_errors() { - let mgr = SessionManager::new(3600); - let result = mgr.acknowledge(999, "hash"); - assert!(result.is_err()); - } - - #[test] - fn session_expired_session_is_unacknowledged() { - let mgr = SessionManager::new(0); // 0s timeout — expires immediately - mgr.get_or_create_session(1); - mgr.acknowledge(1, "hash").unwrap(); - std::thread::sleep(Duration::from_millis(10)); - assert!(!mgr.is_acknowledged(1)); // should have expired - } - - #[test] - fn session_multiple_independent_sessions() { - let mgr = SessionManager::new(3600); - mgr.get_or_create_session(1); - mgr.get_or_create_session(2); - mgr.acknowledge(1, "hash").unwrap(); - assert!(mgr.is_acknowledged(1)); - assert!(!mgr.is_acknowledged(2)); // s2 not affected - } - - #[test] - fn session_active_count_tracks_sessions() { - let mgr = SessionManager::new(3600); - assert_eq!(mgr.active_count(), 0); - mgr.get_or_create_session(1); - assert_eq!(mgr.active_count(), 1); - mgr.get_or_create_session(2); - assert_eq!(mgr.active_count(), 2); - } - - #[test] - fn session_cleanup_expired_removes_expired_sessions() { - let mgr = SessionManager::new(0); // 0s timeout - mgr.get_or_create_session(1); - mgr.get_or_create_session(2); - std::thread::sleep(Duration::from_millis(10)); - mgr.cleanup_expired(); - assert_eq!(mgr.active_count(), 0); - } - - #[test] - fn session_idempotent_get_or_create_returns_same_session() { - let mgr = SessionManager::new(3600); - let s1 = mgr.get_or_create_session(7); - let s2 = mgr.get_or_create_session(7); - assert_eq!(s1.id, s2.id); - } -} diff --git a/COMPLIANCE-DASHBOARD.adoc b/COMPLIANCE-DASHBOARD.adoc index 6d016f5b4..d3643c211 100644 --- a/COMPLIANCE-DASHBOARD.adoc +++ b/COMPLIANCE-DASHBOARD.adoc @@ -24,7 +24,6 @@ ____ |=== | Spec | MUST status | MUST (pass/total) | SHOULD (pass/total) | COULD (pass/total) | Systems coverage | Grounded passes | Assessed | `+estate-constitution+` | ❌ gap | 2/4 | 1/1 | 0/0 | 60% | 3/3 | 2026-07-11 -| `+a2ml+` | ✅ met | 4/5 | 4/5 | 0/3 | 84% | 8/8 | 2026-07-03 | `+k9-svc+` | ❌ gap | 0/6 | 0/5 | 0/3 | 100% | – | 2026-07-03 | `+contractiles+` | ❌ gap | 0/5 | 0/3 | 0/3 | 54% | – | 2026-07-03 | `+meta-a2ml+` | ❌ gap | 1/5 | 1/4 | 1/3 | 83% | 3/3 | 2026-07-03 @@ -34,7 +33,7 @@ ____ | `+neurosym-a2ml+` | ❌ gap | 1/5 | 0/4 | 1/3 | 83% | 2/2 | 2026-07-03 | `+playbook-a2ml+` | ❌ gap | 1/5 | 0/4 | 0/3 | 0% | 1/1 | 2026-07-03 | `+anchor-a2ml+` | ❌ gap | 0/5 | 0/5 | 0/3 | 15% | – | 2026-07-03 -| `+0-ai-gatekeeper-protocol+` | ❌ gap | 3/5 | 0/4 | 0/2 | 54% | 3/3 | 2026-07-03 +| `+0-ai-gatekeeper-protocol+` | ❌ gap | 2/5 | 0/4 | 0/2 | 54% | 2/2 | 2026-07-03 | `+k9-coordination-protocol+` | ❌ gap | 3/5 | 2/4 | 0/3 | 100% | 5/5 | 2026-07-03 | `+avow-protocol+` | ❌ gap | 0/5 | 1/4 | 0/3 | 58% | 1/1 | 2026-07-03 | `+axel-protocol+` | ❌ gap | 0/5 | 4/5 | 0/3 | 92% | 4/4 | 2026-07-03 @@ -56,11 +55,11 @@ ____ == Estate rollup -* *Specs registered (local):* 29 -* *Specs with a scorecard:* 29 / 29 -* *MUST requirements:* 41 passing / 142 total (71 failing) -* *Estate systems coverage:* 67% of 330 graded requirements have a mechanical check -* *Grounded passes:* 74 / 74 (100%) pass rows carry an executable `+check+` run by `+--verify+` +* *Specs registered (local):* 28 +* *Specs with a scorecard:* 28 / 28 +* *MUST requirements:* 36 passing / 137 total (71 failing) +* *Estate systems coverage:* 66% of 317 graded requirements have a mechanical check +* *Grounded passes:* 65 / 65 (100%) pass rows carry an executable `+check+` run by `+--verify+` == How this dashboard stays honest diff --git a/Justfile b/Justfile index aa7597e61..9991fec9f 100644 --- a/Justfile +++ b/Justfile @@ -154,8 +154,6 @@ llm-context role="dev": # Build all sub-project artefacts build: @echo "=== Standards Monorepo Build ===" - @echo "[1/3] a2ml/bindings/rust" - @cd a2ml/bindings/rust && cargo build 2>&1 || echo " SKIP: cargo not available" @echo "[2/3] k9 Rust binding — moved to hyperpolymath/k9-ecosystem (rs/) under #491" @echo "[3/3] groove-protocol/reference/ipv6t" @cd groove-protocol/reference/ipv6t && zig build 2>&1 || echo " SKIP: zig not available" @@ -163,9 +161,6 @@ build: # Run all sub-project test suites test: - @bash scripts/run-required-test-suite.sh "MCP repo guardian (Deno — 36 tests)" "0-ai-gatekeeper-protocol/mcp-repo-guardian" deno test --allow-read test/manifest_test.js - @bash scripts/run-required-test-suite.sh "Repo guardian offline core (Rust — 29 tests)" "0-ai-gatekeeper-protocol/repo-guardian-fs/tests-offline" cargo test - @bash scripts/run-required-test-suite.sh "A2ML Rust binding (47 tests + 3 doctests)" "a2ml/bindings/rust" cargo test # K9 Rust binding tests now live in hyperpolymath/k9-ecosystem (rs/) — see #491 # Regression test: test aggregation fails for missing prerequisites and test failures. @@ -179,23 +174,18 @@ session-detritus-test: # Format sub-project code fmt: @echo "=== Standards Monorepo Format ===" - @cd a2ml/bindings/rust && cargo fmt 2>&1 || echo " SKIP" - @cd 0-ai-gatekeeper-protocol/mcp-repo-guardian && deno fmt 2>&1 || echo " SKIP" @echo "=== Format complete ===" # Lint sub-projects lint: @echo "=== Standards Monorepo Lint ===" @echo "[1/2] Rust clippy" - @cd a2ml/bindings/rust && cargo clippy --all-targets 2>&1 || echo " SKIP" @echo "[2/2] Deno lint" - @cd 0-ai-gatekeeper-protocol/mcp-repo-guardian && deno lint 2>&1 || echo " SKIP" @echo "=== Lint complete ===" # Clean build artifacts clean: @echo "=== Cleaning ===" - @cd a2ml/bindings/rust && cargo clean 2>&1 || true @cd groove-protocol/reference/ipv6t && rm -rf zig-out zig-cache .zig-cache 2>/dev/null || true @echo "=== Clean complete ===" diff --git a/TOPOLOGY.adoc b/TOPOLOGY.adoc index 87b4a22c8..1937565c8 100644 --- a/TOPOLOGY.adoc +++ b/TOPOLOGY.adoc @@ -22,7 +22,6 @@ ____ [cols="34%,33%,33%",options="header"] |=== | Spec | Home | If you want… -| A2ML — Attested Markup Language | link:a2ml/[`+a2ml/+`] | the typed/verified machine-readable document format | K9 Self-Validating Components | link:k9-svc/[`+k9-svc/+`] | the K9 specification, security analysis and adoption guidance (implementations live in hyperpolymath/k9-ecosystem) | Contractiles (Must/Trust/Dust/Intend) | link:contractiles/[`+contractiles/+`] | policy-enforcement primitives the K9 layer is built from | META.a2ml spec | link:meta-a2ml/[`+meta-a2ml/+`] | architecture decisions / governance metadata format @@ -32,6 +31,7 @@ ____ | NEUROSYM.a2ml spec | link:neurosym-a2ml/[`+neurosym-a2ml/+`] | symbolic semantics / proof obligations | PLAYBOOK.a2ml spec | link:playbook-a2ml/[`+playbook-a2ml/+`] | executable operational runbooks | ANCHOR.a2ml spec | link:anchor-a2ml/[`+anchor-a2ml/+`] | project-recalibration intervention format +| A2ML — Attested Markup Language | https://github.com/hyperpolymath/a2ml/blob/main/README.adoc[`+hyperpolymath/a2ml+`] `+@ v1.0.0+` ⇗ | the typed/verified machine-readable document format; evicted from standards 2026-08-28 per #490 |=== === Language — AffineScript + language policy (Stream 2) diff --git a/a2ml/.editorconfig b/a2ml/.editorconfig deleted file mode 100644 index fc6650cea..000000000 --- a/a2ml/.editorconfig +++ /dev/null @@ -1,68 +0,0 @@ -# RSR-template-repo - Editor Configuration -# https://editorconfig.org - -root = true - -[*] -charset = utf-8 -end_of_line = lf -indent_size = 2 -indent_style = space -insert_final_newline = true -trim_trailing_whitespace = true - -[*.md] -trim_trailing_whitespace = false - -[*.adoc] -trim_trailing_whitespace = false - -[*.rs] -indent_size = 4 - -[*.ex] -indent_size = 2 - -[*.exs] -indent_size = 2 - -[*.zig] -indent_size = 4 - -[*.ada] -indent_size = 3 - -[*.adb] -indent_size = 3 - -[*.ads] -indent_size = 3 - -[*.hs] -indent_size = 2 - -[*.res] -indent_size = 2 - -[*.resi] -indent_size = 2 - -[*.ncl] -indent_size = 2 - -[*.rkt] -indent_size = 2 - -[*.scm] -indent_size = 2 - -[*.nix] -indent_size = 2 - -[Justfile] -indent_style = space -indent_size = 4 - -[justfile] -indent_style = space -indent_size = 4 diff --git a/a2ml/.gitattributes b/a2ml/.gitattributes deleted file mode 100644 index e860a85c1..000000000 --- a/a2ml/.gitattributes +++ /dev/null @@ -1,54 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# RSR-compliant .gitattributes - -* text=auto eol=lf - -# Source -*.rs text eol=lf diff=rust -*.ex text eol=lf diff=elixir -*.exs text eol=lf diff=elixir -*.jl text eol=lf -*.res text eol=lf -*.resi text eol=lf -*.ada text eol=lf diff=ada -*.adb text eol=lf diff=ada -*.ads text eol=lf diff=ada -*.hs text eol=lf -*.chpl text eol=lf -*.scm text eol=lf -*.ncl text eol=lf -*.nix text eol=lf - -# Docs -*.md text eol=lf diff=markdown -*.adoc text eol=lf -*.txt text eol=lf - -# Data -*.json text eol=lf -*.yaml text eol=lf -*.yml text eol=lf -*.toml text eol=lf - -# Config -.gitignore text eol=lf -.gitattributes text eol=lf -justfile text eol=lf -Makefile text eol=lf -Containerfile text eol=lf - -# Scripts -*.sh text eol=lf - -# Binary -*.png binary -*.jpg binary -*.gif binary -*.pdf binary -*.woff2 binary -*.zip binary -*.gz binary - -# Lock files -Cargo.lock text eol=lf -diff -flake.lock text eol=lf -diff diff --git a/a2ml/.github/FUNDING.yml b/a2ml/.github/FUNDING.yml deleted file mode 100644 index 688a442ca..000000000 --- a/a2ml/.github/FUNDING.yml +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Funding platforms for hyperpolymath projects -# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository - -github: hyperpolymath -ko_fi: hyperpolymath -liberapay: hyperpolymath diff --git a/a2ml/.github/ISSUE_TEMPLATE/bug_report.md b/a2ml/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 987aab6bc..000000000 --- a/a2ml/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: "[Bug]: " -labels: 'bug, priority: unset, triage' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/a2ml/.github/ISSUE_TEMPLATE/custom.md b/a2ml/.github/ISSUE_TEMPLATE/custom.md deleted file mode 100644 index 48d5f81fa..000000000 --- a/a2ml/.github/ISSUE_TEMPLATE/custom.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: Custom issue template -about: Describe this issue template's purpose here. -title: '' -labels: '' -assignees: '' - ---- - - diff --git a/a2ml/.github/ISSUE_TEMPLATE/documentation.md b/a2ml/.github/ISSUE_TEMPLATE/documentation.md deleted file mode 100644 index 4fcb9f9fa..000000000 --- a/a2ml/.github/ISSUE_TEMPLATE/documentation.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -name: Documentation -about: Report unclear, missing, or incorrect documentation -title: "[DOCS]: " -labels: 'documentation, priority: unset, triage' -assignees: '' - ---- - -name: Documentation -description: Report unclear, missing, or incorrect documentation -title: "[Docs]: " -labels: ["documentation", "triage"] -body: - - type: markdown - attributes: - value: | - Help us improve our documentation by reporting issues or gaps. - - - type: dropdown - id: type - attributes: - label: Documentation issue type - options: - - Missing (documentation doesn't exist) - - Incorrect (information is wrong) - - Unclear (confusing or hard to follow) - - Outdated (no longer accurate) - - Typo or grammar - validations: - required: true - - - type: input - id: location - attributes: - label: Location - description: Where is this documentation? (URL, file path, or section name) - placeholder: README.adoc, section "Installation" - validations: - required: true - - - type: textarea - id: description - attributes: - label: Description - description: What's the problem with the current documentation? - placeholder: Describe what's wrong or missing - validations: - required: true - - - type: textarea - id: suggestion - attributes: - label: Suggested improvement - description: How should it be fixed or improved? - placeholder: The documentation should say... - validations: - required: false - - - type: checkboxes - id: contribution - attributes: - label: Contribution - options: - - label: I would be willing to submit a PR to fix this - required: false diff --git a/a2ml/.github/ISSUE_TEMPLATE/feature_request.md b/a2ml/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 3e8fa7e7e..000000000 --- a/a2ml/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: 'enhancement, priority: unset, triage' -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/a2ml/.github/ISSUE_TEMPLATE/question.md b/a2ml/.github/ISSUE_TEMPLATE/question.md deleted file mode 100644 index fd0e2a5cc..000000000 --- a/a2ml/.github/ISSUE_TEMPLATE/question.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -name: Question -about: Ask a question about usage or behaviour -title: "[QUESTION]: " -labels: question, triage -assignees: '' - ---- - -name: Question -description: Ask a question about usage or behaviour -title: "[Question]: " -labels: ["question", "triage"] -body: - - type: markdown - attributes: - value: | - Have a question? You can also ask in [Discussions](../discussions) for broader conversations. - - - type: textarea - id: question - attributes: - label: Your question - description: What would you like to know? - placeholder: How do I...? - validations: - required: true - - - type: textarea - id: context - attributes: - label: Context - description: Any relevant context that helps us answer your question - placeholder: I'm trying to achieve X and I've tried Y... - validations: - required: false - - - type: textarea - id: research - attributes: - label: What I've already tried - description: What have you already looked at or attempted? - placeholder: I've read the README and searched issues but... - validations: - required: false - - - type: checkboxes - id: checked - attributes: - label: Pre-submission checklist - options: - - label: I have searched existing issues and discussions - required: true - - label: I have read the documentation - required: true diff --git a/a2ml/.github/dependabot.yml b/a2ml/.github/dependabot.yml deleted file mode 100644 index 91c397f9a..000000000 --- a/a2ml/.github/dependabot.yml +++ /dev/null @@ -1,48 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Dependabot configuration for RSR-compliant repositories -# Covers common ecosystems - remove unused ones for your project - -version: 2 -updates: - # GitHub Actions - always include - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "daily" - groups: - actions: - patterns: - - "*" - - # Rust/Cargo - - package-ecosystem: "cargo" - directory: "/" - schedule: - interval: "daily" - ignore: - - dependency-name: "*" - update-types: ["version-update:semver-patch"] - - # Elixir/Mix - - package-ecosystem: "mix" - directory: "/" - schedule: - interval: "daily" - - # Node.js/npm - - package-ecosystem: "npm" - directory: "/" - schedule: - interval: "daily" - - # Python/pip - - package-ecosystem: "pip" - directory: "/" - schedule: - interval: "daily" - - # Nix flakes - - package-ecosystem: "nix" - directory: "/" - schedule: - interval: "daily" diff --git a/a2ml/.github/workflows/6scm-sync.yml b/a2ml/.github/workflows/6scm-sync.yml deleted file mode 100644 index 387bbf9e0..000000000 --- a/a2ml/.github/workflows/6scm-sync.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: 6SCM Mirror Check - -on: - push: - paths: - - '.machine_readable/**' - pull_request: - paths: - - '.machine_readable/**' - -jobs: - check: - runs-on: ubuntu-latest - timeout-minutes: 20 - steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - name: Check 6scm mirrors - run: bash scripts/check-6scm.sh diff --git a/a2ml/.github/workflows/a2ml-validation.yml b/a2ml/.github/workflows/a2ml-validation.yml deleted file mode 100644 index 582697b66..000000000 --- a/a2ml/.github/workflows/a2ml-validation.yml +++ /dev/null @@ -1,130 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: A2ML Validation and Generation - -permissions: read-all - -on: - push: - paths: - - '**.a2ml' - - 'cli/**' - - 'src/A2ML/**' - pull_request: - paths: - - '**.a2ml' - - 'cli/**' - - 'src/A2ML/**' - workflow_dispatch: - -jobs: - validate-a2ml: - name: Validate A2ML Files - runs-on: ubuntu-latest - timeout-minutes: 20 - - steps: - - name: Checkout repository - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - - - name: Install Idris2 - run: | - curl -fsSL https://raw.githubusercontent.com/idris-lang/Idris2/main/bootstrap-build.sh | bash - echo "$HOME/.idris2/bin" >> $GITHUB_PATH - - - name: Build A2ML CLI - run: | - cd cli - chmod +x build.sh - ./build.sh - - - name: Validate README.a2ml - run: | - if [ -f README.a2ml ]; then - ../build/exec/a2ml validate README.a2ml - fi - - - name: Validate SPEC.a2ml - run: | - if [ -f SPEC.a2ml ]; then - ../build/exec/a2ml validate SPEC.a2ml - fi - - - name: Validate IANA-MEDIA-TYPE.a2ml - run: | - if [ -f docs/IANA-MEDIA-TYPE.a2ml ]; then - ../build/exec/a2ml validate docs/IANA-MEDIA-TYPE.a2ml - fi - - - name: Find and validate all .a2ml files - run: | - find . -name "*.a2ml" -type f | while read file; do - echo "Validating: $file" - ../build/exec/a2ml validate "$file" || exit 1 - done - - generate-outputs: - name: Generate HTML and Markdown - runs-on: ubuntu-latest - timeout-minutes: 20 - needs: validate-a2ml - - permissions: - contents: write - - steps: - - name: Checkout repository - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - - - name: Install Idris2 - run: | - curl -fsSL https://raw.githubusercontent.com/idris-lang/Idris2/main/bootstrap-build.sh | bash - echo "$HOME/.idris2/bin" >> $GITHUB_PATH - - - name: Build A2ML CLI - run: | - cd cli - chmod +x build.sh - ./build.sh - - - name: Generate HTML from A2ML files - run: | - mkdir -p generated/html - find . -name "*.a2ml" -type f | while read file; do - basename="${file%.a2ml}" - echo "Converting $file to HTML..." - ../build/exec/a2ml convert a2ml html "$file" > "generated/html/$(basename $basename).html" - done - - - name: Generate Markdown from A2ML files - run: | - mkdir -p generated/markdown - find . -name "*.a2ml" -type f | while read file; do - basename="${file%.a2ml}" - echo "Converting $file to Markdown..." - ../build/exec/a2ml convert a2ml md "$file" > "generated/markdown/$(basename $basename).md" - done - - - name: Generate LaTeX from A2ML files - run: | - mkdir -p generated/latex - find . -name "*.a2ml" -type f | while read file; do - basename="${file%.a2ml}" - echo "Converting $file to LaTeX..." - ../build/exec/a2ml convert a2ml tex "$file" > "generated/latex/$(basename $basename).tex" - done - - - name: Upload generated artifacts - uses: actions/upload-artifact@ea165f8d65b6db9a8b71b5c2d1a090c0daf9c8bb # v4 - with: - name: a2ml-generated-docs - path: generated/ - retention-days: 30 - - - name: Commit generated files (if on main) - if: github.ref == 'refs/heads/main' - run: | - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git add generated/ || true - git commit -m "chore: regenerate A2ML outputs [skip ci]" || true - git push || true diff --git a/a2ml/.github/workflows/codeql.yml b/a2ml/.github/workflows/codeql.yml deleted file mode 100644 index d63f446eb..000000000 --- a/a2ml/.github/workflows/codeql.yml +++ /dev/null @@ -1,23 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: CodeQL Security Analysis - -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] - schedule: - - cron: '0 6 1 * *' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: false - -permissions: - contents: read - -jobs: - analyze-js: - uses: ../../.github/workflows/codeql-reusable.yml - with: - language: javascript-typescript diff --git a/a2ml/.github/workflows/contractiles-a2ml.yml b/a2ml/.github/workflows/contractiles-a2ml.yml deleted file mode 100644 index 5850e3138..000000000 --- a/a2ml/.github/workflows/contractiles-a2ml.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Contractiles A2ML - -on: - push: - paths: - - 'contractiles/**' - - 'scripts/contractiles-a2ml-**' - - 'tests/contractiles/**' - - 'docs/CONTRACTILES-A2ML-V1.adoc' - pull_request: - paths: - - 'contractiles/**' - - 'scripts/contractiles-a2ml-**' - - 'tests/contractiles/**' - - 'docs/CONTRACTILES-A2ML-V1.adoc' - -jobs: - test: - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - name: Run Contractiles A2ML tests - run: bash scripts/contractiles-a2ml-test.sh diff --git a/a2ml/.github/workflows/fuzzing.yml b/a2ml/.github/workflows/fuzzing.yml deleted file mode 100644 index 2befcde44..000000000 --- a/a2ml/.github/workflows/fuzzing.yml +++ /dev/null @@ -1,203 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Fuzzing - -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] - schedule: - - cron: '0 0 * * 0' # Weekly on Sunday - workflow_dispatch: - -permissions: read-all - -jobs: - fuzzing: - runs-on: ubuntu-latest - timeout-minutes: 20 - permissions: - contents: read - security-events: write - - steps: - - name: Checkout - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - - - name: Setup Deno for input generation - uses: denoland/setup-deno@5e01c016a857a4dbb5afe9d0f9733cd472cba985 # v2.0.0 - with: - deno-version: v2.x - - - name: Install ReScript - working-directory: prototype/rescript - run: deno install - - - name: Build parser - working-directory: prototype/rescript - run: deno run -A npm:rescript build - - - name: Generate fuzz inputs - run: | - mkdir -p fuzz-corpus - - # Generate various malformed inputs - cat > fuzz-corpus/empty.a2ml << 'EOF' - EOF - - cat > fuzz-corpus/very-long-line.a2ml << 'EOF' - # $(python3 -c "print('A' * 100000)") - EOF - - cat > fuzz-corpus/deep-nesting.a2ml << 'EOF' - @abstract: - @fig(id=1): - @table(id=2): - @opaque(id=3): - Nested content - @end - @end - @end - @end - EOF - - cat > fuzz-corpus/invalid-refs.a2ml << 'EOF' - # Test - @ref(nonexistent) - @fig(ref=missing): - Content - @end - EOF - - cat > fuzz-corpus/duplicate-ids.a2ml << 'EOF' - @fig(id=same): - First - @end - @table(id=same): - Second - @end - EOF - - cat > fuzz-corpus/unicode.a2ml << 'EOF' - # 日本語テスト - **مرحبا** *hello* [Привет](url) - @abstract: - 测试 τεστ 테스트 - @end - EOF - - cat > fuzz-corpus/injection.a2ml << 'EOF' - @opaque(lang=js): - - \input{/etc/passwd} - @end - EOF - - - name: Fuzz ReScript parser - working-directory: prototype/rescript - timeout-minutes: 10 - run: | - ERRORS=0 - for input in ../../fuzz-corpus/*.a2ml; do - echo "Fuzzing with: $(basename $input)" - - # Run parser and capture any crashes/errors - if timeout 5s deno run -A src/Cli.res.js "$input" 2>&1 | tee fuzz-log.txt; then - echo " ✓ No crash" - else - EXIT_CODE=$? - if [ $EXIT_CODE -eq 124 ]; then - echo " ⚠️ Timeout (potential infinite loop)" - ERRORS=$((ERRORS + 1)) - elif [ $EXIT_CODE -gt 128 ]; then - echo " ❌ Crash detected (exit $EXIT_CODE)" - cat fuzz-log.txt - ERRORS=$((ERRORS + 1)) - else - echo " ✓ Parse error (expected)" - fi - fi - done - - if [ $ERRORS -gt 0 ]; then - echo "❌ Found $ERRORS crashes or hangs" - exit 1 - fi - - echo "✅ No crashes or hangs detected" - - - name: Fuzz Idris2 parser - timeout-minutes: 10 - run: | - # Install Idris2 if not cached - if [ ! -f ~/.idris2/bin/idris2 ]; then - curl -L https://github.com/idris-lang/Idris2/releases/download/v0.7.0/idris2-0.7.0-x86_64-linux.tar.gz -o idris2.tar.gz - tar xf idris2.tar.gz - cd idris2-0.7.0 - PREFIX=$HOME/.idris2 make install - cd .. - fi - export PATH=$HOME/.idris2/bin:$PATH - - # Compile parser - cd src - idris2 --codegen node --source-dir . A2ML/ParserTests.idr -o ../build/exec/parser-fuzz.js - - # Fuzz - ERRORS=0 - for input in ../fuzz-corpus/*.a2ml; do - echo "Fuzzing with: $(basename $input)" - - if timeout 5s node ../build/exec/parser-fuzz.js < "$input" 2>&1; then - echo " ✓ No crash" - else - EXIT_CODE=$? - if [ $EXIT_CODE -eq 124 ]; then - echo " ⚠️ Timeout" - ERRORS=$((ERRORS + 1)) - elif [ $EXIT_CODE -gt 128 ]; then - echo " ❌ Crash detected" - ERRORS=$((ERRORS + 1)) - else - echo " ✓ Parse error (expected)" - fi - fi - done - - if [ $ERRORS -gt 0 ]; then - echo "❌ Found $ERRORS crashes or hangs" - exit 1 - fi - - echo "✅ No crashes or hangs detected" - - - name: Report results - if: always() - run: | - cat << EOF > fuzzing-report.md - # Fuzzing Report - - **Date:** $(date -u +"%Y-%m-%d %H:%M:%S UTC") - **Commit:** ${{ github.sha }} - - ## Test Cases - - - Empty input - - Very long lines (100K chars) - - Deep nesting - - Invalid references - - Duplicate IDs - - Unicode content - - Injection attempts - - ## Results - - Both ReScript and Idris2 parsers tested for: - - Crashes (segfaults, memory errors) - - Infinite loops (timeouts) - - Resource exhaustion - - All parsers handled malformed inputs gracefully. - EOF - - cat fuzzing-report.md diff --git a/a2ml/.github/workflows/governance.yml b/a2ml/.github/workflows/governance.yml deleted file mode 100644 index 64ce492be..000000000 --- a/a2ml/.github/workflows/governance.yml +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# governance.yml — single wrapper calling the shared estate governance bundle -# in hyperpolymath/standards instead of carrying per-repo copies. -# -# Replaces the per-repo governance scaffolding removed in the same commit: -# quality.yml, guix-nix-policy.yml, npm-bun-blocker.yml, ts-blocker.yml, -# security-policy.yml, rsr-antipattern.yml, wellknown-enforcement.yml, -# workflow-linter.yml -# -# Load-bearing build/security workflows stay standalone in the repo -# (rust-ci, codeql, dependabot, release, scan/mirror/pages plumbing). - -name: Governance - -on: - push: - branches: [main, master] - pull_request: - workflow_dispatch: - -permissions: - actions: read - contents: read - -jobs: - governance: - uses: ../../.github/workflows/governance-reusable.yml diff --git a/a2ml/.github/workflows/hypatia-scan.yml b/a2ml/.github/workflows/hypatia-scan.yml deleted file mode 100644 index 4bc2b3815..000000000 --- a/a2ml/.github/workflows/hypatia-scan.yml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Hypatia Security Scan - -on: - push: - branches: [main, master, develop] - pull_request: - branches: [main, master] - schedule: - - cron: '0 0 * * 0' - workflow_dispatch: - -permissions: - actions: read - contents: read - security-events: write - -jobs: - scan: - uses: ../../.github/workflows/hypatia-scan-reusable.yml - secrets: inherit diff --git a/a2ml/.github/workflows/idris2-tests.yml b/a2ml/.github/workflows/idris2-tests.yml deleted file mode 100644 index 39a7709b6..000000000 --- a/a2ml/.github/workflows/idris2-tests.yml +++ /dev/null @@ -1,82 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Idris2 Tests - -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] - workflow_dispatch: - -permissions: read-all - -jobs: - test: - runs-on: ubuntu-latest - timeout-minutes: 30 - permissions: - contents: read - - steps: - - name: Checkout - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - - - name: Cache Idris2 - uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.2.0 - with: - path: ~/.idris2 - key: idris2-${{ runner.os }}-0.7.0 - - - name: Install Idris2 - run: | - if [ ! -f ~/.idris2/bin/idris2 ]; then - echo "Installing Idris2 0.7.0..." - curl -L https://github.com/idris-lang/Idris2/releases/download/v0.7.0/idris2-0.7.0-x86_64-linux.tar.gz -o idris2.tar.gz - tar xf idris2.tar.gz - cd idris2-0.7.0 - PREFIX=$HOME/.idris2 make install - fi - echo "$HOME/.idris2/bin" >> $GITHUB_PATH - - - name: Verify Idris2 installation - run: | - idris2 --version - echo "Idris2 installed successfully" - - - name: Type check A2ML parser - run: | - cd src - idris2 --check --source-dir . A2ML/Parser.idr - idris2 --check --source-dir . A2ML/TypedCore.idr - idris2 --check --source-dir . A2ML/Proofs.idr - - - name: Build parser tests - run: | - cd src - idris2 --build a2ml.ipkg - - - name: Run parser tests - run: | - cd src - idris2 --codegen node --source-dir . A2ML/ParserTests.idr -o ../build/exec/parser-tests.js - node ../build/exec/parser-tests.js - - - name: Run proof obligations - run: | - cd src - echo "Testing proof obligations..." - # Proof checks are part of type checking - if it compiles, proofs hold - idris2 --check --source-dir . A2ML/Proofs.idr - echo "✓ All proof obligations validated" - - - name: Test compilation to JavaScript - run: | - cd src - idris2 --codegen node --source-dir . A2ML/Parser.idr -o ../build/exec/parser.js - test -f ../build/exec/parser.js - SIZE=$(stat -c%s ../build/exec/parser.js) - echo "Parser compiled to JavaScript: ${SIZE} bytes" - - # Verify it's valid JavaScript - node -c ../build/exec/parser.js - echo "✓ Generated JavaScript is valid" diff --git a/a2ml/.github/workflows/mirror.yml b/a2ml/.github/workflows/mirror.yml deleted file mode 100644 index f8cab9834..000000000 --- a/a2ml/.github/workflows/mirror.yml +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Mirror to Git Forges - -on: - push: - branches: [main] - workflow_dispatch: - -permissions: - contents: read - -jobs: - mirror: - uses: ../../.github/workflows/mirror-reusable.yml - secrets: inherit diff --git a/a2ml/.github/workflows/rescript-tests.yml b/a2ml/.github/workflows/rescript-tests.yml deleted file mode 100644 index f2c6ccfaa..000000000 --- a/a2ml/.github/workflows/rescript-tests.yml +++ /dev/null @@ -1,87 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: ReScript Tests - -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] - workflow_dispatch: - -permissions: read-all - -jobs: - test: - runs-on: ubuntu-latest - timeout-minutes: 30 - permissions: - contents: read - - steps: - - name: Checkout - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - - - name: Setup Deno - uses: denoland/setup-deno@5e01c016a857a4dbb5afe9d0f9733cd472cba985 # v2.0.0 - with: - deno-version: v2.x - - - name: Cache ReScript build - uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.2.0 - with: - path: | - prototype/rescript/lib - prototype/rescript/.bsb.lock - key: rescript-${{ runner.os }}-${{ hashFiles('prototype/rescript/rescript.json') }} - - - name: Install ReScript - working-directory: prototype/rescript - run: | - deno install - - - name: Build ReScript parser - working-directory: prototype/rescript - run: | - deno run -A npm:rescript build - - - name: Run test vectors - working-directory: prototype/rescript - run: | - # Run all 8 test vectors - for vector in ../../tests/vectors/*.a2ml; do - echo "Testing: $(basename $vector)" - deno run -A src/Cli.res.js "$vector" || exit 1 - done - echo "✓ All test vectors passed" - - - name: Verify compiled output - working-directory: prototype/rescript - run: | - # Check all .res files compiled successfully - for res in src/*.res src/**/*.res; do - if [ -f "$res" ]; then - js_file="${res%.res}.res.js" - if [ ! -f "$js_file" ]; then - echo "Missing compiled file: $js_file" - exit 1 - fi - fi - done - echo "✓ All ReScript files compiled" - - - name: Type check JavaScript output - working-directory: prototype/rescript - run: | - # Verify generated JS is valid - for js in src/*.res.js; do - if [ -f "$js" ]; then - deno check "$js" || node -c "$js" - fi - done - echo "✓ Generated JavaScript is valid" - - - name: Run demo - working-directory: prototype/rescript - run: | - deno run -A src/Demo.res.js - echo "✓ Demo executed successfully" diff --git a/a2ml/.github/workflows/scorecard.yml b/a2ml/.github/workflows/scorecard.yml deleted file mode 100644 index 7a3b59079..000000000 --- a/a2ml/.github/workflows/scorecard.yml +++ /dev/null @@ -1,24 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: OSSF Scorecard - -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] - schedule: - - cron: '0 4 * * *' - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - actions: read - contents: read - -jobs: - scorecard: - uses: ../../.github/workflows/scorecard-reusable.yml - secrets: inherit diff --git a/a2ml/.github/workflows/secret-scanner.yml b/a2ml/.github/workflows/secret-scanner.yml deleted file mode 100644 index b3cca405d..000000000 --- a/a2ml/.github/workflows/secret-scanner.yml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Secret Scanner - -on: - pull_request: - push: - branches: [main] - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - scan: - permissions: - contents: read - uses: ../../.github/workflows/secret-scanner-reusable.yml - secrets: inherit diff --git a/a2ml/.gitignore b/a2ml/.gitignore deleted file mode 100644 index c07bf4e63..000000000 --- a/a2ml/.gitignore +++ /dev/null @@ -1,87 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# RSR-compliant .gitignore - -# OS & Editor -.DS_Store -Thumbs.db -*.swp -*.swo -*~ -.idea/ -.vscode/ - -# Build -/target/ -/_build/ -/build/ -/dist/ -/out/ - -# Dependencies -/node_modules/ -/vendor/ -/deps/ -/.elixir_ls/ - -# Rust -# Cargo.lock # Keep for binaries - -# Elixir -/cover/ -/doc/ -*.ez -erl_crash.dump - -# Julia -*.jl.cov -*.jl.mem -/Manifest.toml - -# ReScript -/lib/bs/ -/.bsb.lock - -# Python (SaltStack only) -__pycache__/ -*.py[cod] -.venv/ - -# Ada/SPARK -*.ali -/obj/ -/bin/ - -# Haskell -/.stack-work/ -/dist-newstyle/ - -# Chapel -*.chpl.tmp.* - -# Secrets -.env -.env.* -*.pem -*.key -secrets/ - -# Test/Coverage -/coverage/ -htmlcov/ - -# Logs -*.log -/logs/ - -# Temp -/tmp/ -*.tmp -*.bak -prototype/rescript/lib/ -prototype/rescript/node_modules/ -prototype/rescript/src/*.bs.js -prototype/rescript/package-lock.json -generated/ - -# Crash recovery artifacts -ai-cli-crash-capture/ diff --git a/a2ml/.gitlab-ci.yml b/a2ml/.gitlab-ci.yml deleted file mode 100644 index 7309fa900..000000000 --- a/a2ml/.gitlab-ci.yml +++ /dev/null @@ -1,175 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Primary CI/CD - GitLab is the source of truth - -stages: - - security - - lint - - test - - build - -variables: - CARGO_HOME: ${CI_PROJECT_DIR}/.cargo - -cache: - key: ${CI_COMMIT_REF_SLUG} - paths: - - .cargo/ - - target/ - -# ================== -# Security Scanning -# ================== - -trivy: - stage: security - image: aquasec/trivy:latest - script: - - trivy fs --exit-code 0 --severity HIGH,CRITICAL --format table . - - trivy fs --exit-code 1 --severity CRITICAL . - allow_failure: false - -gitleaks: - stage: security - image: zricethezav/gitleaks:latest - script: - - gitleaks detect --source . --verbose --redact - allow_failure: false - -semgrep: - stage: security - image: returntocorp/semgrep - script: - - semgrep --config auto --error . - allow_failure: true - -cargo-audit: - stage: security - image: rust:latest - script: - - cargo install cargo-audit - - cargo audit - rules: - - exists: - - Cargo.toml - -cargo-deny: - stage: security - image: rust:latest - script: - - cargo install cargo-deny - - cargo deny check - rules: - - exists: - - Cargo.toml - allow_failure: true - -mix-audit: - stage: security - image: elixir:latest - script: - - mix local.hex --force - - mix archive.install hex mix_audit --force - - mix deps.get - - mix deps.audit - rules: - - exists: - - mix.exs - allow_failure: true - -# ================== -# Linting -# ================== - -rustfmt: - stage: lint - image: rust:latest - script: - - rustup component add rustfmt - - cargo fmt -- --check - rules: - - exists: - - Cargo.toml - -clippy: - stage: lint - image: rust:latest - script: - - rustup component add clippy - - cargo clippy -- -D warnings - rules: - - exists: - - Cargo.toml - allow_failure: true - -mix-format: - stage: lint - image: elixir:latest - script: - - mix format --check-formatted - rules: - - exists: - - mix.exs - -credo: - stage: lint - image: elixir:latest - script: - - mix local.hex --force - - mix deps.get - - mix credo --strict - rules: - - exists: - - mix.exs - allow_failure: true - -# ================== -# Testing -# ================== - -cargo-test: - stage: test - image: rust:latest - script: - - cargo test --all-features - rules: - - exists: - - Cargo.toml - -mix-test: - stage: test - image: elixir:latest - script: - - mix local.hex --force - - mix deps.get - - mix test - rules: - - exists: - - mix.exs - -# ================== -# Build -# ================== - -cargo-build: - stage: build - image: rust:latest - script: - - cargo build --release - artifacts: - paths: - - target/release/ - expire_in: 1 week - rules: - - exists: - - Cargo.toml - -mix-build: - stage: build - image: elixir:latest - script: - - mix local.hex --force - - mix deps.get - - MIX_ENV=prod mix compile - rules: - - exists: - - mix.exs diff --git a/a2ml/.machine_readable/descriptiles/AGENTIC.a2ml b/a2ml/.machine_readable/descriptiles/AGENTIC.a2ml deleted file mode 100644 index 1699fe4a2..000000000 --- a/a2ml/.machine_readable/descriptiles/AGENTIC.a2ml +++ /dev/null @@ -1,34 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# AGENTIC.a2ml — AI agent constraints and capabilities -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[agent-permissions] -can-edit-source = true -can-edit-tests = true -can-edit-docs = true -can-edit-config = true -can-create-files = true - -[agent-constraints] -# What AI agents must NOT do: -# - Never use banned language patterns (believe_me, unsafeCoerce, etc.) -# - Never commit secrets or credentials -# - Never use banned languages (TypeScript, Python, Go, etc.) -# - Never place state files in repository root (must be in .machine_readable/) -# - Never use AGPL license (use PMPL-1.0-or-later) - -[maintenance-integrity] -fail-closed = true -require-evidence-per-step = true -allow-silent-skip = false -require-rerun-after-fix = true -release-claim-requires-hard-pass = true - -[automation-hooks] -# on-enter: Read 0-AI-MANIFEST.a2ml, then STATE.a2ml -# on-exit: Update STATE.a2ml with session outcomes -# on-commit: Run just validate-rsr diff --git a/a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml b/a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml deleted file mode 100644 index ac72d7688..000000000 --- a/a2ml/.machine_readable/descriptiles/ECOSYSTEM.a2ml +++ /dev/null @@ -1,20 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# ECOSYSTEM.a2ml — A2ml ecosystem position -[metadata] -version = "1.0.0" -last-updated = "2026-04-11" - -[project] -name = "A2ml" -purpose = "Hyperpolymath ecosystem component" -role = "library" - -[position-in-ecosystem] -category = "" - -[related-projects] -projects = [ - # No related projects recorded -] diff --git a/a2ml/.machine_readable/descriptiles/META.a2ml b/a2ml/.machine_readable/descriptiles/META.a2ml deleted file mode 100644 index f3b544ea2..000000000 --- a/a2ml/.machine_readable/descriptiles/META.a2ml +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# META.a2ml — A2ml meta-level information -[metadata] -version = "1.0.0" -last-updated = "2026-04-11" - -[project-info] -license = "PMPL-1.0-or-later" -author = "Jonathan D.A. Jewell (hyperpolymath)" - -[architecture-decisions] -decisions = [ - # No ADRs recorded -] - -[development-practices] -versioning = "SemVer" -documentation = "AsciiDoc" -build-tool = "just" - -[maintenance-axes] -scoping-first = true -axis-1 = "must > intend > like" -axis-2 = "corrective > adaptive > perfective" -axis-3 = "systems > compliance > effects" diff --git a/a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml b/a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml deleted file mode 100644 index e1d34c090..000000000 --- a/a2ml/.machine_readable/descriptiles/NEUROSYM.a2ml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# NEUROSYM.a2ml — Neurosymbolic integration metadata -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[hypatia-config] -scan-enabled = true -scan-depth = "standard" # quick | standard | deep -report-format = "logtalk" - -[symbolic-rules] -# Custom symbolic rules for this project -# - { name = "no-unsafe-ffi", pattern = "believe_me|unsafeCoerce", severity = "critical" } - -[neural-config] -# Neural pattern detection settings -# confidence-threshold = 0.85 -# model = "hypatia-v2" diff --git a/a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml b/a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml deleted file mode 100644 index 5003fd08b..000000000 --- a/a2ml/.machine_readable/descriptiles/PLAYBOOK.a2ml +++ /dev/null @@ -1,26 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# PLAYBOOK.a2ml — Operational playbook -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[deployment] -# method = "gitops" # gitops | manual | ci-triggered -# target = "container" # container | binary | library | wasm - -[incident-response] -# 1. Check .machine_readable/STATE.a2ml for current status -# 2. Review recent commits and CI results -# 3. Run `just validate` to check compliance -# 4. Run `just security` to audit for vulnerabilities - -[release-process] -# 1. Update version in STATE.a2ml, META.a2ml -# 2. Run `just release-preflight` (validate + quality + security + maint-hard-pass) -# 3. Tag and push - -[maintenance-operations] -# Baseline audit: just maint-audit -# Hard release gate: just maint-hard-pass diff --git a/a2ml/.machine_readable/descriptiles/STATE.a2ml b/a2ml/.machine_readable/descriptiles/STATE.a2ml deleted file mode 100644 index 078a7ff8b..000000000 --- a/a2ml/.machine_readable/descriptiles/STATE.a2ml +++ /dev/null @@ -1,46 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# STATE.a2ml — A2ml project state -[metadata] -project = "a2ml" -version = "1.0.0" -last-updated = "2026-01-30" -status = "active" -session = "converted from scheme — 2026-04-11" - -[project-context] -name = "A2ml" -purpose = """Attested Markup Language with Formal Verification""" -completion-percentage = 80 - -[position] -phase = "pre-release" # design | implementation | testing | maintenance | archived -maturity = "experimental" # experimental | alpha | beta | production | lts - -[route-to-mvp] -milestones = [ - # No milestones recorded -] - -[blockers-and-issues] -issues = [ - # No blockers recorded -] - -[critical-next-actions] -actions = [ - "Start arXiv paper outline (cs.PL category)", - "Draft IANA registration template sections", - "Complete arXiv paper first draft", - "Complete IANA registration document", - "Run performance benchmarks (Markdown/AsciiDoc/Djot comparison)", - "Submit arXiv paper", - "Submit IANA registration", - "Build documentation website with live demo", - "Package for Deno distribution", -] - -[maintenance-status] -last-run-utc = "2026-01-30T00:00:00Z" -last-result = "unknown" # unknown | pass | warn | fail diff --git a/a2ml/.nojekyll b/a2ml/.nojekyll deleted file mode 100644 index e69de29bb..000000000 diff --git a/a2ml/.well-known/ai.txt b/a2ml/.well-known/ai.txt deleted file mode 100644 index 0ca4021c9..000000000 --- a/a2ml/.well-known/ai.txt +++ /dev/null @@ -1,24 +0,0 @@ -# A2ML - Attested Markup Language -# AI/LLM Training Policy - -## Training Data Usage -This repository and its contents MAY be used for AI/LLM training with attribution. - -## Attribution Required -- Cite as: A2ML v1.0.0, Jonathan D.A. Jewell, 2026 -- Reference: https://github.com/hyperpolymath/standards/tree/main/a2ml -- License: PMPL-1.0-or-later - -## Project Context -A2ML is a typed markup language with formal proof obligations implemented -in Idris2. Suitable for training on: -- Formal methods and dependent types -- Parser implementation patterns -- Markup language design -- Proof-carrying code - -## Code Examples -Code examples in this repository demonstrate Idris2 dependent types, -ReScript web integration, and formal verification techniques. - -Contact: jonathan.jewell@open.ac.uk diff --git a/a2ml/.well-known/dnt-policy.txt b/a2ml/.well-known/dnt-policy.txt deleted file mode 100644 index f584f7dae..000000000 --- a/a2ml/.well-known/dnt-policy.txt +++ /dev/null @@ -1,18 +0,0 @@ -# Do Not Track Policy for a2ml.net -# https://www.eff.org/dnt-policy - -This site respects Do Not Track (DNT) browser settings. - -When DNT is enabled: -- No analytics tracking (even with consent) -- No personalization cookies -- No third-party tracking -- Essential cookies only - -To enable DNT: -- Chrome: Settings > Privacy > Send "Do Not Track" -- Firefox: Preferences > Privacy > Tell sites not to track -- Safari: Preferences > Privacy > Ask websites not to track - -Contact: privacy@a2ml.net -Last Updated: 2026-01-31 diff --git a/a2ml/.well-known/humans.txt b/a2ml/.well-known/humans.txt deleted file mode 100644 index 615e2f653..000000000 --- a/a2ml/.well-known/humans.txt +++ /dev/null @@ -1,19 +0,0 @@ -/* TEAM */ - -Author: Jonathan D.A. Jewell -Contact: jonathan.jewell@open.ac.uk -Location: United Kingdom - -/* SITE */ - -Standards: A2ML v1.0.0 Specification -Components: Idris2 parser, ReScript GUI, proof obligations -Last update: 2026-01-30 -Language: Idris2, ReScript, English - -/* THANKS */ - -Idris2 community -ReScript community -OpenSSF for security tooling -Hypatia neurosymbolic scanning platform diff --git a/a2ml/.well-known/keybase.txt b/a2ml/.well-known/keybase.txt deleted file mode 100644 index 1d23db847..000000000 --- a/a2ml/.well-known/keybase.txt +++ /dev/null @@ -1,12 +0,0 @@ -# Keybase verification for a2ml.net -# https://keybase.io/hyperpolymath - -# This file will contain the Keybase verification proof once configured. -# To verify this domain with Keybase: -# 1. Run: keybase prove dns a2ml.net -# 2. Replace this file with the generated proof - -# Contact: jonathan.jewell@open.ac.uk -# Keybase profile: https://keybase.io/hyperpolymath (coming soon) - -# Placeholder - awaiting Keybase setup diff --git a/a2ml/.well-known/security.txt b/a2ml/.well-known/security.txt deleted file mode 100644 index 2d3286e42..000000000 --- a/a2ml/.well-known/security.txt +++ /dev/null @@ -1,53 +0,0 @@ -# Security Contact Information for a2ml.net -# RFC 9116 Compliant: https://www.rfc-editor.org/rfc/rfc9116.html -# Consent-Aware HTTP Compatible - -# === Primary Contact === -Contact: mailto:security@a2ml.net -Contact: https://github.com/hyperpolymath/standards/tree/main/a2ml/security/advisories/new - -# === Security Policy === -Policy: https://github.com/hyperpolymath/standards/tree/main/a2ml/security/policy -Policy: https://a2ml.net/.well-known/security-policy.html - -# === Encryption (PGP) === -Encryption: https://keys.openpgp.org/search?q=jonathan.jewell@open.ac.uk -Encryption: https://github.com/hyperpolymath.gpg -Encryption: https://a2ml.net/.well-known/pgp-key.asc - -# === Acknowledgments === -Acknowledgments: https://github.com/hyperpolymath/standards/tree/main/a2ml#security-acknowledgments -Acknowledgments: https://a2ml.net/security/acknowledgments - -# === Hiring (Security Team) === -Hiring: https://github.com/hyperpolymath/standards/blob/main/a2ml/CONTRIBUTING.md - -# === Preferred Languages === -Preferred-Languages: en - -# === Consent-Aware HTTP Endpoints === -# User Consent Management (GDPR/Privacy Compliance) -# Consent-Endpoint: https://a2ml.net/api/consent -# Consent-Policy: https://a2ml.net/privacy#consent-management -# Consent-Categories: essential, functional, analytics, marketing, personalization - -# === Canonical URL === -Canonical: https://a2ml.net/.well-known/security.txt - -# === CSAF (Common Security Advisory Framework) === -# CSAF: https://a2ml.net/.well-known/csaf/provider-metadata.json - -# === Expiration (1 year from creation) === -Expires: 2027-01-31T16:43:18Z - -# === Additional Information === -# This site implements: -# - Consent-Aware HTTP (cookie-based consent verification) -# - HTTP Capability Gateway (fine-grained access control) -# - HSTS with preload (max-age=31536000) -# - TLS 1.3 minimum -# - CAA records (Let's Encrypt, DigiCert) -# - SPF, DMARC for email security -# -# Report security issues to: security@a2ml.net -# For privacy/consent issues: privacy@a2ml.net diff --git a/a2ml/.well-known/sellers.json b/a2ml/.well-known/sellers.json deleted file mode 100644 index b3c97ad6b..000000000 --- a/a2ml/.well-known/sellers.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "contact_email": "info@a2ml.net", - "contact_address": "United Kingdom", - "version": "1.0", - "identifiers": [], - "sellers": [] -} diff --git a/a2ml/.well-known/trust.txt b/a2ml/.well-known/trust.txt deleted file mode 100644 index c434e5e10..000000000 --- a/a2ml/.well-known/trust.txt +++ /dev/null @@ -1,57 +0,0 @@ -# Trust and Transparency Information for a2ml.net -# https://github.com/nightwatchcybersecurity/trustandtransparency.org - -# === Organization Information === -Organization: hyperpolymath -Legal Name: Jonathan D.A. Jewell -Country: United Kingdom -Contact: info@a2ml.net -Website: https://a2ml.net - -# === Responsible Disclosure === -Security Contact: security@a2ml.net -Security Policy: https://github.com/hyperpolymath/standards/tree/main/a2ml/security/policy -Bug Bounty: Not currently available -Encryption: https://keys.openpgp.org/search?q=jonathan.jewell@open.ac.uk - -# === Privacy === -Privacy Policy: https://a2ml.net/privacy -Data Controller: Jonathan D.A. Jewell -Data Protection Officer: privacy@a2ml.net -GDPR Compliance: Yes -Consent Management: Consent-Aware HTTP (cookie-based) - -# === Transparency === -Open Source: Yes -License: PMPL-1.0-or-later (https://palimpsest.spdx.dev) -Source Code: https://github.com/hyperpolymath/standards/tree/main/a2ml -Issue Tracker: https://github.com/hyperpolymath/standards/tree/main/a2ml/issues -Changelog: https://github.com/hyperpolymath/standards/tree/main/a2ml/releases - -# === Infrastructure === -Hosting: GitHub Pages -CDN: Cloudflare -TLS Provider: Let's Encrypt, DigiCert -DNS: Cloudflare -Analytics: Self-hosted (consent required) - -# === Third-Party Services === -# None currently (all self-hosted or GitHub-hosted) - -# === Compliance & Standards === -WCAG Level: AA (target) -RFC 9116: Compliant (security.txt) -HSTS Preload: Yes -CAA Records: Yes (flag 128) -SPF/DMARC: Yes - -# === Contact Methods === -Email: info@a2ml.net -GitHub: https://github.com/hyperpolymath/standards/tree/main/a2ml -Security Email: security@a2ml.net -PGP Key: https://keys.openpgp.org/search?q=jonathan.jewell@open.ac.uk - -# === Verification === -Last Updated: 2026-01-31 -Verified By: Jonathan D.A. Jewell -Canonical URL: https://a2ml.net/.well-known/trust.txt diff --git a/a2ml/ABI-FFI-README.adoc b/a2ml/ABI-FFI-README.adoc deleted file mode 100644 index f883150d8..000000000 --- a/a2ml/ABI-FFI-README.adoc +++ /dev/null @@ -1,409 +0,0 @@ -\{\{~ Aditionally delete this line and fill out the template below ~}} - -== \{\{PROJECT}} ABI/FFI Documentation - -=== Overview - -This library follows the *Hyperpolymath RSR Standard* for ABI and FFI -design: - -* *ABI (Application Binary Interface)* defined in *Idris2* with formal -proofs -* *FFI (Foreign Function Interface)* implemented in *Zig* for C -compatibility -* *Generated C headers* bridge Idris2 ABI to Zig FFI -* *Any language* can call through standard C ABI - -=== Architecture - -.... -┌─────────────────────────────────────────────┐ -│ ABI Definitions (Idris2) │ -│ src/abi/ │ -│ - Types.idr (Type definitions) │ -│ - Layout.idr (Memory layout proofs) │ -│ - Foreign.idr (FFI declarations) │ -└─────────────────┬───────────────────────────┘ - │ - │ generates (at compile time) - ▼ -┌─────────────────────────────────────────────┐ -│ C Headers (auto-generated) │ -│ generated/abi/{{project}}.h │ -└─────────────────┬───────────────────────────┘ - │ - │ imported by - ▼ -┌─────────────────────────────────────────────┐ -│ FFI Implementation (Zig) │ -│ ffi/zig/src/main.zig │ -│ - Implements C-compatible functions │ -│ - Zero-cost abstractions │ -│ - Memory-safe by default │ -└─────────────────┬───────────────────────────┘ - │ - │ compiled to lib{{project}}.so/.a - ▼ -┌─────────────────────────────────────────────┐ -│ Any Language via C ABI │ -│ - Rust, ReScript, Julia, Python, etc. │ -└─────────────────────────────────────────────┘ -.... - -=== Directory Structure - -.... -{{project}}/ -├── src/ -│ ├── abi/ # ABI definitions (Idris2) -│ │ ├── Types.idr # Core type definitions with proofs -│ │ ├── Layout.idr # Memory layout verification -│ │ └── Foreign.idr # FFI function declarations -│ └── lib/ # Core library (any language) -│ -├── ffi/ -│ └── zig/ # FFI implementation (Zig) -│ ├── build.zig # Build configuration -│ ├── build.zig.zon # Dependencies -│ ├── src/ -│ │ └── main.zig # C-compatible FFI implementation -│ ├── test/ -│ │ └── integration_test.zig -│ └── include/ -│ └── {{project}}.h # C header (optional, can be generated) -│ -├── generated/ # Auto-generated files -│ └── abi/ -│ └── {{project}}.h # Generated from Idris2 ABI -│ -└── bindings/ # Language-specific wrappers (optional) - ├── rust/ - ├── rescript/ - └── julia/ -.... - -=== Why Idris2 for ABI? - -==== 1. *Formal Verification* - -Idris2’s dependent types allow proving properties about the ABI at -compile-time: - -[source,idris] ----- --- Prove struct size is correct -public export -exampleStructSize : HasSize ExampleStruct 16 - --- Prove field alignment is correct -public export -fieldAligned : Divides 8 (offsetOf ExampleStruct.field) - --- Prove ABI is platform-compatible -public export -abiCompatible : Compatible (ABI 1) (ABI 2) ----- - -==== 2. *Type Safety* - -Encode invariants that C/Zig cannot express: - -[source,idris] ----- --- Non-null pointer guaranteed at type level -data Handle : Type where - MkHandle : (ptr : Bits64) -> {auto 0 nonNull : So (ptr /= 0)} -> Handle - --- Array with length proof -data Buffer : (n : Nat) -> Type where - MkBuffer : Vect n Byte -> Buffer n ----- - -==== 3. *Platform Abstraction* - -Platform-specific types with compile-time selection: - -[source,idris] ----- -CInt : Platform -> Type -CInt Linux = Bits32 -CInt Windows = Bits32 - -CSize : Platform -> Type -CSize Linux = Bits64 -CSize Windows = Bits64 ----- - -==== 4. *Safe Evolution* - -Prove that new ABI versions are backward-compatible: - -[source,idris] ----- --- Compiler enforces compatibility -abiUpgrade : ABI 1 -> ABI 2 -abiUpgrade old = MkABI2 { - -- Must preserve all v1 fields - v1_compat = old, - -- Can add new fields - new_features = defaults -} ----- - -=== Why Zig for FFI? - -==== 1. *C ABI Compatibility* - -Zig exports C-compatible functions naturally: - -[source,zig] ----- -export fn library_function(param: i32) i32 { - return param * 2; -} ----- - -==== 2. *Memory Safety* - -Compile-time safety without runtime overhead: - -[source,zig] ----- -// Null check enforced at compile time -const handle = init() orelse return error.InitFailed; -defer free(handle); ----- - -==== 3. *Cross-Compilation* - -Built-in cross-compilation to any platform: - -[source,bash] ----- -zig build -Dtarget=x86_64-linux -zig build -Dtarget=aarch64-macos -zig build -Dtarget=x86_64-windows ----- - -==== 4. *Zero Dependencies* - -No runtime, no libc required (unless explicitly needed): - -[source,zig] ----- -// Minimal binary size -pub const lib = @import("std"); -// Only includes what you use ----- - -=== Building - -==== Build FFI Library - -[source,bash] ----- -cd ffi/zig -zig build # Build debug -zig build -Doptimize=ReleaseFast # Build optimized -zig build test # Run tests ----- - -==== Generate C Header from Idris2 ABI - -[source,bash] ----- -cd src/abi -idris2 --cg c-header Types.idr -o ../../generated/abi/{{project}}.h ----- - -==== Cross-Compile - -[source,bash] ----- -cd ffi/zig - -# Linux x86_64 -zig build -Dtarget=x86_64-linux - -# macOS ARM64 -zig build -Dtarget=aarch64-macos - -# Windows x86_64 -zig build -Dtarget=x86_64-windows ----- - -=== Usage - -==== From C - -[source,c] ----- -#include "{{project}}.h" - -int main() { - void* handle = {{project}}_init(); - if (!handle) return 1; - - int result = {{project}}_process(handle, 42); - if (result != 0) { - const char* err = {{project}}_last_error(); - fprintf(stderr, "Error: %s\n", err); - } - - {{project}}_free(handle); - return 0; -} ----- - -Compile with: - -[source,bash] ----- -gcc -o example example.c -l{{project}} -L./zig-out/lib ----- - -==== From Idris2 - -[source,idris] ----- -import {{PROJECT}}.ABI.Foreign - -main : IO () -main = do - Just handle <- init - | Nothing => putStrLn "Failed to initialize" - - Right result <- process handle 42 - | Left err => putStrLn $ "Error: " ++ errorDescription err - - free handle - putStrLn "Success" ----- - -==== From Rust - -[source,rust] ----- -#[link(name = "{{project}}")] -extern "C" { - fn {{project}}_init() -> *mut std::ffi::c_void; - fn {{project}}_free(handle: *mut std::ffi::c_void); - fn {{project}}_process(handle: *mut std::ffi::c_void, input: u32) -> i32; -} - -fn main() { - unsafe { - let handle = {{project}}_init(); - assert!(!handle.is_null()); - - let result = {{project}}_process(handle, 42); - assert_eq!(result, 0); - - {{project}}_free(handle); - } -} ----- - -==== From Julia - -[source,julia] ----- -const lib{{project}} = "lib{{project}}" - -function init() - handle = ccall((:{{project}}_init, lib{{project}}), Ptr{Cvoid}, ()) - handle == C_NULL && error("Failed to initialize") - handle -end - -function process(handle, input) - result = ccall((:{{project}}_process, lib{{project}}), Cint, (Ptr{Cvoid}, UInt32), handle, input) - result -end - -function cleanup(handle) - ccall((:{{project}}_free, lib{{project}}), Cvoid, (Ptr{Cvoid},), handle) -end - -# Usage -handle = init() -try - result = process(handle, 42) - println("Result: $result") -finally - cleanup(handle) -end ----- - -=== Testing - -==== Unit Tests (Zig) - -[source,bash] ----- -cd ffi/zig -zig build test ----- - -==== Integration Tests - -[source,bash] ----- -cd ffi/zig -zig build test-integration ----- - -==== ABI Verification (Idris2) - -[source,idris] ----- --- Compile-time verification -%runElab verifyABI - --- Runtime checks -main : IO () -main = do - verifyLayoutsCorrect - verifyAlignmentsCorrect - putStrLn "ABI verification passed" ----- - -=== Contributing - -When modifying the ABI/FFI: - -[arabic] -. *Update ABI first* (`+src/abi/*.idr+`) -* Modify type definitions -* Update proofs -* Ensure backward compatibility -. *Generate C header* -+ -[source,bash] ----- -idris2 --cg c-header src/abi/Types.idr -o generated/abi/{{project}}.h ----- -. *Update FFI implementation* (`+ffi/zig/src/main.zig+`) -* Implement new functions -* Match ABI types exactly -. *Add tests* -* Unit tests in Zig -* Integration tests -* ABI verification tests -. *Update documentation* -* Function signatures -* Usage examples -* Migration guide (if breaking changes) - -=== License - -PMPL-1.0-or-later - -=== See Also - -* https://idris2.readthedocs.io[Idris2 Documentation] -* https://ziglang.org/documentation/master/[Zig Documentation] -* https://github.com/hyperpolymath/rhodium-standard-repositories[Rhodium -Standard Repositories] -* link:../ffi-migration-guide.md[FFI Migration Guide] -* link:../abi-migration-guide.md[ABI Migration Guide] diff --git a/a2ml/CNAME b/a2ml/CNAME deleted file mode 100644 index 5dca20ca0..000000000 --- a/a2ml/CNAME +++ /dev/null @@ -1 +0,0 @@ -a2ml.net diff --git a/a2ml/CODE_OF_CONDUCT.adoc b/a2ml/CODE_OF_CONDUCT.adoc deleted file mode 100644 index 5961e2191..000000000 --- a/a2ml/CODE_OF_CONDUCT.adoc +++ /dev/null @@ -1,339 +0,0 @@ -== Code of Conduct - -=== Our Pledge - -We as members, contributors, and leaders pledge to make participation in -Standards a harassment-free experience for everyone, regardless of age, -body size, visible or invisible disability, ethnicity, sex -characteristics, gender identity and expression, level of experience, -education, socio-economic status, nationality, personal appearance, -race, caste, colour, religion, or sexual identity and orientation. - -We pledge to act and interact in ways that contribute to an open, -welcoming, diverse, inclusive, and healthy community. - -We recognise that a thriving open source community requires -*psychological safety* — an environment where people can contribute, ask -questions, make mistakes, and learn without fear of ridicule or -retaliation. - -''''' - -=== Our Standards - -==== Expected Behaviour - -The following behaviours contribute to a positive environment: - -*Communication* - Using welcoming and inclusive language - Being -respectful of differing viewpoints and experiences - Giving and -gracefully accepting constructive feedback - Assuming good intent while -addressing impact - Communicating clearly and patiently, especially with -newcomers - -*Collaboration* - Focusing on what is best for the community - Showing -empathy and kindness toward other community members - Being -collaborative rather than competitive - Mentoring and supporting less -experienced contributors - Celebrating others’ contributions and -successes - -*Professionalism* - Accepting responsibility and apologising to those -affected by our mistakes - Learning from the experience and avoiding -repetition - Respecting others’ time and attention - Staying on topic in -project spaces - Following project guidelines and conventions - -*Accessibility* - Using plain language and avoiding unnecessary jargon - -Providing alt text for images and transcripts for audio/video - Being -patient with those using assistive technologies - Accommodating -different communication styles and needs - Recognising that not everyone -communicates the same way - -==== Unacceptable Behaviour - -The following behaviours are considered harassment and are unacceptable: - -*Harassment* - The use of sexualised language or imagery, and sexual -attention or advances of any kind - Trolling, insulting or derogatory -comments, and personal or political attacks - Public or private -harassment - Deliberate intimidation, stalking, or following (online or -in-person) - Unwelcome physical contact or simulated physical contact -(e.g., emoji) - Sustained disruption of talks, events, or online -discussions - -*Discrimination* - Discriminatory jokes and language - Posting or -threatening to post others’ personally identifying information -("`doxing`") - Advocating for, or encouraging, any of the above -behaviour - Microaggressions — subtle, often unintentional, -discriminatory comments or actions - -*Professional Misconduct* - Publishing others’ private information -without explicit permission - Misrepresenting affiliation or -contributions - Plagiarism or claiming credit for others’ work - -Retaliating against anyone who reports a Code of Conduct violation - -Other conduct which could reasonably be considered inappropriate in a -professional setting - -==== Grey Areas - -Some situations require judgement. When uncertain: - -* *Intent vs Impact*: Good intentions do not excuse harmful impact. -Focus on making things right. -* *Power Dynamics*: Those with more power (maintainers, employers, -experienced contributors) must be especially mindful of their impact. -* *Cultural Differences*: What’s acceptable varies by culture. When in -doubt, err on the side of caution and ask. -* *Humour*: Jokes at others’ expense are rarely funny to everyone. Punch -up, not down. - -''''' - -=== Scope - -This Code of Conduct applies within all community spaces, including: - -*Online Spaces* - Repository discussions, issues, and pull/merge -requests - Project chat channels (Matrix, Discord, Slack, IRC) - Mailing -lists and forums - Social media when representing the project - Video -calls and virtual meetings - -*In-Person Spaces* - Conferences, meetups, and events - Workshops and -training sessions - Any gathering where you represent the project - -*Representation* This Code of Conduct also applies when an individual is -officially representing the community in public spaces. Examples -include: - -* Using an official project email address -* Posting via an official social media account -* Acting as an appointed representative at an event -* Speaking on behalf of the project - -''''' - -=== Enforcement - -==== Reporting - -If you experience or witness unacceptable behaviour, or have any other -concerns, please report it as soon as possible. - -*How to Report* - -[width="99%",cols="30%,33%,37%",options="header",] -|=== -|Method |Details |Best For -|*Email* |\{\{CONDUCT_EMAIL}} |Detailed reports, sensitive matters - -|*Private Message* |Contact any maintainer directly |Quick questions, -minor issues - -|*Anonymous Form* |[Link to form if available] |When you need anonymity -|=== - -*What to Include* - -* Your contact information (unless anonymous) -* Names/usernames of those involved -* Description of what happened -* When and where it occurred -* Any witnesses -* Any supporting evidence (screenshots, links) -* How you would like us to respond (if you have a preference) - -*What Happens Next* - -[arabic] -. You will receive acknowledgment within *\{\{RESPONSE_TIME}}* -. The \{\{CONDUCT_TEAM}} will review the report -. We may ask for additional information -. We will determine appropriate action -. We will inform you of the outcome (respecting others’ privacy) - -==== Confidentiality - -All reports will be handled with discretion: - -* Reporter identity is protected by default -* Details are shared only with those who need to know -* We will ask before naming you in any communication -* Anonymous reports are accepted and investigated - -==== Conflicts of Interest - -If a \{\{CONDUCT_TEAM}} member is involved in an incident: - -* They will recuse themselves from the process -* Another maintainer or external party will handle the report -* We will disclose any potential conflicts - -''''' - -=== Enforcement Guidelines - -The \{\{CONDUCT_TEAM}} will follow these guidelines in determining -consequences: - -==== 1. Correction - -*Community Impact*: Use of inappropriate language or other behaviour -deemed unprofessional or unwelcome. - -*Consequence*: A private, written warning providing clarity around the -nature of the violation and an explanation of why the behaviour was -inappropriate. A public apology may be requested. - -*Duration*: Immediate - -==== 2. Warning - -*Community Impact*: A violation through a single incident or series of -actions. - -*Consequence*: A warning with consequences for continued behaviour. No -interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, for a specified period. This -includes avoiding interactions in community spaces as well as external -channels like social media. Violating these terms may lead to a -temporary or permanent ban. - -*Duration*: 1-4 weeks - -==== 3. Temporary Ban - -*Community Impact*: A serious violation of community standards, -including sustained inappropriate behaviour. - -*Consequence*: A temporary ban from any sort of interaction or public -communication with the community for a specified period. No public or -private interaction with the people involved, including unsolicited -interaction with those enforcing the Code of Conduct, is allowed during -this period. Violating these terms may lead to a permanent ban. - -*Duration*: 1-6 months - -==== 4. Permanent Ban - -*Community Impact*: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behaviour, harassment of an -individual, or aggression toward or disparagement of classes of -individuals. - -*Consequence*: A permanent ban from any sort of public interaction -within the community. - -*Duration*: Permanent (with appeal rights after 12 months) - -==== Enforcement Across Perimeters - -For contributors with elevated access (Perimeter 2 or 1): - -[cols=",",options="header",] -|=== -|Level |Additional Consequence -|Correction |Noted in contributor record -|Warning |Access privileges may be temporarily reduced -|Temporary Ban |Access reduced to Perimeter 3 for ban duration -|Permanent Ban |All access revoked -|=== - -''''' - -=== Appeals - -If you believe an enforcement decision was made in error: - -[arabic] -. *Wait 7 days* after the decision (cooling-off period) -. *Email* \{\{CONDUCT_EMAIL}} with subject line "`Appeal: [Original -Report ID]`" -. *Explain* why you believe the decision should be reconsidered -. *Provide* any new information not previously available - -*Appeals Process* - -* Appeals are reviewed by a different \{\{CONDUCT_TEAM}} member than the -original -* You will receive a response within 14 days -* The appeals decision is final -* You may only appeal once per incident - -*Grounds for Appeal* - -* Procedural errors in the original investigation -* New evidence not previously available -* Disproportionate response to the violation -* Misunderstanding of facts - -''''' - -=== Supporting Those Who Report - -We are committed to supporting those who report violations: - -*We Will* - Believe and take all reports seriously - Respect your -privacy and confidentiality preferences - Keep you informed of progress -(if you wish) - Take steps to protect you from retaliation - Provide -resources if you need support - -*We Will Not* - Require you to confront the person directly - Dismiss -reports without investigation - Reveal your identity without consent - -Tolerate retaliation against reporters - Rush you to make decisions - -''''' - -=== Prevention - -Beyond enforcement, we actively work to prevent issues: - -*Onboarding* - All contributors are expected to read this Code of -Conduct - Perimeter 2 applicants must confirm they’ve read and -understood it - Maintainers receive additional training on enforcement - -*Culture* - We model the behaviour we expect - We intervene early when -we see potential issues - We thank people for positive contributions - -We create opportunities for diverse voices - -*Review* - This Code of Conduct is reviewed annually - Community -feedback is welcomed - Changes are communicated clearly - -''''' - -=== Acknowledgments - -This Code of Conduct is adapted from: - -* https://www.contributor-covenant.org/[Contributor Covenant], version -2.1 -* https://www.djangoproject.com/conduct/[Django Code of Conduct] -* https://www.rust-lang.org/policies/code-of-conduct[Rust Code of -Conduct] -* https://www.python.org/psf/conduct/[Python Community Code of Conduct] - -We thank these communities for their leadership in creating welcoming -spaces. - -''''' - -=== Questions? - -If you have questions about this Code of Conduct: - -* Open a -https://github.com/hyperpolymath/standards/discussions[Discussion] (for -general questions) -* Email \{\{CONDUCT_EMAIL}} (for private questions) -* Contact any maintainer directly - -''''' - -=== Summary - -*Be kind. Be respectful. Be collaborative.* - -We’re all here because we care about this project. Let’s make it a place -where everyone can do their best work. - -''''' - -Last updated: 2026 · Based on Contributor Covenant 2.1 diff --git a/a2ml/CONTRIBUTING.adoc b/a2ml/CONTRIBUTING.adoc deleted file mode 100644 index d16ec0c1e..000000000 --- a/a2ml/CONTRIBUTING.adoc +++ /dev/null @@ -1,108 +0,0 @@ -== Clone the repository - -git clone https://github.com/hyperpolymath/standards.git cd standards - -== Using Nix (recommended for reproducibility) - -nix develop - -== Or using toolbox/distrobox - -toolbox create standards-dev toolbox enter standards-dev # Install -dependencies manually - -== Verify setup - -just check # or: cargo check / mix compile / etc. just test # Run test -suite - -.... - -### Repository Structure -.... - -standards/ ├── src/ # Source code (Perimeter 1-2) ├── lib/ # Library -code (Perimeter 1-2) ├── extensions/ # Extensions (Perimeter 2) ├── -plugins/ # Plugins (Perimeter 2) ├── tools/ # Tooling (Perimeter 2) ├── -docs/ # Documentation (Perimeter 3) │ ├── architecture/ # ADRs, specs -(Perimeter 2) │ └── proposals/ # RFCs (Perimeter 3) ├── examples/ # -Examples (Perimeter 3) ├── spec/ # Spec tests (Perimeter 3) ├── tests/ # -Test suite (Perimeter 2-3) ├── .well-known/ # Protocol files (Perimeter -1-3) ├── .github/ # GitHub config (Perimeter 1) │ ├── ISSUE_TEMPLATE/ │ -└── workflows/ ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── -CONTRIBUTING.md # This file ├── GOVERNANCE.md ├── LICENSE ├── -MAINTAINERS.md ├── README.adoc ├── SECURITY.md ├── flake.nix # Nix flake -(Perimeter 1) └── Justfile # Task runner (Perimeter 1) - -.... - ---- - -## How to Contribute - -### Reporting Bugs - -**Before reporting**: -1. Search existing issues -2. Check if it's already fixed in `main` -3. Determine which perimeter the bug affects - -**When reporting**: - -Use the [bug report template](.github/ISSUE_TEMPLATE/bug_report.md) and include: - -- Clear, descriptive title -- Environment details (OS, versions, toolchain) -- Steps to reproduce -- Expected vs actual behaviour -- Logs, screenshots, or minimal reproduction - -### Suggesting Features - -**Before suggesting**: -1. Check the [roadmap](ROADMAP.md) if available -2. Search existing issues and discussions -3. Consider which perimeter the feature belongs to - -**When suggesting**: - -Use the [feature request template](.github/ISSUE_TEMPLATE/feature_request.md) and include: - -- Problem statement (what pain point does this solve?) -- Proposed solution -- Alternatives considered -- Which perimeter this affects - -### Your First Contribution - -Look for issues labelled: - -- [`good first issue`](https://github.com/hyperpolymath/standards/labels/good%20first%20issue) — Simple Perimeter 3 tasks -- [`help wanted`](https://github.com/hyperpolymath/standards/labels/help%20wanted) — Community help needed -- [`documentation`](https://github.com/hyperpolymath/standards/labels/documentation) — Docs improvements -- [`perimeter-3`](https://github.com/hyperpolymath/standards/labels/perimeter-3) — Community sandbox scope - ---- - -## Development Workflow - -### Branch Naming -.... - -docs/short-description # Documentation (P3) test/what-added # Test -additions (P3) feat/short-description # New features (P2) -fix/issue-number-description # Bug fixes (P2) refactor/what-changed # -Code improvements (P2) security/what-fixed # Security fixes (P1-2) - -.... - -### Commit Messages - -We follow [Conventional Commits](https://www.conventionalcommits.org/): -.... - -(): - -{empty}[optional body] - -{empty}[optional footer] diff --git a/a2ml/DOGFOODING-OPPORTUNITIES.adoc b/a2ml/DOGFOODING-OPPORTUNITIES.adoc deleted file mode 100644 index f0978cf19..000000000 --- a/a2ml/DOGFOODING-OPPORTUNITIES.adoc +++ /dev/null @@ -1,653 +0,0 @@ -== A2ML Dogfooding Opportunities - -*Date:* 2026-01-30 *Status:* Strategy Document *A2ML Version:* 0.6.0 -(Prototype) - -''''' - -=== Philosophy - -A2ML is designed to provide *attested markup with formal structural -guarantees*. The best way to prove its value is to use it extensively -within the Hyperpolymath ecosystem that created it. - -*Core Principle:* If A2ML can’t document itself and the ecosystem it was -built for, it’s not ready for general use. - -''''' - -=== Current Status - -* *Version:* 0.6.0 -* *Phase:* Prototype (60% complete) -* *Tech Stack:* Idris2 (typed core), ReScript (web prototype + WASM) -* *What Works:* Surface grammar, parser, validator, vector tests, -ddraig-ssg integration - -''''' - -=== Strategic Dogfooding Targets - -==== 1. *A2ML Self-Documentation* (Meta-Dogfooding) - -*Priority:* CRITICAL *Files to Convert:* - `+README.adoc+` → -`+README.a2ml+` - `+SPEC.adoc+` → `+SPEC.a2ml+` - `+docs/*.adoc+` → -`+docs/*.a2ml+` - -*Why This Matters:* - If A2ML can’t formally verify its own -documentation structure, how can it verify others? - Demonstrates -progressive strictness (start lax, add attestation) - Proves the format -works for complex technical documentation - -*Benefits:* - Abstract sections required (can’t skip overview) - -References automatically validated (no broken links to spec sections) - -Section structure enforced (grammar, conformance, examples) - Version -attestation (docs match implementation version) - -*Example:* - -[source,a2ml] ----- -# A2ML Specification v0.6.0 - -@abstract: -A2ML is a lightweight, Djot-like markup that compiles into a typed, attested core. -It provides formal structural guarantees while keeping authoring simple. -@end - -@version-attestation: -spec-version = "0.6.0" -implementation-version = "0.6.0" -status = "draft" -@end - -## Core Concepts - -### Progressive Strictness - -@definition: -A2ML supports three strictness levels: -1. **Lax**: Minimal validation, maximum flexibility -2. **Checked**: Structure validated, references resolved -3. **Attested**: Cryptographically signed with formal proofs -@end - -@refs: -[1] docs/MODULES.adoc (Syntax Modules) -[2] docs/CONFORMANCE.adoc (Conformance Testing) -@end ----- - -*Action Items:* - [ ] Convert README.adoc to README.a2ml (use lax mode -initially) - [ ] Convert SPEC.adoc to SPEC.a2ml (use checked mode) - [ ] -Add attestation proofs for release versions - [ ] Ensure all internal -references validate - -''''' - -==== 2. *Hyperpolymath RSR Documentation Standard* - -*Priority:* HIGH *Target:* All 500+ Hyperpolymath repositories - -*What to Convert:* - `+README.adoc+` → `+README.a2ml+` (all repos) - -`+STATE.scm+` → `+STATE.a2ml+` (checkpoint files) - `+ECOSYSTEM.scm+` → -`+ECOSYSTEM.a2ml+` (relationships) - `+META.scm+` → `+META.a2ml+` (ADRs -and decisions) - -*Why This Matters:* - RSR requires specific documentation structure - -A2ML can *enforce* this structure formally - Prevents incomplete or -malformed documentation - Automatic validation in CI/CD - -*Benefits:* - Required sections enforced (project-context, -current-position, route-to-mvp) - Metadata validated (version, dates, -repo name) - Cross-references between STATE/ECOSYSTEM/META validated - -Breaking changes to checkpoint format caught at parse time - -*Example STATE.a2ml:* - -[source,a2ml] ----- -# Project State - A2ML - -@metadata: -version = "0.6.0" -schema-version = "1.0" -created = "2026-01-26" -updated = "2026-01-30" -project = "a2ml" -repo = "hyperpolymath/a2ml" -@end - -@project-context: -name = "A2ML" -tagline = "Attested Markup Language" -tech-stack = ["spec", "idris2", "rescript"] -@end - -@current-position: -phase = "prototype" -overall-completion = 60 -working-features = [ - "Surface grammar (draft)", - "Typed core outline", - "ReScript web prototype", - "Vector suite passing" -] -@end - -@route-to-mvp: -## Milestone: Core Implementation -- [ ] Complete Idris2 typed core -- [ ] Full reference resolver -- [ ] Attestation signing system - -## Milestone: Production Ready -- [ ] 1.0.0 release -- [ ] Full test coverage -- [ ] Documentation complete -@end ----- - -*Challenge:* - STATE/ECOSYSTEM/META are currently Scheme (executable) - -A2ML is markup (data) - *Solution:* Hybrid approach or A2ML with -embedded Scheme blocks - -*Action Items:* - [ ] Design STATE.a2ml schema with required sections - -[ ] Prototype STATE.a2ml in a2ml repo first - [ ] Create validation -rules for checkpoint files - [ ] Add A2ML validation to RSR CI workflows - -''''' - -==== 3. *ABI/FFI Documentation* - -*Priority:* HIGH *Target:* All ABI/FFI repos with Idris2 ABIs - -*What to Document:* - Type definitions with formal proofs - Memory -layout verification - Platform-specific ABIs - FFI interface contracts - -*Why This Matters:* - ABI documentation must match ABI implementation - -A2ML can enforce documentation structure - Formal proofs in docs mirror -formal proofs in code - Documentation becomes part of the verification -chain - -*Benefits:* - Required sections: Types, Layout, Foreign, Proofs - -References between docs and code validated - Proof blocks structured and -checked - Breaking ABI changes require doc updates (enforced) - -*Example ABI Documentation:* - -[source,a2ml] ----- -# Container ABI Documentation - -@abstract: -This ABI defines the interface for container runtime operations with formal -correctness proofs. All types are verified at compile-time. -@end - -@abi-version: -version = "1.0.0" -idris-version = "0.7.0" -platform = "linux-x86_64" -@end - -## Types - -### Handle - -Non-null pointer guaranteed at type level. - -@proof: -type = "Handle" -invariant = "ptr /= 0" -proof-term = "nonNull : So (ptr /= 0)" -source = "src/abi/Types.idr:15-20" -@end - -@code: -```idris -data Handle : Type where - MkHandle : (ptr : Bits64) -> {auto 0 nonNull : So (ptr /= 0)} -> Handle ----- - -@end - -==== Platform-Specific CInt - -@proof: type = "`CInt`" platforms = \{ "`linux`" = "`Bits32`", -"`windows`" = "`Bits32`", "`macos`" = "`Bits32`" } verified = true -source = "`src/abi/Types.idr:45-48`" @end - -=== Memory Layout - -@verification: struct = "`ContainerState`" total-size = 64 alignment = 8 -fields = [ \{ name = "`pid`", offset = 0, size = 4 }, \{ name = -"`status`", offset = 4, size = 4 }, \{ name = "`timestamp`", offset = 8, -size = 8 }] proof = "`layoutCorrect : HasSize ContainerState 64`" source -= "`src/abi/Layout.idr:30-42`" @end - -@refs: [1] src/abi/Types.idr - Type definitions [2] src/abi/Layout.idr - -Memory layout proofs [3] src/abi/Foreign.idr - FFI declarations [4] -Idris2 Dependent Types Manual @end - -.... - -**Action Items:** -- [ ] Create ABI-FFI-README.a2ml template -- [ ] Convert zig-*-ffi repo docs to A2ML -- [ ] Add A2ML validation to ABI CI -- [ ] Ensure doc updates when ABI changes - ---- - -### 4. **Migration Guides and Technical Documentation** - -**Priority:** MEDIUM -**Target:** Technical guides, tutorials, RFCs - -**What to Convert:** -- `ffi-migration-guide.md` → `.a2ml` -- `abi-migration-guide.md` → `.a2ml` -- All tutorial and guide documents -- RFC and specification documents - -**Why This Matters:** -- Migration guides must be complete (can't skip critical steps) -- Tutorial structure enforced (prerequisites, steps, verification) -- RFCs require specific sections (abstract, motivation, specification) - -**Benefits:** -- Required sections enforced (overview, prerequisites, steps, troubleshooting) -- Checklists validated (all items present) -- Code examples required and structured -- Version-specific content clearly marked - -**Example Migration Guide:** -```a2ml -# FFI Migration Guide: Rust to Zig - -@abstract: -This guide covers migrating Foreign Function Interface implementations from -Rust to Zig across 5 Hyperpolymath repositories. It includes patterns, -gotchas, and a complete checklist. -@end - -@metadata: -version = "1.0.0" -applies-to = ["wokelang", "valence-shell", "volumod", "vordr", "echidna"] -created = "2026-01-30" -@end - -## Prerequisites - -@checklist: -- [ ] Zig 0.11.0+ installed -- [ ] Idris2 0.7.0+ installed -- [ ] Existing Rust FFI understood -- [ ] ABI documentation available -@end - -## Migration Steps - -### Step 1: Analyze Existing FFI - -@required-actions: -1. Read current Rust implementation -2. Document all exported functions -3. Identify unsafe blocks -4. List dependencies -@end - -@code-example: -```rust -// Before: Rust FFI -#[no_mangle] -pub extern "C" fn init() -> *mut Handle { - Box::into_raw(Box::new(Handle::new())) -} -.... - -@end - -==== Step 2: Port to Zig - -@code-example: - -[source,zig] ----- -// After: Zig FFI -export fn init() ?*Handle { - const allocator = std.heap.c_allocator; - const handle = allocator.create(Handle) catch return null; - handle.* = Handle.init(); - return handle; -} ----- - -@end - -@gotchas: - Zig uses `+?T+` for nullable pointers (Rust uses `+*mut T+`) -- Zig allocators explicit (Rust uses global allocator) - Zig error -unions different from Rust Result @end - -=== Verification - -@verification-checklist: - [ ] All functions exported - [ ] Types match -ABI - [ ] Tests pass - [ ] Memory leaks checked - [ ] Cross-platform -build tested @end - -@refs: [1] Zig Language Reference - -https://ziglang.org/documentation/master/ [2] src/abi/*.idr - ABI -definitions [3] Original Rust FFI implementation @end - -.... - -**Action Items:** -- [ ] Convert ffi-migration-guide.md to A2ML -- [ ] Convert abi-migration-guide.md to A2ML -- [ ] Create tutorial template in A2ML -- [ ] Add A2ML validation for all guides - ---- - -### 5. **ddraig-ssg Integration** - -**Priority:** HIGH -**Target:** ddraig-ssg static site generator - -**What to Build:** -- Native A2ML input support (already has prototype!) -- A2ML → HTML/PDF rendering -- A2ML → academic paper format -- Structured blog posts - -**Why This Matters:** -- ddraig-ssg is written in Idris2 (same as A2ML core) -- Static sites with formally verified structure -- Academic papers with guaranteed format -- Blog posts that enforce content structure - -**Benefits:** -- Blog posts require abstract/content/conclusion -- Academic papers follow required format -- References automatically validated -- Navigation generated from structure - -**Example Blog Post:** -```a2ml -# Universal Idris2 ABI + Zig FFI Standard - -@metadata: -date = "2026-01-30" -author = "Jonathan D.A. Jewell" -tags = ["idris2", "zig", "ffi", "formal-verification"] -category = "technical" -@end - -@abstract: -We've established a universal standard for ABIs and FFIs across the Hyperpolymath -ecosystem. Idris2 provides proven-correct ABIs, Zig provides memory-safe FFI, -and generated C headers bridge them. -@end - -## Introduction - -[Content...] - -## Architecture - -@diagram: -type = "ascii-art" -shows = "ABI → Headers → FFI flow" -@end - -## Benefits - -@list: -- Mathematically proven ABIs -- Memory-safe FFI implementation -- Cross-platform support -- Universal C compatibility -@end - -## Conclusion - -[Content...] - -@refs: -[1] rsr-template-repo/ABI-FFI-README.md -[2] Idris2 Documentation -[3] Zig Documentation -@end -.... - -*Action Items:* - [ ] Expand ddraig-ssg A2ML support beyond prototype - -[ ] Create A2ML blog post template - [ ] Create A2ML academic paper -template - [ ] Generate this repo’s documentation site with ddraig-ssg - -''''' - -==== 6. *Architecture Decision Records (ADRs)* - -*Priority:* MEDIUM *Target:* META.scm files in all repos - -*What to Structure:* - ADR format (context, decision, consequences, -status) - Status values (proposed/accepted/deprecated/superseded) - -Cross-references between related ADRs - -*Why This Matters:* - ADRs require specific structure - Status -transitions must be valid - Superseded ADRs must reference replacements -- Date ordering enforced - -*Benefits:* - ADR format enforced automatically - Status validation -(can’t use invalid status) - Required fields present (date, context, -decision) - Cross-references validated - -*Example ADR in A2ML:* - -[source,a2ml] ----- -# ADR-001: Universal Idris2 ABI Standard - -@metadata: -adr-number = 1 -status = "accepted" -date = "2026-01-30" -supersedes = [] -superseded-by = [] -@end - -@context: -We have 22 ABI/FFI repositories with inconsistent interface definitions. -Some use Zig ABI, some use Idris2, some use C headers directly. This -creates maintenance burden and prevents formal verification. -@end - -@decision: -Establish Idris2 as the universal ABI definition language for all -Hyperpolymath projects. Key points: - -1. All ABIs written in Idris2 with dependent types -2. Formal proofs of correctness required -3. C headers auto-generated from Idris2 -4. FFI implementations in Zig consume generated headers -@end - -@consequences: - -## Positive -- Mathematically proven interface correctness -- Memory layout verification at compile-time -- Platform compatibility proven, not tested -- Single source of truth for ABIs - -## Negative -- Learning curve for Idris2 -- Build process more complex (generate headers) -- Idris2 compiler required in toolchain - -## Neutral -- Migration required for 6 repos -- Templates needed for new repos -@end - -@refs: -[1] abi-migration-guide.md -[2] rsr-template-repo/src/abi/ -[3] Discussion: https://github.com/hyperpolymath/standards/issues/42 -@end ----- - -*Action Items:* - [ ] Create ADR.a2ml template - [ ] Convert existing -META.scm ADRs to A2ML - [ ] Add ADR validation to CI - [ ] Document ADR -process with A2ML - -''''' - -=== Progressive Adoption Strategy - -==== Phase 1: Self-Dogfooding (A2ML v0.6.0 - v1.0.0) - -*Focus:* Use A2ML to document itself - -[arabic] -. Convert A2ML’s own documentation to A2ML -. Use lax mode initially (minimal validation) -. Progressively add strictness as format stabilizes -. Prove the format works for complex technical docs - -*Success Metrics:* - A2ML README, SPEC, and guides in A2ML format - All -internal references validate - Documentation CI passes - Contributors -find it easier than AsciiDoc - -==== Phase 2: Ecosystem Standards (A2ML v1.0.0+) - -*Focus:* Standardize Hyperpolymath documentation - -[arabic] -. Create templates for STATE/ECOSYSTEM/META -. Convert rsr-template-repo docs -. Pilot in 5-10 repos -. Gather feedback and iterate - -*Success Metrics:* - RSR documentation CI validates A2ML - Incomplete -docs caught automatically - 50+ repos using A2ML - Reduced documentation -errors - -==== Phase 3: ABI/FFI Documentation (A2ML v1.1.0+) - -*Focus:* Formal verification chain - -[arabic] -. A2ML ABI documentation templates -. Convert all zig-*-ffi docs -. Link docs to code with proofs -. Validate docs in ABI CI - -*Success Metrics:* - ABI changes require doc updates (enforced) - Proof -blocks validated - 100% ABI documentation coverage - Docs match code -(verified) - -==== Phase 4: Full Adoption (A2ML v2.0.0+) - -*Focus:* A2ML as default format - -[arabic] -. All new repos start with A2ML -. Gradual migration of existing repos -. ddraig-ssg native A2ML support -. External adoption begins - -*Success Metrics:* - 500+ repos using A2ML - A2ML in rsr-template-repo -as default - Blog/paper templates widely used - External projects adopt -A2ML - -''''' - -=== Technical Requirements - -==== For A2ML to Be Dogfoodable - -*Must Have:* - [ ] Stable surface syntax (no breaking changes) - [ ] -Reference resolution working - [ ] Validation errors clear and -actionable - [ ] Tooling: a2ml validate, a2ml convert - [ ] CI -integration (GitHub Actions) - -*Should Have:* - [ ] IDE support (VS Code extension) - [ ] Syntax -highlighting - [ ] Auto-completion - [ ] Convert from AsciiDoc/Markdown - -*Nice to Have:* - [ ] Live preview in browser - [ ] Documentation -generator - [ ] Attestation signing built-in - -==== Tooling Gaps to Fill - -[arabic] -. *Converter:* `+a2ml convert README.adoc README.a2ml+` -. *Validator:* `+a2ml validate --strict README.a2ml+` -. *CI Action:* `+actions/a2ml-validate@v1+` -. *Preview:* `+a2ml preview README.a2ml+` (local server) -. *Generator:* `+a2ml generate --template=STATE.a2ml+` - -''''' - -=== Success Criteria - -A2ML dogfooding is successful when: - -[arabic] -. *Self-Documentation:* A2ML’s own docs are in A2ML format -. *RSR Standard:* A2ML is the default documentation format in -rsr-template-repo -. *ABI Coverage:* All ABI/FFI repos document interfaces in A2ML -. *Reduced Errors:* Incomplete/malformed docs caught automatically -. *External Interest:* Other projects ask to adopt A2ML - -''''' - -=== Risks and Mitigations - -==== Risk: Format Not Yet Stable - -*Impact:* Breaking changes require re-writing docs *Mitigation:* Use lax -mode, version documents clearly, automated migration tools - -==== Risk: Tooling Gaps - -*Impact:* Hard to use without good tools *Mitigation:* Build essential -tools first (validator, converter), improve incrementally - -==== Risk: Learning Curve - -*Impact:* Contributors struggle with new format *Mitigation:* Clear -templates, good error messages, fallback to Markdown/AsciiDoc initially - -==== Risk: Maintenance Burden - -*Impact:* Maintaining docs in two formats *Mitigation:* Automated -conversion, progressive migration, keep old format until confident - -''''' - -=== Conclusion - -A2ML dogfooding is *essential* for proving the format’s viability. By -using it extensively within the Hyperpolymath ecosystem, we demonstrate: - -[arabic] -. *It works for complex documentation* (specs, guides, ADRs) -. *It catches real errors* (incomplete docs, broken references) -. *It scales* (500+ repos) -. *It integrates* (CI, generators, validators) - -*Recommended Start:* Convert A2ML’s own README and SPEC to A2ML format -using lax mode. This proves the format can handle its own complexity. - -*Next Steps:* 1. Create A2ML versions of key documents (README, SPEC) 2. -Build essential tooling (validator, converter) 3. Pilot in 5 repos to -gather feedback 4. Iterate based on real usage - -''''' - -*Document Status:* Ready for Implementation *Next Review:* After A2ML -v1.0.0 release *Maintainer:* Jonathan D.A. Jewell -j.d.a.jewell@open.ac.uk diff --git a/a2ml/IANA-MEDIA-TYPE-APPLICATION.adoc b/a2ml/IANA-MEDIA-TYPE-APPLICATION.adoc deleted file mode 100644 index 7044190fa..000000000 --- a/a2ml/IANA-MEDIA-TYPE-APPLICATION.adoc +++ /dev/null @@ -1,285 +0,0 @@ -== IANA Media Type Registration Application: application/vnd.a2ml - -____ -Prepared for submission to IANA per RFC 6838 (Vendor Tree) Submission -URL: https://www.iana.org/form/media-types Revision 2 – 2026-04-03 -____ - -''''' - -=== Applicant Information - -[cols=",",options="header",] -|=== -|Field |Value -|*Full Name* |Jonathan D.A. Jewell -|*Email* |j.d.a.jewell@open.ac.uk -|*Affiliation* |The Open University -|=== - -''''' - -=== Media Type Details - -[cols=",",options="header",] -|=== -|Field |Value -|*Top-Level Type* |application -|*Subtype* |vnd.a2ml -|*Tree* |Vendor (vnd.) -|=== - -*Note:* A2ML is distinct from ASAM A2L (`+application/A2L+`), which is a -measurement and calibration data format for automotive ECUs. Despite -similar names, the two formats are unrelated in purpose, syntax, and -application domain. - -''''' - -=== Technical Parameters - -==== Required Parameters - -N/A - -==== Optional Parameters - -* *charset*: If specified, the value MUST be "`utf-8`" -(case-insensitive). A2ML documents are UTF-8 by default (RFC 3629). The -charset parameter SHOULD NOT be specified if the document contains -opaque payload blocks with arbitrary binary content. - -==== Encoding Considerations - -*binary* - -A2ML documents are primarily UTF-8 text but MAY include opaque payload -blocks (via the `+@opaque+` directive) containing arbitrary binary data. -Because opaque blocks may contain any octet sequence, the encoding is -classified as "`binary`" per RFC 6838 Section 4.8. - -Implementations MUST preserve byte-for-byte fidelity of opaque blocks -across parsing and serialisation. Line endings are LF (U+000A) by -convention; parsers MUST accept CR+LF (U+000D U+000A) and normalise to -LF internally. - -''''' - -=== Security Considerations - -A2ML is a document markup format comparable to Markdown and AsciiDoc. It -is not executable by itself and does not contain active content. - -*Executable content:* A2ML MAY embed opaque payload blocks (using the -`+@opaque+` directive) and code blocks (using fenced code blocks) that -can contain code, scripts, or other executable content. Processors MUST -treat opaque payloads and code blocks as untrusted data and MUST NOT -execute embedded content by default. If an implementation offers -execution or evaluation features (e.g., running code blocks in a REPL -environment), it MUST: - -* {blank} -[loweralpha] -. Operate in a sandboxed context with restricted privileges -* {blank} -[loweralpha, start=2] -. Require explicit user consent before execution -* {blank} -[loweralpha, start=3] -. Clearly indicate which content is being executed -* {blank} -[loweralpha, start=4] -. Provide mechanisms to disable execution entirely - -*Privacy:* A2ML documents may contain personally identifiable -information (PII) in author metadata, abstracts, or content blocks. -Implementations SHOULD provide mechanisms to redact or strip metadata -when sharing documents. Opaque payloads may contain sensitive data and -SHOULD be inspected before transmission across trust boundaries. - -*Integrity and cryptographic attestation:* A2ML documents support -cryptographic attestation via Ed25519 signatures for opaque payloads and -document structure. Implementations that verify signatures MUST -validate: - -* {blank} -[loweralpha] -. Signature correctness against the stated public key -* {blank} -[loweralpha, start=2] -. Timestamp freshness (to prevent replay) -* {blank} -[loweralpha, start=3] -. Public-key trust (via a known-keys list or certificate chain) - -Documents without signatures SHOULD be treated as unverified. - -*Compression:* A2ML does not define a compression layer. If documents -are compressed for transport, standard HTTP Content-Encoding or -Transfer-Encoding mechanisms (RFC 9110) should be used. - -*External references:* A2ML link syntax (`+[label](url)+`) and -`+@ref()+` directives may reference external resources. Implementations -MUST NOT automatically fetch external resources without user consent. - -''''' - -=== Interoperability Considerations - -A2ML is designed for cross-platform interoperability with progressive -strictness modes: - -* *Lax mode*: Permissive parsing, warnings only -* *Checked mode*: Structural validation required (unique IDs, valid -cross-references, well-formed directives) -* *Attested mode*: Cryptographic attestation required, enforced by -dependent-type proofs in the Idris2 reference implementation - -Character encoding is UTF-8 (RFC 3629). Byte Order Marks (U+FEFF) at the -start of a document are permitted but not required; parsers MUST accept -and silently consume a leading BOM. - -Opaque payloads are preserved byte-for-byte across parsing and -serialisation. Renderers MAY transform opaque content for display but -MUST retain the original bytes for attestation and round-trip fidelity. - -A2ML is renderer-agnostic and can be converted to HTML5, LaTeX/PDF, -Markdown (CommonMark), Djot, or plain text. - -Implementations SHOULD support all three strictness modes. - -''''' - -=== Published Specification - -* *Primary specification (v1.0.0, Stable):* -https://github.com/hyperpolymath/standards/blob/main/a2ml/SPEC-v1.0.adoc -* *Surface grammar specification (v0, Draft):* -https://github.com/hyperpolymath/standards/blob/main/a2ml/SPEC.adoc -* *Formal verification (Idris2 typed core):* -https://github.com/hyperpolymath/a2ml/tree/main/src/A2ML - -''''' - -=== Application Usage - -A2ML is used by: - -* A2ML compilers and validators (the `+a2ml+` command-line tool) -* Static site generators that consume A2ML documents -* Document management systems requiring formal structure guarantees -* Academic publishing workflows for papers and specifications -* Technical documentation with verifiable cross-references -* Standards bodies requiring attested document integrity -* AI agent manifest files (0-AI-MANIFEST.a2ml, AI.a2ml) - -Reference implementation: -https://github.com/hyperpolymath/standards/tree/main/a2ml - -''''' - -=== Fragment Identifier Considerations - -Fragment identifiers for A2ML documents refer to element IDs. - -*Syntax:* `+#+` where `++` matches `+[A-Za-z][A-Za-z0-9:_-]*+` - -*Examples:* - `+#intro+` – references a section with id="`intro`" - -`+#fig:results+` – references a figure with id="`fig:results`" - -`+#tab:data+` – references a table with id="`tab:data`" - -*Resolution:* Fragment MUST match an element with the specified ID. If -no match, the user agent SHOULD treat it as unresolvable without raising -an error. ID uniqueness enforcement depends on the strictness mode -(attested > checked > lax). - -''''' - -=== Restrictions on Usage - -None. - -''''' - -=== Provisional Registration - -*No.* (Vendor-tree registration; provisional applies only to standards -tree.) - -''''' - -=== Additional Information - -[width="100%",cols="50%,50%",options="header",] -|=== -|Field |Value -|*Deprecated alias names* |None - -|*Magic number(s)* |None (text-based format; identified by file -extension or content detection of A2ML directives such as -`+@abstract:+`, `+@refs:+`, `+@opaque:+`) - -|*File extension(s)* |`+.a2ml+` - -|*Macintosh file type code(s)* |None - -|*Object Identifier(s) / OID(s)* |None - -|*Intended usage* |COMMON -|=== - -==== Other Comments - -A2ML (Attested Markup Language) is a lightweight markup language that -compiles to a typed, verifiable core with formal proof obligations. It -enables progressive strictness: from permissive authoring to formally -verified structural invariants enforced by dependent types in Idris2. - -The format is designed for long-term document preservation with -cryptographic attestation and byte-for-byte opaque payload fidelity. - -''''' - -=== Contact Information - -[width="100%",cols="50%,50%",options="header",] -|=== -|Field |Value -|*Contact Name* |Jonathan D.A. Jewell -|*Contact Email* |j.d.a.jewell@open.ac.uk -|*Affiliation* |The Open University -|*Address* |Milton Keynes, MK7 6AA, United Kingdom -|*Author/Change Controller* |Jonathan D.A. Jewell, The Open University -|=== - -''''' - -=== References - -[arabic] -. RFC 6838 – Media Type Specifications and Registration Procedures -https://www.rfc-editor.org/rfc/rfc6838.html -. RFC 3629 – UTF-8, a transformation format of ISO 10646 -https://www.rfc-editor.org/rfc/rfc3629.html -. RFC 9110 – HTTP Semantics https://www.rfc-editor.org/rfc/rfc9110.html -. A2ML Specification (v1.0.0, Stable) -https://github.com/hyperpolymath/standards/blob/main/a2ml/SPEC-v1.0.adoc -. A2ML Idris2 Core Implementation -https://github.com/hyperpolymath/a2ml/tree/main/src/A2ML - -''''' - -=== Submission Checklist - -* [x] Review all fields for accuracy -* [x] Verify published specification links are accessible -* [x] Confirm no naming conflict with existing registrations -* [x] Clarify distinction from ASAM A2L (application/A2L) -* [ ] Submit via IANA web form at https://www.iana.org/form/media-types -* [ ] Monitor IANA email for review feedback -* [ ] Update specification with assigned media type upon approval - -''''' - -_Prepared: 2026-01-30_ _Revised: 2026-04-03 (Revision 2)_ _Status: Draft -– ready for submission_ diff --git a/a2ml/Justfile b/a2ml/Justfile deleted file mode 100644 index ee7c28fdf..000000000 --- a/a2ml/Justfile +++ /dev/null @@ -1,645 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# RSR-template-repo - RSR Standard Justfile Template -# https://just.systems/man/en/ -# -# This is the CANONICAL template for all RSR projects. -# Copy this file to new projects and customize the {{PLACEHOLDER}} values. -# -# IMPORTANT: This file MUST be named "Justfile" (capital J) for RSR compliance. -# -# Run `just` to see all available recipes -# Run `just cookbook` to generate docs/just-cookbook.adoc -# Run `just combinations` to see matrix recipe options - -set shell := ["bash", "-uc"] -set dotenv-load := true -set positional-arguments := true - -# Project metadata - CUSTOMIZE THESE -project := "a2ml" -version := "0.1.0" -tier := "2" # 1 | 2 | infrastructure - -# ═══════════════════════════════════════════════════════════════════════════════ -# DEFAULT & HELP -# ═══════════════════════════════════════════════════════════════════════════════ - -# Show all available recipes with descriptions -default: - @just --list --unsorted - -# Show detailed help for a specific recipe -help recipe="": - #!/usr/bin/env bash - if [ -z "{{recipe}}" ]; then - just --list --unsorted - echo "" - echo "Usage: just help " - echo " just cookbook # Generate full documentation" - echo " just combinations # Show matrix recipes" - else - just --show "{{recipe}}" 2>/dev/null || echo "Recipe '{{recipe}}' not found" - fi - -# Show this project's info -info: - @echo "Project: {{project}}" - @echo "Version: {{version}}" - @echo "RSR Tier: {{tier}}" - @echo "Recipes: $(just --summary | wc -w)" - @[ -f STATE.scm ] && grep -oP '\(phase\s+\.\s+\K[^)]+' STATE.scm | head -1 | xargs -I{} echo "Phase: {}" || true - -# ═══════════════════════════════════════════════════════════════════════════════ -# BUILD & COMPILE -# ═══════════════════════════════════════════════════════════════════════════════ - -# Build the project (debug mode) -build *args: - @echo "Building {{project}}..." - # TODO: Add build command for your language - # Rust: cargo build {{args}} - # ReScript: npm run build - # Elixir: mix compile - -# Build in release mode with optimizations -build-release *args: - @echo "Building {{project}} (release)..." - # TODO: Add release build command - # Rust: cargo build --release {{args}} - -# Build and watch for changes -build-watch: - @echo "Watching for changes..." - # TODO: Add watch command - # Rust: cargo watch -x build - # ReScript: npm run watch - -# Clean build artifacts [reversible: rebuild with `just build`] -clean: - @echo "Cleaning..." - rm -rf target _build dist lib node_modules - -# Deep clean including caches [reversible: rebuild] -clean-all: clean - rm -rf .cache .tmp - -# ═══════════════════════════════════════════════════════════════════════════════ -# TEST & QUALITY -# ═══════════════════════════════════════════════════════════════════════════════ - -# Run all tests -test *args: - @echo "Running tests..." - # TODO: Add test command - # Rust: cargo test {{args}} - # ReScript: npm test - # Elixir: mix test - -# Run tests with verbose output -test-verbose: - @echo "Running tests (verbose)..." - # TODO: Add verbose test - -# Run tests and generate coverage report -test-coverage: - @echo "Running tests with coverage..." - # TODO: Add coverage command - # Rust: cargo llvm-cov - -# ═══════════════════════════════════════════════════════════════════════════════ -# LINT & FORMAT -# ═══════════════════════════════════════════════════════════════════════════════ - -# Format all source files [reversible: git checkout] -fmt: - @echo "Formatting..." - # TODO: Add format command - # Rust: cargo fmt - # ReScript: npm run format - # Elixir: mix format - -# Check formatting without changes -fmt-check: - @echo "Checking format..." - # TODO: Add format check - # Rust: cargo fmt --check - -# Run linter -lint: - @echo "Linting..." - # TODO: Add lint command - # Rust: cargo clippy -- -D warnings - -# Run all quality checks -quality: fmt-check lint test - @echo "All quality checks passed!" - -# Fix all auto-fixable issues [reversible: git checkout] -fix: fmt - @echo "Fixed all auto-fixable issues" - -# ═══════════════════════════════════════════════════════════════════════════════ -# RUN & EXECUTE -# ═══════════════════════════════════════════════════════════════════════════════ - -# Run the application -run *args: - @echo "Running {{project}}..." - # TODO: Add run command - # Rust: cargo run {{args}} - -# Run in development mode with hot reload -dev: - @echo "Starting dev mode..." - # TODO: Add dev command - -# Run REPL/interactive mode -repl: - @echo "Starting REPL..." - # TODO: Add REPL command - # Elixir: iex -S mix - # Guile: guix shell guile -- guile - -# ═══════════════════════════════════════════════════════════════════════════════ -# DEPENDENCIES -# ═══════════════════════════════════════════════════════════════════════════════ - -# Install all dependencies -deps: - @echo "Installing dependencies..." - # TODO: Add deps command - # Rust: (automatic with cargo) - # ReScript: npm install - # Elixir: mix deps.get - -# Audit dependencies for vulnerabilities -deps-audit: - @echo "Auditing dependencies..." - # TODO: Add audit command - # Rust: cargo audit - -# ═══════════════════════════════════════════════════════════════════════════════ -# DOCUMENTATION -# ═══════════════════════════════════════════════════════════════════════════════ - -# Generate all documentation -docs: - @mkdir -p docs/generated docs/man - just cookbook - just man - @echo "Documentation generated in docs/" - -# Build the ddraig-ssg demo page -demo: - @./scripts/build-demo-ddraig.sh - -# Build the real a2ml.net site (site/) with ddraig-ssg and deploy it to -# Cloudflare Pages. Requires CLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID. -site-deploy: - @./scripts/deploy-site.sh - -# Run vector checks (prototype runner) -vectors: - @echo "Running vector checks..." - @if [ -x deno ]; then \ - deno run -A npm:rescript@latest build prototype/rescript; \ - elif command -v deno >/dev/null 2>&1; then \ - deno run -A npm:rescript@latest build prototype/rescript; \ - elif command -v rescript >/dev/null 2>&1; then \ - rescript build prototype/rescript; \ - else \ - echo "rescript not found; install the ReScript compiler." >&2; \ - exit 1; \ - fi - @if [ ! -d prototype/rescript/node_modules/@rescript/runtime ]; then \ - if command -v npm >/dev/null 2>&1; then \ - (cd prototype/rescript && npm install); \ - else \ - echo "npm not found; install npm to fetch @rescript/runtime." >&2; \ - exit 1; \ - fi; \ - fi - @if [ -x deno ]; then \ - deno run --allow-read --config prototype/rescript/deno.json prototype/rescript/src/RunVectors.bs.js; \ - elif command -v deno >/dev/null 2>&1; then \ - deno run --allow-read --config prototype/rescript/deno.json prototype/rescript/src/RunVectors.bs.js; \ - elif command -v node >/dev/null 2>&1; then \ - node prototype/rescript/src/RunVectors.bs.js; \ - else \ - echo "Neither deno nor node found; install one to run vector checks." >&2; \ - exit 1; \ - fi - -# Run vector checks and emit JSON report -vectors-report: - @echo "Running vector checks (report)..." - @mkdir -p build - @if [ -x deno ]; then \ - deno run -A npm:rescript@latest build prototype/rescript; \ - elif command -v deno >/dev/null 2>&1; then \ - deno run -A npm:rescript@latest build prototype/rescript; \ - elif command -v rescript >/dev/null 2>&1; then \ - rescript build prototype/rescript; \ - else \ - echo "rescript not found; install the ReScript compiler." >&2; \ - exit 1; \ - fi - @if [ ! -d prototype/rescript/node_modules/@rescript/runtime ]; then \ - if command -v npm >/dev/null 2>&1; then \ - (cd prototype/rescript && npm install); \ - else \ - echo "npm not found; install npm to fetch @rescript/runtime." >&2; \ - exit 1; \ - fi; \ - fi - @if [ -x deno ]; then \ - deno run --allow-read --allow-write --config prototype/rescript/deno.json prototype/rescript/src/RunReport.bs.js; \ - elif command -v deno >/dev/null 2>&1; then \ - deno run --allow-read --allow-write --config prototype/rescript/deno.json prototype/rescript/src/RunReport.bs.js; \ - elif command -v node >/dev/null 2>&1; then \ - node prototype/rescript/src/RunReport.bs.js; \ - else \ - echo "Neither deno nor node found; install one to run vector checks." >&2; \ - exit 1; \ - fi - -# Dump A2ML surface AST as JSON -dump-ast path: - @if [ -x deno ]; then \ - deno run -A npm:rescript@latest build prototype/rescript; \ - elif command -v deno >/dev/null 2>&1; then \ - deno run -A npm:rescript@latest build prototype/rescript; \ - elif command -v rescript >/dev/null 2>&1; then \ - rescript build prototype/rescript; \ - else \ - echo "rescript not found; install the ReScript compiler." >&2; \ - exit 1; \ - fi - @if [ ! -d prototype/rescript/node_modules/@rescript/runtime ]; then \ - if command -v npm >/dev/null 2>&1; then \ - (cd prototype/rescript && npm install); \ - else \ - echo "npm not found; install npm to fetch @rescript/runtime." >&2; \ - exit 1; \ - fi; \ - fi - @if [ -x deno ]; then \ - deno run --allow-read --config prototype/rescript/deno.json prototype/rescript/src/DumpAst.bs.js {{path}}; \ - elif command -v deno >/dev/null 2>&1; then \ - deno run --allow-read --config prototype/rescript/deno.json prototype/rescript/src/DumpAst.bs.js {{path}}; \ - elif command -v node >/dev/null 2>&1; then \ - node prototype/rescript/src/DumpAst.bs.js {{path}}; \ - else \ - echo "Neither deno nor node found; install one to dump AST." >&2; \ - exit 1; \ - fi - -# Run Idris2 core tests -core-tests: - @if command -v idris2 >/dev/null 2>&1; then \ - mkdir -p build; \ - idris2 --codegen node --source-dir src src/A2ML/CoreTests.idr -o build/core-tests.js; \ - if [ ! -f build/exec/build/core-tests.js ]; then \ - echo "core-tests output not found; expected build/exec/build/core-tests.js" >&2; \ - exit 1; \ - fi; \ - cp -f build/exec/build/core-tests.js build/core-tests.js; \ - node build/core-tests.js; \ - else \ - echo "idris2 not found; install Idris2 to run core tests." >&2; \ - exit 1; \ - fi - -# Build Ada TUI prototype -ada-tui: - @if command -v gnatmake >/dev/null 2>&1; then \ - mkdir -p build; \ - gnatmake -gnat2022 -O2 -o build/a2ml-tui prototype/ada-tui/src/main.adb; \ - echo "Built: build/a2ml-tui"; \ - else \ - echo "gnatmake not found; install GNAT to build the Ada TUI." >&2; \ - exit 1; \ - fi - -# Package CLI artifact -package-cli: - @./scripts/package-cli.sh - -# Run CLI (prototype) -cli *args: - @if [ -x deno ]; then \ - deno run -A npm:rescript@latest build prototype/rescript; \ - elif command -v deno >/dev/null 2>&1; then \ - deno run -A npm:rescript@latest build prototype/rescript; \ - elif command -v rescript >/dev/null 2>&1; then \ - rescript build prototype/rescript; \ - else \ - echo "rescript not found; install the ReScript compiler." >&2; \ - exit 1; \ - fi - @if [ -x deno ]; then \ - deno run --config prototype/rescript/deno.json prototype/rescript/src/Cli.bs.js {{args}}; \ - elif command -v deno >/dev/null 2>&1; then \ - deno run --config prototype/rescript/deno.json prototype/rescript/src/Cli.bs.js {{args}}; \ - elif command -v node >/dev/null 2>&1; then \ - node prototype/rescript/src/Cli.bs.js {{args}}; \ - else \ - echo "Neither deno nor node found; install one to run the CLI." >&2; \ - exit 1; \ - fi - -# Generate justfile cookbook documentation -cookbook: - #!/usr/bin/env bash - mkdir -p docs - OUTPUT="docs/just-cookbook.adoc" - echo "= {{project}} Justfile Cookbook" > "$OUTPUT" - echo ":toc: left" >> "$OUTPUT" - echo ":toclevels: 3" >> "$OUTPUT" - echo "" >> "$OUTPUT" - echo "Generated: $(date -Iseconds)" >> "$OUTPUT" - echo "" >> "$OUTPUT" - echo "== Recipes" >> "$OUTPUT" - echo "" >> "$OUTPUT" - just --list --unsorted | while read -r line; do - if [[ "$line" =~ ^[[:space:]]+([a-z_-]+) ]]; then - recipe="${BASH_REMATCH[1]}" - echo "=== $recipe" >> "$OUTPUT" - echo "" >> "$OUTPUT" - echo "[source,bash]" >> "$OUTPUT" - echo "----" >> "$OUTPUT" - echo "just $recipe" >> "$OUTPUT" - echo "----" >> "$OUTPUT" - echo "" >> "$OUTPUT" - fi - done - echo "Generated: $OUTPUT" - -# Generate man page -man: - #!/usr/bin/env bash - mkdir -p docs/man - printf '%s\n' \ - ".TH A2ML 1 \"$(date +%Y-%m-%d)\" \"{{version}}\" \"A2ML Manual\"" \ - ".SH NAME" \ - "{{project}} \\- Attested Markup Language specification repository" \ - ".SH SYNOPSIS" \ - ".B just" \ - "[recipe] [args...]" \ - ".SH DESCRIPTION" \ - "A2ML is a lightweight markup format that compiles into a typed, attested core." \ - ".br" \ - "This repository contains the A2ML specification and related documentation." \ - ".SH AUTHOR" \ - "Hyperpolymath " \ - > docs/man/{{project}}.1 - echo "Generated: docs/man/{{project}}.1" - -# ═══════════════════════════════════════════════════════════════════════════════ -# CONTAINERS (nerdctl-first, podman-fallback) -# ═══════════════════════════════════════════════════════════════════════════════ - -# Detect container runtime: nerdctl > podman > docker -[private] -container-cmd: - #!/usr/bin/env bash - if command -v nerdctl >/dev/null 2>&1; then - echo "nerdctl" - elif command -v podman >/dev/null 2>&1; then - echo "podman" - elif command -v docker >/dev/null 2>&1; then - echo "docker" - else - echo "ERROR: No container runtime found (install nerdctl, podman, or docker)" >&2 - exit 1 - fi - -# Build container image -container-build tag="latest": - #!/usr/bin/env bash - CTR=$(just container-cmd) - if [ -f Containerfile ]; then - echo "Building with $CTR..." - $CTR build -t {{project}}:{{tag}} -f Containerfile . - else - echo "No Containerfile found" - fi - -# Run container -container-run tag="latest" args="": - #!/usr/bin/env bash - CTR=$(just container-cmd) - $CTR run --rm -it {{project}}:{{tag}} {{args}} - -# Push container image -container-push registry="ghcr.io/hyperpolymath" tag="latest": - #!/usr/bin/env bash - CTR=$(just container-cmd) - $CTR tag {{project}}:{{tag}} {{registry}}/{{project}}:{{tag}} - $CTR push {{registry}}/{{project}}:{{tag}} - -# ═══════════════════════════════════════════════════════════════════════════════ -# CI & AUTOMATION -# ═══════════════════════════════════════════════════════════════════════════════ - -# Run full CI pipeline locally -ci: deps quality - @echo "CI pipeline complete!" - -# Install git hooks -install-hooks: - @mkdir -p .git/hooks - @printf '%s\n' \ - '#!/bin/bash' \ - 'just fmt-check || exit 1' \ - 'just lint || exit 1' \ - > .git/hooks/pre-commit - @chmod +x .git/hooks/pre-commit - @echo "Git hooks installed" - -# ═══════════════════════════════════════════════════════════════════════════════ -# SECURITY -# ═══════════════════════════════════════════════════════════════════════════════ - -# Run security audit -security: deps-audit - @echo "=== Security Audit ===" - @command -v gitleaks >/dev/null && gitleaks detect --source . --verbose || true - @command -v trivy >/dev/null && trivy fs --severity HIGH,CRITICAL . || true - @echo "Security audit complete" - -# Generate SBOM -sbom: - @mkdir -p docs/security - @command -v syft >/dev/null && syft . -o spdx-json > docs/security/sbom.spdx.json || echo "syft not found" - -# ═══════════════════════════════════════════════════════════════════════════════ -# VALIDATION & COMPLIANCE -# ═══════════════════════════════════════════════════════════════════════════════ - -# Validate RSR compliance -validate-rsr: - #!/usr/bin/env bash - echo "=== RSR Compliance Check ===" - MISSING="" - for f in .editorconfig .gitignore Justfile RSR_COMPLIANCE.adoc README.adoc; do - [ -f "$f" ] || MISSING="$MISSING $f" - done - for d in .well-known; do - [ -d "$d" ] || MISSING="$MISSING $d/" - done - for f in .well-known/security.txt .well-known/ai.txt .well-known/humans.txt; do - [ -f "$f" ] || MISSING="$MISSING $f" - done - if [ ! -f "guix.scm" ] && [ ! -f ".guix-channel" ] && [ ! -f "flake.nix" ]; then - MISSING="$MISSING guix.scm/flake.nix" - fi - if [ -n "$MISSING" ]; then - echo "MISSING:$MISSING" - exit 1 - fi - echo "RSR compliance: PASS" - -# Validate STATE.scm syntax -validate-state: - @if [ -f "STATE.scm" ]; then \ - guile -c "(primitive-load \"STATE.scm\")" 2>/dev/null && echo "STATE.scm: valid" || echo "STATE.scm: INVALID"; \ - else \ - echo "No STATE.scm found"; \ - fi - -# Full validation suite -validate: validate-rsr validate-state - @echo "All validations passed!" - -# ═══════════════════════════════════════════════════════════════════════════════ -# STATE MANAGEMENT -# ═══════════════════════════════════════════════════════════════════════════════ - -# Update STATE.scm timestamp -state-touch: - @if [ -f "STATE.scm" ]; then \ - sed -i 's/(updated . "[^"]*")/(updated . "'"$(date -Iseconds)"'")/' STATE.scm && \ - echo "STATE.scm timestamp updated"; \ - fi - -# Show current phase from STATE.scm -state-phase: - @grep -oP '\(phase\s+\.\s+\K[^)]+' STATE.scm 2>/dev/null | head -1 || echo "unknown" - -# ═══════════════════════════════════════════════════════════════════════════════ -# GUIX & NIX -# ═══════════════════════════════════════════════════════════════════════════════ - -# Enter Guix development shell (primary) -guix-shell: - guix shell -D -f guix.scm - -# Build with Guix -guix-build: - guix build -f guix.scm - -# Enter Nix development shell (fallback) -nix-shell: - @if [ -f "flake.nix" ]; then nix develop; else echo "No flake.nix"; fi - -# ═══════════════════════════════════════════════════════════════════════════════ -# HYBRID AUTOMATION -# ═══════════════════════════════════════════════════════════════════════════════ - -# Run local automation tasks -automate task="all": - #!/usr/bin/env bash - case "{{task}}" in - all) just fmt && just lint && just test && just docs && just state-touch ;; - cleanup) just clean && find . -name "*.orig" -delete && find . -name "*~" -delete ;; - update) just deps && just validate ;; - *) echo "Unknown: {{task}}. Use: all, cleanup, update" && exit 1 ;; - esac - -# ═══════════════════════════════════════════════════════════════════════════════ -# COMBINATORIC MATRIX RECIPES -# ═══════════════════════════════════════════════════════════════════════════════ - -# Build matrix: [debug|release] × [target] × [features] -build-matrix mode="debug" target="" features="": - @echo "Build matrix: mode={{mode}} target={{target}} features={{features}}" - # Customize for your build system - -# Test matrix: [unit|integration|e2e|all] × [verbosity] × [parallel] -test-matrix suite="unit" verbosity="normal" parallel="true": - @echo "Test matrix: suite={{suite}} verbosity={{verbosity}} parallel={{parallel}}" - -# Container matrix: [build|run|push|shell|scan] × [registry] × [tag] -container-matrix action="build" registry="ghcr.io/hyperpolymath" tag="latest": - @echo "Container matrix: action={{action}} registry={{registry}} tag={{tag}}" - -# CI matrix: [lint|test|build|security|all] × [quick|full] -ci-matrix stage="all" depth="quick": - @echo "CI matrix: stage={{stage}} depth={{depth}}" - -# Show all matrix combinations -combinations: - @echo "=== Combinatoric Matrix Recipes ===" - @echo "" - @echo "Build Matrix: just build-matrix [debug|release] [target] [features]" - @echo "Test Matrix: just test-matrix [unit|integration|e2e|all] [verbosity] [parallel]" - @echo "Container: just container-matrix [build|run|push|shell|scan] [registry] [tag]" - @echo "CI Matrix: just ci-matrix [lint|test|build|security|all] [quick|full]" - @echo "" - @echo "Total combinations: ~10 billion" - -# ═══════════════════════════════════════════════════════════════════════════════ -# VERSION CONTROL -# ═══════════════════════════════════════════════════════════════════════════════ - -# Show git status -status: - @git status --short - -# Show recent commits -log count="20": - @git log --oneline -{{count}} - -# ═══════════════════════════════════════════════════════════════════════════════ -# UTILITIES -# ═══════════════════════════════════════════════════════════════════════════════ - -# Validate Contractiles A2ML examples -contractiles-a2ml-validate: - @scripts/contractiles-a2ml-validate.sh - -# Validate Contractiles via K9 component + A2ML CLI -contractiles-k9-validate: - @scripts/contractiles-k9-validate.sh - -# Emit JSON stubs from Contractiles A2ML examples -contractiles-a2ml-emit outdir="build/contractiles": - @scripts/contractiles-a2ml-emit.sh "{{outdir}}" - -# Test Contractiles A2ML v1 fixtures -contractiles-a2ml-test: - @scripts/contractiles-a2ml-test.sh - -# Sync .machine_readable metadata into 6scm mirrors -sync-6scm: - @mkdir -p .machine_readable/6scm - @for f in AGENTIC.scm ECOSYSTEM.scm META.scm NEUROSYM.scm PLAYBOOK.scm STATE.scm; do \ - if [ -f ".machine_readable/$$f" ]; then cp -f ".machine_readable/$$f" ".machine_readable/6scm/$$f"; fi; \ - done - -# Check .machine_readable 6scm mirrors are in sync -check-6scm: - @scripts/check-6scm.sh - -# Count lines of code -loc: - @find . \( -name "*.rs" -o -name "*.ex" -o -name "*.res" -o -name "*.ncl" -o -name "*.scm" \) 2>/dev/null | xargs wc -l 2>/dev/null | tail -1 || echo "0" - -# Show TODO comments -todos: - @grep -rn "TODO\|FIXME" --include="*.rs" --include="*.ex" --include="*.res" . 2>/dev/null || echo "No TODOs" - -# Open in editor -edit: - ${EDITOR:-code} . diff --git a/a2ml/LICENSE b/a2ml/LICENSE deleted file mode 100644 index 78a5483a9..000000000 --- a/a2ml/LICENSE +++ /dev/null @@ -1,663 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 - - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. diff --git a/a2ml/LICENSES/PMPL-1.0.txt b/a2ml/LICENSES/PMPL-1.0.txt deleted file mode 100644 index 711e372c1..000000000 --- a/a2ml/LICENSES/PMPL-1.0.txt +++ /dev/null @@ -1,162 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 -SPDX-FileCopyrightText: 2025 Palimpsest Stewardship Council - -================================================================================ -PALIMPSEST-MPL LICENSE VERSION 1.0 -================================================================================ - -File-level copyleft with ethical use and quantum-safe provenance - -Based on Mozilla Public License 2.0 - --------------------------------------------------------------------------------- -PREAMBLE --------------------------------------------------------------------------------- - -This License extends the Mozilla Public License 2.0 (MPL-2.0) with provisions -for ethical use, post-quantum cryptographic provenance, and emotional lineage -protection. The base MPL-2.0 terms apply except where explicitly modified by -the Exhibits below. - -Like a palimpsest manuscript where each layer builds upon what came before, -this license recognizes that creative works carry history, context, and meaning -that transcend mere code or text. - --------------------------------------------------------------------------------- -SECTION 1: BASE LICENSE --------------------------------------------------------------------------------- - -This License incorporates the full text of Mozilla Public License 2.0 by -reference. The complete MPL-2.0 text is available at: -https://www.mozilla.org/en-US/MPL/2.0/ - -All terms, conditions, and definitions from MPL-2.0 apply except where -explicitly modified by the Exhibits in this License. - --------------------------------------------------------------------------------- -SECTION 2: ADDITIONAL DEFINITIONS --------------------------------------------------------------------------------- - -2.1. "Emotional Lineage" - means the narrative, cultural, symbolic, and contextual meaning embedded - in Covered Software, including but not limited to: protest traditions, - cultural heritage, trauma narratives, and community stories. - -2.2. "Provenance Metadata" - means cryptographically signed attribution information attached to or - associated with Covered Software, including author identities, timestamps, - modification history, and lineage references. - -2.3. "Non-Interpretive System" - means any automated system that processes Covered Software without - preserving or considering its Emotional Lineage, including but not - limited to: AI training pipelines, content aggregators, and automated - summarization tools. - -2.4. "Quantum-Safe Signature" - means a cryptographic signature using algorithms resistant to attacks - by quantum computers, as specified in Exhibit B. - --------------------------------------------------------------------------------- -SECTION 3: ETHICAL USE REQUIREMENTS --------------------------------------------------------------------------------- - -In addition to the rights and obligations under MPL-2.0: - -3.1. Emotional Lineage Preservation - You must make reasonable efforts to preserve and communicate the - Emotional Lineage of Covered Software when distributing or creating - derivative works. This includes maintaining narrative context, cultural - attributions, and symbolic meaning where documented. - -3.2. Non-Interpretive System Notice - If You use Covered Software as input to a Non-Interpretive System, You - must: - (a) document such use in a publicly accessible manner; and - (b) not claim that outputs of such systems carry the Emotional Lineage - of the original work without explicit permission from Contributors. - -3.3. Ethical Use Declaration - Commercial use of Covered Software requires acknowledgment that You have - read and understood Exhibit A (Ethical Use Guidelines) and agree to act - in good faith accordance with its principles. - -See Exhibit A for complete Ethical Use Guidelines. - --------------------------------------------------------------------------------- -SECTION 4: PROVENANCE REQUIREMENTS --------------------------------------------------------------------------------- - -4.1. Metadata Preservation - You must not strip, alter, or obscure Provenance Metadata from Covered - Software except where technically necessary and with clear documentation - of any changes. - -4.2. Quantum-Safe Provenance (Optional) - Contributors may sign their Contributions using Quantum-Safe Signatures. - If Quantum-Safe Signatures are present, You must preserve them in all - distributions. - -4.3. Lineage Chain - When creating derivative works, You should extend the provenance chain - to include Your own contributions, maintaining cryptographic linkage to - prior Contributors where feasible. - -See Exhibit B for Quantum-Safe Provenance specifications. - --------------------------------------------------------------------------------- -SECTION 5: GOVERNANCE --------------------------------------------------------------------------------- - -5.1. Stewardship Council - This License is maintained by the Palimpsest Stewardship Council, which - may issue clarifications, interpretive guidance, and future versions. - -5.2. Version Selection - You may use Covered Software under this version of the License or any - later version published by the Palimpsest Stewardship Council. - -5.3. Dispute Resolution - Disputes regarding interpretation of Ethical Use Requirements (Section 3) - should first be submitted to the Palimpsest Stewardship Council for - non-binding guidance before pursuing legal remedies. - --------------------------------------------------------------------------------- -SECTION 6: COMPATIBILITY --------------------------------------------------------------------------------- - -6.1. MPL-2.0 Compatibility - Covered Software under this License may be combined with software under - MPL-2.0. The combined work must comply with both licenses. - -6.2. Secondary Licenses - The Secondary License provisions of MPL-2.0 Section 3.3 apply to this - License. - --------------------------------------------------------------------------------- -EXHIBITS --------------------------------------------------------------------------------- - -Exhibit A - Ethical Use Guidelines -Exhibit B - Quantum-Safe Provenance Specification - -See separate files: -- EXHIBIT-A-ETHICAL-USE.txt -- EXHIBIT-B-QUANTUM-SAFE.txt - --------------------------------------------------------------------------------- -END OF PALIMPSEST-MPL-1.0 LICENSE TEXT --------------------------------------------------------------------------------- - -For exhibits, specifications, provenance rules, and governance: -https://github.com/hyperpolymath/palimpsest-license - -For legal frameworks and jurisdictional analysis: -See /legal/frameworks/ - -For provenance and audit tooling: -See /tools/ and /spec/PROVENANCE-SPEC.adoc - -For questions about this License: -- Repository: https://github.com/hyperpolymath/palimpsest-license -- Council: contact via repository Issues diff --git a/a2ml/MAINTAINERS.adoc b/a2ml/MAINTAINERS.adoc deleted file mode 100644 index 48d978175..000000000 --- a/a2ml/MAINTAINERS.adoc +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Maintainers -:toc: preamble - -This document lists the maintainers of this project and their responsibilities. - -== Current Maintainers - -[cols="2,3,2",options="header"] -|=== -| Name | Role | Contact - -| Jonathan D.A. Jewell -| Lead Maintainer -| https://github.com/hyperpolymath[@hyperpolymath] -|=== - -== Responsibilities - -Maintainers are responsible for: - -* Reviewing and merging pull requests -* Triaging issues and feature requests -* Ensuring code quality and security standards -* Managing releases and versioning -* Upholding the project's code of conduct - -== Becoming a Maintainer - -Contributors who demonstrate: - -* Consistent, high-quality contributions -* Understanding of the project's goals and standards -* Constructive participation in discussions -* Commitment to the project's long-term health - -May be invited to become maintainers at the discretion of existing maintainers. - -== Decision Making - -* Routine decisions (bug fixes, minor improvements) can be made by any maintainer -* Significant changes require discussion and consensus among maintainers -* Breaking changes or major features should be discussed in issues before implementation - -== Contact - -For questions about project governance, open an issue or contact the maintainers listed above. diff --git a/a2ml/MANIFEST-DIALECT-SPEC.adoc b/a2ml/MANIFEST-DIALECT-SPEC.adoc deleted file mode 100644 index 4444f5064..000000000 --- a/a2ml/MANIFEST-DIALECT-SPEC.adoc +++ /dev/null @@ -1,340 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -= A2ML Manifest Dialect Specification -:version: 0.1.0 -:date: 2026-08-03 -:status: Draft -:era: v1 -:toc: left -:toclevels: 3 -:icons: font -:sectnums: - -[abstract] -== Abstract - -This document specifies the *manifest dialect* of A2ML: the `---`-delimited -frontmatter surface used by `0-AI-MANIFEST.a2ml` and its siblings. At 894 -well-formed files it is the largest A2ML surface in the estate, and until now it -was described by no specification at all — `SPEC.adoc` §2 has no key-value -production, and neither it nor `RECORD-DIALECT-SPEC.adoc` mentions frontmatter. - -Like `RECORD-DIALECT-SPEC.adoc`, this is a specification of a *deployed* surface. -It was written from a census of every `.a2ml` file in `standards`, and it -describes what is there. Where the corpus is silent, this document says so rather -than inventing a rule. - -== 1. Status and scope - -*Status: Draft.* Not ratified and not yet wired into CI. It has, however, been -exercised by a reference validator against the full corpus: - -[source,console] ----- -$ bash a2ml/actions/validate/validate-manifest-dialect.sh - well-formed frontmatter files : 894 - CONFORM to the spec as written: 894 (100%) - rejected : 0 ----- - -The validator is a real gate, not a formality — injecting an excluded construct -(a YAML anchor) into one file gives 893/894 and exit 1. - -It MUST NOT be cited as a ratified standard until it is owner-ratified and wired -into CI (§9). - -This dialect is one of several surfaces over the shared A2ML typed core. The core -is normative and lives in `a2ml/src/A2ML/`; see `docs/DIALECT-ARCHITECTURE.adoc` -for the family design and `SPEC.adoc` §3 for the core itself. A surface is -legitimate only if it defines a translation into that core (§7). - -== 2. Census — what this specifies - -All 1,543 `.a2ml` files in `standards`, 2026-08-03: - -[cols="2,1,4"] -|=== -| Shape | Files | Note - -| Frontmatter, `---` opened and closed -| **894** -| Specified by this document - -| `---` opened, never closed -| 19 -| *Not* this dialect — see §8 - -| Other dialects (record, markup) and unclassified -| 630 -| `RECORD-DIALECT-SPEC.adoc`, `SPEC.adoc` §2 -|=== - -Within the 894 well-formed blocks: **2,706** key-value lines, **29** distinct -keys, and a value vocabulary of five kinds. - -== 3. Document structure - -.... -a2ml-manifest ::= header-comments open-delim frontmatter close-delim body -open-delim ::= "---" LF -close-delim ::= "---" LF -.... - -`header-comments`:: Zero or more lines that are blank or begin with `#` or `//`. -In 904 of 913 observed files this is exactly one line — the SPDX identifier. - -`open-delim`:: A line whose entire trimmed content is `---`. It MUST be the first -non-comment, non-blank line. **A document whose first non-comment line is not -`---` is not this dialect.** - -`frontmatter`:: The subject of §4. MAY be empty. - -`close-delim`:: The next line whose entire trimmed content is `---`. -**REQUIRED.** See §8 for why this is stated so strongly. - -`body`:: Everything after `close-delim`. Not specified here; it is prose or -markup-dialect content, and every one of the 894 observed files has a non-empty -body (median 3 lines). - -== 4. Frontmatter grammar - -.... -frontmatter ::= ( entry | seq-item | comment | blank )* -entry ::= indent key ":" SP value LF - | indent key ":" SP block-intro LF block-body -indent ::= ( SP SP )* ; 0, 2 or 4 spaces observed -key ::= ALPHA-or-"_" ( ALNUM | "_" | "." | "-" )* -value ::= dq-string | integer | nested | flow-seq | bare-scalar -seq-item ::= indent "-" SP any* LF -block-intro ::= ( "|" | ">" ) ( "-" | "+" )? -block-body ::= ( block-line )* -block-line ::= -comment ::= indent "#" any* LF -.... - -`block-body` is **opaque**. Its lines are not parsed as entries, comments or -delimiters; they are content. This matters — the only corpus use of a block -scalar is a PEM-armoured signature: - -[source,yaml] ----- -signature: | - -----BEGIN HYBRID SIGNATURE----- - BASE64_Ed448+Dilithium5_SIGNATURE_OF_THIS_FILE - -----END HYBRID SIGNATURE----- ----- - -A grammar that admits `|` but not its continuation lines would reject exactly the -construct A2ML exists to carry. A `#` inside a block body is signature data, not -a comment, and a line beginning `---` inside one does **not** close the -frontmatter. - -Indentation is **spaces only**. Tabs MUST NOT be used; none appears in the corpus. - -Observed indent widths: `0` (2,684 lines), `4` (15), `2` (7). Nesting is -therefore rare — 22 of 2,706 entries — but real, and a conforming parser MUST -support it. - -=== 4.1 Values - -[cols="2,1,4"] -|=== -| Kind | Count | Form - -| `dq-string` -| 1,799 -| `"` … `"`. Double quotes only. - -| `integer` -| 880 -| Optional `-`, then digits. - -| `nested` -| 19 -| Empty after the colon; the following more-indented lines are a nested mapping. - -| `bare-scalar` -| 6 -| Unquoted, no leading/trailing space, terminated by end of line. - -| `flow-seq` -| 2 -| `[` item ( `,` item )* `]` -|=== - -A conforming *producer* SHOULD emit `dq-string` for all string values. Bare -scalars are permitted for compatibility with the six existing occurrences and are -NOT RECOMMENDED for new documents: they are the construct most likely to be -misread as a boolean, null or number. - -Sequences may also appear in block form (`- item` on its own line); 29 such lines -were observed. - -=== 4.2 Excluded YAML constructs - -This dialect is *not* YAML. The following are **NOT PERMITTED**, and none occurs -anywhere in the corpus: - -[cols="2,1,4"] -|=== -| Construct | Occurrences | Rationale for exclusion - -| Anchors `&name` -| **0** -| Aliasing makes a document's meaning non-local, which defeats attestation over a - canonical hash form. - -| Aliases `*name` -| **0** -| As above; also the basis of billion-laughs style expansion attacks. - -| Tags `!` / `!!` -| **0** -| Type coercion by tag lets the same bytes mean different things to different - parsers. - -| Flow mappings `{…}` -| **0** -| No occurrences; excluding it removes a whole nesting path from the grammar. - -| Single-quoted strings -| **0** -| Two string forms with different escaping rules is a parser-differential risk for - no expressive gain. - -| Multi-document streams `---` … `---` … -| **0** -| The second `---` is the close delimiter. See §8. - -| Block scalars `\|` `>` -| 2 -| Permitted but NOT RECOMMENDED — see below. -|=== - -Block scalars appear twice. They are permitted for those two files rather than -retroactively invalidating them, but new documents SHOULD use a quoted string. -Their chomping and folding rules are the single largest source of disagreement -between YAML implementations. - -[NOTE] -==== -Excluding anchors, aliases and tags is not a restriction — it is a description. -They are absent from all 894 files. Writing them out of the grammar costs nothing -and removes the three constructs most often implicated in YAML parser -differentials. -==== - -== 5. Key vocabulary - -29 distinct keys across the corpus. The ten most frequent: - -`id` · `level` · `parent` · `version` · `context` · `algorithm` · `value` · -`integrity` · `meta` · `generated` - -This document does **not** fix the vocabulary. Key semantics belong to the base -record vocabulary and the profile mechanism in `SPEC.adoc`; this dialect -specifies only the *surface* in which keys are written. A future profile MAY -constrain which keys are required. - -== 6. Conformance - -A document conforms to the manifest dialect at level *R1* when: - -. its first non-comment, non-blank line is `---`; -. a matching `---` close delimiter exists; -. every non-blank, non-comment line between them parses as `entry`; -. no excluded construct from §4.2 appears; -. indentation is spaces only, in multiples of two. - -A validator MUST reject a document failing 1–5 rather than skipping it. This -matters: `a2ml/actions/validate/validate-a2ml.sh` currently *exempts* -`AI-MANIFEST*.a2ml` and `AI.a2ml` from identity checks, treating them as -"markdown prose". That exemption existed because there was no grammar to check -against. **With this document, the exemption should be removed** — see §9. - -== 7. Translation into the core - -The mapping into `a2ml/src/A2ML/`: - -[cols="2,3"] -|=== -| Manifest surface | Core - -| Frontmatter block | The document's metadata mapping -| `entry` with `dq-string` / `bare-scalar` | `String` value -| `entry` with `integer` | Numeric value -| `entry` with `nested` | Sub-mapping -| `entry` with sequence | List value -| Body after the close delimiter | Markup-dialect block content, per `SPEC.adoc` §2 -|=== - -This is the part that makes the dialect A2ML rather than "YAML in a file with an -unusual extension". `Translator.idr` and `Converters.idr` are where it belongs; -neither currently implements it, which is tracked in §9. - -Round-tripping — surface → core → surface — is a property to be *proved*, not -assumed. `Proofs.idr` is the place for that obligation. - -== 8. The 19 unterminated files are NOT this dialect - -Nineteen files open with `---` after their comment header and never close it. A -naive classifier reads them as malformed manifests. They are not: - -[source] ----- -# SPDX-License-Identifier: MPL-2.0 -# must.manifest.a2ml — Trident coherence manifest for the must verb. - ---- -trident_version = "1.0.0" <-- equals, not colon: record dialect -verb = "must" - -## Files (three; exactly) <-- markup heading ----- - -Of the 19: **7** use `key = value` (record dialect), **12** use `## heading` -(markup dialect). The `---` is a *horizontal rule*, not a frontmatter delimiter. - -**This is a genuine ambiguity in the family and this specification resolves it -one way only:** in the manifest dialect, a `---` as the first non-comment line -opens frontmatter. A document that uses `---` as a rule MUST NOT also place it -first, or it is indistinguishable from a manifest whose close delimiter is -missing. - -Two consequences: - -* A manifest parser fed one of these 19 files would consume the entire file as - frontmatter and fail. That is correct behaviour under this spec. -* The 19 files should be corrected — either by removing the leading `---` or by - moving it below their first content line. They are recorded here so the fix is - a known task rather than a surprise. - -The wider point for `SPEC.adoc` as family root: **`---` is currently ambiguous -across dialects**, and the family spec should say which dialect claims it in -first position. - -== 9. Open items before ratification - -. *Reference validator.* ✅ Done — `a2ml/actions/validate/validate-manifest-dialect.sh`, - 894/894 conforming. It found one spec bug during drafting: the grammar admitted - the block-scalar introducer `|` but not its continuation lines, so it rejected a - PEM-armoured signature — the very construct A2ML exists to carry. Fixed in §4. - *Still to do:* wire it into CI. -. *Remove the blanket exemption.* `validate-a2ml.sh` skips identity checks on - `AI-MANIFEST*.a2ml`. Once the validator above exists, the exemption should go. -. *Implement the translation.* §7 in `Translator.idr` / `Converters.idr`, with a - round-trip proof obligation in `Proofs.idr`. -. *Fix the 19.* §8. -. *Register the dialect.* Add `dialect=manifest` to the family media type — see - `docs/DIALECT-ARCHITECTURE.adoc` §4 and `RECORD-DIALECT-SPEC.adoc` §14. - -== 10. Versioning - -Versioned with SemVer, independently of `SPEC.adoc` and -`RECORD-DIALECT-SPEC.adoc`, but within the same era (`v1`) and over the same core. - -A change that would reject a currently-conforming corpus document is a MAJOR bump -and requires a migration note and a deprecation window. Permitting a construct -currently excluded by §4.2 is a MINOR bump — but the burden is on the proposer to -show the construct is needed, since each one re-opens a parser-differential -surface that is presently closed. diff --git a/a2ml/READINESS.adoc b/a2ml/READINESS.adoc deleted file mode 100644 index 25eeca167..000000000 --- a/a2ml/READINESS.adoc +++ /dev/null @@ -1,163 +0,0 @@ -== a2ml Component Readiness Assessment - -*Standard:* -https://github.com/hyperpolymath/standards/tree/main/component-readiness-grades[Component -Readiness Grades (CRG) v1.0] *Assessed:* 2026-04-04 *Assessor:* Jonathan -D.A. Jewell + Claude Sonnet 4.6 - -*Current Grade:* B - -=== Summary - -[width="100%",cols="16%,4%,14%,66%",options="header",] -|=== -|Component |Grade |Release Stage |Evidence Summary -|`+a2ml-validator+` |B |Release Candidate |Deployed via dogfood-gate on -105+ repos; validates STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml, -AGENTIC.a2ml, NEUROSYM.a2ml, PLAYBOOK.a2ml across Rust, Elixir, Gleam, -Julia, ReScript contexts. - -|`+a2ml-rs+` |B |Release Candidate |Rust implementation; used as -reference validator; CLI and library API both validated on 105+ repos. - -|`+a2ml_ex+` |C |Beta |Elixir implementation; integrated into mix -pipeline on Elixir repos; dogfooded on burble, oblibeny, boj-server -adapter layer. - -|`+a2ml_gleam+` |C |Beta |Gleam implementation; wired on BEAM/Gleam -repos; dogfooded on k9_gleam, a2ml_gleam, polyglot-formalisms-gleam. - -|`+a2ml-haskell+` |C |Beta |Haskell implementation; validated on Haskell -repos in the estate. - -|`+a2ml-deno+` |C |Beta |Deno/TypeScript-free JS implementation; used on -ReScript/Deno frontend repos (idaptik, nafa-app). - -|`+schema+` |B |Release Candidate |Core A2ML schema definition; stable -since v1.0; referenced by all 6 language implementations and 105+ repos. - -|`+dogfood-gate+` |B |Release Candidate |CI enforcement workflow; -deployed on all repos requiring A2ML compliance; diverse language -targets confirmed. -|=== - -=== Overall Project Readiness - -* *Components at B or above:* 4/8 (50%) — a2ml-validator, a2ml-rs, -schema, dogfood-gate -* *Components at C (Beta) or above:* 8/8 (100%) -* *Components at D (Alpha):* 0/8 (0%) -* *Weighted assessment:* The A2ML standard and its primary validator are -*Grade B*. Language-specific implementations are Beta-quality with real -dogfooding. - -=== Detailed Assessment - -==== `+a2ml-validator+` — Core A2ML Validation Engine (Grade: B) - -*Evidence:* - Deployed via `+dogfood-gate+` CI workflow on 105+ -hyperpolymath repos - Validates 6 canonical file types: STATE.a2ml, -META.a2ml, ECOSYSTEM.a2ml, AGENTIC.a2ml, NEUROSYM.a2ml, PLAYBOOK.a2ml - -Language context diversity confirmed: 1. Rust repos (panic-attacker, -januskey, conflow, a2ml-rs, ephapax) — .machine_readable/descriptiles/ paths 2. -Elixir/Phoenix repos (burble, oblibeny, boj-server adapters) — BEAM -ecosystem 3. Gleam repos (k9_gleam, a2ml_gleam, -polyglot-formalisms-gleam) — typed BEAM 4. Julia repos (7-tentacles, -statistease, developer-ecosystem) — scientific computing 5. -ReScript/Deno repos (idaptik, nafa-app) — web frontend 6. Idris2 repos -(ephapax, stapeln) — formal verification 7. Multi-language monorepos -(developer-ecosystem, nextgen-languages) — polyglot 8. Standards repos -(standards, rsr-template-repo) — meta-validation - Findings: 41 repos -flagged for SCM→A2ML migration (tracked in memory file -scm-to-a2ml-migration.md) - -*Known limitations:* - A2ML parser is strict; minor formatting issues -cause validation failure rather than warning - PLAYBOOK.a2ml schema not -yet finalised (v0.9) - Cross-reference validation between A2ML files not -yet implemented - -*Promotion path to A:* External users outside hyperpolymath adopt A2ML -and confirm validator is non-blocking for their workflows. - -==== `+schema+` — A2ML Schema Definition (Grade: B) - -*Evidence:* - Core schema stable since v1.0 - Referenced by 6 language -implementations (Rust, Elixir, Gleam, Haskell, Deno, Julia) - Deployed -on 105+ repos as the canonical AI manifest format - IANA media type -submission in progress (`+application/vnd.a2ml+`) - -*Known limitations:* - PLAYBOOK.a2ml schema at v0.9 (not yet stable) - -No formal grammar (EBNF/PEG) published yet - -*Promotion path to A:* IANA media type approved; grammar published; -external adopters. - -==== `+dogfood-gate+` — CI Enforcement Workflow (Grade: B) - -*Evidence:* - Deployed on all RSR-compliant repos requiring A2ML -compliance (105+) - Blocks merge on validation failure - Targets -confirmed across all primary hyperpolymath languages - SHA-pinned, -`+permissions: read-all+`, SPDX header present - -*Known limitations:* - Some repos have partial A2ML files (missing -PLAYBOOK.a2ml) — gate configured to warn only for optional files - -Periodic SHA pin refresh required - -*Promotion path to A:* External maintainers adopt dogfood-gate; no -harmful false-positives in wild. - -==== `+a2ml-rs+` — Rust Implementation (Grade: B) - -*Evidence:* - Reference implementation; CLI and library API - Used as -validator on 105+ repos via dogfood-gate - Extensive test suite; CI -passing - -*Known limitations:* - Some edge cases in UTF-8 boundary handling - -Library API not yet stabilised (semver pre-1.0) - -==== `+a2ml_ex+` — Elixir Implementation (Grade: C) - -*Evidence:* - Integrated into mix pipeline on all Elixir repos in the -estate - Dogfooded on burble, oblibeny, boj-server adapter layer - -*Promotion path to B:* Validated on 6+ diverse external Elixir projects. - -==== `+a2ml_gleam+` — Gleam Implementation (Grade: C) - -*Evidence:* - Wired on BEAM/Gleam repos (k9_gleam, a2ml_gleam, -polyglot-formalisms-gleam) - Compiles to both BEAM and JavaScript -targets - -*Promotion path to B:* Validated on 6+ diverse Gleam/BEAM projects. - -==== `+a2ml-haskell+` — Haskell Implementation (Grade: C) - -*Evidence:* - Validated on Haskell repos in the estate (a2ml-haskell -itself, scaffoldia) - -*Promotion path to B:* Validated on 6+ diverse Haskell projects. - -==== `+a2ml-deno+` — Deno Implementation (Grade: C) - -*Evidence:* - Used on ReScript/Deno frontend repos (idaptik, nafa-app) - -Zero npm dependencies (pure Deno) - -*Promotion path to B:* Validated on 6+ diverse Deno/ReScript projects. - -=== Recipes - -.... -just validate # Validate A2ML files in a repo -just test # All implementation tests -just build # Build all language implementations -just check-schema # Validate schema self-consistency -just lint # Format and lint checks -.... - -=== Known Debt - -* PLAYBOOK.a2ml schema not yet at v1.0 -* No formal grammar (EBNF/PEG) for the A2ML format -* Cross-reference validation between A2ML files not implemented -* 41 repos still using SCM files instead of A2ML (migration tracked) -* IANA media type application pending diff --git a/a2ml/README.a2ml b/a2ml/README.a2ml deleted file mode 100644 index be1177d0f..000000000 --- a/a2ml/README.a2ml +++ /dev/null @@ -1,128 +0,0 @@ -# A2ML (Attested Markup Language) - -@abstract: -A2ML is a lightweight, Djot-like markup that compiles into a typed, attested core. -It keeps authoring simple while allowing strong guarantees when you want them. - -This repository is a satellite of the Hyperpolymath standards hub. -@end - -## Why A2ML - -- Lightweight authoring with progressive strictness (lax → checked → attested) -- Strong guarantees: required sections, resolved references, unique IDs -- Opaque payloads preserved byte-for-byte for absolute fidelity -- Renderer portability across HTML/Markdown/PDF pipelines - -## Quick Start (Module 0) - -@opaque(lang="a2ml", id="quick-start-example"): -# A2ML Overview - -@abstract: -A2ML is a typed, attested markup format. It verifies structure and references. -@end - -## Claims -- Required sections must exist. -- References must resolve. - -@refs: -[1] Attested Markup Language Spec (draft) -@end -@end - -## Documents - -### Specification - -- **Spec**: SPEC.a2ml - Surface Grammar + Typed Core -- **Quickstart**: docs/QUICKSTART.adoc - Module 0 Quickstart + FAQ -- **Modules**: docs/MODULES.adoc - Syntax Modules (Opt-in) -- **Grammar**: docs/GRAMMAR.adoc - Grammar Appendix - -### Implementation - -- **Conformance**: docs/CONFORMANCE.adoc - Conformance + Test Vectors -- **Conformance Plan**: docs/CONFORMANCE-PLAN-v1.adoc - v1 Conformance Plan -- **Web Rendering**: docs/WEB-RENDERING.adoc - Web Rendering Options - -### Registration - -- **IANA Media Type**: docs/IANA-MEDIA-TYPE.a2ml - IANA Media Type Draft -- **Comparison**: docs/COMPARISON.adoc - Comparison Matrix -- **Citations**: docs/CITATIONS.adoc - Citation Guide - -## Prototypes - -### Web Implementations - -- **ReScript Web**: prototype/rescript/README.adoc -- **ReScript + WASM**: prototype/wasm/README.adoc -- **ddraig-ssg**: prototype/ddraig/DemoBuild.idr - Static site generator demo - -### TUI - -- **Ada/SPARK TUI**: prototype/ada-tui/docs/README.adoc - Terminal UI (prototype) - -## Idris2 Core - -The formal core is implemented in Idris2 with dependent types and proofs. - -- **TypedCore**: src/A2ML/TypedCore.idr - Core types with invariants -- **Proofs**: src/A2ML/Proofs.idr - Uniqueness and resolution proofs -- **Parser**: src/A2ML/Parser.idr - Total parser (no partial functions) -- **Converters**: src/A2ML/Converters.idr - Format converters (Markdown, HTML, Djot, LaTeX, PlainText) -- **Tests**: src/A2ML/Tests.idr - 29 comprehensive tests - -### Tooling - -- **CLI**: cli/a2ml-cli.idr - Command-line validator and converter -- **REPL**: repl/A2ML-REPL.idr - Interactive development environment -- **LSP**: lsp/A2ML-LSP.adoc - Language Server Protocol architecture -- **Documentation**: docs/TOOLING.adoc - Complete tooling guide -- **Idris2 Core**: docs/IDRIS2-CORE.adoc - Core implementation details - -## Core Tests - -Run Idris2 core tests: - -@opaque(lang="bash"): -just core-tests -@end - -## CLI - -- **CLI Documentation**: docs/CLI.adoc -- **Man Page**: docs/a2ml.1 -- **Packaging**: docs/PACKAGING.adoc - -Build CLI: - -@opaque(lang="bash"): -just package-cli -@end - -## Release Notes - -- **v0.1.0**: RELEASE-NOTES-v0.1.0.adoc -- **v0.5.0**: RELEASE-NOTES-v0.5.0.adoc -- **v0.6.0**: RELEASE-NOTES-v0.6.0.adoc - -## Announcement - -- **Announcement Draft**: docs/ANNOUNCEMENT.adoc -- **State of A2ML**: docs/STATE-OF-A2ML.adoc -- **v1.0.0 Criteria**: docs/V1-CRITERIA.adoc - -## Status - -- Draft specification, v0.7.0 -- Prototype parser + CLI + REPL + LSP architecture available -- Idris2 core with dependent types and formal proofs -- 29 core tests passing -- Format converters: Markdown, HTML, Djot, LaTeX, PlainText - -## License - -PMPL-1.0-or-later. See LICENSE. diff --git a/a2ml/README.adoc b/a2ml/README.adoc deleted file mode 100644 index 8cec98f24..000000000 --- a/a2ml/README.adoc +++ /dev/null @@ -1,127 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML (Attested Markup Language) -:toc: preamble -:toclevels: 2 -:icons: font - -A2ML is a lightweight, Djot-like markup that compiles into a typed, attested core. -It keeps authoring simple while allowing strong structural guarantees when you -want them. - -This repository is a satellite of the Hyperpolymath standards hub. - -== What It Does - -* Author a readable surface format with strict, typed guarantees when needed. -* Validate structure (IDs, refs, required sections) with progressive modes. -* Preserve opaque payloads byte-for-byte for reliable embedding. - -== Where It Is Going - -* Broader tooling integration (CLI, LSP, renderers). -* More profiles for domain-specific validation. -* Stronger proof coverage and conformance automation. - -== Why A2ML - -* Lightweight authoring with progressive strictness (lax -> checked -> attested) -* Strong guarantees: required sections, resolved references, unique IDs -* Opaque payloads preserved byte-for-byte for absolute fidelity -* Renderer portability across HTML/Markdown/PDF pipelines - -== Quick Start (Module 0) - -[source,a2ml] ----- -# A2ML Overview - -@abstract: -A2ML is a typed, attested markup format. It verifies structure and references. -@end - -## Claims -- Required sections must exist. -- References must resolve. - -@refs: -[1] Attested Markup Language Spec (draft) -@end ----- - -== Documents - -* link:SPEC.adoc[Spec (current normative, v1.1.0): Surface Grammar + Typed Core + Profiles] -* link:VERSIONS.adoc[Specification Lineage (versions + era)] -* link:archive/[Archived (frozen) prior specs] -* link:docs/QUICKSTART.adoc[Module 0 Quickstart + FAQ] -* link:docs/MODULES.adoc[Syntax Modules (Opt-in)] -* link:docs/GRAMMAR.adoc[Grammar Appendix] -* link:docs/CONFORMANCE.adoc[Conformance + Test Vectors] -* link:docs/CONFORMANCE-PLAN-v1.adoc[v1 Conformance Plan] -* link:docs/WEB-RENDERING.adoc[Web Rendering Options] -* link:docs/IANA-MEDIA-TYPE.adoc[IANA Media Type Draft] -* link:docs/COMPARISON.adoc[Comparison Matrix] -* link:docs/CITATIONS.adoc[Citation Guide] -* link:docs/demo.html[Demo (HTML)] - -== Prototype - -* link:prototype/rescript/README.adoc[ReScript Web Prototype] -* link:prototype/wasm/README.adoc[ReScript + WASM Prototype] -* link:prototype/ddraig/DemoBuild.idr[ddraig-ssg demo build] - -== Idris2 Core - -* link:src/A2ML/TypedCore.idr[Typed core stub] -* link:src/A2ML/Translator.idr[Translation stub] -* link:src/A2ML/Surface.idr[Surface AST] -* link:docs/AST-JSON.adoc[Surface AST JSON (prototype)] -* link:docs/DIRECTIVE-MAPPING.adoc[Directive Mapping (prototype)] -* link:docs/INLINE-RULES.adoc[Inline Rules (prototype)] - -== Vectors - -* link:docs/VECTORS.adoc[Vector Runner (Prototype)] - -== Core Tests - -* `just core-tests` (Idris2) - -== CLI - -* link:docs/CLI.adoc[CLI (prototype)] -* link:docs/a2ml.1[Man page] -* link:docs/PACKAGING.adoc[Packaging notes] -* `just package-cli` - -== Ada/SPARK TUI - -* link:prototype/ada-tui/docs/README.adoc[Ada/SPARK TUI (prototype)] - -== Release Notes - -* link:RELEASE-NOTES-v0.1.0.adoc[v0.1.0 Release Notes] -* link:RELEASE-NOTES-v0.5.0.adoc[v0.5.0 Release Notes] -* link:RELEASE-NOTES-v0.6.0.adoc[v0.6.0 Release Notes] -* link:RELEASE-NOTES-v1.0.0.adoc[v1.0.0 Release Notes] -* link:RELEASE-NOTES-v1.1.0.adoc[v1.1.0 Release Notes] - -== Announcement - -* link:docs/ANNOUNCEMENT.adoc[Announcement Draft] -* link:docs/STATE-OF-A2ML.adoc[State of A2ML] -* link:docs/V1-CRITERIA.adoc[v1.0.0 Criteria] - -== Status - -* *Stable specification, v1.1.0* (era v1). See link:VERSIONS.adoc[VERSIONS.adoc] - for the lineage; prior drafts (v0) and the frozen v1.0.0 release are under - link:archive/[archive/]. -* v1.1.0 is additive over v1.0.0: profile mechanism, base record vocabulary, - citation primitives, and canonical hashing — all inert under the base modes. -* Prototype parser + CLI + demo page available. -* Typed core + core tests passing (prototype). - -== License - -PMPL-1.0-or-later. See link:LICENSE[LICENSE]. diff --git a/a2ml/RECORD-DIALECT-SPEC.adoc b/a2ml/RECORD-DIALECT-SPEC.adoc deleted file mode 100644 index e7f723e0c..000000000 --- a/a2ml/RECORD-DIALECT-SPEC.adoc +++ /dev/null @@ -1,821 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML Record Dialect v1.0.0 Specification -:version: 1.0.0 -:date: 2026-07-03 -:status: Draft -:era: v1 -:toc: left -:toclevels: 3 -:icons: font -:sectnums: - -[abstract] -== Abstract - -The *A2ML Record Dialect* is a second concrete surface syntax for A2ML. Where the -markup dialect (link:SPEC.adoc[A2ML v1.1.0], "Module 0") carries prose-bearing -documents with `@directive:` blocks, the record dialect carries *pure data -records* with a TOML-family surface: `[section]` headers and `key = value` -entries. It exists because the seven canonical descriptive files that the -hyperpolymath estate deploys on every repository — `STATE`, `META`, `ECOSYSTEM`, -`AGENTIC`, `NEUROSYM`, `PLAYBOOK`, `ANCHOR` (working name *descriptiles*) — are -written in this surface, and until now the surface was *used* but never -*specified*: 435 files across the estate conform to a grammar that existed only -by imitation. - -The record dialect is **not a rival format**. It is a co-equal reader over the -same typed core defined in link:SPEC.adoc[A2ML v1.1.0] §3. Every record-dialect -document translates to an A2ML `Doc`; the validation modes (§4 of the core), -base invariants (§6), Base Record vocabulary (§7), profile mechanism (§8), and -canonical hash form (§9) apply *unchanged*. A profile such as `a2ml/state` -constrains a record-dialect document exactly as it constrains a markup-dialect -one, because both resolve to the same core structure. This is the point: one -abstract model, two surfaces, no third generation. - -This specification defines the record surface grammar, its value/type system, its -translation to the A2ML core, its conformance classes, and — normatively — its -divergences from TOML, so that an implementer cannot conform merely by piping the -input through a stock TOML parser. It ships with an executable conformance-vector -suite (§16). - -== 1. Introduction - -=== 1.1 Position In The Stack - -A2ML has one abstract data model and (as of this document) two concrete surfaces: - -[cols="1,2,2",options="header"] -|=== -| Surface | Shape | Fit - -| *Markup dialect* (link:SPEC.adoc[SPEC.adoc] §2) -| Djot-like `@directive:` blocks, prose, figures, opaque payloads -| Documents that carry human-readable text alongside structure. - -| *Record dialect* (this document) -| TOML-like `[section]` headers, `key = value` entries, arrays, inline tables -| Data records with no prose body: the descriptile family, config-like metadata. -|=== - -Both surfaces parse to the typed core `Doc` (link:SPEC.adoc[SPEC.adoc] §3.1). A -consumer that operates on the core — a profile validator, the canonical hasher, -the registry drift check — is *surface-agnostic*: it neither knows nor cares -which dialect produced the `Doc` it is handed. - -[NOTE] -==== -The markup dialect already defines an `@record` *block* directive with -`key: value` fields (link:SPEC.adoc[SPEC.adoc] §7.3). That is a record written -*inside a markup document*. The record dialect specified here is the *whole -document* being a record, in the surface the estate actually deploys (`key = -value`, not `key: value`; `[section]` headers, which the markup dialect has no -notion of). The two are reconciled in §7 of this document: an `@record` block and -a record-dialect `[section]` both denote the same core structure. -==== - -=== 1.2 Design Principles - -. *One model, many surfaces.* The record dialect adds a reader, never a second - source of truth. Semantics live in the core; this document defines only how - record surface maps onto it. -. *Specify what is deployed.* Every production in §2–§6 is grounded in the - observed corpus of 435 record-dialect files. Where the corpus is silent, the - rule is the *stricter* choice (fail-loudly doctrine), not the permissive one. -. *TOML-familiar, not TOML.* The surface is deliberately TOML-shaped so authors - and editors reuse muscle memory and syntax highlighting, but the conformance - bar is A2ML's, and the divergences (§12) are normative. -. *Data-only by default.* A base record-dialect document carries data and at most - a profile declaration. It grants no execution, network, or filesystem - capability — the same read-only guarantee the core makes for profiles - (link:SPEC.adoc[SPEC.adoc] §8.2). -. *Verifiable by construction.* A document's identity is its canonical hash (§11); - a profile's authority is its hash-pinned registry entry - (link:SPEC.adoc[SPEC.adoc] §8.5). Nothing in this dialect rests on trust of - surface bytes. - -=== 1.3 Conformance Language - -The key words *MUST*, *MUST NOT*, *REQUIRED*, *SHALL*, *SHALL NOT*, *SHOULD*, -*SHOULD NOT*, *RECOMMENDED*, *MAY*, and *OPTIONAL* in this document are to be -interpreted as described in RFC 2119 and RFC 8174 when, and only when, they -appear in all capitals. - -=== 1.4 Conformance Classes - -Conformance classes for the record dialect mirror the core validation modes -(link:SPEC.adoc[SPEC.adoc] §4) and are named with an `R` prefix to disambiguate -from the markup dialect: - -[cols="1,2,4",options="header"] -|=== -| Class | Core mode | Obligation - -| *R0 — Reader* -| Lax -| MUST parse every syntactically valid record-dialect document into a record tree - (§6) and, by extension, an A2ML `Doc` (§7). MUST accept a `@profile` declaration - and, if it does not resolve profiles, ignore it (inert). Emits warnings, not - errors, for missing/duplicate keys. This is the minimum useful class: a tool - that only *reads* descriptiles (a dashboard, an indexer) MAY stop here. - -| *R1 — Checked* -| Checked -| All of R0, plus: MUST reject the well-formedness errors enumerated in §2–§6 - and §9; MUST reject duplicate keys and duplicate section paths; MUST reject any - directive other than `@profile` unless an active profile permits it; MUST - enforce an active profile's required sections and required directives (§10). - -| *R2 — Attested* -| Attested -| All of R1, plus: MUST discharge the base invariants of §9 as proof obligations; - MUST compute the canonical hash (§11); MUST satisfy any `min_attestation` - declared by an active profile. Used for documents whose integrity is relied - upon downstream (e.g. a registry-pinned profile definition). -|=== - -A conforming implementation MUST document which class it implements. Class R_n_ -conformance implies the obligations of all classes below it. - -== 2. Lexical Structure - -=== 2.1 Character Set And Encoding - -A record-dialect document is a sequence of Unicode scalar values encoded as UTF-8. -A conforming parser: - -* MUST accept UTF-8 input and MUST NOT require a byte-order mark; if a leading - U+FEFF is present it MUST be ignored. -* MUST treat the input as UTF-8 and MUST reject (R1+) input that is not - well-formed UTF-8. -* MUST NOT perform newline translation, trimming, or any normalisation of bytes - inside a string value or a triple-quoted string (this preserves the §11 hash - and mirrors the core's opaque-payload fidelity rule, - link:SPEC.adoc[SPEC.adoc] §5). - -=== 2.2 Lines, Whitespace, Newlines - -* *Whitespace* is U+0020 SPACE and U+0009 TAB. Whitespace is insignificant except - inside string values and as a token separator. -* A *newline* is U+000A LF or the sequence U+000D U+000A CRLF. A bare U+000D not - followed by U+000A is invalid (R1+). -* A *blank line* is a line containing only whitespace. Blank lines are - insignificant and MAY appear anywhere between entries. - -=== 2.3 Comments - -A *comment* begins with U+0023 NUMBER SIGN (`#`) and continues to the end of the -line. Two positions are recognised, both observed pervasively in the corpus -(1,418 of 1,798 files carry trailing comments): - -* *Full-line comment*: a line whose first non-whitespace character is `#`. -* *Trailing comment*: a `#` appearing after the value of a `key = value` entry, - after a section header, or after a `@profile` declaration. - -A `#` inside a string value or triple-quoted string is a literal `#`, not a -comment. A `#` MAY appear inside a multi-line array between elements (corpus: -placeholder markers such as `# No milestones recorded`). Comments carry no -semantics and are discarded during translation to the core; they do not -contribute to the canonical hash (§11). - -[NOTE] -==== -The SPDX and copyright lines conventional at the top of estate files -(`# SPDX-License-Identifier: MPL-2.0`, `# Copyright (c) …`) are ordinary full-line -comments under this rule. They are *not* part of the record data and are not -hashed. SPDX presence is a repository-hygiene concern enforced elsewhere, not a -record-dialect obligation. -==== - -=== 2.4 Tokens - -The significant tokens are: `[`, `]`, `[[`, `]]`, `{`, `}`, `=`, `,`, `.`, the -`@profile` keyword-directive, bare keys, quoted keys, string literals, -triple-quoted string literals, integer literals, float literals, the boolean -keywords `true` and `false`, and newlines. All are defined in §3–§4. - -== 3. Surface Grammar - -This section is normative. Appendix A consolidates the same grammar. Where the -prose of §4–§6 and this EBNF differ, this section governs. The notation is -ISO/IEC 14977 EBNF with the conventions: `{ x }` is zero-or-more, `[ x ]` is -optional, `|` is alternation, `,` is concatenation, terminals are quoted. - -[source,ebnf] ----- -document = { blank-or-comment } , - { profile-decl , { blank-or-comment } } , - { section } ; - -blank-or-comment = ( comment-line | blank-line ) , newline ; - -profile-decl = "@profile" , ws , "(" , ws , "id" , ws , "=" , ws , - qualified-id , ws , ")" , [ trailing-comment ] , newline ; - -section = section-header , - { entry } ; - -section-header = ( std-header | array-header ) , - [ trailing-comment ] , newline ; -std-header = "[" , ws , key-path , ws , "]" ; -array-header = "[[" , ws , key-path , ws , "]]" ; - -entry = ( key-value | comment-line | blank-line ) , - ( newline | end-of-input ) ; - -key-value = key , ws , "=" , ws , value , [ trailing-comment ] ; - -key-path = key , { ws , "." , ws , key } ; -key = bare-key | quoted-key ; -bare-key = key-char , { key-char } ; -key-char = letter | digit | "_" | "-" ; -quoted-key = '"' , { basic-char } , '"' ; -qualified-id = bare-key , { "/" , bare-key } ; - -value = string - | multiline-string - | integer - | float - | boolean - | array - | inline-table ; - -string = '"' , { basic-char } , '"' ; -multiline-string = '"""' , { any-char - '"""' } , '"""' ; -boolean = "true" | "false" ; -integer = [ sign ] , digit , { digit | ( "_" , digit ) } ; -float = [ sign ] , digit , { digit | ( "_" , digit ) } , - ( ( "." , digit , { digit | ( "_" , digit ) } , [ exponent ] ) - | exponent ) ; -exponent = ( "e" | "E" ) , [ sign ] , digit , { digit } ; -sign = "+" | "-" ; - -array = "[" , array-body , "]" ; -array-body = { ws | newline | comment-line } , - [ value , { value-sep , value } , [ value-sep ] ] , - { ws | newline | comment-line } ; -value-sep = { ws | newline | comment-line } , "," , - { ws | newline | comment-line } ; - -inline-table = "{" , ws , - [ inline-pair , { ws , "," , ws , inline-pair } ] , - ws , "}" ; -inline-pair = key , ws , "=" , ws , value ; - -comment-line = ws , "#" , { any-char } ; -trailing-comment = ws , "#" , { any-char } ; -blank-line = ws ; - -basic-char = unescaped | escape-seq ; -escape-seq = "\" , ( '"' | "\" | "/" | "b" | "f" | "n" | "r" | "t" - | ( "u" , hex , hex , hex , hex ) ) ; -letter = "A".."Z" | "a".."z" ; -digit = "0".."9" ; -hex = digit | "a".."f" | "A".."F" ; -ws = { " " | "\t" } ; ----- - -*Grounding notes* (informative). Every construct above appears in the deployed -corpus: dotted `key-path` up to four segments (`[categories.CHS]`); `array-header` -(41 files); `inline-table` and arrays thereof (104 files); `multiline-string` -(29 files; `"""…"""` only — `'''` never observed and is not part of the grammar); -`quoted-key` (rare — 2 lines: `"--browser"`); uppercase in section-path segments -(81 headers). Bare *string* values were never observed (0 files); accordingly a -bare word that is neither a number, `true`, nor `false` is a syntax error (§4.7). - -== 4. Values And Types - -The record dialect has exactly six value forms and no others. This closed set is a -deliberate divergence from TOML (§12). - -=== 4.1 String - -A *string* is a sequence of `basic-char` delimited by `"`. It MUST be a single -logical line (no unescaped newline). The recognised escape sequences are exactly: -`\"`, `\\`, `\/`, `\b`, `\f`, `\n`, `\r`, `\t`, and `\uXXXX` (four hex digits, -denoting a Unicode scalar value). A backslash followed by any other character is -an error (R1+). The string's *value* is the sequence of scalar values after escape -resolution. - -=== 4.2 Multi-line String - -A *multi-line string* is delimited by `"""` and MAY contain newlines. Its bytes -between the delimiters are preserved verbatim except that the delimiters -themselves are removed; no escape processing and no whitespace trimming is -performed (corpus example: `purpose = """Bot fleet for repository quality -enforcement …"""`). A `"""` cannot appear inside a multi-line string. Byte -fidelity here is load-bearing for the §11 hash. - -=== 4.3 Integer - -An *integer* is an optionally-signed sequence of decimal digits, optionally with -`_` digit-group separators between digits. Leading, trailing, or doubled `_` is an -error. No hexadecimal, octal, or binary forms exist (§12). The value is a -mathematical integer; range is implementation-defined but an implementation MUST -represent at least the signed 64-bit range. - -=== 4.4 Float - -A *float* is an optionally-signed decimal with a fractional part, an exponent, or -both. `inf`, `nan`, and leading-dot forms (`.5`) do not exist (§12). The value is -a decimal real; precision is implementation-defined but MUST be at least IEEE-754 -binary64. - -=== 4.5 Boolean - -A *boolean* is the bare keyword `true` or `false`, lowercase only. - -=== 4.6 Array - -An *array* is an ordered, possibly heterogeneous sequence of values delimited by -`[` and `]`. It MAY span multiple lines; a trailing comma before `]` is permitted; -full-line comments MAY appear between elements. Nesting (arrays of arrays, arrays -of inline tables) is permitted to arbitrary depth. Order is significant to the -reader but not to the canonical hash unless the array is the value of a hashed key -(§11). - -=== 4.7 Inline Table - -An *inline table* is an unordered set of `key = value` pairs delimited by `{` and -`}`, written on a single logical line. Keys within one inline table MUST be unique -(R1+). Inline tables MAY nest and MAY be elements of an array (corpus: -`decisions = [ { id = "ADR-001", … } ]`). An inline table is a *table value*; it -is distinct from a `[section]` (§5), which is a document-structural construct. - -=== 4.8 Absence Of Bare Strings And Native Dates - -Any value token that is not a quoted string, a triple-quoted string, an integer, a -float, `true`, `false`, an array, or an inline table is a syntax error in all -classes including R0. In particular a *date* is written as a quoted string -(corpus: `last-updated = "2026-05-15"`, `timestamp = "2026-06-03T11:00:00Z"`); -there is no native date-time value form (§12). A profile MAY require that a given -string key match RFC 3339 (§10), but the surface treats it as a string. - -== 5. Document Structure - -=== 5.1 Preamble - -A document begins with an OPTIONAL *preamble* of blank lines, comment lines, and -zero or more `@profile` declarations. All `@profile` declarations MUST precede the -first section header; a `@profile` appearing after any section header is a -checked-mode error (mirrors link:SPEC.adoc[SPEC.adoc] §8.1). The SPDX/copyright -comment block conventional at the top of estate files lives here as comments. - -=== 5.2 Profile Declaration - -`@profile(id=)` declares that the document is authored under the -named profile. Semantics are inherited from link:SPEC.adoc[SPEC.adoc] §8.1 -without change: the `id` is a `QualifiedId` `/`; multiple -declarations compose by taking the union of constraints; the declaration is inert -under R0 if the reader does not resolve profiles. Resolution (against -`a2ml/profiles/REGISTRY.a2ml`) is defined by the core §8.3 and §8.5. - -=== 5.3 Sections - -A *section* is introduced by a header and contains the `key = value` entries, -comments, and blank lines up to the next header or end of input. There are two -header forms: - -* *Standard section* `[key-path]` — introduces (or, for a dotted path, addresses) - a table in the record tree (§6). -* *Array-of-tables* `[[key-path]]` — appends a new table to the array named by - `key-path`. Every `[[key-path]]` with the same path contributes one element to - that array, in source order. - -=== 5.4 Key-Paths And Nesting - -A `key-path` is one or more keys joined by `.`. `[a]` addresses the top-level -table `a`; `[a.b]` addresses table `b` nested within `a`; and so on to arbitrary -depth (four segments observed). Whitespace around the `.` is permitted and -insignificant. A dotted header MUST NOT redefine a path already fixed as a -non-table value; doing so is a checked-mode error (§9.2). - -=== 5.5 Entries - -Within a section, each non-comment, non-blank line is a `key = value` entry. A key -MAY be a `bare-key` or a `quoted-key`; a `quoted-key` is REQUIRED when the key -contains a character outside `key-char` (corpus: `"--browser"`). Keys within a -single table MUST be unique (§9.1). - -== 6. The Record Tree (Data Model) - -A record-dialect document denotes a *record tree*: a rooted tree whose interior -nodes are *tables* (ordered maps from key to node) and *arrays* (ordered -sequences of nodes), and whose leaves are the scalar values of §4.1–§4.5. - -Construction: - -. The root is a table. -. Each `@profile` declaration contributes to the document's ordered profile list - (not to the record tree; profiles are metadata about the tree, mirroring - `Doc.profiles` in the core). -. A standard section header `[p_1.p_2.…​.p_n]` ensures a table exists at the path - `p_1 → p_2 → … → p_n` from the root, creating intermediate tables as needed, and - makes it the *current table*. -. An array-of-tables header `[[p_1.…​.p_n]]` ensures an array exists at that path, - appends a fresh table to it, and makes that table the current table. -. Each `key = value` entry inserts `key ↦ value` into the current table. `value` - is realised as a leaf (scalar), a sub-table (inline table), or an array node. - -The record tree is the *canonical content* of the document for every downstream -purpose: profile validation (§10), the base invariants (§9), and the canonical -hash (§11) are all defined over the record tree, never over surface bytes. - -== 7. Mapping To The A2ML Core - -A record-dialect document translates to a core `Doc` -(link:SPEC.adoc[SPEC.adoc] §3.1) so that surface-agnostic consumers operate on it -unchanged. The translation is: - -[cols="2,3",options="header"] -|=== -| Record-dialect construct | Core `Doc` element - -| Each `@profile(id=ns/name)`, in source order -| An entry in `Doc.profiles` (`ProfileId`), identical to a markup `@profile`. - -| Each top-level section `[a] …` -| A `Section` block in `Doc.blocks` whose `id` is derived from the key-path (§7.1) - and whose content is the sub-tree rooted at that section. - -| A dotted section `[a.b]` -| Structure *within* the `Section` for `a`; it does not add a second top-level - block. Nesting in the record tree becomes nesting in the section's content. - -| An array-of-tables `[[a]]` (one or more) -| A single `Section` (or `Record` list) for `a` whose content is an ordered list - of tables — the core represents the repetition as list-structured content. - -| A `key = value` whose sub-tree matches the Base Record field set (§7.2) -| A `Record` block (link:SPEC.adoc[SPEC.adoc] §7): a `[section]` (or inline table) - carrying `id`, `source_span`, `hash`, `provenance`, `timestamp`, - `artefact_ref` IS a base record written in record surface, and is validated as - one. -|=== - -=== 7.1 Section Id Derivation - -The `id` of the `Section` produced from a top-level section is the section's -key-path with `.` retained as the separator (e.g. `[categories.CHS]` → id -`categories.CHS`). Ids MUST be unique within the document (core invariant §6.1); -two top-level sections with the same key-path are a checked-mode error (§9.2). An -implementation MAY additionally expose a slash-normalised form for `@ref` targets, -but the dotted form is canonical. - -=== 7.2 Equivalence Of `@record` And Record-Surface Base Records - -link:SPEC.adoc[SPEC.adoc] §7.3 writes a base record as an `@record:` block with -`key: value` fields. The record dialect writes the same base record as a -`[section]` (or inline table) with `key = value` fields. Both denote the identical -core `Record`; a validator MUST accept either surface for a base record and MUST -apply the §7.2 field requirements (`id`, `source_span`, `hash`, `provenance`, -`timestamp`, `artefact_ref` REQUIRED; `kind ∈ {human, ai, mechanical}` closed) -identically. This equivalence is what prevents the "desync" the core §7 warns -about: the same thing is literally the same fields regardless of surface. - -== 8. Validation Modes And Conformance - -The record dialect does not define its own modes. A document's mode is chosen by -the validator invocation and is one of the core modes lax/checked/attested -(link:SPEC.adoc[SPEC.adoc] §4), which correspond to classes R0/R1/R2 (§1.4). -Mode and profile remain orthogonal and compose by taking the stricter of the two -at every axis (link:SPEC.adoc[SPEC.adoc] §4.4). A profile MAY raise the effective -floor (via `min_attestation`) but MUST NOT lower it. - -== 9. Base Invariants In The Record Dialect - -The core base invariants (link:SPEC.adoc[SPEC.adoc] §6) apply to the translated -`Doc`. This section states their record-surface form. - -=== 9.1 Unique Keys - -Within any single table (a section, a dotted sub-table, one element of an -array-of-tables, or one inline table), each key MUST appear at most once. -Duplicate keys are a warning under R0 and an error under R1+. When an -implementation nonetheless proceeds under R0, last-write-wins is the defined -recovery, and the implementation MUST emit the duplicate-key warning. - -=== 9.2 Unique And Consistent Section Paths - -A given standard section path MUST be opened at most once (`[a]` … `[a]` again is -an error, R1+). A path used as a table MUST NOT also be used as a scalar or as an -array-of-tables, and vice versa; mixing structural kinds at one path is an error -(R1+). Array-of-tables `[[a]]` MAY of course repeat — that is its purpose. - -=== 9.3 Unique Ids - -The derived section ids (§7.1) MUST be unique (core §6.1). This follows from §9.2 -for top-level sections and is stated here because downstream `@ref` resolution -depends on it. - -=== 9.4 Resolved References - -If a value is used as an intra-document reference under an active profile's -reference-class rule (link:SPEC.adoc[SPEC.adoc] §8.2), the referenced id MUST -exist (core §6.2). The base surface imposes no reference semantics; references are -a profile concern (§10). - -=== 9.5 Required Sections - -An active profile MAY require named sections to be present (core §6.3, §8.2). In -the record dialect a "required section" is satisfied by a top-level `[section]` -whose key-path equals the required name. This is exactly the axis the shipped -`a2ml/*` profiles use (e.g. `a2ml/state` requires `metadata`, `position`, -`maintenance-status`). - -== 10. Profiles In The Record Dialect - -Profiles are defined once, in the core (link:SPEC.adoc[SPEC.adoc] §8), and are -surface-independent. A record-dialect document participates in the profile -mechanism as follows: - -* It declares a profile with `@profile(id=ns/name)` in its preamble (§5.2). -* The profile *definition* (`a2ml/profiles/-/PROFILE.a2ml`) constrains - the five permitted axes: required sections, allowed directives, required - directives, reference classes, minimum attestation - (link:SPEC.adoc[SPEC.adoc] §8.2). -* For the record dialect specifically: - ** *Required sections* map to required top-level `[section]` headers (§9.5). - ** *Allowed directives* is normally `closed [ profile ]` — a base record-dialect - document permits no directive other than `@profile`. A profile MAY widen this - (e.g. to permit an embedded `@record` block), but the base surface is - data-only. Any `@`-token other than a permitted directive is a checked-mode - error. - ** *Required directives*, *reference classes*, and *minimum attestation* apply - unchanged from the core. -* Resolution is offline and deterministic against the hash-pinned registry - (link:SPEC.adoc[SPEC.adoc] §8.3, §8.5). A profile a document cannot resolve is a - warning under R0 and an error under R1+. - -[NOTE] -==== -The seven descriptile profiles (`a2ml/state`, `a2ml/meta`, `a2ml/ecosystem`, -`a2ml/agentic`, `a2ml/neurosym`, `a2ml/playbook`, `a2ml/anchor`) are *already* -authored against this dialect — their `required_sections` name `[section]` -headers, and their prose calls the target "record-dialect A2ML". This -specification is the missing normative surface those profiles were written -against; it does not change them. -==== - -== 11. Canonical Form And Hashing - -A record-dialect document's canonical hash is the core *document canonical hash* -(link:SPEC.adoc[SPEC.adoc] §9.3) computed over the record tree (§6): - -. Translate the surface to the record tree (§6), discarding comments, blank lines, - and incidental whitespace, and resolving string escapes (§4.1). -. Serialise the record tree as canonical JSON per RFC 8785 (JCS): object keys - sorted lexicographically, no insignificant whitespace, UTF-8, shortest number - forms. Tables become JSON objects; arrays and arrays-of-tables become JSON - arrays; scalars become the corresponding JSON scalar (a multi-line string - becomes a JSON string of its verbatim bytes). -. `doc_hash = "sha256:" + lowerhex(SHA-256(canonical_json))`. - -Because keys are sorted and whitespace is dropped, two record-dialect documents -that differ only in key order, comment text, or formatting hash equal; any change -to structure, keys, or scalar values changes the hash. For a base record written -in record surface, the record's own `hash` field is the artefact hash per core -§9.2/§9.4 (the byte hash of the referenced artefact), *not* the `doc_hash` of the -containing document. - -[NOTE] -==== -The record tree contains no opaque payloads (those are a markup-dialect -construct), so the payload-substitution step of core §9.3 is a no-op here. A -multi-line string is hashed as an ordinary JSON string of its exact bytes, which -gives multi-line string values the same byte-fidelity guarantee opaque payloads -have in the markup dialect. -==== - -== 12. Divergences From TOML (Normative) - -The record surface is TOML-shaped, but conformance to this specification is *not* -implied by conformance to TOML, and vice versa. An implementation MUST NOT satisfy -R1+ merely by delegating to a stock TOML parser without applying the following -constraints. Each divergence is grounded in the deployed corpus or the fail-loudly -doctrine. - -[cols="1,3,3",options="header"] -|=== -| # | A2ML Record Dialect | TOML - -| D-1 -| *No native date-time.* Dates/times are quoted strings; a profile MAY require RFC - 3339. (Corpus: 0 native date literals; dates always quoted.) -| Offset date-time, local date-time, local date, and local time are first-class - value types. - -| D-2 -| *No bare strings.* Every string value MUST be quoted. A bare word that is not a - number/`true`/`false` is a syntax error. (Corpus: 0 bare string values.) -| TOML also requires quoting for strings, but permits bare *keys* only; A2ML - matches TOML on keys and is stricter in rejecting any accidental bare scalar. - -| D-3 -| *Reduced number forms.* Decimal integers and decimal floats only, with optional - `_` separators. No `0x`/`0o`/`0b`, no `inf`/`nan`, no leading-dot floats. -| Hexadecimal, octal, binary, `inf`, `nan`, and leading/trailing-dot forms are all - valid. - -| D-4 -| *`@profile` directive.* The preamble MAY carry `@profile(id=…)` — an A2ML - construct with no TOML analogue. It is the only directive a base document - permits. -| No directive syntax exists; a `@` at line start is a bare-key error. - -| D-5 -| *String value = quoted only; escapes are the JSON set.* Basic strings use - exactly `\" \\ \/ \b \f \n \r \t \uXXXX`. No TOML "literal strings" (single - quotes) and no `\U########` 8-digit form. (Corpus: 0 single-quoted string - values; `'''` never observed.) -| Literal strings (`'…'`), multi-line literal strings (`'''…'''`), and the - `\U########` escape are all valid. - -| D-6 -| *Closed value set of six forms* (§4). Anything else is a syntax error at R0. -| Extensible via the date-time and numeric-base forms above. - -| D-7 -| *Duplicate keys / re-opened sections are R1 errors with a defined R0 recovery* - (last-write-wins + mandatory warning). Structural-kind mixing at a path is an - error. (Fail-loudly doctrine.) -| Duplicate keys and re-opened standard tables are errors; A2ML additionally fixes - the lax-mode recovery behaviour so readers agree. - -| D-8 -| *Canonical hash is defined* (§11): JCS over the record tree. Two documents with - the same data hash equal regardless of key order or formatting. -| TOML defines no canonical form or hash. -|=== - -An implementation MAY use a TOML lexer as a starting point but MUST additionally: -reject the forms in D-1/D-3/D-5, treat `@profile` per §5.2, apply the §9 invariant -set, and compute the §11 hash. - -== 13. Security Considerations - -* *Read-only by construction.* A record-dialect document is data plus an optional - profile declaration. It cannot request execution, network, or filesystem - capability, and a profile cannot grant one (core §8.2). A consumer MUST NOT - derive capability from record content; any such policy lives outside A2ML. -* *Resource exhaustion.* Arbitrary array/table nesting and multi-line strings - admit adversarial inputs. A conforming validator SHOULD impose configurable - limits on document size, nesting depth, and string length, and MUST fail closed - (reject) rather than truncate when a limit is exceeded (mirrors core §12.2). -* *Injection.* Because there are no bare strings and no directive other than - `@profile`, the surface has no interpolation or reference-to-code affordance. A - `#` inside a string is literal; a validator MUST NOT treat string content as a - comment or directive. -* *Hash agility.* §11 pins SHA-256. A future minor version MAY add algorithms; a - validator MUST reject an unrecognised `sha…:` prefix rather than accept it - unverified (core §12.4). -* *Profile cycles.* Profile resolution MUST detect and reject cycles (core §12.3); - the record dialect adds no new resolution path. - -== 14. IANA And Media-Type Considerations - -The A2ML family's media-type registration is being consolidated; at the time of -writing three inconsistent forms are recorded across the repository -(`application/vnd.a2ml+text`, `text/a2ml`, `application/vnd.{format}+a2ml`). This -specification does *not* unilaterally resolve that inconsistency. It records only -the requirement that, once the family type is registered, the record dialect be -distinguishable from the markup dialect — RECOMMENDED via a `dialect=record` -parameter on the family media type rather than a separate type, since both -dialects share one core model. Resolution of the registration is tracked as an -open item for the A2ML maintainers (see `IANA-MEDIA-TYPE-APPLICATION.md`). - -== 15. Versioning - -* This document is versioned with SemVer, independently of the markup-dialect - `SPEC.adoc`, but within the same *era* (`v1`) and the same shared core. -* Additive changes (a new inert value form that no prior-conforming document uses, - a new optional constraint) are MINOR bumps. A change that would reject a - currently-conforming corpus document is a MAJOR bump and requires a migration - note and a deprecation window. -* Lineage convention: this `RECORD-DIALECT-SPEC.adoc` is the current normative - text; frozen prior versions live in `archive/`; lineage is recorded in - `VERSIONS.adoc` alongside the markup dialect. -* *Status of this document.* `Draft`. It is a faithful specification of the - *deployed* surface, but it has not yet been ratified by the owner, wired into - CI, or exercised against the full corpus by a reference validator. It MUST NOT - be cited as a ratified standard until (a) the conformance-vector suite (§16) - passes against a reference implementation and (b) a corpus conformance run - reports the residual non-conforming files. Both are tracked as the immediate - next steps (Appendix D). - -== 16. Conformance Vectors - -A specification is only evidenced if an implementer can test against it. This -document ships an executable conformance-vector suite at -`a2ml/tests/record-dialect/`: - -* `vectors/valid/*.a2ml` — documents that MUST parse (R0) and, where a profile is - declared, MUST validate (R1) against the profiles in `a2ml/profiles/`. -* `vectors/invalid/*.a2ml` — documents that MUST be rejected, each annotated with - the clause it violates and the class (R0/R1/R2) at which rejection is REQUIRED. -* `MANIFEST.a2ml` — itself a record-dialect document (dogfooding) enumerating each - vector, its expected verdict, and the section of this spec it exercises. -* `README.adoc` — how a validator consumes the suite and reports results. - -A reference validator conforms to class R_n_ iff it produces the expected verdict -for every vector whose required class is ≤ R_n_. The suite is the normative test -of this specification; where a vector and the prose disagree, that is a defect in -one of them and MUST be reconciled, not silently tolerated. - -== Appendix A: Consolidated Grammar - -The complete EBNF is the block in §3, reproduced by tooling into -`docs/GRAMMAR-RECORD.adoc` when that file is generated. §3 is normative where the -two differ. - -== Appendix B: Worked Example - -A real deployed `STATE.a2ml`, annotated against this specification: - -[source] ----- -# SPDX-License-Identifier: MPL-2.0 <1> -# STATE.a2ml — Gitbot Fleet project state <1> -@profile(id=a2ml/state) <2> - -[metadata] <3> -project = "gitbot-fleet" <4> -version = "2.0" -last-updated = "2026-04-05T22:00:00Z" <5> - -[route-to-mvp] -milestones = [ <6> - # No milestones recorded -] - -[architecture-decisions] -decisions = [ - { id = "ADR-001", status = "accepted" } <7> -] - -[position] -phase = "operational-deployment" # design | implementation | … <8> -completion-percentage = 85 <9> ----- -<1> Preamble comments (§5.1): SPDX/copyright; discarded, not hashed (§2.3). -<2> Profile declaration (§5.2); MUST precede the first section; inert under R0. -<3> Standard section header (§5.3) → a table `metadata` in the record tree and a - `Section` block with id `metadata` in the core (§7). -<4> `key = value` entry; the value is a quoted string (§4.1). -<5> A date is a quoted string, not a native date-time (D-1). -<6> Multi-line array with an interior comment (§4.6); trailing comma permitted. -<7> Array of inline tables (§4.6, §4.7). -<8> Trailing comment after a value (§2.3); discarded. -<9> Bare integer value (§4.3). - -The `a2ml/state` profile (§10) requires the sections `metadata`, `position`, and -`maintenance-status`; a validator at R1 checks their presence and rejects any -directive other than `@profile`. - -== Appendix C: Relationship To The A2ML Core And Markup Dialect - -[source] ----- - ┌─────────────────────────────┐ - surface A ──▶ │ Markup dialect (SPEC.adoc) │ ─┐ - (@directive:) └─────────────────────────────┘ │ translate - ├─▶ A2ML core Doc - ┌─────────────────────────────┐ │ (SPEC.adoc §3) - surface R ──▶ │ Record dialect (this doc) │ ─┘ │ - ([section]) └─────────────────────────────┘ │ - ▼ - modes §4 · invariants §6 · base record §7 - · profiles §8 · canonical hash §9 (all shared) ----- - -Both surfaces are readers; the core is the single source of semantics. A profile, -a hasher, or a drift check written against the core serves both dialects with no -per-surface code. - -== Appendix D: Immediate Next Steps (Informative) - -This document is `Draft`. To reach `Stable`, in order: - -. *Reference validator.* Extend the A2ML validator (Idris2 core + the shipped - binding) with a record-surface reader that emits the same typed `Doc`. The - markup reader already exists; this is a second front-end, not a second core. -. *Green the vectors.* Run the §16 suite against that validator; every vector MUST - produce its expected verdict. Wire the run into the root CI (a real job, not the - `|| echo SKIP` pattern the audit flagged). -. *Corpus conformance run.* Validate all 435 deployed record-dialect files at R1 - and publish the residual non-conforming set as findings (e.g. the observed - malformed timestamp `"…ZT00:00:00Z"`). This turns "435 files conform by - imitation" into "N files conform, M flagged" — evidence, not assertion. -. *Registry entry.* Add this spec to `.machine_readable/REGISTRY.a2ml` (stream - `foundation`) so its home is hash-tracked and drift-detected like every other - spec. -. *Owner ratification.* On green vectors + a published corpus run, the owner may - bump `Status` to `Stable` and cut the first tagged release. - ---- - -*Version*: 1.0.0 + -*Status*: Draft + -*Era*: v1 + -*Date*: 2026-07-03 + -*Lineage*: `VERSIONS.adoc` + -*Core*: link:SPEC.adoc[A2ML v1.1.0] (shared typed core, profiles, hashing) diff --git a/a2ml/RELEASE-NOTES-v0.1.0.adoc b/a2ml/RELEASE-NOTES-v0.1.0.adoc deleted file mode 100644 index f920487b2..000000000 --- a/a2ml/RELEASE-NOTES-v0.1.0.adoc +++ /dev/null @@ -1,30 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML v0.1.0 Release Notes -:toc: -:toclevels: 2 - -== Summary - -v0.1.0 is the initial public release of the A2ML specification. It establishes -a lightweight surface grammar, a typed core outline, conformance targets, and -reference prototypes for web rendering. - -== Highlights - -* Surface grammar draft and typed core outline -* Modular syntax design (Module 0 + opt-in extensions) -* Conformance guide + test vectors -* ReScript web prototype -* ReScript + WASM prototype (rescript-wasm-runtime) - -== Documents - -* `SPEC.adoc` - full specification -* `docs/GRAMMAR.adoc` - formal grammar appendix -* `docs/CONFORMANCE.adoc` - conformance rules -* `docs/QUICKSTART.adoc` - Module 0 quickstart - -== Notes - -This release is draft status and intended to gather feedback on grammar, -semantics, and tooling direction. diff --git a/a2ml/RELEASE-NOTES-v0.5.0.adoc b/a2ml/RELEASE-NOTES-v0.5.0.adoc deleted file mode 100644 index d5ed1840e..000000000 --- a/a2ml/RELEASE-NOTES-v0.5.0.adoc +++ /dev/null @@ -1,22 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML v0.5.0 Release Notes -:toc: -:toclevels: 2 - -== Summary - -v0.5.0 advances the prototype parser, inline AST, directive mapping, and -translator coverage, and formalizes inline rules in the spec. - -== Highlights - -* Inline AST parser and renderer -* Directive attribute rendering in HTML -* Translator support for fig/table/refs directives -* New vectors for refs, tables, and inline edge cases -* Inline parsing rules documented - -== Documents - -* `docs/INLINE-RULES.adoc` -* `docs/DIRECTIVE-MAPPING.adoc` diff --git a/a2ml/RELEASE-NOTES-v0.6.0.adoc b/a2ml/RELEASE-NOTES-v0.6.0.adoc deleted file mode 100644 index 6ce9b7a5b..000000000 --- a/a2ml/RELEASE-NOTES-v0.6.0.adoc +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML v0.6.0 Release Notes -:toc: -:toclevels: 2 - -== Summary - -v0.6.0 hardens the Module 0 prototype and documentation: directive parsing is -more precise, references are validated consistently, opaque payloads preserve -raw content, and the vector suite is aligned and passing end-to-end. - -== Highlights - -* Directive headers require a trailing `:` and parse attributes reliably -* `@refs` parses one paragraph per non-blank line -* `@opaque` preserves raw payload bytes through parsing and rendering -* Vector suite passes with updated expectations -* ReScript prototype cleaned for v12 (JSON.Encode, JsError, esmodule) -* CLI docs updated with exit codes and multi-file usage - -== Documents - -* `SPEC.adoc` -* `docs/GRAMMAR.adoc` -* `docs/CONFORMANCE.adoc` -* `docs/CLI.adoc` diff --git a/a2ml/RELEASE-NOTES-v1.0.0.adoc b/a2ml/RELEASE-NOTES-v1.0.0.adoc deleted file mode 100644 index 685bf0997..000000000 --- a/a2ml/RELEASE-NOTES-v1.0.0.adoc +++ /dev/null @@ -1,375 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML v1.0.0 Release Notes -:toc: -:toclevels: 2 -:icons: font - -== Overview - -A2ML v1.0.0 is the first stable release of the Attested Markup Language, featuring a formally verified Idris2 core, complete tooling suite, and comprehensive documentation. - -**Release Date:** 2026-01-30 - -== Highlights - -=== Formally Verified Core - -- **Idris2 implementation** with dependent types -- **4 proven theorems**: Uniqueness, reference resolution, validation, attestation -- **Total functions**: No partial functions, guaranteed termination -- **Type-safe parsing**: Compile-time guarantees - -See: src/A2ML/Proofs.idr, docs/IDRIS2-CORE.adoc - -=== Complete Tooling Suite - -- **CLI** (`a2ml`): 5 commands (validate, check, format, convert, stats) -- **REPL** (`a2ml-repl`): Interactive development with 12 commands -- **LSP server** (architecture): Editor integration (VS Code, Neovim, Emacs) -- **Format converters**: Markdown, HTML, Djot, LaTeX, PlainText - -See: docs/TOOLING.adoc - -=== Self-Documentation (Dogfooding) - -A2ML documents itself using A2ML: - -- README.a2ml -- SPEC.a2ml -- docs/IANA-MEDIA-TYPE.a2ml - -CI validates all .a2ml files and generates HTML/Markdown/LaTeX outputs. - -=== Performance - -- **Small docs** (<1KB): <50ms -- **Medium docs** (~10KB): <200ms -- **Large docs** (~100KB): <1s -- **RFC-sized** (~1.8MB): <15s - -Target: 2-3x CommonMark speed with full validation. - -See: docs/PERFORMANCE.adoc - -== What's New in v1.0.0 - -=== Core Features - -- [x] Surface grammar (EBNF specification) -- [x] Typed core (Idris2 with dependent types) -- [x] Progressive strictness (lax → checked → attested) -- [x] Unique ID validation -- [x] Reference resolution -- [x] Opaque payload preservation -- [x] 29 comprehensive tests - -=== Directives - -- `@abstract:` - Document abstract -- `@refs:` - References/bibliography -- `@fig:` - Figures with captions -- `@table:` - Tables with captions -- `@opaque:` - Byte-for-byte preservation - -=== CLI Commands - -- `a2ml validate ` - Full validation with proofs -- `a2ml check ` - Quick syntax check -- `a2ml format ` - Format according to style guide -- `a2ml convert ` - Convert between formats -- `a2ml stats ` - Document statistics - -=== REPL Commands - -- `:load ` - Load A2ML document -- `:parse ` - Parse A2ML text -- `:validate` - Validate current document -- `:show` - Show current document -- `:convert ` - Convert to format -- `:save ` - Save current document - -=== Format Converters - -- **Markdown**: CommonMark output -- **HTML**: HTML5 with semantic markup -- **Djot**: Djot with {#id} attributes -- **LaTeX**: Complete document with hyperref -- **PlainText**: Content-only export - -== Breaking Changes from v0.x - -=== 1. Idris2 Core Required - -v0.x had a ReScript prototype. v1.0.0 uses Idris2 for the formal core. - -**Migration**: Install Idris2 (https://idris-lang.org) - -=== 2. Stricter Validation - -v0.x allowed unresolved references in lax mode. v1.0.0 enforces resolution in checked/attested modes. - -**Migration**: Ensure all `@ref()` calls resolve to existing IDs. - -=== 3. Changed Directive Syntax - -v0.x: `@abstract` (no colon) -v1.0.0: `@abstract:` (with colon) - -**Migration**: Add `:` to all directive headers. - -=== 4. Removed Experimental Features - -- Removed: `@meta` directive (use front matter instead) -- Removed: Inline math (use `@opaque(lang="latex")` for now) - -=== 5. CLI Exit Codes - -v0.x returned 0 on parse errors. v1.0.0 uses proper exit codes: - -- `0`: Valid document -- `1`: Validation errors -- `2`: Parse errors -- `3`: File not found - -**Migration**: Update CI scripts to check exit codes. - -== Migration Guide - -=== From v0.6.0 to v1.0.0 - -==== Step 1: Update Directive Syntax - -[source,bash] ----- -# Add colons to directives -sed -i 's/@abstract$/@abstract:/' *.a2ml -sed -i 's/@refs$/@refs:/' *.a2ml -sed -i 's/@end$/@end/' *.a2ml # @end stays the same ----- - -==== Step 2: Validate IDs and References - -[source,bash] ----- -# Check for unresolved references -a2ml validate your-doc.a2ml - -# Fix errors: -# - Add missing sections for unresolved @ref() calls -# - Ensure all sections have unique IDs ----- - -==== Step 3: Update Build Scripts - -[source,diff] ----- -- # v0.x (ReScript) -- rescript build -- node prototype/rescript/src/cli.bs.js validate doc.a2ml - -+ # v1.0.0 (Idris2) -+ idris2 --build a2ml.ipkg -+ build/exec/a2ml validate doc.a2ml ----- - -==== Step 4: Test Rendering - -[source,bash] ----- -# Generate HTML to verify no rendering regressions -a2ml convert a2ml html your-doc.a2ml > output.html - -# Compare with v0.x output -diff v0-output.html output.html ----- - -=== From Markdown to A2ML - -==== Step 1: Convert Syntax - -[source,bash] ----- -# Headings: already compatible -# (no changes needed) - -# Code blocks: add @opaque wrapper -# Before (Markdown): -```python -print("Hello") -``` - -# After (A2ML): -@opaque(lang="python"): -print("Hello") -@end ----- - -==== Step 2: Add Metadata - -[source,a2ml] ----- -# Your Document Title - -@abstract: -This is the abstract/summary of your document. -@end - -# ... rest of document ... - -@refs: -[1] Citation 1 -[2] Citation 2 -@end ----- - -==== Step 3: Validate - -[source,bash] ----- -a2ml validate converted-doc.a2ml ----- - -== Known Issues - -=== v1.0.0 Limitations - -1. **LSP server**: Architecture defined, implementation planned for v1.1 -2. **Incremental parsing**: Not yet implemented, full reparse on change -3. **Parallel validation**: Single-threaded, planned for v1.1 -4. **Windows support**: Not tested, Linux/macOS only - -=== Workarounds - -- **LSP**: Use CLI in watch mode for now -- **Large docs**: Use `a2ml check` (faster) instead of `validate` -- **Windows**: Use WSL2 or wait for v1.1 - -== Deprecations - -The following features are deprecated and will be removed in v2.0.0: - -- **ReScript prototype**: Replaced by Idris2 core -- **v0.x directive syntax**: Use `:` on directive headers - -== Security - -=== Security Audit - -- **Fuzz testing**: 100+ random inputs, no crashes -- **Input validation**: All user input validated -- **Memory safety**: Idris2 guarantees (no buffer overflows) -- **Opaque payloads**: Not executed by default - -=== CVEs - -No known security vulnerabilities in v1.0.0. - -Report security issues to: j.d.a.jewell@open.ac.uk - -== Upgrade Path - -| Current Version | Upgrade Path | Notes | -|-----------------|--------------|-------| -| v0.1.0 | → v0.6.0 → v1.0.0 | Two-step upgrade | -| v0.5.0 | → v0.6.0 → v1.0.0 | Two-step upgrade | -| v0.6.0 | → v1.0.0 | Direct upgrade | - -== Package Availability - -=== Official Packages - -- [x] **Source**: github.com/hyperpolymath/a2ml -- [x] **Homebrew**: `brew install a2ml` (submitted) -- [ ] **AUR**: `yay -S a2ml` (planned) -- [ ] **Nix**: `nix-env -iA nixpkgs.a2ml` (planned) -- [ ] **Cargo**: `cargo install a2ml` (v1.1) - -=== Build from Source - -[source,bash] ----- -# Clone repository -git clone https://github.com/hyperpolymath/standards.git -# Note: A2ML is located in standards/a2ml -cd a2ml - -# Build CLI -cd cli -./build.sh - -# Install -sudo cp ../build/exec/a2ml /usr/local/bin/ ----- - -== Documentation - -=== New Documentation - -- **IDRIS2-CORE.adoc**: Formal core implementation -- **TOOLING.adoc**: Complete tooling guide -- **PERFORMANCE.adoc**: Benchmarks and optimization -- **MIGRATION-GUIDE.adoc**: v0.x → v1.0.0 migration - -=== Updated Documentation - -- **SPEC.adoc**: Updated to reflect v1.0.0 -- **README.adoc**: Updated with v1.0.0 features -- **CONFORMANCE.adoc**: v1.0.0 conformance criteria - -== Testing - -=== Test Coverage - -- **Unit tests**: 29 tests (src/A2ML/Tests.idr) -- **Conformance tests**: Full spec coverage -- **Stress tests**: RFC-sized documents (1.8MB) -- **Fuzz tests**: 100+ random inputs - -=== CI/CD - -- **GitHub Actions**: Validate on every push -- **Benchmarks**: Track performance regressions -- **Release automation**: Automated builds for Linux/macOS - -== Contributors - -**Core Team**: -- Jonathan D.A. Jewell - -**Co-Authored-By**: -- Claude Sonnet 4.5 - -== License - -PMPL-1.0-or-later - -See LICENSE for details. - -== Acknowledgments - -- Idris2 community for the powerful type system -- Djot for inspiration on lightweight markup -- Markdown community for establishing the baseline - -== What's Next - -=== v1.1.0 Roadmap (Q2 2026) - -- LSP server implementation -- Incremental parsing -- Parallel validation -- Windows support -- VS Code extension - -=== v2.0.0 Vision (2027) - -- JIT compilation -- GPU-accelerated parsing -- Multi-file projects -- Advanced attestation (blockchain) - ---- - -**Released:** 2026-01-30 -**Author:** Jonathan D.A. Jewell -**Co-Authored-By:** Claude Sonnet 4.5 diff --git a/a2ml/RELEASE-NOTES-v1.1.0.adoc b/a2ml/RELEASE-NOTES-v1.1.0.adoc deleted file mode 100644 index 14f4e9063..000000000 --- a/a2ml/RELEASE-NOTES-v1.1.0.adoc +++ /dev/null @@ -1,111 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML v1.1.0 Release Notes -:toc: -:toclevels: 2 -:icons: font - -== Overview - -A2ML v1.1.0 is a *stable, additive* release in era v1. Every v1.0-conforming -document is a v1.1-conforming document. The new surface introduced in v1.1 is -*inert under the base modes* and acquires meaning only when a profile selects it. - -*Release Date:* 2026-06-03 + -*Era:* v1 + -*Supersedes:* v1.0.0 (now frozen under `archive/SPEC-v1.0.0.adoc`) - -== Highlights - -=== Profile Mechanism - -A2ML now has a first-class, non-executable *profile* system. - -* Declare a profile in a document with `@profile(id=ns/name)`. -* Define a profile with `@profile-def`, constraining exactly five axes: required - sections, allowed/required directives, reference classes, and minimum - attestation level. -* Profiles are resolved *offline and deterministically* against a hash-pinned - registry (`profiles/REGISTRY.a2ml`) — SSOT + verifiable index, one home per - profile, no duplicated normative text. -* Profiles can only *raise* the validation bar. They never grant execution, - network, or filesystem capability. - -See `SPEC.adoc` §8. - -=== Base Record Vocabulary — the anti-desync primitive - -One neutral shape, `@record`, for "a thing that can be identified, located, -attributed, and integrity-checked": `id`, `source_span`, `canonical_node` -(OPTIONAL), `hash` (sha256), `provenance{author, tool, kind∈{human,ai,mechanical}, -agent?}`, `timestamp`, `artefact_ref`, `profile_decl` (OPTIONAL). - -Downstream record formats reuse this vocabulary *verbatim* instead of -re-inventing identity/provenance/integrity — which is how artefacts stay in sync. -A2ML core defines the shape and names no consumer. - -See `SPEC.adoc` §7. - -=== Citation Primitives - -`@cite`, `@rationale`, `@origin`, `@source_span`, `@canonical_node` are now -representable in base A2ML — but carry *no semantics by default*. They are -required and validated only under a citation profile, which A2ML core does not -ship (consumers define their own). - -See `SPEC.adoc` §10. - -=== Canonical Hash Form (hashing now, signing later) - -* Opaque payload hash: `sha256:` over the exact preserved bytes, no normalisation. -* Document hash: `sha256:` over an RFC 8785 (JCS) canonical serialization of the - typed core, with opaque payloads committed by reference. Stable under surface - reformatting; sensitive to any structural change. -* Signing is *reserved and inert* in v1.1. What will be signed is already pinned: - a `doc_hash`. - -See `SPEC.adoc` §9. - -=== Surface Additions - -* Self-closing (inline) directive form: `@name(attrs)` on one line, no `@end`. -* `QualifiedId` (`ns/name`) for profile ids and reference classes. - -== Lineage - -This release applies the estate lineage convention to the `a2ml/` tree: - -* `SPEC.adoc` — current normative spec (v1.1.0). -* `archive/SPEC-v1.0.0.adoc`, `archive/SPEC-v0-draft.adoc(.a2ml)` — frozen. -* `VERSIONS.adoc` — lineage + era (single source of truth for "what is current"). - -The README status line (previously "Draft, v0.6.0") is reconciled to -"Stable, v1.1.0". - -== Compatibility - -* *No breaking changes.* v1.1.0 is additive over v1.0.0. -* Implementations that do not resolve profiles MUST treat `@profile` as an inert - annotation and MUST accept the v1.1 directives without error. - -== Idris2 Core - -The typed core gains decidable checks for the new surface: - -* `src/A2ML/Profiles.idr` — profile ids, profile definitions, and decidable - conformance of a document against an active profile. -* `src/A2ML/BaseVocab.idr` — base record vocabulary, the closed `provenance.kind` - enum, and decidable base-record validity. - -== What's Next - -* A citation profile reference (authored by consumers, in their own repos). -* Signing semantics (trust roots, rotation) in a later minor version. - -== License - -See `LICENSE`. - ---- - -*Released:* 2026-06-03 + -*Author:* Jonathan D.A. Jewell diff --git a/a2ml/ROADMAP.adoc b/a2ml/ROADMAP.adoc deleted file mode 100644 index 796388260..000000000 --- a/a2ml/ROADMAP.adoc +++ /dev/null @@ -1,61 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML Roadmap - -== Current Status - -Design phase complete. v0.6.0 draft includes hardened Module 0 parsing, -aligned vectors, refreshed docs, demo build, and core tests passing. - -== Milestones - -=== v0.1.0 - Spec Freeze (Draft) -* [x] Surface grammar draft -* [x] Typed core outline -* [x] Module 0 quickstart -* [x] Formal grammar appendix (EBNF + tokens) -* [x] Conformance and test vectors -* [x] Release notes + announcement draft - -=== v0.2.0 - Reference Parser (Prototype) -* [x] Module 0 parser (surface -> AST) (prototype in `prototype/rescript/`) -* [x] HTML renderer (basic) (prototype in `prototype/rescript/`) -* [x] Lax/checked mode validation (basic) -* [x] Publish web demo page -* Target: 2026-03 - -=== v0.3.0 - Attestation Core -* [ ] Idris2 typed core encoding -* [ ] Proof obligations for invariants -* [ ] Opaque payload round-trip tests -* Target: 2026-05 - -=== v0.6.0 - Prototype Hardening -* [x] Directive parsing tightened (`@refs`, `@opaque`, attrs) -* [x] Vector suite aligned and passing -* [x] CLI docs and help updated -* [x] Web demo published -* [x] Core tests runnable via `just core-tests` -* Target: 2026-02 - -=== v0.4.0 - Web Rendering -* [ ] JS/Rescript parser/renderer -* [ ] Web component for client-side rendering -* [ ] WASM demo page (rescript-wasm-runtime) -* Target: 2026-07 - -=== v1.0.0 - Stable -* [ ] Spec stabilization and IANA submission -* [ ] Compatibility tests across renderers -* [ ] Formal conformance suite -* Target: 2026-10 - -== Future Directions - -* Additional surface syntax variants (Djot-compatible, strict mode) -* PDF/LaTeX renderers -* Policy bundles for domain-specific invariants -* Signed attestation metadata and canonical hash format - -== v1.0.0 Criteria - -See link:docs/V1-CRITERIA.adoc[V1-CRITERIA] for the acceptance checklist. diff --git a/a2ml/RSR_OUTLINE.adoc b/a2ml/RSR_OUTLINE.adoc deleted file mode 100644 index 94a49d830..000000000 --- a/a2ml/RSR_OUTLINE.adoc +++ /dev/null @@ -1,218 +0,0 @@ -= RSR Template Repository - -image:[Palimpsest-MPL-1.0,link="https://github.com/hyperpolymath/palimpsest-license"] image:[Palimpsest,link="https://github.com/hyperpolymath/palimpsest-license"] -:toc: -:sectnums: - -// Badges -image:https://img.shields.io/badge/RSR-Infrastructure-cd7f32[RSR Infrastructure] -image:https://img.shields.io/badge/Phase-Maintenance-brightgreen[Phase] -image:https://img.shields.io/badge/Guix-Primary-purple?logo=gnu[Guix] - -== Overview - -**The canonical template for RSR (Rhodium Standard Repository) projects.** - -This repository provides the standardized structure, configuration, and tooling for all 139 repos in the hyperpolymath ecosystem. Use it to: - -* Bootstrap new projects with RSR compliance -* Reference the standard directory structure -* Copy configuration templates (Justfile, STATE.scm, etc.) - -== Quick Start - -[source,bash] ----- -# Clone the template -git clone https://github.com/hyperpolymath/RSR-template-repo my-project -cd my-project - -# Remove template git history -rm -rf .git -git init - -# Customize -sed -i 's/RSR-template-repo/my-project/g' Justfile guix.scm README.adoc - -# Enter development environment -guix shell -D -f guix.scm - -# Validate compliance -just validate-rsr ----- - -== What's Included - -[cols="1,3"] -|=== -|File/Directory |Purpose - -|`.editorconfig` -|Editor configuration (indent, charset) - -|`.gitignore` -|Standard ignore patterns - -|`.guix-channel` -|Guix channel definition - -|`.well-known/` -|RFC-compliant metadata (security.txt, ai.txt, humans.txt) - -|`docs/` -|Documentation directory - -|`guix.scm` -|Guix package definition - -|`justfile` -|Task runner with 50+ recipes - -|`LICENSE.txt` -|AGPL + Palimpsest dual license - -|`README.adoc` -|This file - -|`RSR_COMPLIANCE.adoc` -|Compliance tracking - -|`STATE.scm` -|Project state checkpoint -|=== - -== Justfile Features - -The template Justfile provides: - -* **~10 billion recipe combinations** via matrix recipes -* **Cookbook generation**: `just cookbook` → `docs/just-cookbook.adoc` -* **Man page generation**: `just man` → `docs/man/project.1` -* **RSR validation**: `just validate-rsr` -* **STATE.scm management**: `just state-touch`, `just state-phase` -* **Container support**: `just container-build`, `just container-push` -* **CI matrix**: `just ci-matrix [stage] [depth]` - -=== Key Recipes - -[source,bash] ----- -just # Show all recipes -just help # Detailed help -just info # Project info -just combinations # Show matrix options - -just build # Build (debug) -just test # Run tests -just quality # Format + lint + test -just ci # Full CI pipeline - -just validate # RSR + STATE validation -just docs # Generate all docs -just cookbook # Generate Justfile docs - -just guix-shell # Guix dev environment -just container-build # Build container ----- - -== Directory Structure - -[source] ----- -project/ -├── .editorconfig # Editor settings -├── .gitignore # Git ignore -├── .guix-channel # Guix channel -├── .well-known/ # RFC metadata -│ ├── ai.txt -│ ├── humans.txt -│ └── security.txt -├── config/ # Nickel configs (optional) -├── docs/ # Documentation -│ ├── generated/ -│ ├── man/ -│ └── just-cookbook.adoc -├── guix.scm # Guix package -├── Justfile # Task runner -├── LICENSE.txt # Dual license -├── README.adoc # Overview -├── RSR_COMPLIANCE.adoc # Compliance -├── src/ # Source code -├── STATE.scm # State checkpoint -└── tests/ # Tests ----- - -== RSR Compliance - -=== Language Tiers - -* **Tier 1** (Gold): Rust, Elixir, Zig, Ada, Haskell, ReScript -* **Tier 2** (Silver): Nickel, Racket, Guile Scheme, Nix -* **Infrastructure**: Guix channels, derivations - -=== Required Files - -* `.editorconfig` -* `.gitignore` -* `justfile` -* `README.adoc` -* `RSR_COMPLIANCE.adoc` -* `LICENSE.txt` (AGPL + Palimpsest) -* `.well-known/security.txt` -* `.well-known/ai.txt` -* `.well-known/humans.txt` -* `guix.scm` OR `flake.nix` - -=== Prohibited - -* Python outside `salt/` directory -* TypeScript/JavaScript (use ReScript) -* CUE (use Guile/Nickel) -* `Dockerfile` (use `Containerfile`) - -== STATE.scm - -The STATE.scm file tracks project state: - -[source,scheme] ----- -(define state - `((metadata - (project . "my-project") - (updated . "2025-12-10")) - (position - (phase . implementation) ; design|implementation|testing|maintenance|archived - (maturity . beta)) ; experimental|alpha|beta|production|lts - (ecosystem - (part-of . ("RSR Framework")) - (depends-on . ())))) ----- - -== Badge Schema - -Generate badges from STATE.scm: - -[source,bash] ----- -just badges standard ----- - -See `docs/BADGE_SCHEMA.adoc` for the full badge taxonomy. - -== Ecosystem Integration - -This template is part of: - -* **STATE.scm Ecosystem**: Conversation checkpoints -* **RSR Framework**: Repository standards -* **Consent-Aware-HTTP**: .well-known compliance - -== License - -SPDX-License-Identifier: MPL-2.0 - -== Links - -* https://github.com/hyperpolymath/elegant-STATE[elegant-STATE] - STATE.scm tooling -* https://github.com/hyperpolymath/conative-gating[conative-gating] - Policy enforcement -* https://rhodium.sh[Rhodium Standard] - RSR documentation diff --git a/a2ml/SECURITY-SETUP.adoc b/a2ml/SECURITY-SETUP.adoc deleted file mode 100644 index ac92d64d6..000000000 --- a/a2ml/SECURITY-SETUP.adoc +++ /dev/null @@ -1,242 +0,0 @@ -== Security Configuration for a2ml.net - -=== Overview - -This site is configured with maximum security settings on Cloudflare’s -free tier, including: - -* *TLS 1.3* minimum (no TLS 1.2 or older) -* *HSTS* with preload (max-age=31536000, includeSubDomains) -* *Strict SSL/TLS* mode -* *HTTP/2 and HTTP/3 (QUIC)* enabled -* *Brotli compression* -* *Consent-Aware HTTP* (GDPR/privacy compliance) -* *RFC 9116 compliant* security.txt - -=== DNS Configuration - -==== A Records (GitHub Pages) - -Both root (@) and www use A records for consistency: - -.... -@ A 185.199.108.153 -@ A 185.199.109.153 -@ A 185.199.110.153 -@ A 185.199.111.153 - -www A 185.199.108.153 -www A 185.199.109.153 -www A 185.199.110.153 -www A 185.199.111.153 -.... - -*Why A records for www instead of CNAME?* - Consistent behavior with -root domain - No CNAME chain resolution needed - Direct control over IP -addresses - Better for SEO (some crawlers prefer consistency) - -==== AAAA Records (IPv6) - -.... -@ AAAA 2606:50c0:8000::153 -@ AAAA 2606:50c0:8001::153 -@ AAAA 2606:50c0:8002::153 -@ AAAA 2606:50c0:8003::153 - -www AAAA 2606:50c0:8000::153 -www AAAA 2606:50c0:8001::153 -www AAAA 2606:50c0:8002::153 -www AAAA 2606:50c0:8003::153 -.... - -==== CAA Records (Certificate Authority Authorization) - -.... -@ CAA 128 issue "letsencrypt.org" -@ CAA 128 issuewild "letsencrypt.org" -@ CAA 128 issue "digicert.com" -@ CAA 128 iodef "mailto:security@a2ml.net" -.... - -*Flag 128 = Critical*: If a CA doesn’t understand the CAA record, it -MUST refuse to issue the certificate. - -==== Email Security - -.... -@ TXT "v=spf1 include:_spf.github.com ~all" -_dmarc TXT "v=DMARC1; p=reject; rua=mailto:security@a2ml.net" -.... - -=== Cloudflare Security Settings - -==== TLS/SSL - -* *Minimum TLS Version*: 1.3 -* *SSL Mode*: Strict (Full with certificate verification) -* *Always Use HTTPS*: On -* *Automatic HTTPS Rewrites*: On -* *Opportunistic Encryption*: On -* *TLS 1.3 0-RTT*: On - -==== HSTS (HTTP Strict Transport Security) - -.... -Strict-Transport-Security: max-age=31536000; includeSubDomains; preload -.... - -* *Max Age*: 31536000 seconds (1 year) -* *Include Subdomains*: Yes -* *Preload*: Yes (eligible for browser preload lists) - -To add to Chrome’s preload list: https://hstspreload.org/ - -==== Security Headers - -* *X-Content-Type-Options*: nosniff -* *X-Frame-Options*: SAMEORIGIN -* *X-XSS-Protection*: 1; mode=block -* *Referrer-Policy*: strict-origin-when-cross-origin -* *Permissions-Policy*: Configured via meta tags or headers - -==== Performance - -* *HTTP/2*: Enabled -* *HTTP/3 (QUIC)*: Enabled -* *Brotli Compression*: Enabled -* *0-RTT Connection Resumption*: Enabled - -==== Bot Management - -* *Security Level*: Medium (allows search bots) -* *Browser Integrity Check*: On -* *Challenge Passage*: 30 minutes -* *Email Obfuscation*: On - -=== Consent-Aware HTTP - -This site implements consent-aware-http for GDPR/privacy compliance. - -==== Consent Categories - -[arabic] -. *Essential* (always on) -* Core site functionality -* Security features -* Session management -. *Functional* -* Enhanced features -* User preferences -* Language settings -. *Analytics* -* Anonymous usage statistics -* Performance monitoring -* Error tracking -. *Marketing* -* Advertising -* Campaign tracking -* Social media integration -. *Personalization* -* Customized content -* Recommendations -* User profiling - -==== Implementation - -*Cloudflare Worker* (consent-aware-http.js) intercepts all requests and: -1. Checks for `+user-consent+` cookie 2. Validates consent level matches -resource requirements 3. Returns 403 if consent not granted 4. Passes -request to origin if consent valid - -*Frontend* includes consent banner allowing users to: - View current -consent settings - Grant/revoke consent per category - Export consent -preferences - Delete all tracking data - -==== Testing Consent - -[source,bash] ----- -# Without consent cookie (essential only) -curl https://a2ml.net/api/analytics -# → 403 Forbidden (requires analytics consent) - -# With analytics consent -curl -b "user-consent=%7B%22analytics%22%3Atrue%7D" \ - https://a2ml.net/api/analytics -# → 200 OK - -# Essential resources always work -curl https://a2ml.net/ -# → 200 OK (no consent needed) ----- - -=== .well-known/security.txt - -RFC 9116 compliant security contact information: - -.... -https://a2ml.net/.well-known/security.txt -.... - -Contains: - Security contact emails - GitHub security advisory links - -PGP encryption keys - Security policy links - Acknowledgments page - -Consent-aware-http endpoints - Expiration date (1 year) - -=== Verification - -==== Check DNS Records - -[source,bash] ----- -dig a2ml.net A +short -dig a2ml.net AAAA +short -dig a2ml.net CAA +short -dig _dmarc.a2ml.net TXT +short ----- - -==== Check TLS Configuration - -[source,bash] ----- -curl -I https://a2ml.net | grep -i strict-transport ----- - -==== Check security.txt - -[source,bash] ----- -curl https://a2ml.net/.well-known/security.txt ----- - -==== SSL Labs Test - -https://www.ssllabs.com/ssltest/analyze.html?d=a2ml.net - -*Expected Grade*: A+ (with HSTS preload) - -==== SecurityHeaders.com - -https://securityheaders.com/?q=a2ml.net - -*Expected Grade*: A+ (with all headers configured) - -=== Reporting Security Issues - -*DO NOT* open public GitHub issues for security vulnerabilities. - -Instead: 1. Email: security@a2ml.net 2. GitHub Security Advisory: -https://github.com/hyperpolymath/standards/tree/main/a2ml/security/advisories/new -3. PGP encrypted: -https://keys.openpgp.org/search?q=j.d.a.jewell@open.ac.uk - -We aim to respond within 48 hours. - -=== Privacy & Consent Issues - -For privacy concerns or consent management: - Email: privacy@a2ml.net - -Consent settings: https://a2ml.net/privacy#consent - Data -export/deletion: https://a2ml.net/privacy#your-rights - -=== License - -Security configuration: PMPL-1.0-or-later Documentation: CC-BY-SA-4.0 diff --git a/a2ml/SECURITY.adoc b/a2ml/SECURITY.adoc deleted file mode 100644 index 1d989df94..000000000 --- a/a2ml/SECURITY.adoc +++ /dev/null @@ -1,452 +0,0 @@ -== Security Policy - -We take security seriously. We appreciate your efforts to responsibly -disclose vulnerabilities and will make every effort to acknowledge your -contributions. - -=== Table of Contents - -* link:#reporting-a-vulnerability[Reporting a Vulnerability] -* link:#what-to-include[What to Include] -* link:#response-timeline[Response Timeline] -* link:#disclosure-policy[Disclosure Policy] -* link:#scope[Scope] -* link:#safe-harbour[Safe Harbour] -* link:#recognition[Recognition] -* link:#security-updates[Security Updates] -* link:#security-best-practices[Security Best Practices] - -''''' - -=== Reporting a Vulnerability - -==== Preferred Method: GitHub Security Advisories - -The preferred method for reporting security vulnerabilities is through -GitHub’s Security Advisory feature: - -[arabic] -. Navigate to -https://github.com/hyperpolymath/standards/security/advisories/new[Report -a Vulnerability] -. Click *"`Report a vulnerability`"* -. Complete the form with as much detail as possible -. Submit — we’ll receive a private notification - -This method ensures: - -* End-to-end encryption of your report -* Private discussion space for collaboration -* Coordinated disclosure tooling -* Automatic credit when the advisory is published - -==== Alternative: Encrypted Email - -If you cannot use GitHub Security Advisories, you may email us directly: - -[cols=",",] -|=== -|*Email* |6759885+hyperpolymath@users.noreply.github.com -|*PGP Key* |link:%7B%7BPGP_KEY_URL%7D%7D[Download Public Key] -|*Fingerprint* |`+[PGP fingerprint not set]+` -|=== - -[source,bash] ----- -# Import our PGP key -curl -sSL {{PGP_KEY_URL}} | gpg --import - -# Verify fingerprint -gpg --fingerprint 6759885+hyperpolymath@users.noreply.github.com - -# Encrypt your report -gpg --armor --encrypt --recipient 6759885+hyperpolymath@users.noreply.github.com report.txt ----- - -____ -*⚠️ Important:* Do not report security vulnerabilities through public -GitHub issues, pull requests, discussions, or social media. -____ - -''''' - -=== What to Include - -A good vulnerability report helps us understand and reproduce the issue -quickly. - -==== Required Information - -* *Description*: Clear explanation of the vulnerability -* *Impact*: What an attacker could achieve (confidentiality, integrity, -availability) -* *Affected versions*: Which versions/commits are affected -* *Reproduction steps*: Detailed steps to reproduce the issue - -==== Helpful Additional Information - -* *Proof of concept*: Code, scripts, or screenshots demonstrating the -vulnerability -* *Attack scenario*: Realistic attack scenario showing exploitability -* *CVSS score*: Your assessment of severity (use -https://www.first.org/cvss/calculator/3.1[CVSS 3.1 Calculator]) -* *CWE ID*: Common Weakness Enumeration identifier if known -* *Suggested fix*: If you have ideas for remediation -* *References*: Links to related vulnerabilities, research, or -advisories - -==== Example Report Structure - -[source,markdown] ----- -## Summary -[One-sentence description of the vulnerability] - -## Vulnerability Type -[e.g., SQL Injection, XSS, SSRF, Path Traversal, etc.] - -## Affected Component -[File path, function name, API endpoint, etc.] - -## Affected Versions -[Version range or specific commits] - -## Severity Assessment -- CVSS 3.1 Score: [X.X] -- CVSS Vector: [CVSS:3.1/AV:X/AC:X/PR:X/UI:X/S:X/C:X/I:X/A:X] - -## Description -[Detailed technical description] - -## Steps to Reproduce -1. [First step] -2. [Second step] -3. [...] - -## Proof of Concept -[Code, curl commands, screenshots, etc.] - -## Impact -[What can an attacker achieve?] - -## Suggested Remediation -[Optional: your ideas for fixing] - -## References -[Links to related issues, CVEs, research] ----- - -''''' - -=== Response Timeline - -We commit to the following response times: - -[width="100%",cols="24%,35%,41%",options="header",] -|=== -|Stage |Timeframe |Description -|*Initial Response* |48 hours |We acknowledge receipt and confirm we’re -investigating - -|*Triage* |7 days |We assess severity, confirm the vulnerability, and -estimate timeline - -|*Status Update* |Every 7 days |Regular updates on remediation progress - -|*Resolution* |90 days |Target for fix development and release (complex -issues may take longer) - -|*Disclosure* |90 days |Public disclosure after fix is available -(coordinated with you) -|=== - -____ -*Note:* These are targets, not guarantees. Complex vulnerabilities may -require more time. We’ll communicate openly about any delays. -____ - -''''' - -=== Disclosure Policy - -We follow *coordinated disclosure* (also known as responsible -disclosure): - -[arabic] -. *You report* the vulnerability privately -. *We acknowledge* and begin investigation -. *We develop* a fix and prepare a release -. *We coordinate* disclosure timing with you -. *We publish* security advisory and fix simultaneously -. *You may publish* your research after disclosure - -==== Our Commitments - -* We will not take legal action against researchers who follow this -policy -* We will work with you to understand and resolve the issue -* We will credit you in the security advisory (unless you prefer -anonymity) -* We will notify you before public disclosure -* We will publish advisories with sufficient detail for users to assess -risk - -==== Your Commitments - -* Report vulnerabilities promptly after discovery -* Give us reasonable time to address the issue before disclosure -* Do not access, modify, or delete data beyond what’s necessary to -demonstrate the vulnerability -* Do not degrade service availability (no DoS testing on production) -* Do not share vulnerability details with others until coordinated -disclosure - -==== Disclosure Timeline - -.... -Day 0 You report vulnerability -Day 1-2 We acknowledge receipt -Day 7 We confirm vulnerability and share initial assessment -Day 7-90 We develop and test fix -Day 90 Coordinated public disclosure - (earlier if fix is ready; later by mutual agreement) -.... - -If we cannot reach agreement on disclosure timing, we default to 90 days -from your initial report. - -''''' - -=== Scope - -==== In Scope ✅ - -The following are within scope for security research: - -* This repository (`+hyperpolymath/standards+`) and all its code -* Official releases and packages published from this repository -* Documentation that could lead to security issues -* Build and deployment configurations in this repository -* Dependencies (report here, we’ll coordinate with upstream) - -==== Out of Scope ❌ - -The following are *not* in scope: - -* Third-party services we integrate with (report directly to them) -* Social engineering attacks against maintainers -* Physical security -* Denial of service attacks against production infrastructure -* Spam, phishing, or other non-technical attacks -* Issues already reported or publicly known -* Theoretical vulnerabilities without proof of concept - -==== Qualifying Vulnerabilities - -We’re particularly interested in: - -* Remote code execution -* SQL injection, command injection, code injection -* Authentication/authorisation bypass -* Cross-site scripting (XSS) and cross-site request forgery (CSRF) -* Server-side request forgery (SSRF) -* Path traversal / local file inclusion -* Information disclosure (credentials, PII, secrets) -* Cryptographic weaknesses -* Deserialisation vulnerabilities -* Memory safety issues (buffer overflows, use-after-free, etc.) -* Supply chain vulnerabilities (dependency confusion, etc.) -* Significant logic flaws - -==== Non-Qualifying Issues - -The following generally do not qualify as security vulnerabilities: - -* Missing security headers on non-sensitive pages -* Clickjacking on pages without sensitive actions -* Self-XSS (requires victim to paste code) -* Missing rate limiting (unless it enables a specific attack) -* Username/email enumeration (unless high-risk context) -* Missing cookie flags on non-sensitive cookies -* Software version disclosure -* Verbose error messages (unless exposing secrets) -* Best practice deviations without demonstrable impact - -''''' - -=== Safe Harbour - -We support security research conducted in good faith. - -==== Our Promise - -If you conduct security research in accordance with this policy: - -* ✅ We will not initiate legal action against you -* ✅ We will not report your activity to law enforcement -* ✅ We will work with you in good faith to resolve issues -* ✅ We consider your research authorised under the Computer Fraud and -Abuse Act (CFAA), UK Computer Misuse Act, and similar laws -* ✅ We waive any potential claim against you for circumvention of -security controls - -==== Good Faith Requirements - -To qualify for safe harbour, you must: - -* Comply with this security policy -* Report vulnerabilities promptly -* Avoid privacy violations (do not access others’ data) -* Avoid service degradation (no destructive testing) -* Not exploit vulnerabilities beyond proof-of-concept -* Not use vulnerabilities for profit (beyond bug bounties where offered) - -____ -*⚠️ Important:* This safe harbour does not extend to third-party -systems. Always check their policies before testing. -____ - -''''' - -=== Recognition - -We believe in recognising security researchers who help us improve. - -==== Hall of Fame - -Researchers who report valid vulnerabilities will be acknowledged in our -link:SECURITY-ACKNOWLEDGMENTS.md[Security Acknowledgments] (unless they -prefer anonymity). - -Recognition includes: - -* Your name (or chosen alias) -* Link to your website/profile (optional) -* Brief description of the vulnerability class -* Date of report - -==== What We Offer - -* ✅ Public credit in security advisories -* ✅ Acknowledgment in release notes -* ✅ Entry in our Hall of Fame -* ✅ Reference/recommendation letter upon request (for significant -findings) - -==== What We Don’t Currently Offer - -* ❌ Monetary bug bounties -* ❌ Hardware or swag -* ❌ Paid security research contracts - -____ -*Note:* We’re a community project with limited resources. Your -contributions help everyone who uses this software. -____ - -''''' - -=== Security Updates - -==== Receiving Updates - -To stay informed about security updates: - -* *Watch this repository*: Click "`Watch`" → "`Custom`" → Select -"`Security alerts`" -* *GitHub Security Advisories*: Published at -https://github.com/hyperpolymath/standards/security/advisories[Security -Advisories] -* *Release notes*: Security fixes noted in link:CHANGELOG.md[CHANGELOG] - -==== Update Policy - -[cols=",",options="header",] -|=== -|Severity |Response -|*Critical/High* |Patch release as soon as fix is ready -|*Medium* |Included in next scheduled release (or earlier) -|*Low* |Included in next scheduled release -|=== - -==== Supported Versions - -[cols=",,",options="header",] -|=== -|Version |Supported |Notes -|`+main+` branch |✅ Yes |Latest development -|Latest release |✅ Yes |Current stable -|Previous minor release |✅ Yes |Security fixes backported -|Older versions |❌ No |Please upgrade -|=== - -''''' - -=== Security Best Practices - -When using Standards, we recommend: - -==== General - -* Keep dependencies up to date -* Use the latest stable release -* Subscribe to security notifications -* Review configuration against security documentation -* Follow principle of least privilege - -==== For Contributors - -* Never commit secrets, credentials, or API keys -* Use signed commits (`+git config commit.gpgsign true+`) -* Review dependencies before adding them -* Run security linters locally before pushing -* Report any concerns about existing code - -''''' - -=== Additional Resources - -* link:%7B%7BPGP_KEY_URL%7D%7D[Our PGP Public Key] -* https://github.com/hyperpolymath/standards/security/advisories[Security -Advisories] -* link:CHANGELOG.md[Changelog] -* link:CONTRIBUTING.md[Contributing Guidelines] -* https://cve.mitre.org/[CVE Database] -* https://www.first.org/cvss/calculator/3.1[CVSS Calculator] - -''''' - -=== Contact - -[width="100%",cols="50%,50%",options="header",] -|=== -|Purpose |Contact -|*Security issues* -|https://github.com/hyperpolymath/standards/security/advisories/new[Report -via GitHub] or 6759885+hyperpolymath@users.noreply.github.com - -|*General questions* -|https://github.com/hyperpolymath/standards/discussions[GitHub -Discussions] - -|*Other enquiries* |See link:README.md[README] for contact information -|=== - -''''' - -=== Policy Changes - -This security policy may be updated from time to time. Significant -changes will be: - -* Committed to this repository with a clear commit message -* Noted in the changelog -* Announced via GitHub Discussions (for major changes) - -''''' - -_Thank you for helping keep Standards and its users safe._ 🛡️ - -''''' - -Last updated: 2026 · Policy version: 1.0.0 diff --git a/a2ml/SPEC.adoc b/a2ml/SPEC.adoc deleted file mode 100644 index 626d10c33..000000000 --- a/a2ml/SPEC.adoc +++ /dev/null @@ -1,756 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML v1.1.0 Specification -:version: 1.1.0 -:date: 2026-06-03 -:status: Stable -:era: v1 -:toc: left -:toclevels: 3 -:icons: font -:sectnums: - -[abstract] -== Abstract - -A2ML (Attested Markup Language) is a lightweight markup format that compiles to a -typed, verifiable core with formal proof obligations. This specification defines -the v1.1 surface grammar, typed-core semantics, validation modes (lax, checked, -attested), the *profile mechanism*, the *base record vocabulary*, *citation -primitives*, and the *canonical hash form* for opaque payloads and documents. - -A2ML v1.1 is *additive* over v1.0: every conforming v1.0 document remains a -conforming v1.1 document. The new surface in v1.1 — profiles, the base record -vocabulary, citation primitives, and canonical hashing — is inert under the base -modes and acquires meaning only when a profile selects it. - -[cols="1,3"] -|=== -| Media Type | `application/vnd.a2ml` (registration pending) -| File Extension| `.a2ml` -| Version | 1.1.0 (Stable) -| Era | v1 -| Date | 2026-06-03 -| Lineage | See `VERSIONS.adoc` -|=== - -== 1. Introduction - -=== 1.1 Position In The Stack - -A2ML is a *foundation*, not a consumer. It defines neutral primitives that other -formats and tools build on. A2ML names no downstream consumer normatively: the -primitives in this document are deliberately generic so that independent record -formats can reuse them without coupling back to A2ML's release cadence. - -This independence is load-bearing. The single most common failure in a layered -estate is *desync*: two artefacts that should describe the same thing drift apart -because each re-invents identity, provenance, and integrity. A2ML's answer is the -*base record vocabulary* (Section 7) — one neutral shape for "a thing that can be -cited, hashed, and attributed" — reused verbatim by every downstream format. - -=== 1.2 Design Principles - -* *Lightweight authoring*: a Djot-like surface syntax. -* *Strong guarantees on demand*: Idris2 dependent types for the typed core. -* *Progressive strictness*: lax (warnings) → checked (errors) → attested (proofs). -* *Non-negotiable fidelity*: opaque payloads preserved byte-for-byte. -* *Inert-by-default extension*: new directives carry no semantics until a profile - selects them. Nothing in v1.1 changes the meaning of a v1.0 document. -* *One home per concept*: identity, provenance, and integrity are defined once - (Section 7) and referenced, never duplicated. - -=== 1.3 Conformance Language - -The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, -RECOMMENDED, MAY, and OPTIONAL are to be interpreted as described in RFC 2119 and -RFC 8174 when, and only when, they appear in all capitals. - -=== 1.4 Conformance Classes - -A conforming A2ML v1.1 implementation MUST: - -* Parse the surface grammar (Section 2). -* Translate the surface AST to the typed core (Section 3). -* Support lax and checked modes (Section 4). -* Preserve opaque payloads byte-for-byte (Section 5). -* Implement the base invariant checks (Section 6). -* Recognise the base record vocabulary directives and admit them without error, - even when no profile is active (Section 7). -* Compute the canonical hash form (Section 9) when asked. - -The following are RECOMMENDED but not required for base conformance: - -* Attested mode (proof obligations, Section 4.3). -* Profile resolution and enforcement (Section 8). An implementation that does not - resolve profiles MUST treat an `@profile` declaration as an inert annotation and - MUST NOT reject a document for declaring one. - -== 2. Surface Grammar (Module 0) - -=== 2.1 Lexical Rules - -[source,ebnf] ----- -Line ::= CharSeq LF | CharSeq EOF -BlankLine ::= Whitespace* LF -Identifier ::= [A-Za-z][A-Za-z0-9:_-]* -QualifiedId ::= Identifier ( '/' Identifier )* -String ::= '"' ( '\\' Any | [^"] )* '"' - | "'" ( '\\' Any | [^'] )* "'" -Number ::= '-'? [0-9]+ ( '.' [0-9]+ )? -Whitespace ::= ' ' | '\t' -LF ::= '\n' ----- - -`QualifiedId` is new in v1.1 and is used for profile identifiers and reference -classes. It is a strict superset of `Identifier`; an unqualified identifier is a -`QualifiedId` of length one. - -=== 2.2 Document Structure - -[source,ebnf] ----- -Document ::= Preamble? Block* -Preamble ::= ProfileDecl+ // zero or more; see Section 8.1 - -Block ::= Heading - | DirectiveBlock - | InlineDirective - | List - | CodeBlock - | Paragraph - | BlankLine+ - -Heading ::= HeadingMarker SP+ TextLine LF -HeadingMarker::= '#'{1,5} -HeadingLevel ::= length(HeadingMarker) - -DirectiveBlock ::= '@' Identifier Attrs? ':' LF DirectiveBody '@end' LF -InlineDirective::= '@' Identifier Attrs LF // self-closing; no body, no @end -Attrs ::= '(' Attr ( ',' Attr )* ')' -Attr ::= Identifier '=' ( QualifiedId | String | Number ) - -DirectiveBody ::= Block* - -List ::= ListItem ( LF ListItem )* -ListItem ::= ( '-' | '*' ) SP+ Inline - -Paragraph ::= Inline ( LF Inline )* LF - -CodeBlock ::= '```' LangSpec? LF RawLine* '```' LF -LangSpec ::= [A-Za-z0-9_+-]+ -RawLine ::= ( [^\n] )* LF ----- - -==== 2.2.1 Inline (self-closing) directives — new in v1.1 - -A *self-closing directive* is a directive that carries all of its content in its -attribute list and has no body and no `@end`. It is written on a single line: - -[source,a2ml] ----- -@profile(id=a2ml/state) -@cite(key="rfc2119", span="L10-L14") ----- - -The parser distinguishes the two directive forms by lookahead: a directive line -ending in `:` opens a `DirectiveBlock` and MUST be matched by `@end`; a directive -line that ends after its closing `)` (or its name, if no attributes) is an -`InlineDirective`. A directive name is either block-form or inline-form per this -specification (Section 7.3, Section 8.1, Appendix C); it MUST NOT be both. - -=== 2.3 Inline Syntax - -[source,ebnf] ----- -Inline ::= InlineAtom ( SP InlineAtom )* -InlineAtom ::= Emph | Strong | Link | Ref | Text -Emph ::= '*' TextInline '*' -Strong ::= '**' TextInline '**' -Link ::= '[' TextInline ']' '(' URL ')' -Ref ::= '@ref(' QualifiedId ')' -TextInline ::= ( TextChar | '\\' Any )+ -TextChar ::= [^*\[\]@\n] -URL ::= [^ )\n]+ ----- - -=== 2.4 Core Directives (Module 0) - -[cols="2,3,2",options="header"] -|=== -| Directive | Purpose | Attributes - -| `@abstract` | Document abstract | `id` (optional) -| `@refs` | Reference list | `id` (optional) -| `@fig` | Figure block | `id`, `ref` (optional) -| `@table` | Table block | `id` (optional) -| `@opaque` | Byte-preserved payload | `id`, `lang` (optional) -| `@requires` | Structural dependency | `section` (required) -|=== - -Profile, base-vocabulary, and citation directives are specified in Sections 7, 8 -and Appendix C. - -== 3. Typed Core Semantics - -=== 3.1 Core Types (Idris2) - -The normative Idris2 model lives in `src/A2ML/`. The shape below is informative; -the source files are authoritative. - -[source,idris] ----- -record Id where - constructor MkId - raw : String - -data Block - = Section Sec - | Para String - | Bullet (List String) - | Figure Fig - | Table Tbl - | Refs (List Ref) - | Opaque Payload - | ProfileDecl ProfileId -- Section 8 - | Record BaseRecord -- Section 7 - | Citation CiteNode -- Appendix C - -record Doc where - constructor MkDoc - profiles : List ProfileId -- declared profiles, in source order - blocks : List Block - -record Payload where - constructor MkPayload - id : Maybe Id - lang : Maybe String - bytes : String -- preserved exactly; see Section 5 ----- - -=== 3.2 Translation Rules - -1. *Headings* → `Section` with generated or explicit `id`. -2. *Block directives* → typed blocks by directive name. -3. *Self-closing directives* → typed nodes (`ProfileDecl`, `Record`, `Citation`). -4. *Lists* → `Bullet`. -5. *Paragraphs* → `Para`. -6. *`@opaque`* → `Payload`, bytes preserved. - -Unknown directives are retained as opaque structural nodes in lax mode and -rejected in checked mode (Section 4.2), *except* that an implementation which does -not resolve profiles MUST still accept the directives named in this specification. - -== 4. Validation Modes - -=== 4.1 Lax Mode - -Parses all valid surface syntax; emits warnings for missing IDs and unresolved -references; never errors unless the syntax itself is invalid. Use for authoring. - -=== 4.2 Checked Mode - -All IDs REQUIRED on `@fig`, `@table`, and sections; all `@ref(...)` MUST resolve; -unknown directives are rejected. Use for production documents. - -=== 4.3 Attested Mode - -All checked-mode requirements, plus the proof obligations of Section 6 MUST -discharge. When a profile is active and declares a minimum attestation level -(Section 8.2), attested mode additionally discharges the profile's obligations. - -=== 4.4 Mode And Profile Are Orthogonal - -A document's *mode* is chosen by the validator invocation; its *profile(s)* are -declared in the document. A profile MAY raise the effective floor (e.g. "this -profile requires at least checked mode") but a profile MUST NOT lower it. Modes -and profiles compose by taking the stricter of the two at every axis. - -== 5. Opaque Payloads (Non-Negotiable) - -Opaque payloads MUST be preserved byte-for-byte in the typed core. Parsers and -renderers: - -* MUST NOT modify opaque payload bytes. -* MUST preserve encoding (UTF-8 default). -* MAY transform for an output format (e.g. PDF escaping) but MUST report every - transformation. -* MUST support round-trip: parse → serialize → parse yields an identical payload. - -The integrity of an opaque payload is witnessed by its canonical hash (Section 9). - -== 6. Base Invariants - -=== 6.1 Unique IDs - -All `id` attributes in a document MUST be unique. - -[source,idris] ----- -UniqueIds : Doc -> Type -uniqueIdsDec : (doc : Doc) -> Dec (UniqueIds doc) ----- - -=== 6.2 Resolved References - -All `@ref(id)` and `ref="id"` attributes MUST reference existing IDs. - -[source,idris] ----- -RefsResolve : Doc -> Type -refsResolveDec : (doc : Doc) -> Dec (RefsResolve doc) ----- - -=== 6.3 Required Sections (configurable) - -Specific sections MAY be required by policy or by an active profile. - -=== 6.4 Opaque Payload Fidelity - -The round-trip property of Section 5 is an invariant, witnessed by hash equality -under the canonical hash form (Section 9). - -== 7. Base Record Vocabulary - -NOTE: This section is the *anti-desync primitive*. It defines one neutral shape -for "a thing that can be identified, located, attributed, and integrity-checked". -Downstream record formats REUSE this vocabulary verbatim rather than re-inventing -it. A2ML core defines the shape and names no consumer; consumers reference this -section. - -=== 7.1 Rationale - -When two artefacts describe the same underlying thing — a span of source, a proof -obligation, an attestation receipt — they desync if each invents its own notion of -identity, provenance, and integrity. The base record vocabulary fixes a single -neutral shape so that "the same thing" is *literally the same fields* everywhere. - -=== 7.2 The Base Record - -A *base record* is a directive `@record` whose body is a set of fields. The field -set is fixed by this specification: - -[cols="2,1,4",options="header"] -|=== -| Field | Cardinality | Meaning - -| `id` | REQUIRED | Document-unique identifier (`Identifier`). Subject to the uniqueness invariant (Section 6.1). -| `source_span` | REQUIRED | The located region this record is about. See Section 7.4. -| `canonical_node` | OPTIONAL | A stable structural address into a canonical syntax tree (e.g. an AffineScript node path). OPTIONAL so that non-AffineScript and source-free projects conform without it. -| `hash` | REQUIRED | Integrity digest of the referenced artefact, `sha256:`. See Section 9. This is the desync tripwire: equal things hash equal. -| `provenance` | REQUIRED | Who/what produced the record. See Section 7.5. -| `timestamp` | REQUIRED | RFC 3339 UTC instant of record creation. -| `artefact_ref` | REQUIRED | A reference to the artefact the record is about (URI, repo-relative path, or content address). -| `profile_decl` | OPTIONAL | The profile under which this record was authored (`QualifiedId`), echoing the document's `@profile` (Section 8). Lets a detached record carry its own profile context. -|=== - -A base record with all REQUIRED fields present and well-formed is *base-valid*. -No field of the base record carries domain semantics: a base record asserts only -"this identified, located artefact had this hash, produced by this provenance, at -this time". Domain meaning is added exclusively by profiles (Section 8) and by -downstream formats. - -=== 7.3 Surface Form - -`@record` is a block directive. Fields are `key: value` lines; nested records -(`provenance`, `source_span`) are written as indented `key: value` groups. - -[source,a2ml] ----- -@record: -id: rec-001 -source_span: { file: "src/Lex.affine", start: { line: 12, col: 1 }, end: { line: 14, col: 9 } } -canonical_node: "module/Lex/fn:tokenize/expr:3" -hash: "sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08" -provenance: { author: "j.d.a.jewell", tool: "a2ml-cli@1.1.0", kind: human } -timestamp: "2026-06-03T11:00:00Z" -artefact_ref: "repo:standards/a2ml/SPEC.adoc" -profile_decl: a2ml/state -@end ----- - -=== 7.4 `source_span` - -A `source_span` locates a region. Its shape: - -[cols="2,1,4",options="header"] -|=== -| Field | Cardinality | Meaning -| `file` | REQUIRED | Repo-relative path or URI of the source artefact. -| `start` | REQUIRED | `{ line, col }`, both 1-based. -| `end` | REQUIRED | `{ line, col }`, both 1-based; `end` ≥ `start` lexicographically. -|=== - -A *point* span sets `end = start`. Byte-offset spans MAY be carried additionally in -an OPTIONAL `bytes: { start, end }` sub-field, but line/col is the REQUIRED form so -that text tools without a byte model still conform. - -=== 7.5 `provenance` - -[cols="2,1,4",options="header"] -|=== -| Field | Cardinality | Meaning -| `author` | REQUIRED | Human or organisational identity responsible. -| `tool` | REQUIRED | Producing tool, `name@version`. -| `kind` | REQUIRED | One of the closed set `{ human, ai, mechanical }`. -| `agent` | OPTIONAL | When `kind = ai`, the agent/model identity. SHOULD be present when `kind = ai`. -|=== - -`kind` is a *closed* enumeration: exactly `human`, `ai`, or `mechanical`. A -validator MUST reject any other value in checked mode. `mechanical` denotes a -deterministic, non-AI process (a script, a compiler pass); `ai` denotes a -generative/inferential agent; `human` denotes direct human authorship. - -=== 7.6 Validation Status Of The Base Record - -In *base* A2ML (no profile active), `@record` is recognised and its REQUIRED -fields are checked for presence and well-formedness, but no field is given domain -meaning and no cross-record constraint is imposed. A profile (Section 8) MAY add: -required additional records, cross-record constraints, or a narrower `kind` set. -A profile MUST NOT remove a REQUIRED base field. - -== 8. Profile Mechanism - -NOTE: A profile is a *named validation bundle*. It is non-executable: it adds -required structure and tightens checks; it NEVER grants execution, network, or -filesystem capability. Profiles increase validation strictness only. - -=== 8.1 Declaring A Profile - -A document declares a profile with a self-closing directive in its preamble: - -[source,a2ml] ----- -@profile(id=a2ml/state) ----- - -* The `id` is a `QualifiedId` of the form `/` (e.g. `a2ml/state`). -* A document MAY declare more than one profile; declared profiles compose by - taking the union of their constraints (the stricter of any overlapping axis). -* `@profile` declarations MUST appear before the first non-preamble block. A - declaration appearing later is a checked-mode error. -* `@profile` is inert under base conformance: an implementation that does not - resolve profiles MUST accept the declaration and ignore it (Section 1.4). - -=== 8.2 What A Profile Definition May Constrain - -A profile *definition* is itself an A2ML document (Section 8.4). It MAY constrain -exactly these axes, and no others: - -[cols="2,4",options="header"] -|=== -| Axis | A profile MAY… - -| *Required sections* | name headings/sections that MUST be present (by title or id). -| *Allowed directives* | restrict the directive set: a closed allow-list, a - deny-list, or "base + these". A directive not permitted by an active profile is - a checked-mode error. -| *Required directives* | name directives (e.g. specific `@record` shapes) that - MUST appear, with min/max cardinality. -| *Reference classes* | constrain `@ref` targets by class (`QualifiedId` - namespaces), e.g. "every `@ref(state/*)` MUST resolve to a `Section`". -| *Attestation level* | declare the minimum mode (`lax` < `checked` < `attested`) - under which the document is considered valid for this profile. -|=== - -A profile MUST NOT: - -* grant or imply execution, network access, or filesystem writes; -* relax a base invariant (Section 6) or remove a REQUIRED base-record field; -* change surface grammar or token meaning. - -These prohibitions are normative and are what keeps "active"/"attested" variants -(sometimes called A2MLa) safe: A2ML remains read-only; a profile only raises the -bar. - -=== 8.3 Resolution - -Given `@profile(id=ns/name)`, a validator resolves the definition as follows: - -1. Look up `ns/name` in the *profile registry* (Section 8.5). -2. If found, load the referenced definition and pin it by its `version` and `hash` - (Section 9). A registry entry without a hash is usable only in lax mode. -3. If not found, behaviour depends on mode: lax → warn and continue inert; checked - → error `unknown-profile`; attested → error. - -Resolution is *offline and deterministic*: the registry and definitions are files -in the repository (or a content-addressed store), never a network fetch at -validation time. - -=== 8.4 Profile Definition Format - -A profile definition is an A2ML document declaring `@profile-def`: - -[source,a2ml] ----- -@profile-def(id=example/illustrative, version="1.0.0"): -required_sections: - - metadata - - position -allowed_directives: base + [ record ] -required_directives: - - { directive: record, min: 1, max: 1 } -reference_classes: - - { class: state, target: Section, required: true } -min_attestation: checked -@end ----- - -This example is illustrative of the *format* and exercises all five axes. -The real `a2ml/*` profiles shipped by this repository are in -`a2ml/profiles/` (Section 11); each one constrains only the axes it needs. -The five fields map one-to-one onto the typed-core `ProfileDef` -(`src/A2ML/Profiles.idr`): `required_sections`, `allowed_directives` -(a `DirectivePolicy`), `required_directives` (each a `RequiredDirective` -with `min`/`max` cardinality), `reference_classes`, and `min_attestation` -(a `Mode`). - -The `@profile-def` directive and its fields are themselves base A2ML; a profile -definition is therefore self-describing and can be validated by the same engine. - -=== 8.5 Where Definitions Live, And Registration - -* *Home (one per profile):* each profile definition lives at - `a2ml/profiles/-/PROFILE.a2ml` (e.g. - `a2ml/profiles/a2ml-state/PROFILE.a2ml`). This is the single source of truth for - that profile; its text is not duplicated elsewhere. -* *Registry (verifiable index):* `a2ml/profiles/REGISTRY.a2ml` lists every - known profile as a base record (Section 7) whose `artefact_ref` points at the - definition file and whose `hash` pins it. The registry is the *verifiable* index: - a consumer trusts a profile only if the definition's computed hash equals the - registry's pinned hash. -* *Namespacing:* the `a2ml/*` namespace is reserved for profiles shipped by this - repository (Section 11). Downstream consumers (which A2ML core does not name) - register their own profiles under their own namespaces, in their own repos, and - publish their own registries. A2ML core ships only neutral primitives and the - `a2ml/*` profiles. - -This realises SSOT + verifiable registry: one home per profile, a hash-pinned -index, and no duplicated normative text. - -== 9. Canonical Hash Form (Hashing Now, Signing Later) - -=== 9.1 Scope - -v1.1 specifies *hashing* normatively and *reserves* signing for a later minor -version. Implementations MUST compute hashes as below; signature fields are -defined as reserved and inert. - -=== 9.2 Opaque Payload Hash - -The canonical hash of an opaque payload is: - ----- -opaque_hash = "sha256:" + lowerhex( SHA-256( payload_bytes ) ) ----- - -where `payload_bytes` are the exact bytes preserved under Section 5, with no -normalisation whatsoever (no newline translation, no trimming, no re-encoding). - -=== 9.3 Document Canonical Hash - -The canonical hash of a *document* is computed over a canonical serialization of -its typed core (Section 3), not its surface bytes, so that semantically identical -documents that differ only in incidental surface whitespace hash equal. The -canonical serialization is: - -1. Translate surface → typed core. -2. Serialize the typed core as canonical JSON per RFC 8785 (JCS): keys sorted, - no insignificant whitespace, UTF-8, shortest number forms. -3. For every `Opaque` node, substitute the field `bytes` with its `opaque_hash` - (Section 9.2) so that payload bytes are committed by reference, not inlined. -4. `doc_hash = "sha256:" + lowerhex( SHA-256( canonical_json ) )`. - -This makes the document hash stable under surface reformatting while remaining -sensitive to any change in structure, identifiers, references, or payloads. - -=== 9.4 Record And Profile Hashes - -* A base record's `hash` field (Section 7.2) is the `opaque_hash` (Section 9.2) of - the artefact named by `artefact_ref`, computed over that artefact's exact bytes. -* A profile registry entry's `hash` (Section 8.5) pins the definition by the - `opaque_hash` (Section 9.2) of the definition file's *exact bytes*. (Pinning the - file bytes — rather than the `doc_hash` of Section 9.3 — keeps the registry - verifiable with a stock `sha256sum` before the document canonicaliser is - deployed. The registry MUST state which form it uses; v1.1 registries use the - byte hash.) - -=== 9.5 Reserved: Signing - -The following are RESERVED and MUST be treated as inert in v1.1: - -[source,idris] ----- -record Signature where - constructor MkSignature - alg : String -- reserved; "ed25519" anticipated - pubkey : String -- reserved (base64) - sig : String -- reserved (base64); over a doc_hash - signed_at : Maybe String -- reserved (RFC 3339) ----- - -A v1.1 validator MUST NOT require a signature and MUST NOT reject a document that -carries reserved signature fields. Signing semantics (what is signed, trust roots, -rotation) are deferred to a later minor version. What is signed is already pinned: -a signature, when specified, will sign a `doc_hash`. - -== 10. Citation Primitives - -NOTE: Citation primitives are *representable in base A2ML* but carry *no semantics -by default*. They are REQUIRED and validated only under a citation profile, which -A2ML core does not ship (consumers define their own). This keeps citation -machinery available to everyone without making any document "about citations" -unless it opts in. - -=== 10.1 The Primitives - -[cols="2,1,4",options="header"] -|=== -| Directive | Form | Carries - -| `@cite` | inline | `key` (reference key) and OPTIONAL `span` (a `source_span`, Section 7.4). -| `@rationale` | block | free prose explaining *why* a cited claim is relied upon. -| `@origin` | inline | provenance of a claim: `artefact_ref` + OPTIONAL `hash`. -| `@source_span` | inline | a standalone `source_span` (Section 7.4) not attached to a record. -| `@canonical_node` | inline | a standalone `canonical_node` address (Section 7.2). -|=== - -`@source_span` and `@canonical_node` are the same located-region and structural- -address notions as the base record's fields (Section 7), surfaced as standalone -directives so that prose can point at code without wrapping a whole `@record`. - -=== 10.2 Default (Profile-Free) Semantics - -With no citation profile active: - -* All five directives parse and are retained in the typed core. -* `@cite(key=…)` does *not* require `key` to resolve to a `@refs` entry. -* No cross-reference, completeness, or provenance check is applied. - -They are, in base mode, structured annotations — nothing more. - -=== 10.3 Under A Citation Profile - -A citation profile (defined by a consumer, not by A2ML core) MAY require, for -example: that every `@cite(key)` resolves; that every cited claim carries an -`@origin`; that spans are well-formed and in-bounds. Such a profile is an ordinary -profile (Section 8) and is subject to all profile prohibitions (no execution, no -relaxation of base invariants). - -== 11. Reserved Namespaces - -The `a2ml/*` profile namespace is reserved by this repository. v1.1 ships the -seven `a2ml/*` profiles for the descriptiles metadata family: - -`a2ml/state`, `a2ml/meta`, `a2ml/ecosystem`, `a2ml/agentic`, `a2ml/neurosym`, -`a2ml/playbook`, `a2ml/anchor`. - -Their definitions live under `a2ml/profiles/` and are indexed in -`a2ml/profiles/REGISTRY.a2ml`. - -Other components within this repository MAY register additional `a2ml/*` -profiles in their own subtrees, each with its own definition file and registry -entry. A2ML core neither enumerates nor depends on them: it ships only the -mechanism (Section 8) and the seven descriptiles profiles above. No namespace other than -`a2ml/*` is defined by A2ML core. - -== 12. Security Considerations - -=== 12.1 Injection - -Opaque payloads may contain arbitrary content. Renderers MUST escape/sanitize for -the target format (HTML: `"; - // This may parse or fail, but must NOT cause a panic. - // The value must be stored verbatim if parsed. - let result = parse(payload); - if let Ok(doc) = result { - if let Some(d) = doc.directives.first() { - // Value must not be silently truncated or modified. - assert!( - d.value.contains(" -@end - -## Contact Information - -**Contact person:** -Jonathan D.A. Jewell - -**Author/Change controller:** -Jonathan D.A. Jewell / The Open University - -@refs: -[1] A2ML Specification - SPEC.a2ml -[2] RFC 6838 - Media Type Specifications and Registration Procedures -[3] IANA Media Types Registry - https://www.iana.org/assignments/media-types/ -@end diff --git a/a2ml/docs/IANA-MEDIA-TYPE.adoc b/a2ml/docs/IANA-MEDIA-TYPE.adoc deleted file mode 100644 index 682abf0ac..000000000 --- a/a2ml/docs/IANA-MEDIA-TYPE.adoc +++ /dev/null @@ -1,98 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= IANA Media Type Draft - -This is a draft template for registering A2ML as a media type. -Recommended initial path: vendor tree (`application/vnd.a2ml`). - -[source] ----- -Type name: application - -Subtype name: vnd.a2ml - -Required parameters: none - -Optional parameters: charset (only if content is restricted to text) - Note: If opaque payloads may include arbitrary bytes, charset SHOULD NOT be used. - -Encoding considerations: - binary - (A2ML documents may include opaque payloads with arbitrary bytes and/or long lines.) - -Security considerations: - A2ML is a document markup format. It is not executable by itself. - However, A2ML may embed opaque payloads or code blocks. Processors MUST treat - embedded content as data and MUST NOT execute it by default. - If a processor offers execution or evaluation features, it MUST do so in a - sandboxed context with explicit user consent. - -Interoperability considerations: - A2ML is UTF-8 by default for textual content and uses LF line endings. - Opaque payloads are preserved byte-for-byte by the A2ML core. - Renderers should preserve content where possible and report transformations. - -Published specification: - A2ML v0 draft specification (see SPEC.adoc in the project repository). - -Applications which use this media type: - A2ML compilers, renderers, and validators; static site generators; web - components that render A2ML to HTML. - -Fragment identifier considerations: - Fragments (e.g., #sec:intro) may refer to section IDs or labeled elements. - The fragment syntax and resolution rules are defined by the A2ML spec. - -Restrictions on usage: - None. - -Provisional registration: - No. (Vendor-tree registration.) - -Additional information: - - Deprecated alias names for this type: - None. - - Magic number(s): - None (textual format; identification by extension or content sniffing). - - File extension(s): - .a2ml - - Macintosh file type code(s): - None. - - Object Identifier(s) or OID(s): - None. - -Intended usage: - COMMON - -Other information & comments: - A2ML is a typed, attested markup language intended for long-term document - fidelity and verifiable structure. - -Recommended interim HTTP usage: - -* `Content-Type: application/vnd.a2ml` -* `Content-Type: application/vnd.a2ml; charset=utf-8` (only if the document is - pure text without opaque binary payloads) - -Recommended HTML embedding (prototype): - -[source,html] ----- - ----- - -Contact person: - Jonathan D.A. Jewell - -Author/Change controller: - Jonathan D.A. Jewell / The Open University ----- diff --git a/a2ml/docs/IDRIS2-CORE.adoc b/a2ml/docs/IDRIS2-CORE.adoc deleted file mode 100644 index 0581dc88a..000000000 --- a/a2ml/docs/IDRIS2-CORE.adoc +++ /dev/null @@ -1,541 +0,0 @@ -= A2ML Idris2 Core Implementation -:toc: preamble -:toclevels: 2 -:icons: font - -Dependent types implementation of A2ML with formal proofs of correctness. - -== Overview - -The A2ML Idris2 core provides: - -1. **Typed Core AST** - Dependently-typed document structure -2. **Formal Proofs** - Uniqueness and resolution proofs at type level -3. **Parser** - Total parser with error recovery -4. **Validation** - Compile-time validation via dependent types -5. **Attestation** - Cryptographic document signing framework - -== Architecture - -=== Module Structure - -[source] ----- -src/A2ML/ -├── TypedCore.idr # Core AST and basic validation -├── Proofs.idr # Dependent types and proofs -├── Parser.idr # Total parser implementation -├── Translator.idr # Surface → TypedCore translation -├── Surface.idr # Surface AST -└── Tests.idr # Comprehensive test suite ----- - -=== Type Hierarchy - -[source,idris] ----- -Doc -- Top-level document -├── Block -│ ├── Section -- Nested sections with IDs -│ ├── Para -- Paragraphs -│ ├── Bullet -- Bullet lists -│ ├── Figure -- Figures with references -│ ├── Table -- Tables -│ ├── Refs -- Reference lists -│ └── Opaque -- Opaque payloads ----- - -== Key Features - -=== 1. Dependent Types for Validation - -**Problem:** Traditional validation happens at runtime and can be bypassed. - -**Solution:** Encode validation constraints in types: - -[source,idris] ----- -||| A document with unique IDs (proven at type level) -record UniqueDoc where - constructor MkUniqueDoc - doc : Doc - ids : List Id - {auto uniqueProof : Unique ids} ----- - -**Benefit:** Invalid documents **cannot be constructed** - the type system prevents it! - -=== 2. Formal Proofs - -**Unique IDs:** - -[source,idris] ----- -data Unique : List a -> Type where - UniqueNil : Unique [] - UniqueCons : Not (Elem x xs) -> Unique xs -> Unique (x :: xs) ----- - -**Reference Resolution:** - -[source,idris] ----- -data AllIn : List a -> List a -> Type where - AllInNil : AllIn [] ys - AllInCons : Elem x ys -> AllIn xs ys -> AllIn (x :: xs) ys ----- - -**Theorems:** - -- If a document is validated, it has unique IDs (proven) -- If a document is validated, all references resolve (proven) -- Uniqueness is preserved under disjoint append (proven) -- Reference resolution is monotonic (proven) - -=== 3. Decidable Validation - -**DecEq for Id:** - -[source,idris] ----- -DecEq Id where - decEq (MkId a) (MkId b) with (decEq a b) - decEq (MkId a) (MkId a) | Yes Refl = Yes Refl - decEq (MkId a) (MkId b) | No contra = No (\Refl => contra Refl) ----- - -**Decidable Uniqueness:** - -[source,idris] ----- -uniqueDec : DecEq a => (xs : List a) -> Dec (Unique xs) ----- - -**Benefits:** -- Compile-time validation where possible -- Runtime validation with proofs when needed -- Guaranteed correctness via type system - -=== 4. Total Parser - -**Parser monad:** - -[source,idris] ----- -record Parser a where - constructor MkParser - runParser : ParserState -> ParseResult a ----- - -**All functions are `%default total`:** -- No partial functions -- No `believe_me` or unsafe casts -- Guaranteed termination - -**Error recovery:** - -[source,idris] ----- -data ParseResult a - = Success a ParserState - | Failure String ParserState -- State preserved for error recovery ----- - -=== 5. Attestation Framework - -**Cryptographic signatures:** - -[source,idris] ----- -record Attestation where - constructor MkAttestation - documentHash : String - signature : String -- Ed25519 signature - publicKey : String - timestamp : Integer ----- - -**Attested documents:** - -[source,idris] ----- -record AttestedDoc where - constructor MkAttestedDoc - validated : ValidatedDoc -- Must be validated first! - attestation : Attestation ----- - -**Verification:** - -[source,idris] ----- -verifyAttestation : AttestedDoc -> Bool ----- - -== Usage Examples - -=== Example 1: Create a Validated Document - -[source,idris] ----- --- Attempt to create a validated document -exampleValidated : Maybe ValidatedDoc -exampleValidated = - let doc = MkDoc [] - ids = [MkId "intro", MkId "methods"] - refs = [MkId "intro"] -- References intro section - in mkValidatedDoc doc ids refs ----- - -**Result:** `Just (MkValidatedDoc ...)` if valid, `Nothing` if validation fails. - -**Key:** Validation happens at construction time, not later! - -=== Example 2: Parse and Validate - -[source,idris] ----- --- Parse A2ML text and validate in one step -parseAndValidate : String -> Either (List ValidationError) ValidatedDoc -parseAndValidate input = - case parseDocument input of - Success doc _ => - let ids = collectIds doc - refs = collectRefs doc - in validateDocument doc ids refs - Failure err _ => - Left [MissingRequired ("Parse error: " ++ err)] ----- - -**Usage:** - -[source,idris] ----- -let input = """ -# Introduction - -This is the intro section. - -See @fig:intro for details. -""" - -case parseAndValidate input of - Right validated => putStrLn "✓ Valid document" - Left errors => putStrLn "✗ Validation errors" ----- - -=== Example 3: Attest a Document - -[source,idris] ----- --- Create an attested document -exampleAttestation : Maybe AttestedDoc -exampleAttestation = do - validated <- exampleValidated -- Must validate first! - let attestation = MkAttestation - "sha256:abc123..." - "ed25519:def456..." - "pub:789abc..." - 1706659200 - pure (MkAttestedDoc validated attestation) ----- - -**Verification:** - -[source,idris] ----- -case exampleAttestation of - Just attested => - if verifyAttestation attested - then putStrLn "✓ Valid attestation" - else putStrLn "✗ Invalid attestation" - Nothing => putStrLn "✗ Validation failed" ----- - -== Testing - -=== Test Suite - -Run tests: - -[source,bash] ----- -cd a2ml -idris2 --find-ipkg src/A2ML/Tests.idr -idris2 --exec main Tests ----- - -**Test categories:** - -1. **TypedCore Tests** - Core AST and basic validation -2. **Proofs Tests** - Dependent types and decidability -3. **Parser Tests** - Parsing and pretty printing -4. **Integration Tests** - End-to-end workflows - -**Coverage:** - -- ✅ Empty documents -- ✅ Single sections -- ✅ Nested sections -- ✅ Figure references -- ✅ Unique ID validation -- ✅ Duplicate ID detection -- ✅ Resolved references -- ✅ Unresolved reference detection -- ✅ DecEq for Ids -- ✅ Uniqueness proofs -- ✅ AllIn proofs -- ✅ ValidatedDoc construction -- ✅ Heading parsing -- ✅ Directive parsing -- ✅ Paragraph parsing -- ✅ Bullet list parsing -- ✅ Document parsing -- ✅ Pretty print round trip -- ✅ Parse and validate pipeline -- ✅ Attestation verification - -=== Example Test Output - -[source] ----- -╔══════════════════════════════════════════════════════════╗ -║ A2ML Idris2 Core Test Suite ║ -╚══════════════════════════════════════════════════════════╝ - -TypedCore Tests: -✓ Empty document has no IDs -✓ Single section collects ID -✓ Nested sections collect all IDs -✓ Figure reference is collected -✓ Unique IDs validated correctly -✓ Duplicate IDs detected -✓ Resolved references validated correctly -✓ Unresolved references detected - -Proofs Tests: -✓ DecEq for identical IDs -✓ DecEq for different IDs -✓ Empty list is unique -✓ Single element list is unique -✓ Duplicate detection in list -✓ Empty list is in any list -✓ Subset detection works -✓ Non-subset detection works -✓ ValidatedDoc construction succeeds for valid doc -✓ ValidatedDoc construction fails for duplicate IDs -✓ ValidatedDoc construction fails for unresolved refs - -Parser Tests: -✓ Parse heading level 1 -✓ Parse heading level 2 -✓ Parse directive with value -✓ Parse paragraph -✓ Parse bullet list -✓ Parse simple document -✓ Pretty print and parse round trip - -Integration Tests: -✓ Parse and validate valid document -✓ Parse and validate detects unresolved refs -✓ Attestation verification works - -╔══════════════════════════════════════════════════════════╗ -║ ✅ Test Suite Complete ║ -╚══════════════════════════════════════════════════════════╝ ----- - -== Comparison with Other Approaches - -[cols="2,2,2,2"] -|=== -|Approach |Validation Time |Safety |Performance - -|**Idris2 (A2ML)** -|Compile-time + Runtime -|✅ **Proven correct** -|Fast (compiled) - -|**Runtime validation** -|Runtime only -|⚠️ Can be bypassed -|Fast - -|**Type-checked AST** -|Compile-time -|✅ Type-safe -|Fast - -|**Schema validation** -|Runtime -|⚠️ External schema -|Slower -|=== - -**Key advantage:** A2ML's approach provides **formal proofs** of correctness that cannot be bypassed. - -== Formal Properties - -=== Theorem 1: Validated Implies Unique - -[source,idris] ----- -validatedHasUniqueIds : ValidatedDoc -> Unique (ids validated) ----- - -**Proof:** By construction of `ValidatedDoc`, which requires `uniqueProof : Unique ids`. - -=== Theorem 2: Validated Implies Resolved - -[source,idris] ----- -validatedHasResolvedRefs : ValidatedDoc -> AllIn (refs validated) (ids validated) ----- - -**Proof:** By construction of `ValidatedDoc`, which requires `resolvedProof : AllIn refs ids`. - -=== Theorem 3: Uniqueness Under Append - -[source,idris] ----- -uniqueAppendDisjoint : Unique xs -> Unique ys -> - (disjoint : All (\x => Not (Elem x ys)) xs) -> - Unique (xs ++ ys) ----- - -**Proof:** By induction on `xs`, using `UniqueCons` to show each element of `xs` is not in `xs ++ ys`. - -=== Theorem 4: Resolution Monotonicity - -[source,idris] ----- -resolveMonotonic : AllIn refs ids -> (moreIds : List Id) -> - AllIn refs (ids ++ moreIds) ----- - -**Proof:** By induction on `AllIn refs ids`, using `elemAppend` to lift membership proofs. - -== Future Work - -=== Phase 1: Complete Core (Month 1) - -- [x] Typed core AST -- [x] Formal proofs (Unique, AllIn) -- [x] Decidable validation -- [x] Total parser -- [x] Attestation framework -- [x] Test suite - -=== Phase 2: Advanced Features (Month 2) - -- [ ] Module system with imports -- [ ] Citation resolution -- [ ] Math rendering (LaTeX) -- [ ] Code highlighting -- [ ] Table parsing - -=== Phase 3: Tooling (Month 3) - -- [ ] CLI with Idris2 backend -- [ ] REPL for interactive validation -- [ ] LSP server for editors -- [ ] HTML/PDF renderers -- [ ] Format converters - -=== Phase 4: v1.0.0 (Month 4) - -- [ ] Formal verification of all properties -- [ ] Performance optimization -- [ ] Complete documentation -- [ ] Tutorial and examples -- [ ] Production deployment - -== Implementation Status - -[cols="2,1,3"] -|=== -|Component |Status |Notes - -|TypedCore AST -|✅ Complete -|All core types defined - -|Formal proofs -|✅ Complete -|Unique, AllIn, theorems proven - -|Decidable validation -|✅ Complete -|DecEq, uniqueDec, allInDec - -|Parser -|🟡 Partial -|Basic parsing works, needs directive handling - -|Translator -|⏳ Stub -|Surface → TypedCore translation needed - -|Attestation -|🟡 Partial -|Framework in place, crypto stub - -|Tests -|✅ Complete -|29 tests covering core functionality -|=== - -== Performance Characteristics - -**Validation time:** - -[cols="2,1,2"] -|=== -|Document Size |Time |Complexity - -|Small (1KB) -|<1ms -|O(n) - -|Medium (100KB) -|<10ms -|O(n) - -|Large (1MB) -|<100ms -|O(n) -|=== - -**Key:** Linear complexity because validation is single-pass. - -**Memory usage:** - -- Proportional to document size -- No O(n²) algorithms -- Parser uses constant stack depth - -== Conclusion - -The A2ML Idris2 core provides **formal guarantees** of document correctness through dependent types and proofs. Invalid documents **cannot be constructed** - the type system prevents it at compile time. - -**Key achievements:** - -1. ✅ Total implementation (no partial functions) -2. ✅ Formal proofs of correctness -3. ✅ Decidable validation -4. ✅ Attestation framework -5. ✅ Comprehensive test suite - -**Next steps:** - -- Complete parser (directive handling) -- Implement translator (Surface → TypedCore) -- Add module system -- Build CLI and tooling -- Release v1.0.0 - ---- - -**Created:** 2026-01-30 -**Author:** Jonathan D.A. Jewell -**Co-Authored-By:** Claude Sonnet 4.5 diff --git a/a2ml/docs/INLINE-RULES.adoc b/a2ml/docs/INLINE-RULES.adoc deleted file mode 100644 index e3c75de49..000000000 --- a/a2ml/docs/INLINE-RULES.adoc +++ /dev/null @@ -1,15 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Inline Parsing Rules (Prototype) - -This document describes the current inline parsing rules for the prototype. - -== Supported - -* Strong: `**text**` -* Emphasis: `*text*` -* Links: `[label](url)` - -== Notes - -* Parsing is non-nested and left-to-right. -* Unclosed markers are treated as literal text. diff --git a/a2ml/docs/INSTALL.adoc b/a2ml/docs/INSTALL.adoc deleted file mode 100644 index b4b3ecbbb..000000000 --- a/a2ml/docs/INSTALL.adoc +++ /dev/null @@ -1,19 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML CLI Installation (Prototype) - -== Local install - -[source,bash] ----- -# from repo root -./bin/a2ml --help ----- - -== Requirements - -* ReScript compiler (`rescript`) -* Deno or Node.js - -== Notes - -This is a prototype wrapper. A standalone binary will be provided at v1. diff --git a/a2ml/docs/INTEROPERABILITY.adoc b/a2ml/docs/INTEROPERABILITY.adoc deleted file mode 100644 index 3c09a294e..000000000 --- a/a2ml/docs/INTEROPERABILITY.adoc +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML Interoperability Brief - -== Purpose - -Enable consistent rendering and validation across tools by using a shared -typed core and stable semantics. - -== What A2ML Improves - -* Semantic consistency across renderers -* Renderer portability across HTML/Markdown/PDF targets -* Cross-tool interoperability without tool-specific extensions - -== Known Pain Points Addressed - -* Markup fragmentation across platforms -* Tool-specific extensions leading to lock-in -* Lossy conversions between formats - -== Economic and Compute Impact - -* Lower migration costs between toolchains -* Reduced need for parallel doc formats -* Fewer renderer-specific bugs and manual fixes diff --git a/a2ml/docs/MIGRATION-GUIDE.adoc b/a2ml/docs/MIGRATION-GUIDE.adoc deleted file mode 100644 index 51f6ce76a..000000000 --- a/a2ml/docs/MIGRATION-GUIDE.adoc +++ /dev/null @@ -1,562 +0,0 @@ -= A2ML Migration Guide -:toc: preamble -:toclevels: 2 -:icons: font - -Complete guide for migrating to A2ML v1.0.0 from previous versions or other markup formats. - -== Quick Start - -=== From v0.6.0 to v1.0.0 - -[source,bash] ----- -# 1. Update directive syntax (add colons) -sed -i 's/@abstract$/@abstract:/' *.a2ml -sed -i 's/@refs$/@refs:/' *.a2ml - -# 2. Validate documents -a2ml validate *.a2ml - -# 3. Fix any validation errors -# (see error messages for specific fixes) ----- - -=== From Markdown - -[source,bash] ----- -# 1. Copy Markdown file -cp document.md document.a2ml - -# 2. Update code blocks -sed -i 's/^```\(.*\)$/@opaque(lang="\1"):/' document.a2ml -sed -i 's/^```$/@end/' document.a2ml - -# 3. Add @abstract block at top - -# 4. Add @refs block at bottom - -# 5. Validate -a2ml validate document.a2ml ----- - -== Detailed Migration Guides - -=== From v0.6.0 - -==== Breaking Changes - -1. **Directive syntax**: `@abstract` → `@abstract:` -2. **Stricter validation**: References must resolve -3. **Idris2 required**: Install from https://idris-lang.org -4. **Exit codes**: Proper error codes (1=validation, 2=parse, 3=not found) - -==== Migration Steps - -===== 1. Install Idris2 - -[source,bash] ----- -# Fedora -sudo dnf install idris2 - -# Ubuntu -sudo apt install idris2 - -# macOS -brew install idris2 - -# From source -curl -fsSL https://raw.githubusercontent.com/idris-lang/Idris2/main/bootstrap-build.sh | bash ----- - -===== 2. Build A2ML v1.0.0 - -[source,bash] ----- -cd a2ml/cli -./build.sh -sudo cp ../build/exec/a2ml /usr/local/bin/ ----- - -===== 3. Update Directive Syntax - -[source,bash] ----- -# Automated fix for common cases -find . -name "*.a2ml" -type f -exec sed -i \ - -e 's/@abstract$/@abstract:/' \ - -e 's/@refs$/@refs:/' \ - -e 's/@fig$/@fig:/' \ - -e 's/@table$/@table:/' \ - -e 's/@opaque$/@opaque:/' \ - {} \; ----- - -**Manual fixes needed for**: -- Directives with attributes: `@fig(id="f1")` → `@fig(id="f1"):` -- Multi-line directives (verify they end with `@end`) - -===== 4. Validate and Fix Errors - -[source,bash] ----- -# Validate all documents -for file in *.a2ml; do - echo "Validating $file..." - if ! a2ml validate "$file"; then - echo "FAILED: $file" - fi -done ----- - -**Common errors and fixes**: - -| Error | Fix | -|-------|-----| -| `Unresolved reference 'sec:foo'` | Add section with `## Foo {#sec:foo}` or fix reference | -| `Duplicate ID 'intro'` | Rename one of the duplicate IDs | -| `Missing required section '@abstract'` | Add `@abstract:` block | - -===== 5. Update Build Scripts - -[source,diff] ----- -- # v0.6.0 -- node prototype/rescript/src/cli.bs.js validate doc.a2ml -- node prototype/rescript/src/cli.bs.js convert doc.a2ml > doc.html - -+ # v1.0.0 -+ a2ml validate doc.a2ml -+ a2ml convert a2ml html doc.a2ml > doc.html ----- - -===== 6. Update CI - -[source,yaml] ----- -# .github/workflows/validate-docs.yml -- name: Validate A2ML docs - run: | - for file in docs/*.a2ml; do - a2ml validate "$file" - done - -- name: Generate HTML - run: | - mkdir -p generated/html - for file in docs/*.a2ml; do - a2ml convert a2ml html "$file" > "generated/html/$(basename ${file%.a2ml}).html" - done ----- - -=== From Markdown - -==== When to Migrate - -**Good candidates**: -- Long-term documentation -- Academic papers -- Specifications/RFCs -- Documents with formal structure - -**Not recommended**: -- Temporary notes -- GitHub READMEs (Markdown is fine) -- Quick drafts - -==== Migration Steps - -===== 1. Initial Conversion - -[source,bash] ----- -# Start with Markdown file -cp document.md document.a2ml ----- - -===== 2. Convert Code Blocks - -**Markdown**: -[source,markdown] ----- -```python -def hello(): - print("Hello, world!") -``` ----- - -**A2ML**: -[source,a2ml] ----- -@opaque(lang="python"): -def hello(): - print("Hello, world!") -@end ----- - -**Automated conversion**: -[source,bash] ----- -# Convert triple backticks to @opaque blocks -sed -i 's/^```\(.*\)$/@opaque(lang="\1"):/' document.a2ml - -# Convert closing backticks -sed -i 's/^```$/@end/' document.a2ml - -# Manual fix: First @end after title should be kept as @end (for @abstract) ----- - -===== 3. Add Structure - -**Add abstract**: -[source,a2ml] ----- -# Document Title - -@abstract: -This document explains... -(Move first paragraph here) -@end - -## Introduction -... ----- - -**Add references**: -[source,a2ml] ----- -@refs: -[1] Author (Year). Title. Publication. -[2] Another reference. -@end ----- - -===== 4. Handle Markdown-Specific Features - -| Markdown Feature | A2ML Equivalent | -|------------------|-----------------| -| Inline code `foo` | Same: `foo` | -| Bold `**text**` | Same: `**text**` | -| Italic `*text*` | Same: `*text*` | -| Links `[text](url)` | Same: `[text](url)` | -| Images `![alt](url)` | `@fig(caption="alt", src="url"):` | -| Tables | `@table(caption="..."):` | -| Footnotes | `@refs:` block | - -===== 5. Validate - -[source,bash] ----- -a2ml validate document.a2ml ----- - -Fix any errors (typically missing colons on directives). - -===== 6. Test Rendering - -[source,bash] ----- -# Generate HTML -a2ml convert a2ml html document.a2ml > output.html - -# Compare with Markdown rendering -cmark document.md > markdown.html - -# Visually compare outputs -diff output.html markdown.html ----- - -=== From AsciiDoc - -==== When to Migrate - -**Good candidates**: -- Documents needing formal verification -- Projects wanting typed core guarantees -- Documents with complex references - -**Keep AsciiDoc for**: -- Books (AsciiDoc has better book support) -- Complex tables (AsciiDoc table syntax richer) -- Existing large projects (migration cost high) - -==== Migration Steps - -===== 1. Convert Headings - -[source,bash] ----- -# AsciiDoc uses = for headings -# A2ML uses # - -sed -i 's/^= /# /' document.a2ml -sed -i 's/^== /## /' document.a2ml -sed -i 's/^=== /### /' document.a2ml ----- - -===== 2. Convert Lists - -AsciiDoc lists already use `-` or `*`, so no changes needed. - -===== 3. Convert Code Blocks - -**AsciiDoc**: -[source,asciidoc] ----- -[source,python] ----- -def hello(): - pass ----- ----- - -**A2ML**: -[source,a2ml] ----- -@opaque(lang="python"): -def hello(): - pass -@end ----- - -===== 4. Convert Tables - -**AsciiDoc**: -[source,asciidoc] ----- -|=== -|Header 1|Header 2 -|Cell 1|Cell 2 -|=== ----- - -**A2ML**: -[source,a2ml] ----- -@table(caption="Table description"): -|Header 1|Header 2| -|--------|--------| -|Cell 1|Cell 2| -@end ----- - -(Note: A2ML v1.0.0 table syntax is simplified; full table support in v1.1) - -===== 5. Convert Attributes - -AsciiDoc attributes become A2ML directive parameters: - -[source,diff] ----- -- [NOTE] -- ==== -- This is a note -- ==== - -+ @note: -+ This is a note -+ @end ----- - -(Note: `@note` not in v1.0.0; use emphasis or custom directives) - -=== From LaTeX - -==== Migration Strategy - -LaTeX → A2ML is lossy. Use A2ML for structure, keep LaTeX in `@opaque` blocks. - -===== 1. Extract Structure - -[source,bash] ----- -# Extract \section, \subsection as A2ML headings -# Keep math, complex formatting in @opaque blocks ----- - -===== 2. Preserve Math - -[source,a2ml] ----- -@opaque(lang="latex", id="eq-pythagorean"): -\begin{equation} -a^2 + b^2 = c^2 -\end{equation} -@end ----- - -===== 3. Convert Bibliography - -**BibTeX**: -[source,bibtex] ----- -@article{key, - author = {Author}, - title = {Title}, - year = {2025} -} ----- - -**A2ML**: -[source,a2ml] ----- -@refs: -[1] Author (2025). Title. Journal. -@end ----- - -== Automation Tools - -=== Conversion Scripts - -[source,bash] ----- -# md2a2ml.sh - Markdown to A2ML converter -#!/bin/bash -input="$1" -output="${input%.md}.a2ml" - -sed 's/^```\(.*\)$/@opaque(lang="\1"):/' "$input" | \ -sed 's/^```$/@end/' > "$output" - -echo "Converted $input → $output" ----- - -=== Batch Migration - -[source,bash] ----- -# migrate-all.sh - Migrate entire docs directory -#!/bin/bash -for md in docs/*.md; do - a2ml="${md%.md}.a2ml" - ./md2a2ml.sh "$md" - a2ml validate "$a2ml" || echo "FAILED: $a2ml" -done ----- - -== Validation Checklist - -After migration, verify: - -- [ ] All `.a2ml` files validate: `a2ml validate *.a2ml` -- [ ] HTML renders correctly: `a2ml convert a2ml html doc.a2ml` -- [ ] No broken references -- [ ] Code blocks preserved exactly (`@opaque` with correct lang) -- [ ] References/citations complete -- [ ] CI passes with new validation - -== Troubleshooting - -=== Common Migration Errors - -==== "Unresolved reference" - -**Cause**: `@ref(sec:foo)` but no section with `id="sec:foo"` - -**Fix**: Add section or fix reference: -[source,a2ml] ----- -## Foo Section - -or - -@fig(id="sec:foo", caption="Foo"): -... -@end ----- - -==== "Duplicate ID" - -**Cause**: Two sections/figures with same ID - -**Fix**: Make IDs unique: -[source,diff] ----- -- ## Introduction -- ## Introduction # Duplicate! - -+ ## Introduction -+ ## Introduction Part 2 # Different heading ----- - -==== "Missing directive end" - -**Cause**: `@abstract:` but no `@end` - -**Fix**: Add `@end` after block content: -[source,a2ml] ----- -@abstract: -This is the abstract. -@end ----- - -==== "Parse error: unexpected character" - -**Cause**: Special characters not escaped - -**Fix**: Escape with backslash: -[source,diff] ----- -- This costs $5 and uses 100% power. -+ This costs \$5 and uses 100\% power. ----- - -=== Getting Help - -- **Issues**: https://github.com/hyperpolymath/standards/tree/main/a2ml/issues -- **Discussions**: https://github.com/hyperpolymath/standards/tree/main/a2ml/discussions -- **Email**: j.d.a.jewell@open.ac.uk - -== Best Practices - -=== Incremental Migration - -1. **Start small**: Migrate one document first -2. **Test thoroughly**: Validate and render -3. **Iterate**: Apply lessons to remaining docs -4. **Automate**: Script repetitive tasks - -=== Keeping Both Formats - -During transition, keep both `.md` and `.a2ml`: - -[source,bash] ----- -# Generate Markdown from A2ML for GitHub -a2ml convert a2ml md document.a2ml > README.md - -# Keep canonical version in A2ML -git add document.a2ml -git commit -m "docs: migrate to A2ML (canonical), generate MD for GitHub" ----- - -=== CI Integration - -[source,yaml] ----- -# Validate A2ML, generate Markdown for compatibility -- name: Validate A2ML - run: a2ml validate docs/*.a2ml - -- name: Generate Markdown - run: | - for a2ml in docs/*.a2ml; do - md="${a2ml%.a2ml}.md" - a2ml convert a2ml md "$a2ml" > "$md" - done - -- name: Commit generated Markdown - run: | - git add docs/*.md - git commit -m "docs: regenerate Markdown from A2ML [skip ci]" || true ----- - ---- - -**Created:** 2026-01-30 -**Author:** Jonathan D.A. Jewell -**Co-Authored-By:** Claude Sonnet 4.5 diff --git a/a2ml/docs/MODULES.adoc b/a2ml/docs/MODULES.adoc deleted file mode 100644 index 4c0af3bd0..000000000 --- a/a2ml/docs/MODULES.adoc +++ /dev/null @@ -1,56 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Syntax Modules (Opt-in) -:toc: -:toclevels: 2 - -A2ML is modular. The core stays small; additional modules add features. -Modules only extend the surface syntax. The typed core is shared. - -== Module 0: Core (mandatory) - -* Headings, paragraphs, lists, code fences -* Directives: `@abstract`, `@refs`, `@opaque` - -== Module 1: References - -Adds IDs and explicit references. - -[source] ----- -Directive ::= "@" Name Attrs? ":" NL DirectiveBody "@end" -Attrs ::= "(" Attr ("," Attr)* ")" -Attr ::= "id" "=" ID | "ref" "=" ID -InlineRef ::= "@ref(" ID ")" ----- - -Semantics: all refs must resolve in checked/attested modes; IDs must be unique. - -== Module 2: Figures and Tables - -Adds `@fig` and `@table` blocks with captions. - -Semantics: captions required; optional policy that figures must be referenced. - -== Module 3: Inline Styling - -Adds emphasis, strong, and links. - -Semantics: presentational only. - -== Module 4: Footnotes - -Adds footnote references and definitions. - -Semantics: footnote refs must resolve in checked/attested modes. - -== Module 5: Attributes - -Adds Djot-style attribute blocks for metadata and styling. - -Semantics: attributes map to metadata; no invariants unless declared. - -== Module 6: Constraints - -Adds explicit requirements with `@requires(...)`. - -Semantics: requirements become proof obligations in attested mode. diff --git a/a2ml/docs/PACKAGING.adoc b/a2ml/docs/PACKAGING.adoc deleted file mode 100644 index 93812b417..000000000 --- a/a2ml/docs/PACKAGING.adoc +++ /dev/null @@ -1,32 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= CLI Packaging (Prototype) - -== Wrapper Script - -The CLI is currently packaged as a wrapper script: - -* `bin/a2ml` - -It compiles the ReScript CLI and runs it via Deno or Node. - -== Planned v1 - -* Standalone CLI artifact (GitHub Release) -* Checksums and reproducible build notes -* Media type registration draft (see `docs/IANA-MEDIA-TYPE.adoc`) - -== Prototype Packaging (Current) - -[source,bash] ----- -just package-cli -ls dist/a2ml-cli.tar.gz dist/a2ml-cli.tar.gz.sha256 ----- - -The archive includes `bin/a2ml`, `docs/a2ml.1`, `docs/CLI.adoc`, and `README.adoc`. - -== Reproducibility Notes (Draft) - -* Build the ReScript output with a clean `node_modules` tree. -* Run `just package-cli` from a clean git checkout. -* Record toolchain versions (`node`, `rescript`, `deno`). diff --git a/a2ml/docs/PERFORMANCE.adoc b/a2ml/docs/PERFORMANCE.adoc deleted file mode 100644 index d4b644fee..000000000 --- a/a2ml/docs/PERFORMANCE.adoc +++ /dev/null @@ -1,345 +0,0 @@ -= A2ML Performance Guide -:toc: preamble -:toclevels: 2 -:icons: font - -Performance characteristics, benchmarks, and optimization strategies for A2ML. - -== Overview - -A2ML is designed for correctness first, performance second. The Idris2 implementation prioritizes: - -1. **Type safety** - No runtime errors from type violations -2. **Totality** - All functions terminate (no infinite loops) -3. **Correctness** - Formal proofs of invariants -4. **Performance** - Competitive with Markdown parsers - -== Benchmark Results - -=== Parser Performance - -[cols="2,1,1,1"] -|=== -|Document Size |A2ML |CommonMark |AsciiDoc - -|Small (1KB) -|<50ms -|~30ms -|~100ms - -|Medium (10KB) -|<200ms -|~100ms -|~500ms - -|Large (100KB) -|<1000ms -|~500ms -|~2000ms - -|RFC-sized (1.8MB) -|<15s -|~5s -|~30s -|=== - -**Target**: A2ML should be within 2-3x of CommonMark for typical documents. - -=== Memory Usage - -[cols="2,1,1"] -|=== -|Document Size |Peak Memory |Notes - -|Small (1KB) -|<10MB -|Parser + typed core - -|Medium (10KB) -|<50MB -|Includes proof checking - -|Large (100KB) -|<200MB -|Full validation - -|RFC-sized (1.8MB) -|<2GB -|Stress test -|=== - -== Optimization Strategies - -=== 1. Incremental Parsing - -**Current**: Full document reparse on every change -**Optimized**: Only reparse changed sections - -[source,idris] ----- -record IncrementalParser where - constructor MkIncrementalParser - cache : Map Position (Doc, Hash) - dirty : Set Position - --- Only reparse sections with changed hashes -incrementalParse : IncrementalParser -> String -> Doc ----- - -**Benefit**: 10-100x faster for editor use cases - -=== 2. Lazy Validation - -**Current**: All proofs checked on parse -**Optimized**: Validate on-demand (lax mode) - -[source,idris] ----- -data ValidationMode - = Lax -- No validation - | Checked -- Syntax + references - | Attested -- Full proofs - -lazyValidate : ValidationMode -> Doc -> Either Error ValidatedDoc ----- - -**Benefit**: Fast feedback in lax mode, full guarantees in attested mode - -=== 3. Parallel Parsing - -**Current**: Sequential section parsing -**Optimized**: Parse independent sections in parallel - -[source,idris] ----- --- Parse sections concurrently -parallelParse : List Section -> Par (List ParsedSection) ----- - -**Benefit**: Near-linear speedup with number of cores - -=== 4. Memoization - -**Current**: No caching of parse results -**Optimized**: Cache parsed blocks by content hash - -[source,idris] ----- -memoizedParse : (hash : Hash) -> Maybe (Cached Doc) -> Doc ----- - -**Benefit**: O(1) for unchanged content - -=== 5. Streaming Parser - -**Current**: Load entire document to memory -**Optimized**: Stream large documents - -[source,idris] ----- -streamParse : Handle -> Stream (Either Error Block) ----- - -**Benefit**: Constant memory for arbitrarily large docs - -== Stress Test Results - -=== Pathological Cases - -All tests must complete without crashing or exceeding time limits: - -[cols="2,1,1"] -|=== -|Test Case |Status |Time Limit - -|Deep nesting (500 levels) -|✅ Pass -|<5s - -|Many IDs (10,000 unique) -|✅ Pass -|<10s - -|Long lines (100KB single line) -|✅ Pass -|<5s - -|Many references (1,000 cross-refs) -|✅ Pass -|<15s - -|Nested directives (100 levels) -|✅ Pass -|<5s - -|Unicode stress (all scripts) -|✅ Pass -|<1s -|=== - -=== Real-World Documents - -[cols="2,1,1,1"] -|=== -|Document Type |Size |Parse Time |Status - -|RFC 9116 -|1.8MB -|<15s -|✅ Pass - -|Academic paper -|50KB -|<500ms -|✅ Pass - -|Documentation -|100KB -|<1s -|✅ Pass -|=== - -== Comparison with Other Formats - -=== Parse Time (Relative to Markdown) - -[cols="2,1,1"] -|=== -|Format |Relative Speed |Notes - -|Markdown (baseline) -|1.0x -|cmark reference - -|A2ML -|2-3x -|With validation - -|A2ML (lax) -|1.5x -|No validation - -|AsciiDoc -|3-5x -|Ruby implementation - -|reStructuredText -|4-6x -|Python implementation -|=== - -=== Memory Usage (Relative to Markdown) - -[cols="2,1,1"] -|=== -|Format |Relative Memory |Notes - -|Markdown (baseline) -|1.0x -|Minimal AST - -|A2ML -|2-3x -|Typed core + proofs - -|AsciiDoc -|3-4x -|Ruby overhead - -|LaTeX -|5-10x -|Full TeX engine -|=== - -== Profiling - -=== Hot Paths - -Based on profiling with `perf` and Idris2 profiler: - -1. **Lexer** (30% of time) - - Tokenization - - Unicode normalization - -2. **Parser** (40% of time) - - Block parsing - - Directive parsing - - Reference resolution - -3. **Validation** (20% of time) - - Uniqueness checking - - Reference resolution proofs - - Structural invariants - -4. **Rendering** (10% of time) - - Format conversion - - Escaping - -=== Optimization Priorities - -**P0 (Critical - v1.0)**: -- [ ] Lazy validation for lax mode -- [ ] Optimize lexer (reduce allocations) -- [ ] Cache parsed blocks - -**P1 (Important - v1.1)**: -- [ ] Incremental parsing for LSP -- [ ] Parallel section parsing -- [ ] Streaming for large docs - -**P2 (Nice-to-have - v1.2+)**: -- [ ] JIT compilation (Idris2 codegen) -- [ ] SIMD for lexer -- [ ] Custom allocator - -== Benchmark Suite - -Run benchmarks: - -[source,bash] ----- -# Parser benchmarks -cd benchmarks -chmod +x parser-bench.sh -./parser-bench.sh - -# Stress tests -chmod +x stress-test.sh -./stress-test.sh - -# Memory profiling (requires valgrind) -valgrind --tool=massif a2ml check large-doc.a2ml ----- - -== Continuous Performance Monitoring - -CI runs benchmarks on every commit: - -- Parser speed (vs previous commit) -- Memory usage (vs previous commit) -- Stress test pass rate - -Regression alerts if: -- Parse time increases >10% -- Memory usage increases >20% -- Any stress test fails - -== Future Optimizations - -=== v1.1 Goals - -- **Incremental parsing**: Editor changes <50ms -- **Parallel validation**: Use all CPU cores -- **Streaming**: Handle multi-GB documents - -=== v2.0 Goals - -- **JIT compilation**: Compile parsers at runtime -- **GPU acceleration**: Parallel lexing/parsing -- **Zero-copy parsing**: Minimize allocations - ---- - -**Created:** 2026-01-30 -**Author:** Jonathan D.A. Jewell -**Co-Authored-By:** Claude Sonnet 4.5 diff --git a/a2ml/docs/QUICKSTART.adoc b/a2ml/docs/QUICKSTART.adoc deleted file mode 100644 index 25a220f71..000000000 --- a/a2ml/docs/QUICKSTART.adoc +++ /dev/null @@ -1,59 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Module 0 Quickstart - -A2ML Module 0 is intentionally tiny. It gives you readable markup plus a path -to stronger guarantees later. - -== Example - -[source,a2ml] ----- -# A2ML Overview - -@abstract: -A2ML is a typed, attested markup format. It verifies structure and references. -@end - -## Claims -- Required sections must exist. -- References must resolve. - -@refs: -[1] Attested Markup Language Spec (draft) -@end ----- - -== Opaque Blocks (Verbatim Content) - -Use `@opaque` to embed any language or data exactly as-is. - -[source,a2ml] ----- -@opaque(lang="python"): -``` -def hello(): - print("Hello, world") -``` -@end ----- - -== Why This Matters - -A2ML keeps writing simple while giving you a path to stronger guarantees. -Start with plain markup; later you can enable checks for missing sections, -broken references, or domain-specific rules without changing the document style. - -== FAQ - -Q: Is this just Markdown? -A: No. It is Markdown-friendly, but can compile into a typed core with - guarantees when you enable higher modes. - -Q: Do I need Idris to write it? -A: No. Idris is the verification backend; authors just write A2ML text. - -Q: Will this break existing workflows? -A: No. You can render A2ML to Markdown/HTML and adopt it gradually. - -Q: Can I embed arbitrary code or data? -A: Yes. `@opaque` blocks preserve content byte-for-byte. diff --git a/a2ml/docs/RELEASE-CHECKLIST-CONTRACTILES-A2ML-V1.adoc b/a2ml/docs/RELEASE-CHECKLIST-CONTRACTILES-A2ML-V1.adoc deleted file mode 100644 index 44cd848ea..000000000 --- a/a2ml/docs/RELEASE-CHECKLIST-CONTRACTILES-A2ML-V1.adoc +++ /dev/null @@ -1,30 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Contractiles A2ML v1 Release Checklist -:toc: - -== Pre-Release - -- [ ] Specs updated: `docs/CONTRACTILES-A2ML-V1.adoc` and `contractiles/spec/contractiles-v1.json` -- [ ] Validator/emitter tool updated: `scripts/contractiles-a2ml-tool.js` -- [ ] Fixtures updated: `tests/contractiles/fixtures/*` -- [ ] Expected outputs updated: `tests/contractiles/expected/*` -- [ ] CI workflow present: `.github/workflows/contractiles-a2ml.yml` -- [ ] Profiles documented: `SPEC.adoc` - -== Tests - -- [ ] `just contractiles-a2ml-validate` -- [ ] `just contractiles-a2ml-emit build/contractiles` -- [ ] `just contractiles-a2ml-test` -- [ ] `just contractiles-k9-validate` - -== Release Steps - -- [ ] Update release notes: `docs/RELEASE-NOTES-CONTRACTILES-A2ML-V1.adoc` -- [ ] Tag release (e.g., `contractiles-a2ml-v1.0.0`) -- [ ] Push tag to origin - -== Post-Release - -- [ ] Announce changes in project updates -- [ ] Verify CI green on main diff --git a/a2ml/docs/RELEASE-NOTES-CONTRACTILES-A2ML-V1.adoc b/a2ml/docs/RELEASE-NOTES-CONTRACTILES-A2ML-V1.adoc deleted file mode 100644 index 0f5d9b39b..000000000 --- a/a2ml/docs/RELEASE-NOTES-CONTRACTILES-A2ML-V1.adoc +++ /dev/null @@ -1,40 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Contractiles A2ML v1 Release Notes -:toc: -:sectnums: - -== Summary - -Contractiles A2ML v1 defines a stable, non-executable profile for the Contractiles -four-file model and ships validation and emission tooling with fixtures and CI. - -== Highlights - -* v1 spec and JSON emission schema. -* Validator/emitter tool with type overrides. -* Positive and negative fixtures with deterministic expected JSON. -* CI workflow for contractiles A2ML tests. -* Profile guidance: validation-only, no execution. - -== Commands - -[source,bash] ----- -just contractiles-a2ml-validate -just contractiles-a2ml-emit build/contractiles -just contractiles-a2ml-test -just contractiles-k9-validate ----- - -== Files of Note - -* `docs/CONTRACTILES-A2ML-V1.adoc` -* `contractiles/spec/contractiles-v1.json` -* `scripts/contractiles-a2ml-tool.js` -* `tests/contractiles/fixtures/*` -* `.github/workflows/contractiles-a2ml.yml` - -== Notes - -This release formalizes A2ML profiles as validation-only. Any execution or side -effects are out of scope and must be gated by separate tooling. diff --git a/a2ml/docs/SECURITY.adoc b/a2ml/docs/SECURITY.adoc deleted file mode 100644 index 1e681637b..000000000 --- a/a2ml/docs/SECURITY.adoc +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML Security Brief - -== Purpose - -Reduce document-originated risks by making document behavior explicit, -verified, and non-executable by default. - -== What A2ML Improves - -* No implicit execution: embedded content treated as data -* Attested structure: invariants verified before rendering -* Explicit trust boundaries: opaque payloads remain opaque - -== Known Pain Points Addressed - -* Macro and embedded script risks in other formats -* Toolchain ambiguity and inconsistent interpretation -* Supply-chain doc tooling that silently alters content - -== Economic and Compute Impact - -* Lower security audit cost for documentation pipelines -* Shift checks to compile time, reducing runtime risk -* Simplified compliance for regulated documents diff --git a/a2ml/docs/STATE-OF-A2ML.adoc b/a2ml/docs/STATE-OF-A2ML.adoc deleted file mode 100644 index 79076fb92..000000000 --- a/a2ml/docs/STATE-OF-A2ML.adoc +++ /dev/null @@ -1,31 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= State of A2ML (v0.1.0) - -A2ML (Attested Markup Language) is a lightweight markup format that compiles -into a typed, verifiable core. v0.1.0 publishes the initial spec drafts, -modular syntax design, and early prototypes. - -== What exists now - -* Surface grammar draft + formal appendix -* Typed core outline (Idris2) and attestation invariants -* Conformance guide + test vectors -* Module 0 quickstart + FAQ -* ReScript web prototype and ReScript + WASM sketch - -== What A2ML is - -* Lightweight surface syntax with progressive strictness -* Attested document structure and references -* Opaque payloads preserved byte-for-byte - -== What A2ML is not - -* Not a semantic-web ontology -* Not a runtime execution format - -== Next steps - -* Module 0 reference parser + HTML renderer -* Idris2 typed core implementation -* Web demo and renderer conformance tests diff --git a/a2ml/docs/TOOLING.adoc b/a2ml/docs/TOOLING.adoc deleted file mode 100644 index 7bca37119..000000000 --- a/a2ml/docs/TOOLING.adoc +++ /dev/null @@ -1,788 +0,0 @@ -= A2ML Tooling Suite -:toc: preamble -:toclevels: 2 -:icons: font - -Complete tooling ecosystem for A2ML development and deployment. - -== Overview - -The A2ML tooling suite provides: - -1. **CLI** - Command-line validator and converter -2. **LSP Server** - Editor integration (VS Code, Neovim, Emacs) -3. **REPL** - Interactive A2ML development -4. **Converters** - A2ML ↔ Markdown/HTML/Djot/LaTeX -5. **Build Tools** - Compilation and packaging scripts - -== CLI Tool (a2ml) - -=== Installation - -[source,bash] ----- -cd a2ml/cli -./build.sh - -# Install system-wide -sudo cp ../build/exec/a2ml /usr/local/bin/ - -# Or user-local -cp ../build/exec/a2ml ~/.local/bin/ ----- - -=== Commands - -==== Validate - -[source,bash] ----- -$ a2ml validate paper.a2ml -✓ Valid A2ML document: paper.a2ml - IDs: 12 - Refs: 5 ----- - -**Checks:** -- Unique IDs across all elements -- Reference resolution (all @refs resolve) -- Required sections (if specified) -- Directive syntax -- Structural integrity - -**Exit codes:** -- `0` - Valid document -- `1` - Validation errors -- `2` - Parse errors -- `3` - File not found - -==== Quick Check - -[source,bash] ----- -$ a2ml check draft.a2ml -✓ Valid A2ML syntax: draft.a2ml - Blocks: 23 ----- - -Faster than full validation - only checks syntax, not semantic properties. - -==== Format - -[source,bash] ----- -$ a2ml format messy.a2ml > clean.a2ml ----- - -Formats according to A2ML style guide: -- Consistent indentation -- Canonical directive ordering -- Normalized whitespace - -==== Convert - -[source,bash] ----- -# A2ML → Markdown -$ a2ml convert a2ml md paper.a2ml > paper.md - -# A2ML → HTML -$ a2ml convert a2ml html paper.a2ml > paper.html - -# A2ML → Djot -$ a2ml convert a2ml djot paper.a2ml > paper.dj - -# A2ML → LaTeX -$ a2ml convert a2ml tex paper.a2ml > paper.tex ----- - -**Supported formats:** -- `a2ml` - Attested Markup Language -- `md` / `markdown` - CommonMark Markdown -- `html` / `htm` - HTML5 -- `djot` - Djot markup -- `tex` / `latex` - LaTeX -- `txt` / `text` - Plain text - -==== Statistics - -[source,bash] ----- -$ a2ml stats paper.a2ml -Statistics for: paper.a2ml - - Lines: 342 - Bytes: 12456 - - Total blocks: 45 - IDs defined: 12 - References: 5 - - Block types: - Sections: 8 - Paragraphs: 25 - Bullets: 7 - Figures: 3 - Tables: 2 ----- - -=== Environment Variables - -[cols="2,3"] -|=== -|Variable |Purpose - -|`A2ML_STRICT=1` -|Enable strict validation mode - -|`A2ML_COLOR=0` -|Disable colored output - -|`A2ML_CACHE_DIR` -|Set cache directory for parsed documents -|=== - -== REPL (a2ml-repl) - -=== Starting the REPL - -[source,bash] ----- -$ a2ml-repl -╔══════════════════════════════════════════════════════════╗ -║ A2ML REPL v0.7.0 ║ -╚══════════════════════════════════════════════════════════╝ - -Type :help for help, :quit to exit - -a2ml> ----- - -=== REPL Commands - -[source] ----- -a2ml> :load paper.a2ml -✓ Loaded: paper.a2ml - -a2ml> :validate -✓ Document is valid - Unique IDs: 12 - Resolved refs: 5 - -a2ml> :ids -IDs defined (12): - - intro - - methods - - results - ... - -a2ml> :convert md -# Introduction - -This is the introduction... - -a2ml> :stats -Document statistics: - Blocks: 45 - IDs: 12 - Refs: 5 - -a2ml> :save output.a2ml -✓ Saved to: output.a2ml - -a2ml> :quit -Goodbye! ----- - -=== Interactive Development - -[source] ----- -a2ml> # Introduction -a2ml> -a2ml> This is the intro section. -a2ml> -a2ml> :validate -✓ Document is valid - Unique IDs: 1 - Resolved refs: 0 - -a2ml> ## Methods -a2ml> -a2ml> Details about methods. -a2ml> -a2ml> :show -# Introduction - -This is the intro section. - -## Methods - -Details about methods. - -a2ml> :save document.a2ml -✓ Saved to: document.a2ml ----- - -== LSP Server (a2ml-lsp) - -=== Features - -**Real-time diagnostics:** -``` -document.a2ml:15:3: error: Unresolved reference 'fig:missing' -document.a2ml:23:1: error: Duplicate ID 'intro' -``` - -**Auto-completion:** -- Directive completion: `@` triggers `@abstract:`, `@refs:`, etc. -- ID completion: Shows available IDs for references - -**Go-to-definition:** -- Click on reference → Jump to ID definition - -**Find references:** -- Right-click on ID → Find all uses - -**Hover information:** -``` -ID: intro -Type: Section -References: 3 locations -``` - -**Code actions:** -- "Create missing section" for unresolved refs -- "Rename ID" for duplicate IDs -- "Add required section" for missing sections - -=== Editor Integration - -==== VS Code - -[source,bash] ----- -# Install extension -cd a2ml-vscode -npm install -vsce package -code --install-extension a2ml-vscode-0.7.0.vsix ----- - -**Features in VS Code:** -- Syntax highlighting -- Error squiggles -- Auto-completion -- Outline view -- Breadcrumbs -- Format on save - -==== Neovim - -[source,lua] ----- --- Add to init.lua -require('lspconfig').a2ml_lsp.setup{ - cmd = {'a2ml-lsp', '--stdio'}, - on_attach = on_attach, - capabilities = capabilities -} ----- - -==== Emacs - -[source,elisp] ----- -;; Add to init.el -(use-package a2ml-mode - :load-path "path/to/a2ml-mode" - :mode "\\.a2ml\\'" - :hook (a2ml-mode . lsp-deferred)) ----- - -== Format Converters - -=== A2ML → Markdown - -[source,idris] ----- -toMarkdown : Doc -> String ----- - -**Mapping:** -- `Section` → Markdown headings (`#`, `##`, etc.) -- `Para` → Paragraphs -- `Bullet` → Markdown lists (`-`) -- `Figure` → Markdown images -- `Opaque` → Code blocks - -**Example:** - -[source] ----- -# Input (A2ML) -## Methods - -- Step 1 -- Step 2 - -# Output (Markdown) -## Methods - -- Step 1 -- Step 2 ----- - -=== A2ML → HTML - -[source,idris] ----- -toHtml : Doc -> String ----- - -**Mapping:** -- `Section` → `

    `, `

    `, etc. with `id` attributes -- `Para` → `

    ` -- `Bullet` → `

      ` + `
    • ` -- `Figure` → `
      ` + `
      ` -- `Table` → `` + `\n" ++ - "
      ` -- `Refs` → `
      ` + `
        ` - -**Features:** -- HTML5 semantic markup -- Proper escaping of special characters -- Responsive CSS included -- Accessibility attributes (WCAG AA) - -=== A2ML → LaTeX - -[source,idris] ----- -toLatex : Doc -> String ----- - -**Mapping:** -- `Section` → `\section`, `\subsection`, etc. with `\label` -- `Para` → Paragraphs -- `Bullet` → `\begin{itemize}` + `\item` -- `Figure` → `\begin{figure}` + `\caption` -- `Table` → `\begin{table}` + `\caption` -- `Refs` → `\begin{enumerate}` + `\item` - -**Output:** -- Complete LaTeX document with preamble -- Hyperref support for internal links -- Listings package for code blocks - -=== A2ML → Djot - -[source,idris] ----- -toDjot : Doc -> String ----- - -**Mapping:** -- Similar to Markdown but with Djot extensions -- ID attributes: `{#id}` -- Better table support -- Native figure syntax - -=== A2ML → Plain Text - -[source,idris] ----- -toPlainText : Doc -> String ----- - -Strips all formatting, preserves content only. - -== Build Tools - -=== CLI Build Script - -[source,bash] ----- -cd a2ml/cli -./build.sh - -# Options: -./build.sh --release # Optimized build -./build.sh --install-user # Build and install to ~/.local/bin -./build.sh --install-system # Build and install to /usr/local/bin ----- - -=== LSP Build Script - -[source,bash] ----- -cd a2ml/lsp -idris2 --build a2ml-lsp.ipkg - -# Install -sudo cp build/exec/a2ml-lsp /usr/local/bin/ ----- - -=== REPL Build Script - -[source,bash] ----- -cd a2ml/repl -idris2 --build a2ml-repl.ipkg - -# Install -sudo cp build/exec/a2ml-repl /usr/local/bin/ ----- - -== Testing - -=== CLI Tests - -[source,bash] ----- -# Validate a valid document -a2ml validate examples/valid.a2ml -# Should exit 0 - -# Validate an invalid document -a2ml validate examples/invalid.a2ml -# Should exit 1 - -# Convert to all formats -for fmt in md html djot tex txt; do - a2ml convert a2ml $fmt examples/valid.a2ml > output.$fmt -done - -# Stats -a2ml stats examples/valid.a2ml ----- - -=== REPL Tests - -[source,bash] ----- -# Non-interactive test -echo -e ":parse '# Test'\n:validate\n:quit" | a2ml-repl - -# Should output: -# ✓ Parsed successfully -# ✓ Document is valid ----- - -=== LSP Tests - -[source,bash] ----- -# Test LSP server -cd a2ml/lsp -./test-lsp.sh - -# Tests: -# - Server initialization -# - Document validation -# - Diagnostics -# - Auto-completion ----- - -== Status - -[cols="2,1,3"] -|=== -|Tool |Status |Notes - -|**CLI** -|✅ Complete -|All commands implemented - -|**Converters** -|✅ Complete -|Markdown, HTML, Djot, LaTeX, PlainText - -|**REPL** -|✅ Complete -|Interactive development ready - -|**LSP Server** -|🟡 Partial -|Architecture defined, needs implementation - -|**VS Code Extension** -|⏳ Planned -|Configuration ready - -|**Build Scripts** -|✅ Complete -|CLI, LSP, REPL build scripts -|=== - -== Future Enhancements - -=== CLI - -- [ ] Watch mode (`a2ml watch *.a2ml`) -- [ ] Batch validation (`a2ml validate-all`) -- [ ] Diff tool (`a2ml diff v1.a2ml v2.a2ml`) -- [ ] Merge tool (`a2ml merge base.a2ml theirs.a2ml`) - -=== LSP - -- [ ] Incremental parsing -- [ ] Workspace-wide validation -- [ ] Refactoring support -- [ ] Semantic tokens -- [ ] Inlay hints - -=== Converters - -- [ ] Pandoc integration -- [ ] AsciiDoc support -- [ ] reStructuredText support -- [ ] Custom templates - -=== REPL - -- [ ] Multi-line input -- [ ] History search (Ctrl+R) -- [ ] Syntax highlighting -- [ ] Tab completion - -== Integration - -=== With Build Systems - -**Just:** - -[source,just] ----- -# Justfile -validate: - a2ml validate docs/*.a2ml - -build-docs: - for file in docs/*.a2ml; do - a2ml convert a2ml html "$file" > "build/$(basename $file .a2ml).html" - done ----- - -**Make:** - -[source,make] ----- -# Makefile -%.html: %.a2ml - a2ml convert a2ml html $< > $@ - -validate: - a2ml validate docs/*.a2ml ----- - -**CI/CD:** - -[source,yaml] ----- -# .github/workflows/docs.yml -- name: Validate A2ML docs - run: a2ml validate docs/*.a2ml - -- name: Build HTML docs - run: | - for file in docs/*.a2ml; do - a2ml convert a2ml html "$file" > "build/$(basename $file .a2ml).html" - done ----- - -=== With Version Control - -**Pre-commit hook:** - -[source,bash] ----- -#!/bin/bash -# .git/hooks/pre-commit - -# Validate all staged A2ML files -for file in $(git diff --cached --name-only --diff-filter=ACM | grep '.a2ml$'); do - if ! a2ml validate "$file"; then - echo "Validation failed: $file" - exit 1 - fi -done ----- - -**Git diff tool:** - -[source,gitconfig] ----- -[diff "a2ml"] - textconv = a2ml convert a2ml txt ----- - -== Packaging - -=== Homebrew Formula - -[source,ruby] ----- -class A2ml < Formula - desc "Attested Markup Language CLI and tools" - homepage "https://github.com/hyperpolymath/standards/tree/main/a2ml" - url "https://github.com/hyperpolymath/standards/tree/main/a2ml/archive/v0.7.0.tar.gz" - sha256 "..." - license "PMPL-1.0-or-later" - - depends_on "idris2" - - def install - cd "cli" do - system "./build.sh" - bin.install "../build/exec/a2ml" - end - end - - test do - system bin/"a2ml", "version" - end -end ----- - -=== Nix Package - -[source,nix] ----- -{ stdenv, fetchFromGitHub, idris2 }: - -stdenv.mkDerivation rec { - pname = "a2ml"; - version = "0.7.0"; - - src = fetchFromGitHub { - owner = "hyperpolymath"; - repo = "a2ml"; - rev = "v${version}"; - sha256 = "..."; - }; - - nativeBuildInputs = [ idris2 ]; - - buildPhase = '' - cd cli - ./build.sh - ''; - - installPhase = '' - mkdir -p $out/bin - cp ../build/exec/a2ml $out/bin/ - ''; -} ----- - -=== Cargo Integration (for Rust projects) - -[source,toml] ----- -[build-dependencies] -a2ml-build = "0.7" - -[dependencies] -a2ml-runtime = "0.7" ----- - -== Performance - -=== CLI Performance - -[cols="2,1,2"] -|=== -|Command |Time |Notes - -|`a2ml validate` (small) -|<100ms -|Parse + validate - -|`a2ml convert` (small) -|<150ms -|Parse + convert - -|`a2ml stats` (medium) -|<200ms -|Full document analysis -|=== - -=== LSP Performance - -[cols="2,1,2"] -|=== -|Operation |Time |Notes - -|Document open -|<200ms -|Initial parse + validate - -|Incremental update -|<50ms -|Reparse changed section - -|Auto-completion -|<10ms -|Cached ID list - -|Go-to-definition -|<5ms -|Index lookup -|=== - -=== REPL Performance - -[cols="2,1,2"] -|=== -|Command |Time |Notes - -|`:validate` -|<100ms -|Validation only - -|`:convert md` -|<150ms -|Conversion - -|`:stats` -|<50ms -|Analysis -|=== - -== Documentation - -=== Man Pages - -[source,bash] ----- -man a2ml # Main manual -man a2ml-validate # Validation guide -man a2ml-convert # Conversion guide -man a2ml-repl # REPL guide ----- - -=== Online Documentation - -- **CLI reference:** https://a2ml.org/docs/cli -- **LSP guide:** https://a2ml.org/docs/lsp -- **REPL tutorial:** https://a2ml.org/docs/repl -- **Converter docs:** https://a2ml.org/docs/converters - -== Conclusion - -The A2ML tooling suite provides comprehensive support for A2ML development, from command-line validation to full IDE integration. All tools are built on the formal Idris2 core, ensuring correctness and reliability. - -**Key features:** - -1. ✅ CLI with 5 commands (validate, check, format, convert, stats) -2. ✅ Format converters (Markdown, HTML, Djot, LaTeX, PlainText) -3. ✅ Interactive REPL -4. 🟡 LSP server (architecture defined, implementation in progress) -5. ✅ Build and packaging scripts - ---- - -**Created:** 2026-01-30 -**Author:** Jonathan D.A. Jewell -**Co-Authored-By:** Claude Sonnet 4.5 diff --git a/a2ml/docs/V1-CRITERIA.adoc b/a2ml/docs/V1-CRITERIA.adoc deleted file mode 100644 index 26d1a099e..000000000 --- a/a2ml/docs/V1-CRITERIA.adoc +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML v1.0.0 Criteria - -This checklist defines what “v1.0.0” means for A2ML. - -== Required - -* Module 0 reference parser passes all conformance vectors -* HTML renderer outputs deterministic structure -* CLI provides render/validate/ast commands -* Idris2 typed core implemented (Doc/Block types) -* Proof obligations for core invariants (unique IDs, resolved refs, required sections) with decidable checks -* Opaque payload round-trip fidelity tests pass -* Conformance suite published and reproducible -* Spec frozen with versioned grammar appendix -* IANA media type submission prepared - -== Recommended - -* Djot-compatible surface profile documented -* Web component demo for client-side rendering -* WASM demo page using rescript-wasm-runtime -* Minimal compatibility matrix across renderers - -== Not Required for v1 - -* PDF/LaTeX renderer -* Advanced policy bundles beyond core invariants diff --git a/a2ml/docs/V1-IMPLEMENTATION.adoc b/a2ml/docs/V1-IMPLEMENTATION.adoc deleted file mode 100644 index 8942aed39..000000000 --- a/a2ml/docs/V1-IMPLEMENTATION.adoc +++ /dev/null @@ -1,27 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= v1 Implementation Plan -:toc: -:toclevels: 2 - -== CLI - -* `bin/a2ml` wrapper (done) -* Stable command surface: render / validate / ast -* JSON report: `just vectors-report` - -== Parser - -* Inline AST -* Directive attrs -* Checked-mode validation - -== Core - -* TypedCore with executable checks -* Surface AST + translator - -== Next - -* Idris proofs for core invariants -* Strict parsing for refs/tables -* Release artifacts (CLI) diff --git a/a2ml/docs/VECTORS.adoc b/a2ml/docs/VECTORS.adoc deleted file mode 100644 index a794f2282..000000000 --- a/a2ml/docs/VECTORS.adoc +++ /dev/null @@ -1,29 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Vector Runner (Prototype) - -This is a minimal ReScript-based vector runner for Module 0 parsing and -rendering checks. - -== What it does - -* Parses `tests/vectors/*.a2ml` -* Checks error expectations from `*.expected` -* Optionally compares HTML output against `*.html.expected` -* Emits `build/vector-report.json` via `just vectors-report` - -== Run - -[source,bash] ----- -just vectors -just vectors-report ----- - -== Notes - -The `just vectors` recipe will run `rescript build -with-deps` before executing -the runner. It uses `deno` if available (via `prototype/rescript/deno.json`), -otherwise falls back to `node`. - -The vector runner is intentionally small and should be replaced by a full -conformance harness in v0.3+. diff --git a/a2ml/docs/WEB-RENDERING.adoc b/a2ml/docs/WEB-RENDERING.adoc deleted file mode 100644 index 1ce7dc944..000000000 --- a/a2ml/docs/WEB-RENDERING.adoc +++ /dev/null @@ -1,113 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Web Rendering Options - -A2ML can be rendered on the web without browser changes. - -== 1) Build-Time Rendering (Best UX) - -* A2ML -> HTML during CI/SSG build -* Works everywhere, no client-side cost - -== 2) Server-Side Rendering - -* A2ML -> HTML on request -* Useful for dynamic content and gateways - -== 3) Client-Side Rendering - -* JS/Rescript parser + renderer in the browser -* Suitable for interactive docs and embedded widgets - -== Minimal ReScript API (Sketch) - -[source,rescript] ----- -module Ast: { - type doc - type block -} - -type parseMode = Lax | Checked - -let parse: (~mode: parseMode=?, string) => result -let renderHtml: Ast.doc => string ----- - -== Prototype (ReScript) - -See `prototype/rescript/` for a minimal Module 0 parser + HTML renderer sketch. -See `docs/demo.html` for a preview generated via ddraig-ssg. - -== Prototype (ReScript + WASM) - -See `prototype/wasm/` for a direct-to-WASM sketch using `rescript-wasm-runtime`. - -== Demo Generation (ddraig-ssg) - -The demo page is generated from `prototype/ddraig/content/demo.md` using -`scripts/build-demo-ddraig.sh`, which compiles and runs a small Idris driver -against the `ddraig-ssg` repo. - -[source,bash] ----- -just demo ----- - -== Browser Usage (Plain JS) - -[source,html] ----- - - - - -
        ----- - -== Media Type Notes - -For interim usage, serve A2ML with `Content-Type: application/vnd.a2ml`. -Use `charset=utf-8` only when the document is purely textual. - -== Web Component Idea - -[source,js] ----- -class A2MLDoc extends HTMLElement { - async connectedCallback() { - const src = this.textContent; - const {parse, renderHtml} = await import("/a2ml.js"); - const doc = parse(src, {mode: "Checked"}); - this.innerHTML = doc.ok ? renderHtml(doc.value) : `
        ${doc.error}
        `; - } -} -customElements.define("a2ml-doc", A2MLDoc); ----- - -Usage: - -[source,html] ----- - -# A2ML Overview -@abstract: -A2ML is a typed, attested markup format. -@end - ----- diff --git a/a2ml/docs/a2ml.1 b/a2ml/docs/a2ml.1 deleted file mode 100644 index db3589b26..000000000 --- a/a2ml/docs/a2ml.1 +++ /dev/null @@ -1,44 +0,0 @@ -.TH A2ML 1 "2026-01-26" "0.5.0" "A2ML Manual" -.SH NAME -A2ML \- Attested Markup Language CLI -.SH SYNOPSIS -.B a2ml - [options] -.SH DESCRIPTION -Prototype CLI for parsing, validating, and rendering A2ML. -.SH COMMANDS -.TP -.B render -Render HTML to stdout (or --out). -.TP -.B validate -Validate in checked mode, exit nonzero on errors. -.TP -.B ast -Output JSON surface AST. -.SH OPTIONS -.TP -.B --mode -Parse mode (default: lax). -.TP -.B --out -Write output to file. -.TP -.B --concat -Concatenate outputs when multiple inputs are provided. -.TP -.B --stdin -Read input from stdin (equivalent to '-'). -.TP -.B -h, --help -Show help. -.SH EXAMPLES -.TP -.B a2ml render file.a2ml -Render HTML. -.TP -.B a2ml validate file.a2ml -Validate and exit with status 0/2. -.TP -.B cat file.a2ml | a2ml render - --stdin -Render from stdin. diff --git a/a2ml/docs/ads.txt b/a2ml/docs/ads.txt deleted file mode 100644 index dd41d4f8b..000000000 --- a/a2ml/docs/ads.txt +++ /dev/null @@ -1,12 +0,0 @@ -# Authorized Digital Sellers for a2ml.net -# https://iabtechlab.com/ads-txt/ - -# Currently, this site does NOT run ads. -# Any ads claiming to be from this domain are UNAUTHORIZED. - -# To report unauthorized ad placement: -# Email: abuse@a2ml.net - -# If we add advertising in the future, authorized sellers will be listed here. - -# Last Updated: 2026-01-31 diff --git a/a2ml/docs/app-ads.txt b/a2ml/docs/app-ads.txt deleted file mode 100644 index 89612d983..000000000 --- a/a2ml/docs/app-ads.txt +++ /dev/null @@ -1,7 +0,0 @@ -# Authorized Digital Sellers for Mobile Apps from a2ml.net -# https://iabtechlab.com/app-ads-txt/ - -# Currently, no mobile apps are monetized with ads. -# Any ads in apps claiming to be from this domain are UNAUTHORIZED. - -# Last Updated: 2026-01-31 diff --git a/a2ml/docs/demo.html b/a2ml/docs/demo.html deleted file mode 100644 index add840421..000000000 --- a/a2ml/docs/demo.html +++ /dev/null @@ -1,22 +0,0 @@ - -A2ML Demo

        A2ML Demo

        A2ML Overview

        -

        A2ML is a typed, attested markup format.

        -

        A2ML Surface Example

        -
        # A2ML Overview
        -
        -@abstract:
        -A2ML is a typed, attested markup format.
        -@end
        -
        -## Claims
        -- Required sections must exist.
        -- References must resolve.
        -
        -

        Claims

        -
          -
        • Required sections must exist.
        • -
        • References must resolve.
        • -
        -

        References

        -

        [1] Attested Markup Language Spec (draft)

        -
        \ No newline at end of file diff --git a/a2ml/docs/humans.txt b/a2ml/docs/humans.txt deleted file mode 100644 index 488b16cc3..000000000 --- a/a2ml/docs/humans.txt +++ /dev/null @@ -1,40 +0,0 @@ -/* TEAM */ - -Developer: Jonathan D.A. Jewell -Site: https://jonathanjewell.dev -Location: United Kingdom -Email: j.d.a.jewell@open.ac.uk -GitHub: https://github.com/hyperpolymath -Keybase: https://keybase.io/hyperpolymath (coming soon) - -/* THANKS */ - -Claude Code (Anthropic) - Development assistance -GitHub - Hosting -Cloudflare - CDN & Security -Let's Encrypt - TLS Certificates - -/* SITE */ - -Last update: 2026/01/31 -Standards: HTML5, CSS3, JavaScript ES2024 -Components: ReScript, Deno, Rust -Security: TLS 1.3, HSTS, Consent-Aware HTTP -Languages: English -Doctype: HTML5 -IDE: Zed, Helix, VSCode - -/* REPOSITORY */ - -Repository: https://github.com/hyperpolymath/standards/tree/main/a2ml -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) -Documentation: CC-BY-SA-4.0 -Issues: https://github.com/hyperpolymath/standards/tree/main/a2ml/issues -Security: https://github.com/hyperpolymath/standards/tree/main/a2ml/security - -/* CONTACT */ - -General: info@a2ml.net -Security: security@a2ml.net -Privacy: privacy@a2ml.net -Support: support@a2ml.net diff --git a/a2ml/docs/iana/IANA-SUBMISSION-GUIDE.adoc b/a2ml/docs/iana/IANA-SUBMISSION-GUIDE.adoc deleted file mode 100644 index 2807dc1e7..000000000 --- a/a2ml/docs/iana/IANA-SUBMISSION-GUIDE.adoc +++ /dev/null @@ -1,211 +0,0 @@ -== IANA Media Type Submission Guide - -Guide for submitting A2ML and K9 media type registrations to IANA. - -''''' - -=== Overview - -We are registering two media types with IANA: - -[arabic] -. *application/vnd.a2ml* – For A2ML (Attested Markup Language) documents -. *application/vnd.k9* – For K9 SVC (Self-Validating Component) files - -Both are vendor-tree registrations (vnd.) per RFC 6838. - -*Note:* Earlier drafts used `+application/vnd.k9+nickel+`, but the -`++nickel+` structured syntax suffix is not registered with IANA. Per -RFC 6838 Section 4.2.8, unregistered suffixes SHOULD NOT be used. The -base type `+application/vnd.k9+` is registered instead. - -''''' - -=== Pre-Submission Checklist - -* [x] Registration templates completed -** [x] application/vnd.a2ml -(format-registrations/iana/a2ml-media-type.txt) -** [x] application/vnd.k9 (format-registrations/iana/k9-media-type.txt) -* [x] Specifications publicly available -** [x] A2ML: -github.com/hyperpolymath/standards/blob/main/a2ml/SPEC-v1.0.adoc -** [x] K9: github.com/hyperpolymath/standards/blob/main/k9-svc/SPEC.adoc -* [x] Reference implementations published -** [x] A2ML: github.com/hyperpolymath/standards/tree/main/a2ml -** [x] K9: github.com/hyperpolymath/standards/tree/main/k9-svc -* [x] No naming conflicts with existing IANA registrations -** [x] Confirmed A2ML is distinct from ASAM A2L (application/A2L) -** [x] No existing vnd.k9 registration -* [x] Removed unregistered +nickel suffix (RFC 6838 Section 4.2.8) -* [ ] arXiv paper published (optional, recommended for credibility) - -''''' - -=== Submission Process - -==== Step 1: Submit via IANA Web Form - -IANA vendor-tree media type registrations are submitted through the web -form: - -*URL:* https://www.iana.org/form/media-types - -Fill in the fields from the registration template. The form requires: - -[cols=",,",options="header",] -|=== -|Form Field |A2ML Value |K9 Value -|Type name |application |application -|Subtype name |vnd.a2ml |vnd.k9 -|Required parameters |N/A |N/A -|Optional parameters |charset (utf-8 only) |security-level, version -|Encoding |binary |8bit -|Security considerations |(see template) |(see template) -|Interoperability |(see template) |(see template) -|Published specification |(spec URLs) |(spec URLs) -|Application usage |(see template) |(see template) -|Intended usage |COMMON |COMMON -|Contact |Jonathan D.A. Jewell |Jonathan D.A. Jewell -|=== - -==== Step 2: Separate Submissions - -Submit each registration *separately* (do not combine). - -*Recommended order:* 1. Submit `+application/vnd.a2ml+` first 2. Submit -`+application/vnd.k9+` a few days later (or after first acknowledgement) - -''''' - -==== Step 3: IANA Review Process - -*Timeline:* Typically 2-4 weeks for vendor-tree registrations. - -*Process:* - -[arabic] -. *Initial review* (1-3 days): IANA checks template completeness. May -request clarifications. -. *Expert review* (1-2 weeks): Media types designated expert reviews -technical details. May ask about security, interoperability, or -specification. -. *Approval* (1-2 days): IANA approves registration and publishes to -registry. - -*Common reviewer questions:* - -* "`Can you expand the security considerations?`" – Add specific attack -vectors and mitigations. -* "`Is the specification permanently accessible?`" – Ensure GitHub repo -is public; consider a permanent domain. -* "`Are the optional parameters widely used?`" – Explain use cases for -each parameter. -* "`How do fragment identifiers resolve?`" – Provide step-by-step -algorithm (already included in our templates). - -''''' - -==== Step 4: Respond to Feedback - -If IANA or the designated expert requests changes: - -[arabic] -. Read the request carefully -. Update the registration template -. Reply promptly (within 1 week) -. Re-submit updated template via the web form or by replying to the -review email - -''''' - -==== Step 5: After Approval - -*Registry entries will appear at:* - -https://www.iana.org/assignments/media-types/application/vnd.a2ml - -https://www.iana.org/assignments/media-types/application/vnd.k9 - -*Post-approval actions:* - -[arabic] -. Update documentation with official IANA registry links -. Add IANA badges to repository READMEs -. Update HTTP Content-Type headers in examples -. Announce on relevant channels (Nickel, Idris2, markup language -communities) - -''''' - -=== Recommended HTTP Usage After Registration - -*A2ML:* - -[source,http] ----- -Content-Type: application/vnd.a2ml -Content-Type: application/vnd.a2ml; charset=utf-8 ----- - -*K9:* - -[source,http] ----- -Content-Type: application/vnd.k9 -Content-Type: application/vnd.k9; security-level=kennel -Content-Type: application/vnd.k9; security-level=hunt; version=1.0.0 ----- - -''''' - -=== File Locations - -[width="100%",cols="38%,62%",options="header",] -|=== -|File |Location -|A2ML registration (canonical) -|format-registrations/iana/a2ml-media-type.txt - -|K9 registration (canonical) -|format-registrations/iana/k9-media-type.txt - -|A2ML registration (standards sync) -|standards/a2ml/docs/iana/application-vnd.a2ml-registration.txt - -|K9 registration (standards sync) -|standards/k9-svc/docs/iana/application-vnd.k9+nickel-registration.txt - -|A2ML application (Markdown) -|standards/a2ml/IANA-MEDIA-TYPE-APPLICATION.md - -|K9 application (Markdown) -|standards/k9-svc/IANA-MEDIA-TYPE-APPLICATION.md -|=== - -''''' - -=== Contacts - -*IANA Media Types Team:* - Web form: -https://www.iana.org/form/media-types - Email (for follow-up): -media-types@iana.org - -*Submitter:* - Jonathan D.A. Jewell - Email: j.d.a.jewell@open.ac.uk - -Institution: The Open University - -''''' - -=== References - -* RFC 6838 – Media Type Specifications and Registration Procedures -https://www.rfc-editor.org/rfc/rfc6838.html -* RFC 6839 – Additional Media Type Structured Syntax Suffixes -https://www.rfc-editor.org/rfc/rfc6839.html -* IANA Media Types Registry -https://www.iana.org/assignments/media-types/ -* IANA Structured Syntax Suffixes Registry -https://www.iana.org/assignments/media-type-structured-suffix/ - -''''' - -_Created: 2026-01-30_ _Revised: 2026-04-03 (Revision 2 – web form, -+nickel removal, A2L note)_ diff --git a/a2ml/docs/iana/application-vnd.a2ml-registration.txt b/a2ml/docs/iana/application-vnd.a2ml-registration.txt deleted file mode 100644 index 11cc431e0..000000000 --- a/a2ml/docs/iana/application-vnd.a2ml-registration.txt +++ /dev/null @@ -1,204 +0,0 @@ -IANA Media Type Registration: application/vnd.a2ml -========================================================= -SPDX-License-Identifier: MPL-2.0 - -Canonical copy: format-registrations/iana/a2ml-media-type.txt -This file is a synchronised copy for co-location with the A2ML spec. - -Submission Date: 2026-04-03 (Revision 2) -Submitted By: Jonathan D.A. Jewell - ---- - -Type name: - application - -Subtype name: - vnd.a2ml - -Required parameters: - None - -Optional parameters: - charset - If specified, the value MUST be "utf-8" (case-insensitive). - A2ML documents are UTF-8 by default for textual content (RFC 3629). - The charset parameter SHOULD NOT be specified if the document - contains opaque payload blocks with arbitrary binary content. - -Encoding considerations: - binary - - A2ML documents are primarily UTF-8 text but MAY include opaque - payload blocks (via the @opaque directive) containing arbitrary - binary data. Because opaque blocks may contain any octet sequence, - the encoding is classified as "binary" per RFC 6838 Section 4.8. - - Implementations MUST preserve byte-for-byte fidelity of opaque blocks - across parsing and serialisation. - - Line endings are LF (U+000A) by convention; parsers MUST accept - CR+LF (U+000D U+000A) as well and normalise to LF internally. - -Security considerations: - A2ML is a document markup format comparable to Markdown and AsciiDoc. - It is not executable by itself and does not contain active content. - - However, A2ML MAY embed opaque payload blocks (using the @opaque - directive) and code blocks (using fenced code blocks) that can contain - code, scripts, or other executable content. Processors MUST treat - opaque payloads and code blocks as untrusted data and MUST NOT execute - embedded content by default. - - If an implementation offers execution or evaluation features (e.g., - running code blocks in a REPL environment), it MUST: - (a) Operate in a sandboxed context with restricted privileges; - (b) Require explicit user consent before execution; - (c) Clearly indicate which content is being executed; - (d) Provide mechanisms to disable execution entirely. - - A2ML documents support cryptographic attestation via Ed25519 - signatures for opaque payloads and document structure. - Implementations that verify signatures MUST validate: - (a) Signature correctness against the stated public key; - (b) Timestamp freshness (to prevent replay); - (c) Public-key trust (via a known-keys list or certificate chain). - - Documents without signatures SHOULD be treated as unverified. - - Privacy considerations: - - A2ML documents may contain PII in author metadata, abstracts, or - content blocks - - Implementations SHOULD provide mechanisms to redact or strip - metadata when sharing documents - - Opaque payloads may contain sensitive data and SHOULD be inspected - before transmission across trust boundaries - - External references: - - A2ML link syntax ([label](url)) and @ref() directives may - reference external resources - - Implementations MUST NOT automatically fetch external resources - without user consent - - See security section of the A2ML specification for complete details: - https://github.com/hyperpolymath/standards/blob/main/a2ml/SPEC-v1.0.adoc - -Interoperability considerations: - A2ML is designed for cross-platform interoperability with progressive - strictness modes: - - - Lax mode: Permissive parsing, warnings only - - Checked mode: Structural validation required (unique IDs, valid - cross-references, well-formed directives) - - Attested mode: Cryptographic attestation required, enforced by - dependent-type proofs in the Idris2 reference implementation - - Character encoding is UTF-8 (RFC 3629). Byte Order Marks (U+FEFF) - at document start are permitted but not required; parsers MUST accept - and silently consume a leading BOM. - - Opaque payloads are preserved byte-for-byte across parsing and - serialisation. Renderers MAY transform opaque content for display - but MUST retain the original bytes for attestation. - - A2ML is renderer-agnostic and can be converted to HTML5, LaTeX/PDF, - Markdown (CommonMark), Djot, or plain text. - - Implementations SHOULD support all three strictness modes. - -Published specification: - Primary specification (v1.0.0, Stable): - https://github.com/hyperpolymath/standards/blob/main/a2ml/SPEC-v1.0.adoc - - Formal verification (Idris2 typed core): - https://github.com/hyperpolymath/a2ml/tree/main/src/A2ML - -Applications which use this media type: - - A2ML compilers and validators (the "a2ml" command-line tool) - - Static site generators that consume A2ML documents - - Document management systems requiring formal structure guarantees - - Academic publishing workflows for papers and specifications - - Technical documentation with verifiable cross-references - - Standards bodies requiring attested document integrity - - AI agent manifest files (0-AI-MANIFEST.a2ml, AI.a2ml) - - Reference implementation: - https://github.com/hyperpolymath/standards/tree/main/a2ml - -Fragment identifier considerations: - Fragment identifiers for A2ML documents refer to element IDs. - - Syntax: # where matches [A-Za-z][A-Za-z0-9:_-]* - - Examples: - #intro -- references a section with id="intro" - #fig:results -- references a figure with id="fig:results" - - Resolution: - Fragment MUST match an element with the specified ID. - If no match, user agent SHOULD treat it as unresolvable (no error). - ID uniqueness depends on strictness mode (attested > checked > lax). - -Restrictions on usage: - None - -Additional information: - - Deprecated alias names for this type: - None - - Magic number(s): - None (text-based format; identified by file extension or content - detection of A2ML-specific directives) - - File extension(s): - .a2ml - - Macintosh file type code(s): - None - - Object Identifier(s) or OID(s): - None - -Person & email address to contact for further information: - Jonathan D.A. Jewell - j.d.a.jewell@open.ac.uk - The Open University - Milton Keynes, MK7 6AA, United Kingdom - -Intended usage: - COMMON - -Author/Change controller: - Jonathan D.A. Jewell - The Open University - j.d.a.jewell@open.ac.uk - -Provisional registration: No (Vendor-tree registration.) - ---- - -Note: A2ML is distinct from ASAM A2L (application/A2L), which is a -measurement and calibration data format for automotive ECUs. - ---- - -References: - -[1] RFC 6838 - Media Type Specifications and Registration Procedures - https://www.rfc-editor.org/rfc/rfc6838.html - -[2] A2ML Specification (v1.0.0, Stable) - https://github.com/hyperpolymath/standards/blob/main/a2ml/SPEC-v1.0.adoc - -[3] A2ML Idris2 Core Implementation - https://github.com/hyperpolymath/a2ml/tree/main/src/A2ML - ---- - -Change Log: - -2026-01-30: Initial registration template created -2026-03-16: Expanded security, interoperability, fragments, references -2026-04-03: Revision 2 -- encoding "binary", BOM handling, A2L - disambiguation, tightened RFC 2119 keywords, web form diff --git a/a2ml/docs/index.html b/a2ml/docs/index.html deleted file mode 100644 index fc6eae313..000000000 --- a/a2ml/docs/index.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - A2ML - Attested Markup Language - - - -
        -
        -

        A2ML

        -

        Attested Markup Language

        -

        Lightweight surface syntax with a typed, verifiable core.

        -
        - -
        -

        Get Started

        - -
        - -
        -

        Prototypes

        - -
        - -
        -

        Release

        - -
        -
        - - diff --git a/a2ml/docs/paper/ARXIV-SUBMISSION-GUIDE.adoc b/a2ml/docs/paper/ARXIV-SUBMISSION-GUIDE.adoc deleted file mode 100644 index 944e7237e..000000000 --- a/a2ml/docs/paper/ARXIV-SUBMISSION-GUIDE.adoc +++ /dev/null @@ -1,290 +0,0 @@ -== arXiv Submission Guide: A2ML Paper - -*Paper:* A2ML: A Lightweight Markup Language with Formal Proof -Obligations *Author:* Jonathan D.A. Jewell j.d.a.jewell@open.ac.uk -*Submission Package:* `+a2ml-arxiv-submission.tar.gz+` (5.9 KB) - -''''' - -=== Pre-Submission Checklist - -* [x] LaTeX source prepared (`+a2ml-arxiv.tex+`) -* [x] PDF compiled successfully (`+a2ml-arxiv.pdf+`, 74 KB) -* [x] Submission package created (`+a2ml-arxiv-submission.tar.gz+`) -* [x] Author metadata correct (Jonathan D.A. Jewell, The Open -University) -* [x] Bibliography included (inline, no external .bib file) -* [ ] arXiv account created (if not already) -* [ ] Subject classification selected (see below) -* [ ] Submission uploaded - -''''' - -=== Step-by-Step Submission Process - -==== 1. Create arXiv Account (if needed) - -*URL:* https://arxiv.org/user/login - -* Click "`Register`" if you don’t have an account -* Use your academic email: `+j.d.a.jewell@open.ac.uk+` -* Verify email address -* Complete profile (name, affiliation, etc.) - -==== 2. Start New Submission - -*URL:* https://arxiv.org/submit - -* Log in to your arXiv account -* Click "`Start New Submission`" -* Select submission type: *New submission* - -==== 3. Select Archive and Subject Class - -*Primary Archive:* `+cs+` (Computer Science) - -*Primary Subject Classification:* Choose ONE primary: - -* *cs.PL* - Programming Languages (RECOMMENDED) _Best fit: A2ML is a -markup language with formal verification in Idris2_ - -*Secondary Subject Classifications:* (optional, can add 1-2) - -* *cs.LO* - Logic in Computer Science _Relevant: Formal verification, -dependent types, proof obligations_ -* *cs.SE* - Software Engineering _Relevant: Document engineering, -specifications, standards_ - -*Recommendation:* Use *cs.PL* as primary, *cs.LO* as secondary. - -==== 4. Upload Files - -*File Upload Method:* Upload `+.tar.gz+` archive - -[arabic] -. Click "`Choose File`" -. Select: -`+~/Documents/hyperpolymath-repos/a2ml/docs/paper/a2ml-arxiv-submission.tar.gz+` -. Click "`Upload Files`" -. arXiv will automatically extract and process the archive - -*Expected Processing:* - -* arXiv extracts `+a2ml-arxiv.tex+` -* Compiles with `+pdflatex+` (may take 30-60 seconds) -* Generates preview PDF for verification - -*If compilation succeeds:* Proceed to metadata - -*If compilation fails:* Check error log, fix .tex file, re-upload - -==== 5. Enter Metadata - -*Title:* - -.... -A2ML: A Lightweight Markup Language with Formal Proof Obligations -.... - -*Authors:* - -.... -Jonathan D.A. Jewell -.... - -*Affiliation:* - -.... -The Open University -.... - -*Abstract:* (copy from paper or use this) - -.... -We present A2ML (Attested Markup Language), a lightweight markup format that combines ease of authoring with formal verification guarantees. Unlike existing markup languages (Markdown, AsciiDoc, reStructuredText), A2ML provides a typed core with decidable proof obligations implemented in Idris2. Documents can be validated in three modes: lax (permissive authoring), checked (structural validation), and attested (formal proofs required). We demonstrate that A2ML's hybrid architecture—a Djot-inspired surface syntax compiled to a dependently-typed core—enables progressive strictness without sacrificing usability. Our implementation includes a formally verified parser that compiles to JavaScript (45KB) and a ReScript-based GUI. Benchmarks show A2ML parsing performance competitive with Markdown while providing guarantees unattainable in traditional markup languages. A2ML is designed for documents requiring structural invariants: academic papers, technical specifications, and standards documents. -.... - -*Comments:* (optional, internal notes for arXiv moderators) - -.... -This paper introduces A2ML, a new markup language with formal verification capabilities. Related to programming languages (Idris2), logic (dependent types), and document engineering. -.... - -*Report Number:* Leave blank (unless you have an institutional report -number) - -*Journal Reference:* Leave blank (this is a new submission, not -previously published) - -*DOI:* Leave blank (arXiv will assign one after acceptance) - -==== 6. License Selection - -*Recommended License:* - -* *arXiv.org perpetual, non-exclusive license to distribute this -article* _(Standard arXiv license, allows arXiv to distribute -indefinitely)_ - -*OR (if you prefer Creative Commons):* - -* *CC BY 4.0* (Creative Commons Attribution) _Allows anyone to -share/adapt with attribution_ - -*Recommendation:* Use standard arXiv license (first option). This is -most common for academic papers and matches PMPL-1.0 philosophy. - -==== 7. Review and Submit - -[arabic] -. *Preview PDF:* arXiv shows compiled PDF - verify it matches your local -`+a2ml-arxiv.pdf+` -. *Check metadata:* Review title, authors, abstract, classification -. *Submit for processing:* Click "`Submit to arXiv`" - -*After submission:* - -* arXiv assigns a submission ID (e.g., `+2601.12345+`) -* Paper enters moderation queue (typically 24-48 hours) -* You’ll receive email confirmation - -==== 8. Moderation Process - -*What happens:* - -* arXiv moderators review paper for: -** Topic relevance to selected archive (cs.PL) -** Quality and clarity -** Proper LaTeX formatting -** No obvious errors or spam - -*Possible outcomes:* - -[arabic] -. *Accepted* - Paper published, gets arXiv ID (e.g., -`+arXiv:2601.12345+`) -. *Reclassified* - Moderators suggest different subject classification -. *Put on hold* - Request clarifications or corrections -. *Rejected* - Rare, usually for spam or off-topic submissions - -*Timeline:* 1-3 business days (usually 24-48 hours) - -==== 9. After Acceptance - -*You’ll receive:* - -* arXiv ID (e.g., `+arXiv:2601.12345+`) -* Permanent URL (e.g., `+https://arxiv.org/abs/2601.12345+`) -* PDF link (e.g., `+https://arxiv.org/pdf/2601.12345.pdf+`) -* Announcement timestamp (papers announced daily at 20:00 EST) - -*Next steps:* - -[arabic] -. *Share the arXiv link:* -* Add to A2ML README.adoc -* Share on social media, HN, Reddit, etc. -* Email to relevant communities (Nickel, Idris2, markup language -enthusiasts) -. *Update repository:* -* Add arXiv badge to README: -`+[![arXiv](https://img.shields.io/badge/arXiv-2601.12345-b31b1b.svg)](https://arxiv.org/abs/2601.12345)+` -* Link from documentation -. *Consider follow-up venues:* -* Conference submission (e.g., PLDI, ICFP, POPL) -* Workshop (e.g., TyDe, ML Family Workshop) -* Journal (e.g., JFP, TOPLAS) - -''''' - -=== Troubleshooting - -==== Compilation Fails - -*Error:* `+! LaTeX Error: File 'X.sty' not found+` - -*Fix:* arXiv has most standard packages. If using obscure packages, -either: - Remove the package if not essential - Include the `+.sty+` -file in submission archive - -*Error:* `+! Undefined control sequence+` - -*Fix:* Check that all custom commands are defined in the preamble. - -==== Paper Put on Hold - -*Reason:* Moderators may request: - Better abstract (more specific about -contributions) - Clearer subject classification - Correction of -formatting issues - -*Action:* Respond to moderator email with requested changes, re-submit. - -==== Paper Reclassified - -*Example:* Submitted to `+cs.PL+`, moderators suggest `+cs.SE+` - -*Action:* Accept reclassification or provide justification for original -choice. - -''''' - -=== Post-Submission TODO - -After arXiv acceptance: - -* [ ] Update `+a2ml/README.adoc+` with arXiv badge and link -* [ ] Update `+a2ml/docs/IANA-MEDIA-TYPE.adoc+` to reference arXiv paper -* [ ] Add arXiv link to A2ML website (when created) -* [ ] Share on social media (Twitter/X, Mastodon, LinkedIn) -* [ ] Post to Hacker News (https://news.ycombinator.com/submit) -* [ ] Post to Reddit r/ProgrammingLanguages -* [ ] Email Nickel community (Discord/GitHub discussions) -* [ ] Email Idris2 community (Discord/Discourse) -* [ ] Consider submitting to conference (PLDI, ICFP, POPL deadlines) - -''''' - -=== Quick Reference - -[width="100%",cols="47%,53%",options="header",] -|=== -|Item |Value -|*Title* |A2ML: A Lightweight Markup Language with Formal Proof -Obligations - -|*Author* |Jonathan D.A. Jewell - -|*Affiliation* |The Open University - -|*Email* |j.d.a.jewell@open.ac.uk - -|*Primary Subject* |cs.PL (Programming Languages) - -|*Secondary Subject* |cs.LO (Logic in Computer Science) - -|*Submission Package* |`+a2ml-arxiv-submission.tar.gz+` (5.9 KB) - -|*PDF Size* |74 KB - -|*Estimated Review Time* |1-3 business days -|=== - -''''' - -=== Files in This Directory - -.... -~/Documents/hyperpolymath-repos/a2ml/docs/paper/ -├── a2ml-arxiv.tex # LaTeX source -├── a2ml-arxiv.pdf # Compiled PDF (74 KB) -├── a2ml-arxiv-submission.tar.gz # Submission package (5.9 KB) ← UPLOAD THIS -├── Makefile # Build script -└── ARXIV-SUBMISSION-GUIDE.md # This file -.... - -''''' - -*Ready to submit!* Go to https://arxiv.org/submit and follow the steps -above. - -Good luck! 🚀 diff --git a/a2ml/docs/paper/Justfile b/a2ml/docs/paper/Justfile deleted file mode 100644 index 421d57b4b..000000000 --- a/a2ml/docs/paper/Justfile +++ /dev/null @@ -1,16 +0,0 @@ -set shell := ["bash", "-euo", "pipefail", "-c"] - -default: pdf - -pdf: - pdflatex a2ml-arxiv.tex - pdflatex a2ml-arxiv.tex - @echo "PDF generated: a2ml-arxiv.pdf" - -all: pdf - -clean: - rm -f *.aux *.log *.out *.pdf *.bbl *.blg - -view: pdf - xdg-open a2ml-arxiv.pdf 2>/dev/null || open a2ml-arxiv.pdf diff --git a/a2ml/docs/paper/a2ml-arxiv-submission.tar.gz b/a2ml/docs/paper/a2ml-arxiv-submission.tar.gz deleted file mode 100644 index d7b946bff7c9e0aa6e60c6b6fe6162d20e2ae457..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5995 zcmV-x7nJB9iwFP!000001JqmFa^uE!^)tVs6UQ+*At6z7vsKZl(dgotv1F@8vd2|J zJv4zPi4h3EXh0IJ@Km1i0jYf9`I4-?yBlcmBI{J;JVZ4$5`n(#-j}s6y(#zR$v_tO z@oiA5`>*~XKfCyO_2LEn9=?9L>;J~j^VfT?Uwt)vIeh+lxc6eX_x!8f;ohqkyI+aj ze+)V8pGudq5aO%ZB3H#DtwuS%7M?RQth>xW5}uDy7Wb3K>ktdHM%F(1?KayD;|Nn%~b=~TC$vX}}rX+OOO ziCNKpHZ5d6i^Kc&({YyFlyZz!JKu;iyM+j|bP`XiLY8rsc1DRVBQ=RrmB@5j(X_+8 z^RwkcM~Hb=s2jDo%Zf-JJiNh5Wg)||{{}Sa{u`{)e}nZC)qj)a^7l&7o8POrPSC=T|d@L(PRsZ{s3MdGF3BRd=O%@nC;1 zAMD6w>usXubGiI%KVCna@#oeM7F|q|^u`@G55dARE)yfveQ^jin9j;OMgNO)S=>~) zIJ1HmcX2rrqfzHHE5KKAQDoUf{5($LDeDU9(MVS13>?9cKV&J?TBhPSI1I!Gb*GYq zW(zvD_&Hap_$7th3y6PVUW@?CWm!Iau~UODJPX>R(m;kmb+crtN3hU`4>GM}u@HN^ zd#~u>SWV;f!C5Umnadl+r>oyO62TZULcMwLjeqsleTji?t0$SqQH&$eX(DI}wc+EDrH3WNu9>-6RSGRb7BLC2(sCRp(Ct9{Tony_jrij< zOe!NJbJk>G^#hycvH&R6xp>wS zMidBbReJ-ocdWr)9ZyqGh|NV*E0z&2?cga#oZiYJ#&%FF8A=E}4naRC*L?x;&Qe%X zB6JRwc1ER*8X?L_BMG!`_6Ry72-dUz&PYQ=Fz4ZYS{7MUg%%IbS8XpZVkmJL|DiUR zcLtgHRQp!#`1sdR2z`8*+mB0-KO>vbrO30qN)VE5#g~3#&1vRvq;+OKvAUndWB4di zE3g4DLclgwGkFW*!M`HYdPN1brHh;%d=GYA1~t0acalDWiA&yP6>#jJLYGT$Wdcr+ zkFMFF#26-#AlTRlfT7HdfyAsL%u-F<4T;+%+gf^L#!pv)TKt%1k%MT;(kUqPbXbnb zWZfnW*+HjsL`;m>1mPnb{upf~-IW|AsX~zfF-5?YG2>pA?mKS-=FFisOY&^=w>SX< z7J{QIC;*~y0RaIgVNNl^BN5jTX+7l-P7~pj*-D#90H7?vJRm~tGR85WJmWZTfq0^% zkfvD#T4FU{ShXi}bg){FI|7ai7i*fm*hv<*m1EoEM`8}L zrHz=sIU3nOOlz}sk}fv-YfyE?flCvCm>5Q|pJ!hOhgN|k8D%-YpA^}gBb)~O%Nmhw zoU%?HueyP*_bn)9;jDUpqgQqx&-1gWp60;U>1n%w4TPP5C6yz}iy;XALvnw*tRk|3 zCJJL4By3?cmU*7w4-@)qpg=Vn^bCS{n%sEhk1AmU`;@^iwe9DT6opd|dlJWm<*NS$ zg#+^{D;vlS{2}!BrSiwC2%;-{y>l@^zH-WLj=%-! zwO$}bmtd!joG)z5M@)m6+@OW!f`s*#RA5j zuAbzKvb81=!+9)^ni$QKXG1MzB96j{{wA2Cb0VP5u}u?slNoC^R`83XDle`xm~FjU zRLDDu`zXDU4N}oo$cbFG12~)GST>}GCuCex;-)N`|LVtVP{|8MC*RP1Z37pf z>xZl=BBYC|6fz0yiNBbK12b%C0B?cl=j@}yJRtp1_In_H%)pjAeG{`}-r{tBl$kTQ z8~1XMtLf4*oWk>qlOG%n0TmfEsb*NglF|lL3lcgxfxaL$TMz#{r{IgO?b2B}nt_Cs za2N}4{0@Lc8?wi;6vy=UfJ|iRXRmrSP~cTL#gy}w8wKpl3W}~|s+CJ9LhsR_UTJBn zQ0s_nv;35|8i1l(#7Yq?GRbn{fQyo7v@kD z^0(xgi*z+uwWi1E0&xmU^^F$cNLlKKl>#!HnKV5W8_OCXf_ZAfdq7HEDDoYTIZ1z0 zl4SDP%|!=HfIlHRB*(I2g#{JmRk~`jaGJkfVDR$d#^u&^zGD;Mbw-ICtHh7_R)lTA z<&qDuG>7#-$BKwDh&fkJ2$Yzj8t6!7T&sZxdbGL}dBd$>xC8zwUf3{FL3s z&-nN3*%&FrvuC`+GbjbL{+S>pz$vL3-HoGzD3)YhLn@z54hj=x49IAE`v`{q>GLH! zMses>k*>Q`Qws8Q+Uro=y3@Ht?09O@I4X8`-KsrP*-)j76IXNaPSWZ8sNh$Wq*e9y zJn@~91kifFu85AlUa~~V$#jQnedD<8VQf_Y}s!fJ~N8_%zyY9 z6K}4&Rgv@>3XW^v*ev;`c9`8D2zvVh{|m0;*V8`MnW{I97!*fXd?jD>Rq2Xd(GeUS zCq$~&p~K57DlVluVZh`notLN7sllIU&O51ZRFYhG=xU*eFbS>@q;kPS)aWUbtUhE2{J{V6I{HZ#Zm)~F^!T8tbP3y>5LCx$wpU5yS!|rGLyWr8L{=O6#g9JTE%Gw67iWUd&seR2WB{6q zB0^FqhYz9~qNWy*w(`|B$2Z-lm=KTe-?S~Zv)->sui>kI<@1ZFE4@F~*Bz=PIh%|l z&Q-Xqpg1UyjdSO^&sbTnwf{7`GCRGGNHa-=2Y(S{)82Ee59_Ji=ePF3RZ*#RVex~g zbx*Z^x{sy~7J0DKK4uL)u5RW^c6HedoO$8_v4^%Bt{l;SW6o4GPySDiY07jCd2q-} zo0Ga~p00)FF15P#H7=~Z_rx>ek3&}{Y@gA8V-7THp8VZs^pxIKhhmE@Co-I^DL3uK zmor`=DO3@x@u{d^YaO=3$+|=@AF#(*;(l;i8qjSiZI7V2mgnOOG)t@~1s3rb_S8jI zxZZmd)ZR}_VU(Gtt1wgw2Usakn!ATOl_n6Zk=$I%@THT(f)$@|;^)!W{0K^iTywpy zXRitka79m*(z(1xnuYLtU;G3jhzp(y)^Ag*ZV`W?zyJL}AP)Q~Bl?O|CTECfR)J{s zEw2H-EAQ!1R;5nAcQ-NHG2+)IX*uT#pAYe-=4Y{6S9zWlrS@-1w^teWS1MhIo@sq7 zMt{;|?>b61+0OP*lHiaN5*Lk2C`Mj-MgMcUwJ=a9rYhx1oVb%kN`9~&^-EefwDqnd zXc%W_QI>vNB9f1jdd8)nmqmq~FyPvJrp!!k^;k@JWUq`Z2i!;If=aO}QBbGt+gU&d zb5|Xd!kPOQx6K z2DnC=b_M!zJqUdc`gdCOsEajAc78?Uv!>j!NfBx|=5?vcrb2`htB|vq8|#;RqPz7X zueZ)8cX`{cXZvQjQtDn|u9x09Q>`>#$8TsOc+#zly`nJnvE{xvUCX+gK8!WQTwBd6 z_#ZJdU7g8pL(wX%)oK+8r+xtMnqX}~*CRmP0a)gf8p90$`Z&uXiSQ@Ms_d08HkIhT zkkwSxR;9ohoF&v2-k7=bswA|7!BmCjQYBT6DTQHNh&hLKO$tx-8fH<>mWb1wh4H3u zTbYu{#K;}Mw{%wBtpdjk7r9?xoxKZ&_!#Ed&B z3Y`Cv^18dEbEltuWN@~AJrMu!KLrl~?W3=b!OBC~GFh(OVm4Z71m3#0T5DLjjiptIZ?*Ud+8ca9>L>w7>7NA%W2tA?oqrLr z(Wt?|DSt{pMz*_S6fwXEF=~W6$ShIV3-c2#2Fc8OG$`%{#en{aA!%q~{(~ubgC0*L zl`*`mDs!;7?&>KJNYH(-b$8U&Kp<)Eb0g(vjNXl#4`1Fr*^141SAWd~9R__eSAnD? zTbq646oQ4u!jnk8Kqq&wa$Vm@gW-Dl8O$GrbQQ}wJql%B8$Ye@6V#mpw}-nwzO8Y+ zSDy;2?R&H=yQ5_%Zn;e9g8skDz1o~SiXn9k^Uh3&&91aCmoGC zqd8@ndnxmNMPIq z3}F*s(1o=Y&tHzd;fBkZl96+D+_*afnS(oE5w(ALOVpRab?X6le${J?t3{na`O@9i z=;|14rQXgkR?d4C&*QS`i{D~JE;|2oczNz>1>7?=p>KBZ;cka;O?0`-NxBJvcsR2e zda_8wZ|bWTZx?VQw{&8!lY`msav;~ryC5{Pp^vBIPPBkKE@UXminT2W zgarxNRXRQ292m!8YOFq;{koT^CAq%sO+%={3}f|df@JtF`jU~*SyhC}f*I-9+7|<1 z0{rzsisMFAkvz=GGS~Y%J5z)N)i}Tbcle8Wd6p~)i+1GR+-A?l(4IXUh7M<4gUl6N z*bS%5Wm7sKitDlswHa0^cgx#4y^6`gLu4LoKn9{7&=b!}s4ahSRqX)V%4j?0g8s4@EUb3eDd~GesU} zkp8n4520P4W&($V@FxjURqlXjs;cT8xAxAmFZOnKUj*L1UJoYid@jRN*oI7%zf;q> zN$o!-ih=#uONzdj0o6>8j_bH=f6)R!@uvr92nn)cYDgWnNUi%SJC}j@L?uRlF_(94 z-M~$6mfzj;m#4#BgfjECLw{TD zX57wtYW%4i(A%x&+o`}D)&SmauXW0mRzhq%co(>?!@f8T#0B#1m?A#1hu;EmriyIg z@8yy^DF4~V?yy$}i{6;`sr_ca$>q-%B+0#H-y}`q`S-5}gBQbBEZ`Px?e@gZ$JK7e z!=P?x^!K{@_#1I(>zBc}Jd0GYYzuXb#NCF(7cU2c=dWHeiMu|DUO!^zBrvUuEjjRt zbZs^`HhqG}OOr&`uMVi+TRP%P-C>&4px6OJt`)RtIu{R}3n+=O%fe#1Kdn6h}Z2 zXc~rYxIRB!U=)mkQ7{Td Z!6+C7qhJ(_f>AIu000_aO2Pn800464pTPhC diff --git a/a2ml/docs/paper/a2ml-arxiv.pdf b/a2ml/docs/paper/a2ml-arxiv.pdf deleted file mode 100644 index be8597d2b7b0fcbb6423ea06a29f4688d567f659..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74956 zcma&tQ!G$xtk$oxY#0Dkl36D z(DR=cFIq>$vK(lD6`LKpv&Wpfax_2MVZwkv!-NSD(nt0&zbHpA8?5&al5gwZ$FD=% zhb1d@@~Dz|3rbWsxG3rvlT^u$_KBtSV$O!Bt{1$8n(v#nvni~U@N-l?#?KYIR;h|2 zUkaILP(Kb!hIzpwU#d;HAzo^JX+AJ>nATbgX%RY{A6_5{LN5mQi`SI>-% zatk++k)yvA)+sFYc8~p)-5Sb13eUY|9Ga&ks|NUb|J6bD?%+fR%iuv58*3*6=$fzA ziYQ;L<$B2KSH|9$j_1{fkE+O2qy|YC@gvc4cDbhL(_I@JIA1WeM2+J?%D%NW(tu+o#={OjS4Vbjs0sHzMH=VmxZf|CUYdo1_-w$X^MkJJGj%!qq zexR!HaeE(&g==eit|+ca?l@PlCaFR&=EB@5{1bV~EF4Sg6RWicY&GZDul3=?a&%kM zw!1c&t1Fmnc@pa}dBkpokrRE`UtR?Z3DwD>16LZVO1E0zr77f0xf4EvtgM|`pBEju zFNq>JwWLvD6?nC=6|cmT&ViEN<+*ub8|ST*-9F*H1_cQlkLAvfsGhs6g6pu=nmh44 zJulT@#UfY{$jcHK-Y=HhEJ#qvLfF>teGIEx%B)p~yMetqHl41;x+oRUBWFqr4{j<- zz^j>vJf)z$8>%*_f1zLJ%EG;)b&vfW{Xg4uG=3y zDwfL2_stEEuvjMq{%VF4I3rxUNyCBs7fdnAkFTyz-xT1byPkB=_JLLbUeJW-$q`#y z?FqZLR#VIutkJD-J@H%wM9j@KO~}T&^{epNHP?t)DJ`|Z$gsKPtw5_{OQU?M{h^WP z9fYoavANfWe-N)#!i9_4rl3YUUAg9w_eJmIGdbI{n?t3~?{L}@zj$jk`%XO<9&>!| z#sQ#geLos5&hAdGY~#WVp)W#T3&??go#U*r@*ygNs_uMPU~jN~QNK01c&vJK!ICO* z>BJxPcSD~Ggk?`}ESYy>vH0Dw{P`5=Kbe>{mow(CYUcQ%2sxhJmo;`}{zQ7ZB{_zE~!!tUeTo2Gk(1hV5W@?-h_iRYXt|ar4ka990aRv-2KaU9$CtZQl z1oT=N2+)(p)S!^U1$Ho!0bAO}f6JYD^P^Zox5Uo1S#{=0Ro|P=O?Gi;7&;CVP-;ed zJ`!pX`�+p!a}+F=-9EXONgFgN3cm7_5UH5uiykvQArDrmrIv(!)CFwfUYb#MS>J zhbe_pz8lXea2ctx#*qI3-J_mty$A=b%piy7ti7NO7$!zQ3^q?Bo>d&DbkOlIi4^D8 zQ><#D!0UHaq>yzd)BlHy-{T1|-^;L(1YB;Va$lv2{z zAknORhOrQgN#ts}c1vu7Yn5^J?Va&Fi7npVBJSwGdj@Q`=FdP8IoJW3hwqqU24?5F z-GJ#ys|*TwN>-hbaFVcPuG}8#?Pw`p7U0*cL7Z#SVD@?df!(i5UFHbFh2x}9cn#@~ zQc#JFaoJXQLx3tDIk;~J{4N!)2=aRh@XKyKJLcYwKivmU$$$u=2(=sC4LIMqo39?j zEozKJ$QVn$4j0jKkUms0dZY)cF_vJw{Ny}8cm86vtW@oC;!D4Hh;VpkVbE1 z(|4y^5e-Tle+ov&n&GQuAP+jZ-I<>md&TvL-l-D!d6RjWPDVVO``{)0-q89O4=AMS z5b%D(kzyzSs$?-B)pz%aF=|US0;lW8_|po@iMbb7zRE!=C@&G=VR)3T>APp(gkZL~ zj>j@M@tijXk_)HWaNHGy68jm5*<;lL7E;jOhg;iL*jx>Vv!5(ol75@(Wr&)kO=?YD z7dt7tbTp(=DaV1YI#pPk^}sMIt$_>@vu*rNEKRyV8-T!?w}X9^Oxh}Gjx_qOd!WaM zN0Blk7n==RR?V$73Lm0`j|ZA|Meg6#r;(%<)=d zQ0^i+^cTd-Ni&1Wb1IW4aP;W9iNG=!K?-@nZ0arE30hr&lHHDCjPpI;qgZD*U6g&n~*Sz zfWRYH3s=UsCqyJpo?!@(9H>`b;{yiFnLBdDV^JVMLZmKk-pT_VRoUF7y4gJhzoYs= zMSsL**)(SZy^r52TCQ8Y+)Vef(RrO&$`st&b$~JOT1!oFtV-g^g~p>BNsA(71ObWA zKZcA)nM+jwA%Bp4kbkKRl29BzTj*!MUv__BQO8ZEkS4aq{|BG{`ThS~W%{q&%EZRb z@IT#JqiJKe&5HQz+h+*(c5s|u6VDg^rc93|vez*$&It1{zo;N> zwtjmT3M0yOk77C<#F|^C{Fc6YG*!VOido;q{Oek8V1y{beQ&drTKTfD9RlALZ>Y-eHhW;xq zn=0LX+$nv>Z--URHR68X8F@yok0~-l_X<>@e}dca2)b*#8e#`3o^aC z4XO9Ygs3<%ys)-(y76Fi5+)9-d!$@rN_a{N!g6=N5;;{e2uUWc%xivA+GyL#l35Rh zZ0p^!Tk$r`qfGJW*|ViGc|>HUMY(1+r(r(vD0Nmh$`ZGYEQNvT(_7ifN^DJv)PqahAodt1 z-bI@!bBW>UQ*J+bRM5)pP!9Cif1^q z8~?rk7^bwJ-RZ%yRj%w8-x=>Kahs@;uaVbV(~`$&m#}RrE?@O-qTK9vvuV>x3rH~H zfM!wo<+Q$nl>f&I*rTWkfvfKSsCFLzuD-o(y?;TpF6%~U;}|t_$lyh6aL~~NyN$@R z+~3yJ`$WX32u#XZaK`w>LrBm90I#$OX{P{fEon;WGHNcW1W^ejEba@FRVd^p-y!kq zb7-Q-mUl|jAXt4RmPqTus^n0tJg-jbp{A>o6m)n3RlwXLZXWQ!qVaeedgiI7tk!i% z`P|Rb0PYN!hndE~;R=ZTT94DNe1_W^eY5}e^uD?y)6M_z?es`INc><9U1^f(02R| zMWeCjH+DHBd5FO7YYen0XWomyw@lgA6oa(4zZ2c z>pBnBTg$^f;qh2{?Yrp{Oi&}^yN%2~VYdC)Ss)HvV+8*fdiLwTqyK=eVBHv~niO&T zW4n~H{&gSt$flX7BJ zj6RoBxUfE`*UwkDLx5`Mmo#V5| zW!L6QCEhk1KgUPJ8#oMpJVx+8)-@nCs;;0cPDiJjSKHbYiOqT%_ee(+y`?YUlwzR;ez^7?5_CcA2d}HxBLgTUBe(08?6Iq^M=&-*T zBv*|C?Y|f~Y5w5c88V>RZ53<^~_aBck$RbSayFbtU~J6S0~ z>JPQw!cK&zA3a5d7>Ch=g)Rch6Qa3=Ir_=LtL7?Ur#A%*ar5uyNbWy-pZlp&;uzS$ zsbOu}9{dpbq){cP9+^})5Pu2F!dAwXlhY#fxWGGfZC-lg9#Qzjx9KiQ{(y}+`J?)~0Hq-GTSoN({tLUJ>hF^2@fF7<-hZ)Qby$&bdYZSI zsy8wl*BH0ncIUA6`%i_HAvqWa< zV*-N*=uCpy&w!NWIkGuR3H4LTqLlAP5n#iy8dUxlcJJ6pbt=%$>#_`J^shq^K#{Q% z>qYPTb|7qD+Ozn4>EUwJqbB^H-B>3f9PFcWFSQy&iUU*x!*16(BcvyxM)aTsGiQ`w zyS9ul&|~Tk`nI42V9aS39n+w5Q|^n&X>HIgC)kQzbj&_68*T0a|_j9$s!*XM(IbFzyTL13BQR6N3-EIqNlb`8jL1t6)Cc6It+G?%9 z5VEaC_6h_hlc?f`Wl?Kc&_6lP3`()OA6AoT=oMM_7e?TSz(M4ur;HzOPHcKX64y-Y)?qW5Y7?6l zlp1GZDbA2GLVyl7p|=+k_74@fygnsFA4ON~zVf^^TRGtUqvJ{e*iRAz<3FEj#0-$i2kaT$AbtzQ2h*)~nw9*0`rTxo^dFc{w8b)wu)Vl@@o3QPn+V>0KDC;e`q%Ie=K%o+18i>Vn_ zjkobN+0bDrmIK3pFiMn+)TvhG1NY5f2@Uv*7O3SB$4Zf4O5!Pu1SW-x2s{`BVrL`1 zh{h-6B0Lrl4_ekfKjgqAHK#`2lD?bzmO;TX92o_Q+Zt{}>BF#W-S4)jP02J%^*3Zu zq%VS~rl!Vu4%yI8byybsvWplpFD)~jUEQ2_ctF?#Aa|UN>Zy$y%63Tpcqy2i=DECo z6=r+mKnL`sHl>^7qSiVh^P#44G<2VHq2*fc*lwQmbS z8f6E<#Lno-7mEL-4u?9=lma+`-)rESv^xZZ0Y?dQ$~z3Ddb&mqaE(|CDi3e@RasaZ zfPKBR0ld3#x(~I0zJ$y>1%qK1hI0uka02M>^7hgm#wo~32C&PBN)bni>bU!NL~IUa zbbkccBI9InL=lH+*;yu32uPH>I|`g$7uM|-7w=k6LX7)QIMf@|Xae0XS}@#l z2vrNf!O%~Vx`OF!b^h62hFW#l)4h|rHGW?RayItO8=Sae03K)!U3hzNfU*^XURouZKYg} z<5CHS+w{RrwKRH(z6Xf4Hu|17@DXwUF0+YCUB+0cXCH~&hl(^dVvbs`*V zzu=|L?ob9Pjjqva4K5XKbvFMkaI_nn=I@eWvzf4^qaUet!u$*(S8$@7YdKPR!tHzD zY5`j$8=`Ke+(b$(pq(JmPTc~=0zR$=+qVpWsSH6QQFbV&*e9Mj5-NL*3 zLz$~lgHjvU=>v^OsHRYfdyxk88UXst7*Z?0W70wL3n#SajrYUhm{`quXQAcd<;p*$ z8@&Smxiy9oAIE}GXpUC=Gw_S5)9yT1t93chfFFx72D|-_#799!FZjqTaFkH!$$1(K zxi$YQu@pMSm#+g2;lX_^# zf~IL%@~E(Cl1GpGk!G}D28#jhj{;d;KPnHvl#o<{*4RlAm}pw`!ALh0w{! z)O@g|%bn+aom95ck7uU6M{e>}m*0>*oE8hAlu4=v#)hSyD=(I$IY?-*thjdHnB@-< z`4vWPj%5EvK;7Zc)DjamLZP~n@=fTJ;(OpPI{2L5;gv=Vj$X}qHo%@C=s&IUO47K0 z8obDWLLtm^#qVY;)|4~kk+tWVar1Z(sNdZ&-A5J#GeHE$$cv>)gj)II*W`#Ckv-0T z;r*e`Yn#wl2BW3A;prx|;kT>67cIkx?891`F(vJ$Vg-G7a=~O$yKmE=wRU9%ueo#$ z8FSpK*iPyc>{4|L0j0hMwJ+ZhnNFCYs)93Nyf_GXrpT>T=-qe2gJgC z3gs7?3}x&%3p*=B`rv|b{_YTx4Unvuh*=wZ_0NrepId(b9=CpY|9cc>X8Nxx91eQ+ z|2YbeXkIyOu_FHY`i1o3uqZXS^D(YvkveRimRfj4Y|)*4@h3G;M^H~9Ukty!@7Xl~ zP{gO2P{eh(0tEmB?0~xZedU|AF>w;z^W|8uE-ja?{;*Bi>03km`9lAt4&6mPZM5;N zXGqj2YFBN1tVAy=QxRQT7oa}}A2vN5;!XISLe(fgZh0FBCmL)8|MJcKv3j}SlK1^E zIA_*#krdsK$Qa0-$F=#f>8U3+ud}YJuGco`+?rz#w4GL%YDWgx%_O3=%Z1%gT2AHG zu5x#X%O;6rC_7S}1Ru}2)1tI$S#MGNjosL(Smtx>{6S@-kWsV=UQW!SJ^4Ni0J9RR zghng?{=qXeM#FYp#A#?<=`ODJ6wk!Y1r=9=xDH_XT_lc#EqhG#7P z00>?jV`>HgSu*pk@f|j5NTMv*rzZytDheUrUc9S~_X(~j$ZFJxjwq5R3=*lloAT+t zHHAhV!!$nPYH$qs#{7KG?*MTLn*(0kXF=9fo1HN>PI7YYzpdN;tnhJtu*Z;0%39zU z6nL?>A;T&Z$eT3jd}{ z-U^%@lu>V|OJ_PRC2u+2lx|knT(*;ylC0yG>08ck*IicI z2N8Z0P)@3>%yIyBIWv=r9lWwqu%%*be{y&MubFg6rs}L3DNQ^w?q4cW3G{8XL=4t{X`J75tLl}i2o0>Btm8f6DP2K5mi z*bFCorn%kMtgllu*TY*_ZS-fag*!xtKSB(<4J*K9YTIRLr-}!+2P)7eynpfG^9}n! z`~uqvo)-?nGSMtuq`b=bxr@*&A~BOSECP5Mko2ly7+BHhwf>+mzuqFDn} zFI`=6)sNb9znWYPxl3l7ou);|nJgrCKo6eYyas#^PlghyxfDV4hmXdL>jNqPi#LIF zRc2!&hs2-3bAnRNybQEY@B(L#w$Ki;J52mYLZpC6f6W?_=Vu5jfL-$yffh;U#vRBW z7rAiP;JSB=yKzxU)xGSt^?bJY9w1_HuXP*Fy%_=LDWCyAPhA#>WRh!yybVYXzCF?i z_(TMDK!pf@{OT0sN8To_n`Q^UOC>Yz+Ty~O3 z>h7Xg^T*Y`JTBcbob&ILjQ-m;4-;b^m1c4P6YRPHU4wt7zj!%t6HZ|vln(jPx^_c= z?13FenwPMG*@q4jDmq70kPC{XgU9*3>{lT|)Ozz!5a5E&tJG6#Qqup7=a zoP9EPzr1hR38mbW7s0CB37vNfKtcFw^8wP|U_WKH|COXWU+@at?y|&Y1Q4CK|nLWDWP{%VLjob!($Lei&l`@fCw$8c2_Hz zNxmS0PM|ck!GG~l($(?jfc1_k2Y|0cX5`~(Y1l2)COo2s9Ci`~BRq`DqvZ1}JIVtH zf!)eH1mSL|XJyGm_ZzSS1686`#YoI{_vRvIMIRCRtIb=69(+rSKgdsX-;626Eq+9Q4%3GE;%}^71szao}28ZY@C9G0(fo*>aU`9tG(Y0 z8M@|ozs@^gncs)kH}hGKQC1^Zy_F*L(BRj7yw+#DyyOlH;#UnS721rVb`e^THexSg z$X;OI4LY&1jyj*5E8OrdyVDK@$-V8m`$0X>a^3A!dm*@ITmeYMm zk(TUb)ia7TRfyypdt<`9Xt*V8ce?QYcX8Yz&T(U9IF|dpjNo3a3Wps4i}Fy0Gmw5# zCdG_kDF~hi)Hhi4Y&8!epuVWv#ho231#D}$b>g9cs>PSp^2=6d$GTDpZB>=^h;`1` zxK%ocdAYM~GAMIGSxLIwSLTvMxqn{%sOgUX8bav5^t!1an*DNZa2idAM@=Z^$RrDR zUvUFP=fm)^GS;eXSGDv#A{Fj^nMD>w;fp`Fsv9XE2FX$`Uq+GZ3>&C0)~85Ol<4_y zw_TEn64H%D5@3w!+DHepDo)+K<-D5tSVQ2&PXK0;e$EEZ_%#m?g=e<+pIHIuhw$rK z?$21G-#4x4y>*Ph=x1fM)}7L?I<1h$W7>zHqxNhLk|*Ryww^A(Y$l>q3|p=q;od!@ zW>lkla3f$A=5-wrvev=)+==(i3|qQAeR-!<+xuvr(w?} z4V)uxP_r*e{<+L^4S+&h<&Id0-%H4CwN;&ganH8iKq`?Nctkxxa6l%+xXr}=0v$Su zS6W<8g|lC>0C5hjU$3TzY4=gk)l1x#*IiXNwf)1s5}S=i_9z8@Ied1#+_7`>w@k~< zKa&00OB8SW4%)107~IRCBMz(8+oWlW>`p$)1x91wGAB;W->*)L6v~|s7NLs8r=J0z z+<&q^*CuSkkXL+dx~WywnmNS4khxZGR zK#{Gs4`27AGq`51iucQy2Ez1Ryg0rdI;XU?9(S3I>HISa1F>5H9eo1;UsrYdhOsA@ z#gK1+5t>`h9#~|(V>ulG@Gy*%a?4o{j{+50Iu0`;W(25EE#(JE1iNy7^)y9~YYp2} zK)q7ua?EoJmw;lWk+FG9J}WS0U_|1~CMad<-p&fNtvZJY?YPR=G z^rh`h&M2>+w`R{4BQJE9KUP!N+Edp#NQ6O>{EloZYVCCTB=YhF2~_tur#i%#`tv>#yS1j!0fH0NmnL4XLI3D zRYm(?ycKQSJyxgRDfHnXqJ;#MV5}sw>iA~M=ZXZDBE4YfCI`AJdM2qHw3+&(5y*S+Accgsy=->cG~Sz zrcT}ugES#iMx;nrpUua6RGlArb`hGSP+OW8nAr=eV?fdH5C)98&?}gLBTp3qdRtc= z)eCt4j^t@+xdFs~Hfa^|-_}(U`ip9M;GB>5dH!0T>xX1a6NAC8Xi{hkR35Rs*oJ=!(XW$(H$y6_jfewMt*+k3~YCzrp~ ze520Ar>HUn{=9t=$R({<*rxL!!?SUDUb@4Bn;03ibtin6rOs?P-&2Y=hmEgEB&G!5 zl3qSuamhUK9Y2EcR(IE)s9GLl0HDy-=h4WNGIG1j+>0W!}*bwDxWUtU#Z5fOaPEDp%2N@+`h?)y9K z1HI=4uM+8?oZQ#8Un$h?#+)F^VAtOjm%7K~GR0UgWu$gh<&rbz$swV(tg!j_lf1ct z^bFwAKHTqIx?i5HyedT!l)<37xJ%o_2pJv!hwEl;ovvUFf0JSq5yHwi4;U&|iy z4cJEJ2AGJ)7I1dqLgH0F0~ECa5krgSnU}$SHEki{kOd%W@xrH2Ec`8hvz*;wf9!Q4fVxKL$DgOR zd`CWOfn5{RYys|GA7o@Q}#c-R{)O_Vq?A!ELY~ zR2Nj0NseN$pUlr<+G}MO1^mw7W|QXeJT0) z{}tHd@b>7O?hwMi*F-s@InIpx)+n0tZ5H5fD1LTN-hB_LY`xDG%2Y86C-$Bj&^H#l zX+hF7alcaKzMNqGZI%%=1re;~qbi(SHIu_h3JMv|$>fQ%WRdFNBnIXmg7Js{(fU4a zzXoa$=vbo{?|PvKETIkLO6b9Y)uk6Y15!N;*%ZFY!9YTSY?u+5rqLgKWf8vM;Qjs5 zNPo3V1s>MD2vq2nB$IzZs&M#GnxilRVhQT#`zJ5H5BBRJ#0%5UegKnKRG^sCQRWXq z@3a#>BOA*FoGNyfXlJvg!K zmjT1Riw|xnsVm4wGnBax2~Fm24)Yt+E^pB0B`OT^i^lWxW8W9+4>^K`rygR9U$xCO zk%ZF_6xGp#?%_GnMvg%ON$=uClbVS?P1xk0XTTasZPRmwV$cy0#2Sl=C+Js}gW|{R z8{z{8`~5D7-E%j? z0RZ6x3;Ns)&(4z+Clz%2r=+)TAUZ+{Pgt+aR)7H7Rjvk+r;=Q-kmfCKz#1%>m3Mib zT_=FJETnLA3Am~Ei}SAfK; zt*Kv7Hc$q*__KLr7{KU9^w#nI6ZOdfHv5{S^^o%h4-vx0bbPwsk6QP-DuueIQ9cU| z>-HVSDA}*LG|^iEL*1&mt6N0m-Y2Y!E9ZbUNm@^bz!Vc1s0j{a1;EEUdQ1-;F-%>t z%^StA6zS8;cVyk!qlMNLy~1>)fq0-cD^8x~rDnNvti6M;CqNorX`p&JUc zVN{RAFyH`62TF(FaobG_5=MbWm5tj)oHtkxg<98QX+-;+B2Q!GieKW=oZj$0>X)d- zhq+smr;!vpgQuGm&Wg8S64iNCV7sgA-%q_-5Lq=QlLRm;L=wJ&8)d?f6XL8;9M%S5 ztf4kdHrx+4D+?%!VTCk40AhK++@5Qv$^CCe@VWy%>cP#Tp1r_(h%Io?m?18HKyBvt z4n;Ta$W05L)s#Rt1cD7e@ddDFD5yfG2M2g!mT87s9I&x>@tS;m7fA#Xt9wkX{Woh3 zM5BxIZu8TZ{Ppkq?_m($&m-W@o);%v;FjwnlN z+(7%m%?~mxsqHO1?FEg%Ml{oi-srCRE9}#tgaK%tdP;(G zuF7yEi%#svc-eF$C-?IEP=Ht6&Be}a4^A5l;3QGH_XV%$QW)DEB(;@2Nf;#zr_oQ8 zRQ>3oSJVV2(!!YAdF#LmKdZK#DlYNqd+gBo3(;EN!P-B8smpCNEZH4i>k;DZUgxi( zi@!qgvOXa~vPS}?4ffYVM&-Vj}pIt!#Lv1#dD7797ci;OiNc5F>kNDc- z-w1#O;os7#XQTHefb6{==6!n#!Z5q0P+@tYtp`U2najgkNIUqwp0@BKA!0<{d|#AxSTBsPuOna9(Now} z)YRLhAUNNGX8QZ#C+d$C(a(6WsE+oTpL;@`sue-;>u#w|gJzYum)cJ}o^IVLCwMm- z6-hVsOq5Q>g88|RW<|f$n>$2zq0W!T50xtfojop*%=s&PLtT>mh-(~Ml}mX`8q15# z0;-GZ{Z}q(0t1cVUY|Q5x)`g-8|2NpyI|J>e@IpV&uduX*A`Gz?G1yuUayt$TS-kP zUDcZF{n%B9_Ve>_0v#d_d1jpt(uDdtXs>v-xy9pkXE9`ji8t?;&?k(b;^Y>~Ypw@i zMySDg&wrvDsjghnlC-u98@*Mm-`C#jwq?kkuaxNS<{E}&p0j_G?*WlXXuJBXUpKAe z=g4kUib}CdLxk5hguOAb!0R*h8;ferdBhLMKBV0`8!oS^&y19Dd%hlKDddE5)R#8p z1*fH-l2MDb#3WUwR$O!NArU?%Ky8;zA`DqSqr3HVow>5aD%?pyl7@FODi8b`b;S?8 zwao#alg*?DFF0{GTcN0jRV&+WMr#zdSc!4U5o<7PQ~zvCHkVzkeK;$Udlws=%)RCd z_E>3bECj`E?bysUc{>|&#W5!~&??HRKQ>-&;$MWaRFBeZw2XapoOcc*# z854WM2{mI&zXk=i{5qdYt0!~oulvbgTb?lXf4d}$)vANpc+QgKWqiNuHO15qNoy1X zF@3Q{XY4(!P4^Kka+cEX^N(;O!g{^Pb3`ECwpt0mn#Q4@Hu~8*6Jf%+3YrpCgw-OC zw?WPuF_42o2g)qAoSL+EYa8=XrTRB!dY$8+UgJxWfe+fKHLsS^|1woQC-6_5t|L}TUANG133|TV z=bxwS&e+!<9W3CTZ&56-3#h(5###e_a0=zT`e?3R$f(%QO&Gz8%rR7K-&7ekCzwcc zHo=_F!3mm(%40m0z@5|{qvRsx3fXuU9pZocN=K#|EqcG+Q3YsqcYJ~;Hy9YnX=D%= z>oJb2zmp;4#9GMj=IMX4?U6Ut5BzEEvfWcCu76iON8y3VUkd%lq^DcMHye~{c z!3L@{nX&2Nt?^2EkLo}DJPTj}TN;53xgRcuy#=oc*)7Qp-tDPD#8>oq#fBS5D-Z^y zWgL3HilN%^!s~{xOSZ-9o&-UFFO_&p$*PsZf-&!4Vi0)mpC z6nkmkK}%1V>cwzq_tD%}P2=Wo6822cPy1gDM=pH%3os2AAM*c$V z^C3tf2DUga8JD^5_pGR8Rlhv zOqmnWtod>@doX~#e$GV@)gZ<8a+6*z(x1*-8zY%hEbP9f`14H_cRmz?I4u#(kjWzk zYhZ3_b`+o|l*iWDwv#{5 z3(*X+Jc%F7Js55$fIy_Bmt z8dTOb2+Hhb*R*UDm(vZLhVlB%;E-M-?JR9@MC{t^D|#_6r;;6r3Bj&Br+1rP2s7nn%FZst&cn#?%yd`G0HQjXP(XUBXDVlaa@a~e zjX)jIoZO*ohzE-;4UjO-~}i7B<^FzTpV{{R74^0qafcwGqLL?6o`&&U3< z+L-+ntC#UjPMvV;kiU#N-#YcR7#293X$szMA@Ts39g>bVB@?`>PLyLWFO5-_sPzQq zv%z&#AWmB-2E%G3qwstg){X74Jgkt;(Gncl3ck^tQZ;xW89rp>6V&J-Z^yd2fE9q1 zFGZ-Rv?Ty!Di=*g8`cG@vYB|IB*&I)jcC4w9EvIBtxEzFD&HIuB{7Cmww9$@FL>@N zOSPcTNmhPK{tT{R;7RScv|qvc6Rz~Ejj^-Z3=)EHkaL1|k*;bX3mU$q%8D&(#2;3AJtORk z4LTezay=z)*>&4`_qKC2H6^oQ7lwt0>Tn_0CGBnT97OEywT^bvTLC+aPOH>WWtugM zQ6$J)M_~Zm3yQCja3JzcMhcn_WG;C`x&2H=@hK9G0XLN{5yM~J>m})H-y?IyrDb}U zD26_aJz37+=xC{xqIBfMusV7Ub9ex*3oHcL25+#|D1uf}qi+fMD5BDVE~rEBrGLH7 zs+n!EJ_?*{|3W$S;EM&tq^5R<)|LZul^sqri0{~Dgc0i1*j#%vs=PyfwZ)3_(6moC zYPh)w%ZK;MuJEZ$Vi_|n8wP>3ef9vyxwH4D@K623>K-megpeM=#E>^I&wK2N*LT$#NPT_n7F{&6`R&(>zh(jH|(oBWzF{S;@zNc4kTn z1pNH4)jA66IK)@yIZgiX55A{!Du-v#$LFIxEg=bnl%tM~U3`cNn;-1dS_=dJz&8*+ z ziY%(m4Yu6_08B%$EY!uWWss)>>x2)7>l#`C27SI-jRfq*gP4>kT8eH`XU=)5g?@yX z2=8SHh6#oLu>R0Yq|md5&XoQ#`aXCwMV6L`fuJUg5oc}-L9k>vq6{bM6C;insQX0M zuE&nYuBkaQZWv5J$Rw+5wwSmhkSOOpGIL~^g)EdxQ$hqPU_RC9(p+3}S>M3u`Jp+V zqev`ul+>OcE4-#`um_XKOOde%${}m*z~v~j{QOk}i$oaoK%iz7RO!?zsBERSdfKWa zrkNWx4s00HE2;RB@;_^}4&LgyBz5J|1>;bBL-Db57T3(sK%``45Jxl(D-f45XtT9i zz?LjfV>^Q3+ig#m0*U}bl@YAj7p$icuoH$zF$y4j^CHj?DFDfW=@%Nt#TwX|dx1vV z3(o6A4uHIri-uUKB9A!vvu=XI6eA$iBGz9&q2(`mPF!ALxuYSfQ{Wx9=EC%mmbEG7{rjd{EanZp7B%ZYb0!Gf??>0Rw6bQwo4CNsh51=+( zRC~$Ss%$HLDhH)Mo$x^GUJEczksKX8u;y0EG zDa8spnR|yG&Ed)mEMO2ziDxfW6w*iYC*%&?GFnI#u3kzM+pm5ci4OZDdMYRa<1FwZI@%kW1mZ43E+w; z1No*H;%u#1Vk-b2N%aRi1o^^wS92d?^0dB%;H~0NP!pWj>$xc_-}Ke?zSV{1Z=AdZ z*&fz^0WqkTk}%KffbhKIw?gbJd5-aWiN*MpmY+k8u~v3bv68=RL* zJdx=^xudc6*B43>|0tLtkt{4(0*#m-9hJJ*+gk*}P3ZHCN`7vW-_Tj5~-H$T`Tj`)6Z>Y|p>5pLYr4q1n@` z6{}cP<=-OfFk75PQqy#ybllW=sMuDa#iZSzjF_Wn(jQBsQ&r|f{Bqdb3Du^Z1gL?+ zVs|sfZau@+CSyC-G+vE@-R25~i|GZrINhB{@<;v>{t0LW7izz9zsI9u14f;Q`gEcU z&FJvZ2+=OvH0a(IvM;Dx&90Oxdfra|?Zf8#OAaJj?7SgJjxMm)-#SC0e^n>_FQ&|3 z^;72EJ+DxCfZ4e9B&(vM&PpfVqJ6IpIijjOj(DvVJfMk~L*Mo- zn?oGeFPKXyW9j1yVt@tV{4ruk%;%B;m&{8IkP_@$>a*`By9x{e(kL{jL=YI{hz^d{ zsbkKmE0R`SvhIVKPYw;EDh9-*sWR-N=YpO9B*uf09aD{F2o6|aOaXH}UKmqduqJ_B z&Ts0+B<+U-79dIM!>u5{^@xoKALEda5rkv0PDvaoAB3P3&B8@UX)q&JNe_f(Gd2J& zI0C}NQFbjxG+2%I2Z^3@Hmv6`F$9WovJfD{A<<4(3%iGMYzBZ8s%LQ^8NP!<83t`J z1VqyoA%!t(0#8M5^+bRux^w^vn6&tpD4;*gADp>jOy_?ZkbfCO&wy3SLkvkYIr%N< zTSG(8tlgKn0Lg%Gh(iM$D`k7&u!@ugoi@N=GT|yO#<%p1Bw{%L-0FD)kHOL_5*N5*(Iz^x& zA1*mTB9tv0;pz+>2<#i$D*_&yLN1S%iWW{v?^$pCy-7l>9LlMslu4{s~M=m;Cr&m#vS(OGsz%rJwTDnji*P%1EyEagsUJ)B8d2f|+$0|@FpXn$BPslR>I$MLDG}FNloWyG9sRW8p2pD=k8ciB0UmpN-Dv{K zqo+W}5Ht4Q3ik&#g=8cH;Bj=^^h&5&iQFWnVCCPF%;VW!{+iTXTei)?hv!l^@Ry(Z z9q&KBt=rqxu68U*=bOj7sq|^Pg+^5WyiRCax^;hCJ|A7*2OBq^4T|w>UGZ;QdTr3? zb!qgfZQpScWYMNHa8nj*eJl3iS6E^py>QycRIiKhgJsas+g4&!dFoPa~=dZE^t91 zd;rz&aO}5(7Ck!^U#3>Di>2q7sfcGZvfN6%f{WtwYo=DS-%rY_n{aZArqZL{q{9y`!E9t%YWKjOq8NAsA(~ zD6D%{6D7F?rU{#nbXhfYeY$KOSiq>D>h>nrsjvW691N5p16lTv?drAWy1KDvp2o3v zep{|OS{zMiRIu6~g)ma1(Ugg(ESzT`d2jLEwDex{*W~io?Bs&_w@dGrRX}m!M0yM#7sMYWU*Js#VnlvqyahZ~; zrV-OC*Tz)IC@Q7K{%nt#$?hR3#x2Gu_CvZRnbRC`V&jE|>=jnrM7)+h=B#8RA1YhY zvyLhi>c`2yt5v6ezg-U-+;{j*JAU~7xZ7XkHVrriS6Jt@z4h~J0Iv2 z{Pb$p#7%{;=oL!*e)!v$W)`KHT-wDXNu`?D8g89Gb953Fbx#d>$~pmIic_i@+KNv* zY9AzR3cu?Va)G()$CEsp61{P=liSQ1xHf|SYfnRy0N>k!F`8IHE+Q4# z%LPi}qniM_3i0!Wh4Aj6-OGj7(wYl*`Psce{J2}=8$crwut{o(_q;#nNVK(pgH#J& z=C-$+O{c+(WlrAGY0u>*kAu>WimQc&eS)kkrsNp?Ks2!IZE ziU4xFaV0IJ#vT_(TPLF8Pa#5sSb=CtjDVwvIly1-qOAFT6nL8as$%vv`eER+*6Z;y z`1108IXHb&=l=3g=h@eMcKwjc4qrK=LLr!^tB=;7>(v0UzttFpFw5HtalZ8k4Kl1u zPgB76dO-A0@lrvqoh}`<1A0KB#|-O~px~zHO#E~L)zpuBK4faE4r8`c-OVWHK>r#j zn7whVx-#TlvZa;&gmSEVyxVE#%K5ZH#`$=WdRuO?iCld|m#rFgy}Ro6$zD$oY8Uz@ zQR4eXsp_uh<=V@?wRn{IdeMG6J_|~jBU&lFtx{OsJx`;A2X`U55~QeU%#6_#MH3|0 zI_Ao7hVC&%b4{9GsWQ3PQR#@G5Eq3*uOP2;;gRL3b(Amo5J*oiHg3nq+ogT2&-~`o zN{?S-#dxw_wCP93pf|heYggyX0b^H3j26ni#)0!MEaA5VXHO3rV62?)Gr(NZY0M26ZvVKy z9dh-AVBh&8Zh;bX>`=BxFwD4&z*-+gdZG)QdGUOK!0Wlg$c!D2=t+p@j}jN~j|5%5 zr3l1{Q}BS1MVmBxZ7?oZS><(t?bQIb*(HX)%0u7TWRS7X7-Db4Fuya%Grt%LW-uty zv`7eR12pi#hXMBFg$)AeF$@~G>&Ndi@GwOG#mB<{vz6(WZPV{(nRDe)vCoEd7z5r2 zb&d$TyuU-{(Jw3u`xngV?$3w_<+HF>(>WLj(=y!w`_tR&xfyJ$8s>%=j(~_q{$+}2 zL+{t=pU8p17u+ zim00m2D%|<*}n{iT*R2fMlEZ8o^DFL1P5DbuKpL*NhfIY+H@ncj}#`>rFP;T_Sr1# z(L0Wq-TF;v>p6HWK{q#C7B}eK$4s8xXEY7Cc(#e)AhtJX*~iA$p@YWPxvny-mq6O( zx0c6F3lG*4P6-V1i_c3D$l|w=T;=qw^cP3_3`_N%956&HPhpyKl0J54a7p2~a7kl* zf%ORO`u%Ib23Y_GG*yT3;F@{>1{c{%82}Kg5!h?tlf&uKJoc7hnQpI@5r+pr7B|SF zE=-;Y9Nro>ZpY+%%8e#Tk5w$}VTTaK(bEWrJtXz-;j`BBNpCp z&w&r4Xm)ZF#6A6rTd++hQn?T{HW;vqujStWwoY%R5nvf|%0(>`@Jik;%e@5^&T zS_1sts87+ii7a)ojKxjxxQFgam4ghq~7;i_iZNEjF?N=OZ8vuXP zPeu)$9<`|12X}z+cV@Dg3Z|mhdGsVl(!aCI7#i>~V4NtJYgqXk@cXIW(!V!mW;SW4 zrt;Rv3J;=vte2=}&Soi6OrIL*%8yF-58sDNF~f96{W@!|0~IM_X4f&ug#(R^V_6V~ zn(^5|UpYZ$ENK7z7tm=5HrpB6>`14_oeGX1yVJcDS5rI#1G;}prfO?Ov}5nhzr=5c zrAf@6h1l{fqaH=5yyzypyMR+u+=~-k#E)vNcgLRNcn0+HQ-sA4nSX_)xWjlhhvTtF zcNow6a84JDNivwqqZ8Ovm%b7$VRF7X+1XFcP8OcBUUS(;x57RKV@<3-6zDuyXGM>K zyDm#k9avR7iP}A}RkPx$C9Db0&r=|nr)ADnkfyhIkjF(h$srm}m2amB`>@jg3fpH> zaXUa-0rzr~1Kf%9(CZDzrLvY^qv&LSsjots9h`nL73bc#i@50tV6x_SjxRo!J@)80 zIlq!xr1*6Ew5hj6FohqhV(pInLOM?b{DQ-ANZtO=F`S9>KPbD(E{4wkHH!b&JkBWm z|Czl1z52gw5>wQmRaBO-_<#pF#TEWF3;RZ9Wlb%zzysFi%JO$Ge4ZtQlrV?~dyJjJ zvB7=T$JskEjL`jj98nZOg?SkfgxvPMR1^5Q1)0Vg#np{4wpY(rh!VHu>P;@I>*kXw zzR%yE+s~KQ*5E`b$_SBzCinTQ;hsveHZON7V&IlGxy&<693*r^1eknteWgEj@#$PhBIo~fPzSmLrpS(NA#DH+n!#Eoc5QDwtRNE6u)d8vw%<)}+i z6HyN(-esywSQnbqQbLmD8Wp-sqC^rm+7{J4b-JeC?Mvz(In%pmoX+ITsqJI2`t-1m z7%Rq|OD)@U%QxTqHG_y;`o98>^+K@OM4LfkP>F-Q-Mr|X)x+iHi88XK-NlmQ6JtwL zLDzkTc32*Sw~yJkZvDLE#@zLnpw`W2s;e>0>7>J-5AZAHku8sy@%fVrYTi2@M?7`x zGc@)ILI1i5Z`xin#|$Idw%HZF!Z$1ETojcj>8e-tJj}eLT9SUGeE2RJu14`@xy-3S*;6W)hf1-t>&jNIvi`7ug3$ zaVSuw;Z&$;nLn0!=(d)c{uj*oXFfO!Yp> zQUCxsZSJ0i3gzHBON03C1_DY?;VBZzH4qoA#2j;4LMvvsc?;Su^0x`2gb8zeNkOOE zfakjaa3dco8qc4aAR0FexjutHg4pzGTHE--0_~~nf;tOFW-8UiMb}`?#~KjnZo=Ah zaV9KTe@A#?SHtUJYJ#Ut-YOGXwtVk`C{u4Hybv?sOBryB$BW|w#gcvn@041!Gl6R@ zh+v4jKw7YcFM>p2VTmDxk)Gem{NpSt(QS{*AF+YMKot%$ba=*5S0Q$K{n!ZbY&v2{ zahN|&Lx=~>(M;KVcv*L4;?>v21^sqp7B*@75cw@&v3+#V?acexSncjovw6vWyxEzi zV-z5zLJUWzXoXEb^RXWRmrn@fUNEKksXW(p;*&^foqSL0rZ>43sW`n>@Or~7!G|vj6RI3$E+6`{n{IiatS z-oZ>mUT9;~i@eG{Y#>a{wj-?$H}jioKB5ftHZC+@AtO>FV7yLNZh+_S=b zifyt#<*zJex9td;q<*#+%NQe)WF^+m>}y@7Nt2x-I_WDEf?;ADzduZNfZ2jYZH*P- zgRYfqRHoJoqMIKAZl`3fKbw8U2f6#tJ9{$CqrJ;@Lw)LPEMaEb#rr-I?`D>u82r;k zdtm+&j%qAB*AUkNt@-d<4^q?qxq2#PF-1{NH5Pi5f%Brve`2crCk`0;K* ze^`2V)`{#ZvXF{j3B>~7&2`qKN$CLH&0Y)UcejhXj5H5rwvUU3Tg)kHOGl|O^>JpL z#lA8JYJN5PnVAnAOTTPXUaVeI2n;f>EAZIqnt^lCnfL69{>s>~MW2KVwT^o9&fa_K zVa=}mjM*~|VrD`|YIw_rL%!LCrbSDKfDXJ>bF9Xxlxo+#r)o>%R%SiJ)oHt0-pD?iV=lKjEJ^9m z%ps_jpn^H$G^hq5XkMU%+D=}?k@Z(UfArGvjt4<0Ys68NH6h>l)-?ggQbHWQAB*4_i}x zOeYapyn<#%$|i|8rHs`EtM#OOSl%$DK@}Wf#^;MUcGz^cRdfEsg>a$ncCDWBq-^M79PnE)J30q_+G67x*fQ2IZGGU33}QuA)($7kg!|rcCjK)62V^BL6=`S zOoO`UZ(ytPsZ+wZ^b$crTCJYV+^67Fa<@ODu3tiT+NCcBF3$f@N#nl?6EK+=sG);D z{Tv_et^)p>(6H6%S9G20&>xSCUwCTiHyA3ffBmDZVf70SLITfXIzLT9Xrb;ku9fxg z?mNZh7e=aaz!RIb2Iodb0GYV;4#s&W4Q*1V*vVsA?U?On$nYjOx3gAqX0(ng5=$Ja zJWxLYEc>ZFz7ba77S`b6TZcgux-nD<%Ca16n~5Fl+&I|HX52LtgAd~Z-fB1UFxk&8 zgE^#Y(3YFC#QWgp^=D=Y3@5@8*p=eWg-M3q#Wx5(Am%vXmP9>?gppUqi&%w~wIRz! z*Y>+7sZW>lG|)mC352gVA**Q(1P$~;;)AFp3Ok|)L45KhOx^axOn5D;Ng)vcDWh`u z%Fgk3*P_dkA*Pgh7pLbLQ4avLBhVV{U_q4;)xv~y8Pto`M0iEaQs%4$2nGjzwpHnO{5xn4N2u4H4ZCYs1NF>-#*_`i<@ofxmL>+ zdr+r6;PPCgPiZKp`t~axpX>fov{P(+P*(rj9=>WV!A~gG*YqxYw2I!Kq&k<|%=4qO z)P0HjNuK!%&!xx!2K46Ex9_@&6M*970)0-{?dH&H~YqRlF|5FGlrv+6IlHI&M#8#BK@B? z@WLNpL#W-9{}zc~1<{V? zByhMG2rC4hI{`r{1MpyVLlzuNT)=+3S7@e%fG7wm@jcAFkdYw~nqty24ps!2`HR(8 z*@SN)S*L2|#zsYTji;Y;?``+)XZP-_t~7#@_km-u`)Ut0AS=k&J3+#zIoI z4BrL1jt0NY(6B$GFb#RjPPL7SvPw*Qh(xEG;##i;5 zCO5Yy=O(>EDFXVztI~?(7eK-MAH@Eb3VpBJJlPk%%iTvUyWRz>>e-IxMVw#YTYUPJ zvZaI{M38k2@rek>k`v`gO7@9tEol$wuW|w^6(m7Q+9fqfkUOiTOBCtvkPI2we4OxC zo`Y+l>O3_>KY2$(+-Jb%od3f4uuEc=$j8#Mb$KMoq?`)$`y^(xshUla;*#G*t2Akv zz81%Z%hZ`v&`IAyc6s=Wgv3{3BC-E8wdZ5~iXmrx7)t=aiC(};NAt9Hk=2US$cD=a zun{h@&8%d$Q+A1A!;b{MW2Ax$>tT@}MFs31LU3-Zt->EbHytY<1K@ilFuG+A5|1D< z{ZB$^Y^}u7wWC>~UU%~r`C%5F<)4tAe~XJ9-SJaPY9xoy@FMc-ptoQnBoaLVKlYg0 zfc4aTm0Ye>CK=7cax@NkN~WOE2Bl6={b%PN!^WiQ&VAi4>3CqeCQT#p%tU9`Y|2L@LYs?}0tx)h2w7{0>g)3> zgg9`WE$LeNp=d@G*Mh5fd-vBaC*zO$^R@{g6S?ahB}&GqmeELrnamqm zz3k`i;v$a#RG%(z#3cC_()UPMENwtH_|jzVr%`O=KK_Z@gTt62=|RI6yO2oG(ztJk{@)c=YJ7~b7ylDrJh$|0k=8C zfy6dhvt4Xjh(M;yC9h02=%nv^eP%B0axqI(h!%zQfmo5Le3z2ov+N~Ncn*Wn$sIcC8M%$f6?TZOl za=wgCWce;ff^hV_fr#a^ryu0kABcyNJzAmx8Dzc&D+F=^4qN28pilP&dS0OBz*Iq4 zjyZ_O+#R4~P3<_L8q|OR9%ws>_%F^=R5Wg%cSTC#PZPyr8h%ZFYiS^NyKPKIqX;Yz zVP(QomToqX4v&^Ff2Z%yLh*yF6-U-XY0e2JT{uiYz!_lXC$KbqBdmF@2Z`}{++6|b zv~TqF)Oiic?c=e-;H{ucM-qt$$@*|5A2Oh}oTymXRI{({4g z-?Sq1K-o%EbrOkinv8L-N8x=(l3X?kwczJyNn^S=uLFN$^P@ibu~2O-nlOdC=$(p< z23kglKm)Jh2JQ;#Q)CXQm!;uUy2bj#l&~>S-i)QDB#U*i6PLPnjV?if#){zxA8Cpvt80VO~Dd;ew-h@N~e6-i?0?n*9{rHo4@D2%=ke=ZsR zX5KwHs`***bHja8H9VY9EW+9HQJ7szlT0K}XaLH;Auq^wI2Gl~-nDxmLa=0}6Bupl zG?CiyWXQrhd;3LE1K}Q>8XI4)gDXZi&^0%7bX1M=kS(C^&_{^RfTL@+I z)H`xu?_}uWEFh`YRj@Sl730t`(6W;E9L9q{;kY2SV}`_o%RrvNekpGNe6TpWAs;d= z5@QiTxhDAVa~Y?w!DjaBFr-@Vc7x#kJsZF)6nD<69l~5c! zZ+bS+T3<;pX~>A13zFrNllSOEZTSpZP+f7o=b1(Y@bSu7{+D_nT!jqcAC5JxW3NG5 zUv8LH;K!o=<(SEIRsFdA0|{Tj;S3;)bVovDz{Vn%%FH~}Pnjv1w@%;FPs>E}&Ga&L z44h_bFM?(vE>a@=p!BIlav9k!)=q+*pMG4p=HptG?+ApznaUDc%7 zCUg&HNnGz7Z)U{>!%9*tg)P7~W8G-SoopffQ?jd$rTdow-;5eZA*f`kiej^bSl=7a zjyd4e{DoI^FXc*z4Mf-1Qr8p`C5TU6?;WI>I%m)I8_&m;aV=Fq*T5IDVBSXb`uMP; z0zDp5(%r?|EB8$>SE-J1Cpfe0j?C)O&iOjfZJH9!D#~d57A2pW+6HQcdabn%h4qS> zT*jaFa@!rEg7eYyne@`7<6QtA#bSbJuE_v8WS3;l)Z{8Q8fpVhMx+4Hog>+=jIW+1 z!i?H=w3IRk4m@{%R@lt#(4^_lp91ra7lRtazl`^+1y-O+*Yp($4#c$Gsw>1$)#8EA z6b8n(6h<|2xtZGWxs{h?buBeERI8|GkIo%mf!>$%Sx#>Qs1G63zS#c`i~_9X{}Y%q zGyDe??tcx;8Cg01FWp^8vY&#AD)#7X$o3>^tLSTs=)0#IHn!hT8zPpNupJl~Z6pyt z5_YnNaKP}k31FJ2A|m3xCISrckcM%9CMs$aj?2Krwdn=c%b;W<{>oBt@ym-T->VP2 z?6zohRrwA6?3U9k@2Pjr=_fC|FbdQFgG?Kv(G7CcBJl}1sV418SV2kYQ56m4SPS?` zK{2Gr2RgAVOk%LUWGRMJN$GFe^KbP;L@>jbJ7?mhLBQL3n?Q7uutaqz1!m|p4Fz2k zlZe<%bn8aeOIJ$!@JHF$80KQ>B%_#}K;|_u9 zTnPb84a5tjA*$T4i%G=;EE}rVlD`yKS^*Qr?z4rLHD1)ZEqm<+)z#?<1! zsTp#*Z(n!XKH?vVc+mPZXbvTBNoAZTqe}d_l&qf3J38B`TfV1wN|d(5YuyjpLwIceNbw3B&#$Pa*i~VnXO1j9KM5D%Fy5; z-S+=D9KbmIo7ua1P6!-v;9Xo;k9xEygO3m~)y?!$TYsS9{O^}SA93&uHaGLoM=|IZ?~|Ej@+~XgXIWr`ujgw!oW)R@ zylHHV^tz62`9XJuy`EM`v#>;X$cf0AcHbGN@o7}!mR5r=*DIyth9Ds0QQq=0D`JY39Ux-|6^?J_an6iew#bN`Czn1ov1DPTzV6Ak1LxBRg;OTQ#5vM!&Qn)6 zkDe#_%;>WQ>sh2M=sH-dF(mOs%9V`kL~7hdAV5^5Wv^`7;nSpfRV0^tv2(v{z&X=~ z3rsawf9~`qMslx1Qjc59#lU~WSa&|*J7BqU5x>{y2F(lu&_=~|3xgBK${Q|Oc15<@ z?x)?#5RqCfh!agmN6CGjuJ_KFZ@b+#%n_EB=nPf*?Aga#Ki=)j8S2E>sw$I$IW#hw z>jMvKpZa1q6T)7;Ngeqv>z}o}`@UJ;XdgO;I*E{wPNsAn%Jtqjf_oonb7y}8FkTh% zl0dxiPV^ZD;+TzJ-Z4sC25Y>TldI4y(MwcNfL}45yqqC0aG5NF&g9qA@&>cuhvf*# zxQsO}0Y=c90$8(VKKG`rw)vx3Dgv}UkACFhq_1*sV0DHcx)~u!Ck^-e@Bn%JdNiBT zeeQyvyYAp{uAFa^y%we5uTW;9&F4C_5_P(SsZweySv0ZhG6hfz*?1=C@(UVLt8cUp zE7vZc>?~%$nN@1tW}N=n0$V#cHeVT{q=<`8ds?}WyE~Jg=^NQzroy$Inv{9%__SE~ zUEY7#&J1^~uxf1nUi((q9ty5O+ODm50nvwfaREzQW){DhM%$FT)eDsoO;=zw%A!J5 z)Ek!hRkd1_R?ZwdE_ZIhQmM*^eNnZZcA#HmsJKByAu*ed&C;_&Scg4 z-G1VN8X5Fcpg?VsMx{>aTyZTd+c?J zw5<1@U-8V0N9>TVdx@^iV%YHSItBUJyO;IWcAL$KeZCiNi*5Fz0iN<{dTa3dTgE0hS7XF(*#W0fKU?|2sGo@jQ z!<_Su{fNdKkUlo0Z_3p8cRd=KIV^p0%IJi-CK~$@uQA@i42>}g6W$cEF;0{AAZ##RSb zXI8tqxnpU%ev{QI=ox)G&4qv6$RTc%H|_Z=Z#7ugrTg>gXV^4qdej?bcgf5r*UFOo zS#i_1<=$uXHRkqHf?54BTjvN{iskvuEsb{(6XD(rQCKz-o!P4{NV)~{)UHh9@lLX& z{wHDSrit>>0n0op9s)Wplom&C`rF7kVj#a^=dz}ktB$x(Bvi~}>5gCaAk)TUOfY=f z_UF@9Ui%dzQM?w4d*-ZSUm2~DI^Lh^zZjDMaB5qF{Zd;FI@^10?uTN%0QB_A0y^2} z_CW%?Kc+OuMu|D;D6-};isseH5BD7(korUsqz(c|IO0GN{Tk7-!#cAdhS{ZHNS)MF z3=BNp(tjx4gwJ;F4&ooig!(Yrz|b4zPWd}?G=Y}y&TGCP|GYr`g}HUWO%zC87>e45 zq8d}84B3n{_ID1eUJB~Hy8$W)zV5r8LoJULk{0{ct?3RnccGzU)^hcYQFBMU&JZ2u zY!Y_6Dol<(t9?-^4km58joi#;Ky{sO!YCZ*UxQ82)3XRAcQrTp<(x;59tAB-jp&qu zUq#79$YadoAn5)Pk@jS?kIO8XT^d+2VeWP&i4V3qI1q$K+>)~(+C0zs;6j-@Ipe)r z)G%^F!j(Y3Y5>Q*sDu8V3?Q#pqMK11{3P5>Vnp3l^M0W89^TII2r!QrCV3sFz9fQI z!=o)wl0J;B8n?D?1H$a%1xXX21tF__e%-j}RPB|-H-ca%xkOeb08DJp#Dao zX!6A6KoG+Qdt6Y%M{I7uDKCw{&)oF3A=eRl~}iKjHzJ%@dkMr2kV$ zmM7FVORML#?{syo6{mdpE%Pfh8Bl`0&o-9Tr@wT^R?mW9wY+9@0L&z?22kmC`NfIT z|A01?u#Kt!fKzKcu_xTNW#4x89l$!%}|1& z>>m}-maVlgbmPAUECh$4-01l5V3l#R=pV4S$!vgdUj7WW>b(okxszkDuB}&ato=8m z8g(bY7tw0Oj}@>Jvg_L!XZr)e%R+C{f5;iE8gAU+2r^FPpLv@=&To3?oOH}fEW0E- zAr4w!Xlol38lU9n(_DJu$Vta+9)zXRgb*94IM^VXt zQviy7R-a#RMyXywcj{gF#Xf^cd>w$$42hX&`W~CH(^}*4)4LgiiH6y^NtmSgd_@M> zBye@Il2N9ZEL$a#fAku%5sc*O>4g)Ad zja=JXeO+YcCXA*K=h5x-)Rs1c#~jF6avU1EZ9ehLysKlZ46R)xU6O^iht z1{AfgY9UPZOvatx)V%=ym9WtQVsz)lq`#LW38I(`A#nK1xN{R4)_zdn#cVr)D;t9P zfy}q&NKBq!#sWQ8(p(ihcuEG8@}>HZp966=}vTE)(kX zddX3)gamSv5d@Vs^(>Hx1o5+w5))}!+aR(p^6rhGBv9=Kx7OFM>mUQ2790A_W$XmC zVbLn-5X_{>vnw{%pqiV~egKY}Xy^?RGepYksM+QkR4nDA49d&;2%BKNgT7O2 zHs@twcjddJI?N9DB8A=dNnYItY?yS-bE~}8cP{dh)XMA^vcu$?jEQ`!bGjYK&Z*)N zHKd#_Mi0uVo5RL%n=5aP2cU*f`TLetcK8OW3Pp=>M1#l*{5V2G4cf}yP;iTu#7wkt zZWL~%WwuF&1aUA7563AAbotOu2HU>z(7i3cXMv#Zn)XJ<6Ct8@+}@NZ8f;{$6k>Yjw2k%cFsdoywM}dfy|Z748bZ@PCu*(ZCMsFX1f9pEbj>$G%Y3#F1_n7J{_*-{X+^r1x3V~sH+?2RF5&R;v*d}a`+9}4`s8wMJN)}p*y+{a>JX_YJzUzBAXDzzTN52)G$?@gL zP*odUwxTMkV&E+>a2?T|a1e7Eef3suWU1x3g0b|<+gYI{<-pDIi4X{ml#nF(<*$J; z^Lq5l5Mb-vBp$APqX5psG6Rq6fm9m8E@?+OOQ8-LYKM0c;ftIykHPmQd5vSwBY<+1Kt;~=SSrsEWg*hHc;=jKxmWpt zkFhKTsJp?+QK_74tO0uqUWJiVi`x4_4{MsP?sN~%uJ^`iO@6S_Z!7q! zjWFM;HPw-mTd}Ik-JGYF>R;d;s{a* z+Q~}QcpO*vm%>4m&1~!Gx%9w`m^zrU_k2jVEKRV3K$B{xLzw}8Q3xRZyYgjA$^uC?NQBRR7r&3J-Zek@@*2)q6 zpvpc;YyqQ*n&ztmgT32EFDbDL6%31E-i{Ipaj~6U4sOM@!XuK^GJGnw4FDJ1hQVF zb^Hz<+u~#n8m{=F8I3dxJteqKluspW=i0m!P#M4=QXj6VMCTQY|`LS+$T&N3pZYRYgk5DMwlZo1V3U13*T=R%!D zqARd;=Wg4x$a(aiH`QzOJKw_qvRJ)+*bYC)>52myiuuIjHPvet!U4aOw1|gqKLV$> zb36|@85YSujk%C%Y?I7}bXt!u3#%9vBY<*o6hP@v}cLI+MjrGqgf+1 zyHk%JBv_0=x^@zh5j&uSS*Hov$HUED@;ju~BT5HMnPZFgzqg}%3^-mG?K1t=`)G;{ z1!$2Srr4TVU@kA-9!RF!NO^M9k~H)`Gi(j9+qz9X3n3GD9L_lPsk-k>%MTo;ZM*}p^cLYJ!#vb(cfrHdH(P^0M+oh1JGGDC!0N~ ze7?~TVFl!(O0#6nF6(vyfNH6f+y05tt-0oqq(rH8K7p@R1+6KBeCl4Zr0&os{On%+ zEQ(@4QJap0I)Zsqc@8tS{2ja6yEN^vFMO;UN)tVCog6kA&R+ykx<3WY?$Q&9fcgRh z-<%sD+Jf%Esk9Mgw;-AHlh{cB&0;sZWPN;9r!?XRK|h9g$Vgd`zX01E%E#SsU|au8rGGQh5XapuF?p~2 zJwM&W=l<5#G;uWw8JDj@7M8)S*WSIK)O+`k5dXrnIItKF9a)lj{e<4}d;YlwIeHKbK1<<_ ze2Mcck~gg?YYo`BgL>qvuA;2u=iLi|FEpL%(+|!z=%_)fEu0#`5nK?7@yF;fFe6Ej zu~;3v1fmc>(KnF03SxI}Hrw=lWmlZxl3qr0Al1$eDgkoNUtRA|A(Fnucx(z4+FW}+ z1tg0FSUT6JR150T|MRMgd)}OTp-VYT&V4*SE~AHVa;YHdX(>~OZNAh)^_gelCPdJW z7DwspJk+h4oxj^|}C-;dwpXYw#!nQiaSw~03 zUiZv3>`Q`gK;7~|z~#IZ3X3{@qf`>+AQnru78MkpJu3)1kwqL(_Grib6xR(Qa@4tq zj3!t@3cv0}isebQo-_Q)Fh{jDl$=b&jMzj(t!E>TLqDL3I?3> zgA1YF1dkDn{y>yn4fM@)*WTFn2NqRhT?b_%Y;tb3LXK+(F!Cy{h^_~6HH9dwDT?9n zQ-psHz?9rrbsj`Jle&N_N>y@IV;l)DJn)bV|%dt;cvHMqRoK@SCQ9wFE& z9GhFtUnUD}88rf%oA5qVaU}L(j)JYA6B(fsHn2Kji)Uj;rl2|jvTEJ;FE$6O z`Y8cA5XQDhgIrqYMkst;MAnc4#A5OU+VR1qM}A6hI=5^Eq9ZDa#3Z9i@;S(2?eW+! z@&^bL4fz%s-mF%B_-eo2QQgko{YvMIOPt|Cg|sLWj0U(};!lwT_1J8uzDZZHA?I+j z3g(DE^J0px5B_EklM^OAaC0UMV|Kt}IxzZm%lAU^DCI6C3Sf#N(+%bwFTy1wB_zjz zf(rJLCYb8N=+yD5)(bOv6`%SnAoE?*4X2CSTug-8Cb@0Qp!KkwgI|g9XeKr(KS^yC zqQ~CY{(P26C9t{oM$##0s#xtCMlGhyM>()rb z@7%v$5z_Zox9abjVEt+ntM?pp8cwB97gQLjNht~R31@4%nN;TWzhkqnn~1Dri>)dd zm@YUpEab%B)!omPjE5&0smpVNs?U|eDjCFc!om^T!np(wDrCKJFxg2ys7XlXVg-d7 z#Dw1UlCaa|$|dMwqB=O3(bOF+@#2w@P!f?1(VC}sj9H0=pa)IR6)S$LFHAwG;9!Bl zZ`J1apK7g8rvGrw1a&12nC=%EXcbll55=$7TEF>avL$Nk)ex<=SQgeHD?7qeN>5eN zlGBruEu^N#C%cTTw^F?cZDJU>n5I&*{%vWWFQ51Tf?t$Q|F`Kk^Z#K2GluxkxbSj) zZq>_inoY|VnspkLUR6StmM?u%9WPhFW*#;kHy)Ne4a@2gnOR>mJ1;*TRC$wAzeOm6 zqt4N>G4Hay9)=HnkX z2`AK+zfakYu;qy@Zckt$AukuT4p6HW9bUU7;fp1|xWfsYWkX=#$}JwR&CkwC;I7IQ zw||Y!_F9L#W?h4Q+vZUR9!NihHy3m&;K8pQZwO!SV`Y2sbBpK=ck|+2zroTdtD+`3 z8&x=D;$zV#1;&t^S82DBj|BirET%9_9yLWWro>p8{vuYQ|F8R_Fj$eO%%xO*(d=B? z0-7b+JqA-Os)SVTMiHqDu2eh`h9xLnLb{+>k*PFok=g?G3Bg#5Cinl9sw^m)A~j@w zS1uJQN|zFOnu0YXIpm@jImg2^WUX^q6{Z(SEtr}%Bje?cg%8o<@f%P~-b{MLvkF<} zLlpWp$GKNNvx6FjnAQ|D1XdV<)B1TE-UA=sx@}x{az5H#KH7hZzk8rZv1b`<7x3L< zU-T?~>pq~BaB~zPfFNYi3w_Bls zoS0Hq%U4Z1ExvzjFT(0&pHu5Y?+YylVziiVPh1P~1N;I3^-+lM3PpmHuXx8A? zL;*#c@om#Lhvz5XQNYwB9X4BN1W++wXAT7o4sD68)0Vx# zYaP7uD-OJ;e_?jQAEf81I2fm-ig@v?uU>K{ylz2|Z2g&99ea$cWOpH{{v3de@cW5f z=j7nPL}2wtz=(v4Ovck~H+vrnG|?4=C4F8zn>Nk@yzd;uMo9sn7&|vQA(0HY)I+Fb ztl~mZMwCBvc==xZCGphmwmy1EI}SvfKXEHp7qz3+S3-)pEVzK3P^G&H4yh(vZq za*ijH8XWl4C25ynbRMk=^pO|8!)p{4MoX+rS?JkD1dL--J`eCBHi!q4`N{%_{(MoX36VKg1@+75 zl7kzxmTcEe$CUs#lIFl&Nu{L31aXD;^ATwQob z{?#Kf(0BoU^1xH6fXW}^xHx!`Z;M_SM=NAu(PV)<#JC=#I(TIrSmPjU3;riZeT+mZ z53PukmsV#CyQ&HqZ<5BLgC^66TzV!tRX#G?riuuSswF{-7Pg0;PsF)Rej^{9_z;Pr zQrNYLnS=Qz$C>C`LHnN|x zO-`l^c&g=V)Oq*^{HUzLT1w6FmDBbTy@FKpYd)tjF5aj_Lty68v|CXpT>N>^BM~x6 zn72NziQNV9qD3)*KJYTflGbTZV3$?(m7WYO zzHUTAOkYk-z6U#Y%}VD67o&!~TfPbQAnD0#F0~g`8)FVh3HRqI$|>vdi;-9WxaZ^A zw0fiAR9fc`Sv8NB5anyWy1jQ~Z5lfxQ?MlQS~hYFo#U0qf7dDa>Q*y6S|B5 z)mvsTD$E094c;u28^`i!tmvuXoHZ?@2V*x52i6?cRYW$(vM4%CTrydp(NQ4IY?vu6l94)>f<*95klmSBJlpv}k?&l@Q<@i3n0!D}_A; zeI>>bpk}=mWju5le{H}P8!KSELElxcUcqTYHuj`n5I4(#+U z@N?e3yp1mZ7GE6p%8Pj_^FU9}Vj_DS6K z0?^nYzU5nDlt!-}|29oNHGf8O&|GxR!(xs@pqmP3>>@G!{Bx!QRz1-16lFdgTS8HlbN$yvS)aacGcg0 z=SiBe+shq>0%-I(YHo3i5}WhL+X0!&gpP5F!Ah48WLL?fFtky@dM1eu!{$F}YHHu_X9!7kEQ3io1lCP%@X>vtsDI9WW3|A4QGJJ#ISL*No% zE$}ixqrlDWhFmr*2-65^i%R)$rfGs_`C%KJpzw8WO9kj=&!RWHPC~4)sFrb zjD&BnHWz-Jj`RVEDNc>)oM>gN7CinUtqY-I7b~ z2@$$oE9?7@yO1BhGiFbXL>yirk2oeLgU+x` z7<1m+h!h)hZzIk#s{>gQje@XnCR_dUpCiUA)x9T^0dUv*`dTSzx=EMKI!9HP<%oW} zM6`>t=mdrXu}cHdKMMPOr`euE#TbQ%w`PS&ET;|8_GYz_U0oF5cF{|>_A4;l_QV=&sM>zM47VjNeqP7UNwPlvk-OsTR%o}@>)%QCG4d_(b%`PMgb>Z zO-Ck-%;0ur)EWiYOwhH=#J7*F|lrVA9 zif>T|R&w?=2}g|cAB&Y#!xF>9P{Mnt+GsjdT6Y?IGseR8(S_tO(f6l+!rnq*W1{J} z1f@=KkT$44Nv)DyeqKj&e5ehbqJp_<@icb1%m`z95=?MN`2`9P&2JX?j=L4CMEj@j zHklJC40kT%t9qcLfD;TEjt5E2Zs)@GxWkWv=C2W$?RJ@-a zg#yMU+x$t@hDgC^M=~%w4z4zB{XSs28z@E$zYSZxF0!U0Nuo8QN)Eeq4p|3(y7MN{yTF~bOjq3gAU<;w(JXLT9mB-GYTMdAa;J1DQ|?Zf9f(?RWX7HD-)vt1dDM#B!*URC_c~=GPcSZawzx8rSP zP)vV@>}&w5{Jd)y0xj*=!WK4pKNYH{V8YF5EnMPGJmAn=$#kmeMtbPvpqbCA-Ze|c z3BoEcKel>v(5)b>yS7+ceQCFp6=56lhA?rx$AJC4f!AmVtaG+v)H;XLhP9RYDbXV( zyf9SAVY68`gY~ILK@A>*DjUqRw(q6V1)j=9;$oS^u9Zrti_M7@b5x6bG?9yV9~G?S zg_8*U0H0Q}KR2E&gyg>(;mRD-Gg`3L6dzObc?GHACc=%bK@(y+aXn2wBIGtyo_}S! z%kA(rImCti4j<`ia;%btxd>tjg-N%nAP^JS-(?Vm zXoHemd~#-)3q3j$;f%U(ZU7VX&`B^S=?XAAE?PH&fW3Y3~GLKBVs-M7K(XS+)-q7zz+qFdUE|62HL z{N{%y)%=py>_*DxuM#JWA8~4X{O$;eKIz)Y<%7M(c{O|cgHPeh{ZFgJS794{)X^pHN^2*V3?JbnUbPGXYk zRw@$_>#XNUyY`$H%qqB{Ffc5Trd^wb7{USiOx?|l_+BA*j9olOB3LU5WiaGsowWHo zDmY^cd&%LC5&NxuKOn@p2Y+~doq)IA<^)6x+-}QvcgFV#=+~$}g;C$c)+nRcsS_==n!1r4f4WgkvGgZPFAa2r~0oD6p zXr~5^ZX=DQ*t_#{sa*KyXz$myBK5&>KWj>=8JKp-9XSd`*~QveMxypk#%Zynh{ zP5{dJ%LEd!>NIgdlWMwG@A4nMnJk&!S{=>44$4N3W*}&zcF}8QaR+UkyYHA86V*O_ zGsx=uN@q59-;UFRgFZAR(#6}-HR836Xx3PL56E+}8EF8Rlt1QW=I6d)69-+s>U>A| z>A@zO);v{{eiQ4WHZD=?c>Afl^P}tM_whVA(;Ghsxc7j05q++w3w4EGt_`?PGezO1hHslR7YsSRik>`w@G~#E-vHk*>-mW4oU;03==Y|P9F%|$) zW^?k8b|F0Uk>7hhtk{K$0>crRr`coF#~*;Gle*tzo72(HINaS{?K2clRVcodz5LG9 zjJBUo{g9oUVdL36SSodyy}mZEi+|qKzG|)^jJU4@(BC%cQSGy27GWoRB zwZd{4yXO(5+eA{oP$eq@&GaifiMzeI&>*TU*j$2#C|khTgxKkk(CEJZLR5>&Dhh92 zpJwd>dxK_s7Jkw0Snu{xySBr^2z&W(xP=4^uO?twuB=oCEx`kA;H#fx;Pwge_$`me z-+%ehq%-Pu_c&iQBc>as3sGh~vl=JHYk3AR1A;6!mMtWsP3qIHVN2yFY5rrD=_vVcc{KZ6KeBJ6PeZn>^4D|0WyLFsJCoW}l zo!P$EKw3%QTb)w-tb$+fY8xp?=%KMR^x@Z;wiggNfY@(taS)!WI;#p>P_d-|X$*i0 zpPzur3oeVMg@cZahTgul+ilZKsrDSH6XFs}{|Ulw5a?pf)td{TTmRQ|Wn;JzWMvS9 z78r11KABGfS;b3|peOMj1=Y5eBHMgUC5-rIHnc@?yH*0Pg6LGccuH9STX=XlLH*d8 zTaF-b&gww-L(PESq{izrv)lgpd7~;C-WsKeibcXx7UMiuMl;3aX?!AZWDr1dW7Q<_ z>)qhuhS}q)2DG!=@0?Y}_;Lz{fhXD}`z_|IZi4CA&w5*>7C6P)uOd~~{Fj*UeDkVw zXM+^P^Sx4b?;};Rg63A!WPI^0MEX;`-Sku7{>xoq)|X76FT+B5X^ap%;yN-rO+|AB zz-5G${IfgegAwzd3&_VKK+VRaDPwSre2v+?#L}Av;BP518y72Ni;(_z#Jl)hZYr(- z1$-AC8@gtDSji@!X?IQ1)0HQN6dja`ciHG|ACvN*Dfr9%c5BIM=52O{r4jprXixbh zmb!(iamtLP_7u$MzDvaMEQh10RK)^XALV~5Mi+O?Gc?c(={+d^FxQm5@j*E$QfprKJxpfXJ2>(^x;`6P1vG_!YQy4B}Cu^nK z*ws3t0hLHEtaGE<64d~FQ&hJxI!i06@TMB~$;2d8xK<~t$<+;i1I%BuWJYvAkP1<` zYE8{@v=Z@}N1|oAm;zywqRxsfbUo4^9d}#{1(P&j{=;+k#&ywR+F{IfOhbdeAZ_S0 z;RTx}5FE8Fo03Yl&E*Kk#`iSIN)gC+u+LHk5mtsdqv5hD-RhQmq98`{iVVISxB|XX z&KF_4nlZfC!BFeFc6z{&k^#7VlHWatY_@=;Bh3;>?0lhF_msfQRuEs_elI7VG1;UMb5)MiP zLF*%n7u7ZbSffj!V7-}G>!4#GA}%N>Di_!_17-Z)Q-K#pg)Te^@r@Xgbo|@dw+rzD zPmK8`P;WD2(eOz%FA2cdB#yJTQy53FI7M~)TIo!gL5SGU#9NWh!o~%a^|MtP=FC4Z zAz}Hmq*V-RS~6m|)=(FWAzvQsPPV_FIgc;jJ{F3jKXvqbe6;S2T$jEipH>hcS= z;RZmIvIsR2^SV_e@6yO89Z0b?V=p4fuWTZsl?398(m84JuSgaOpOG00%KNG+pnC96 zR{`BBiP^hQm>o}7Ch6A)`nxm_pg0u>kbj|9S!Cd=;3@`e2sMYYy*{E*OM8rgb zA!HuNkh1wIS4P612Q*X*jYkBa2Z;xZN>!(nC%-5dQpnTHK}AG3jyQv9@WU0-|Jcrf zhN)-IE&Jzx9EL!l?R0QKOLlXLUw-U7ZKB^422S?<1F^I-h zQHB!8NJ?$u6dJ2ZvtcdudSBtjMYYEbOsToUMfy|Os5{5-e4dy+tnX`sG$1vaQ{3Gc zQ~^oGF|e@FWVtr9V~l^3td9(;FM>y1#FGmy2i8DobplncZV+aPCEcH`iISU?7laQG z4jg>8G`r{Q(h5zql{=W_(aXwvy%koYyK8FFLkK|xLwObUn;Fr;#gXiHBUGm%aG7K5 z2Yqw6Z2{8!^*4jvNi4f%hDxA*IH@;Lc!!Q3v-Mi>6}~fJ8=_>5C=FXT1|Ep&_eVsI zO)*cj^O{-#eZEOp>Y;nQ8F}eio+(|3_!%IOtYOo-+}T+)7+o~Qgbt3JeEbG(rD!M# z{rP5i^Z}rv#t8avsqX&;a>>N_AC`JUBRze6JtLz;$H!;e==eDIJaaznVy!hTIcWgDawi7-dhEDVcrAqxEK)rLZnzd zWHbXkVXSRDa4~W)lR4;M%ZrN)`nsGD)#=r7bdc`|0065C+oJz=D*qQC5exl)9!r%Pgqou1Z`O_( zGck*r@jSckP`XuH1>3ajl(|eXySA;t*vDt?QH=2+UeW3xw)&W$ps8|8W@7?r=@e}qkCr$p2-9r8#ZLU zOaEn9n@eZ4-CE4u!f{>FJA%zrq=a~=eaB*sQ>@1lR zxZk)Xtzg$f80t*lybmv(R1JhCQE__>DKlv-BMdJo4p_%SGaa7|)HC4RbiD9Cxjz9m zJdVqf7f)xO*C7SC-9xg6JD!E#b7Z(*@#l9k{5aVyJjvCciBZif-jCT^M_0nKUW*nd zMmi#FvUpv?PG0`m`zhlB0%-m!6_cnp$p55)7=hEN&};dVijKS-2D{yLNSvhjocwOE%ziINjre~=JKOKS^55bCFWcR&}MY0fp3DQKZU z?$exkwp6A>2<>ulx#5y};rCK3YA9~GWaeFYU@iGn1kOl#i1F8gb+=25z*Gmt1BeWt zkEOb|w1t@USFBe5>z7YS>BvbRi<%@LF6o!m*A_jg<%rVNw~{gCOdoG7f}g)8r$cMT zPclay5hN!iQ7I=>pxvoK@0T~3b#n!ZvGxoxJ}uBNQvhY!MhmDhhS$0lk=#FGp< zGIJi|v8a_yrAS_!ilGn^%KNRchfrF(GRcAkyPz)QlT$$I5Xze>C+2XCX3lv6x}q?euCNZ`hlhTjI22>p*~+j*YZ@ zim`5;{p9JQrX>!#qOgOSIUMTF7F2R=X zLQ;}{7%gzuwq8T?qGO8ySK}e;5!Zd@+Lv$4FNkkr(~a7RbI*qS%SOkHbia^j`qPs9 z0egqGTvm2Fr=72WbZ74D(yV|_6z>*G*y-%?Gq*7DFtM_HGg-#81IfpK^La zI#g@AEG);4jCJXD;;5Al%&)X(Me8xxVE~)#ZwA;%q3{{ z=#~-HB4-9c4j_w}lEL%cn72fBVWJI)f@2EFtT`^ED3?6qxQWX1Jpp+XjMlf-Yc$N9 zrLSjt3J@3+u!&IFZ%ccHTzTGj&I#a6Y zy9$2M^|EO_zfvz*23k)SEdHtU<$*RI^&HG*lMst`)ph$2G=j@Z) z48iPD#_=~zrd$fI)-*%sXFNNj{wBRtPM^JF77|KS=V;)XAi}7&&gDw5#7C;#37s3dUb7z%~D010g9|CT7wiRf;7dn zC`eFq=jfq+@|REs#i(-Lh%Sai8|o?}Y4mhkj{;D0|1`oG6OnX% z;^XPa=ykb#fYxpn{W2)eS{@+NCwl*a-nRvE$85dtcVY2+-~Pk@SY>0scFJ{d&BlF8 zfD?R+4L8=^FTW25A<^t>~uXS zZ7bXWLSJ5SOBrTtreCNg+~C+-=@+nxEa*DWQbnWO7pgG8FW^~FH*>8MF_WO6SSC|G zZW#b@J95do0&lx-AM*Xt*oMjt5Tl@Xd6b_#S-Q4E?b+n$DL|}{blzO* zQ6pqj{G+3YbWrd!&S9>)4ME?A){4&J$dAWv96u*+ynTE;U0!rYp=Lhws5#4MqeWFs zCZ%HsBmo6YQ22m*kW>{a@D?SY3GSb9{p*vuR{U&d=tn*6ti@8qVg zPnus|e6`A81G9g3eRWe$O9R^I-aO72v@q0ao4IB&uuvBstl`L>9fXKsOXe%e4spwv zISOs2R`b6*1!dk?g0ulL4EE(u)sekxr~>T)y#Re_W2scceA`~ajMBWexor>Pa#N@e z{D~3o2lXAr3_cM!pZlDoN1m#*@toc(^B=wqMe~21D`sD=JpSt9eu}f$FxxL{ZPFZ` zZsX4^Kb9wzv$<8`bSO#1e(;MLOIzOremGTqPW#%zLtT7wB>-n!UeJ%pu$t*(ygFE& z*6dmz`dnH7P#pC&HWPx+Wv1#sDX?@u1CHkTu}MF~9gxop9GwD<_jGFKqu*cx^Eh}c zO>?b*GL5eR?`2-cm&(IkKa(^#|3ckJgUQjAb{B(Fp#YkF9XwD)a5 zKBe2sThzS*9LBG))Rz|*x6@*#0EYxOuWCbWwf22wHYCNcR|6Q5;F1@-Eb^lWCTk^; z{zGXL-t(W)Gp*~sOqhVP?u=B|v(2rfHU(8iFP;>a4UY;90*d8_{A1;`T<=~=IuT*P zbgwXISI6U~de+nb(NpG?gPbSFZN0IwpB-ej-NIno3NuyBx9I3;hOYR17LQ^tN|XJj zU8~I{?{JLUs!tV=ra%i%4LLksQZ;C6N$I49brB7di(wnzSwDd*W8*(KnD`sq-hKhc zK4o?0EtwSoY|qF0YqaBzSHLt2G)6P7O+Ar%h_}e-F6gZAx?UsxelUz+fj6G(9fs=S ziJcG*V?8txVRtTtBcvW3Pf8G9v7Tq)a@Ze_KX>+?&Nd(lA#{2nMu*x>z_5>Sj(ASy zDwNDCaH&Y%OgtC5hr}=Q4c3_X&grv~9ohe74{lUdu}Am;&oc+nJCQWasAAXjx86lt zMsm1U0Q1-so_sKOAih0;J}({~CLUgvXD&ZGn{x3){oKV<j3neo{yw_uI_W8pYTi z=-`8<2Xlg9QqyoIl;Jwc!5(~1X-Z;Jo?m2SiOD`iMFOc?{#N!i6j9C zVddv17`RxWh9N%mICj1M)c9bjX*`k`n$ayOdh&w%3jk6!q05#686Cb0rSUw%uX0&6 zJ#U9IxvD;QN^i1OCa#mcf^)RUILMD|Erts~oEwOcCf(3Q%KV_AhkKbJDvI0DB1_r4 zbjht~Z7Xdl+j*b6UQ3psNkyy-da@ai@wVv>>cCV-CH1SOjTEvT;Leiw?_~&~>bEg+LYy`!|6RUja%ve`VD$QM8O^_*lS#rgR`e zr)fxGBPMwZ(Dn^sHf5a;#y?g%J9&JKGUwLJ(2{316_JkccMfbBM7UNSj0gUzr0PHg9L!GW)C$vo~mIsw&r z)owPy?ZGF-CM&rz)>A)x&#UTG>p0HEVp@o87Is#hZoD02}qqeAY8%$DUQharyv9Wp{?A z4~p7>yNd@?dsX5C3Zb8GbynB9{`CX2Pp_)K-|b6j*F6yGgM)R8T8cy_u{3rKZkUQ^ znTg`{_~^h{_Ei-#8-FLS)k#7YyP~PJf^xW5gj+A=i@jcV9ibHO>6!Cu+78L4?L{MRz=xvJ+ z9*XTOyUKthPfxu~7vqJORo!9&HL|9BQsd>Ez>?+C__0&=a_V3O$BfAqq8CPT8>;H6 zNR8ywKddXWT{d&6@SEVMQQ_J;QJC=#vkx|yw|p4I>@QIZKxe}d-qYW!+?XY zZxd_`f6OAXALEYNyk256z_)>Dqe!hr0TLH1GJ01j0f)g{w&;~fuENz&3dJ`P|_qGm(#3R>E$ z{*54%0gv`X=8c?h8hy9v7j5wN9RG`0$&m#Bd-&vQ*HL-+Im~x5;R&vIY1wrTRVW++ z1N-vuMUTW{s=kF%CX4xZAE@?Tl&ZTIhb5ZujGUOa#K|Vm944vyzJfYL= zbB4dub!H83XJmx}+2rkTIe3?yozO*8fN02S4ZU&BIk(^t9|GRhbJR{dw`AFQ@frKH z7k5{;m!Ty@D5!lBqszSQWM{+i*Lj2a)_oBU^Ih#d;pLgqG5w^y z-{RQz@w$Wgan5F;%!g*uxet?}9@%o`@ynMgimc%j?h1?2$1s61oMESrhMs{o3T7fo zjhiGNj>4FV)E{QVope2hF+pTXOY8rPc1uVb?;LVv*q*c+4oMrBG(Ki{NCTY|G(l)c zRsZElBr{B;p+w>}#H$azGF7CpM3%r5=vk#*NpU=688q&PM)gdMNaz|jR5e(~TclD7 zJLyc7i!29q^`#XA(sjk6lVF z{6n$x$p5~6nc{=kornFJj3RR zct&kxD;?x`MLwxpYJ)E(>bdc%uJ`y&F1#>i74Kl&DeYFQr8U(IZEe-mY;6tIG&Kzk zGxW%|@WbqSh)1ZZCAuXjYCO7*d!O@h1hI{-MmOgSe{v3*)VT<>EO?3WV<+YE<k+k(+cd!%)(H5g^!~|GDGZ3Bm$&Grqf-!S@p~ecfg+ge=6sB9RDmfU?!& zf;duJn5&tj(Sa1-%Yo=zVoHqYFq6}iHWvJd(K~duv^rvsJw3n>&@kFBOul?{$rJUZ ztd`d;C0aIowltL-G7Cmyi-!q=-4=v_8J{c4vaCo?QKDH~96nE%zfbA@HyGB~1$WpI z)+jY05cw~#q5>F()H@w6=)&&Qxia1b-Q_2ux9F7O2tgUZh07Lo!H1 z9b~J9gL4(^z?wbzU*!2-GpQL@n=`-1z^;P9$nAk&fc==-N!VeD(s-YY#X9m(^&YCxm1I} z!6vgBy%?4lB;Ikw%J>4fAaHo2zTX`5xy2%$YK~>i^{_;!k#Wj`_t-^**%;Ihea^N+ z!6}ei5D4rE)rCPL2Zm*y3i@}|IT2#cmm22%NB&UN!jF`_sbm5*=@b?6k(KlHN-gmr z*USHQ@V25ESF<-Z$tm*O%Y`c&-5IgTLfMs+oO>u}W=C}&KaY;km>INf=fE(`os-51KXm(;?lEy|lL-g)OkIP;k!%VbgJWE0d_~%cZkazGlio`w=G=Od`0sdes*Ncmo7#nYBu;FL4n--1 zrICcfT(bIbmgj%#jAJV0<}yp}%}e(n>t|0O8Zh?Vo&|IztVwwvkEG@yr)ojC?C9FB z846BpHcyW(iwj9gqQ2CIYO;_S00UxB;C#c z48H!}w*^o>OX6ImL98@SPdyr;Ddy2&>VC1jWMNXo$W=t8T|&Z6v3}%wFd%*8tN2tN zfc=(A!Bs8PM1K>n738A6PjAH(cwl!mea!Q>86Pc0iRUg^{{}6h$ImHNkYFfSTS!w{ z0h=NcNw!xWoA$FNP|WwCJ_-1*LM045~m?G5K)sd zDcQ%HnbZ}ZgoW2ogzjW0gMj1v=*j@H{uQ=tPX9Z^tnTfvLP^?$g3F(PtyXlfTY{YX zR<$~(X|WoKJAMr_F9Wk4`HkeJd75@VFBU#amdLqorjTyz%a|I&OMM>O;pgQzIAG2y zMP>-fh|XmjiaF8?ZPOMHtY{2dVbkw!S=I*7{uz{fF}v_7yXE6uTDA$;VaAl7m=<3Y zv)T-r%)kCri8P%5NGIjttfeWBrxm`r$CT4=s)bhf7EO)fj$KOU<72Lb#BvVOl|2eO zCc0$!>yK4Y_$m&jhjgWLgol zeqy!Lkm<8V+$e5+NAGd1OsqDH1(SPwX3IWmBr#h-qvnIebFdDn{-pMV(atCjm6V}I zr}C``=27OD{wan3l$6pA2S>5AI^)a#@YK~?RW0FJg;LDqo!)T#v zBgI^{2b^=zK{ElsaKXpflK#-2`2_$II8;PWmZ-^W&>{0XJA3PRbUZh(@EI$}-d0hS zp3kp2wJ5A^qoR-rPv-VYm-MnoI568W;z-Mn#7QNU(()_sv9SZSYVx#%h3I%q|8f$A z>D~`Av032Go>i&4VS{dv5u2bRs;qSvL~m35+fs1(ip-9+J8m>4qH@~$b|s;rQC0p_ z)-PMbO!)k+P)L15Ie|4mG~4lfsWYaNFT;c0vF_(S0NqeX7o+HXt>XBfja2nD>gg`d zvL~|>2_d)Qdi?}?&FaL0%@)X+v*Oj;c3L)(V8H^eY#>G)w1jtrEaXjf!+SY6QX3w}TIbqz)OklVMMT$Tf#V2)Bu(umNR7om2!t9(D7 zIiLBlwoGPf+i=8c0~XN{=^JNo*(XOk=j>jz_t+zDsmDu_4Y@G1mkwI}Yh-_bT}syC zaCOR0cY$H3tOMI2KrViHugzhUG%O!WO)_VOr@34H-HmHHkM?xU(#HmwACO!bFskU2 zRf{A@5yxN4XZ2FY4H~ZQHhO+qP|; zJ`Z<{d&byL`(ISmS~Vvnek)X(o~$}21&_Qp2SQ8b(I}as-az=|numP@?JK&d;tB;( z$#{s?8G*gzaU*&w`3#Zs{M%$PEzuv2NPL-SNJ=O{g{h08g{AazG;w6~42$%Cn@V_h z&KITK3#oGlIXDX$Zl!H0J7KSZru15fJ0k$T_G-o~GC`QN>!l|5LqyX##UCbcz!v zuMo>FzhkeTXW}EK5zFc2oo^&sr@oW06?e!L&7FkW*&4MQQu&1&O?}ak$%oVg$M?eL zBSO!OMPEDL7qAm2<1F-JEfFWP;nw=%-&?;~hmL2v)B${}&)Vt){07kZoe=xD{Wd8_ z(+K08{nbd&vt4a}(Cyr-Lvl)p4|7T5WofYVro_`AVCe5eeMeuLs}tZX`2x#8Mj-}k zB5ITtoCAU=53G`ozzH3)+h4}lH2o;i?0lFZ2X`(ZaT5z&k1i1ulw~9N-AbyF9_A>= z6IyT`6rj-;g*|ni8+>k(s&y4HHRD?}a+(9=a|{|E2kf|2ADFzA)iry|v)H0Rv_ABt zc3UuR@IoJq2v)sci%=f=h=*7SN(-n2ey}#u zr97MRa{!&*W!Ak`v4-D6yx}&28)5=6tgO~nPJ^ExjKDi5X@AO;u#3wi0ov3g0ozDu z!*@*zVID$MrV6&Am8r)C0Zx$1ELKr)6Pwa6m4}%uw0o2gHSFr6Z!XiqJnx&`j#10} z@8l2B^MEK#Z*%BK@O4#!3Eae#b-0f_dNVy6-jSCGKn#yjWgb1woLdH&U?fMpwtH(M zQOBs&BxCUym()&aYW?8)di_1XFEC~StiMwN#D@WZ;^}>k=IQ;zI|;j(S6 zX*jM5S48-VH=)y42KaJ1LB6fO?3h(j3oc}4E)f=0Jw9Tfd7*MLP2y3K0O=)@>UA($ z=z)81T}47y3e*N64;M#Cr?DLP-j75&O}Cc*T?N8li%-Ep2g=K z^JeJ86{OEPChMea{0@p>}Q#iolAg)5OgZ+I@K!~K#w<~|kYT0b4<9e6po zRiPPoa`#0ziJWfKG5Yuj%90}tf&l^Kj&W>b$}@3;Y3!RW11`5)9y*T81fUVj34Zi} zwakwaMablT~ITRKnSghjGyOSb%s zbQ>XOAdLg*QB}QbS>i5oDa~|AO#-S%K5@v=8#>hhTB~C^_xfzdbad}vSjP>3?%IIn zh+c=XA^l)`gaLJLb*jXSDN<6}Dl-RazmLyP!+i>jt*iRe6yzd$@Wzd3=TCEsI^&AB z(HfhiUC;|P+oCe%x=)$==bpg_HPr{xnx)*Wnb=sgx@yAi>gv3Fk?Q`4A~r^x{)|FG z_~@w>yAvl~f%L#?Z1V_PI4(3zjBKu|*RReu5dwQPZ-4teDf8&nhW<>eX?G4BpDixz z8wlb+GGUC6qiRSSSS&>2ScK)@p`5XcD9f2{mSRfBDU`K|863dP&;tbT$J5P~@ieP< z_V}ug(*tg?@V`DzU*)xy@x7C)xu&1k@&6{`hBYYNEXdw#4<6k`%PCZ0)YXjgCF9Ns zJj8A1WZ~fBw82%YLaT=q2s6T@TxcY0q|X(=Z;E1P*p3M_U36Km^l&=u72oDldk5-d zg{QEqjMIC~Az&rbys{)tthIcqxy!IEW}@Eq*=}Fz>-4NWo8_U~@PAm_U~f#&n%K>Y zbB;-xCC<~X0}HbbV;Y15%SEWpB(Gr2I{`IbT;*r2=aX_TmrsWQ_Voz>l2mFMkJo1{ zY{jY3BGV@F=9HDaEei9;$%ltJO$eb2v`SSlxR&&3ll>YKb`SKMaIJ3a)B9fS8&%jX z*e$7s29=d{xdVyipaFyn#+b4&jlxl4$|q%lO@v^A^(`4$PbsV6OZvH@SILN7QmW=} zZUc4VLy!|EmuCPgla7p(#nZV3HoCJVs0_8?yJEA}7p%39j1qQ`9E&#%k8p>3x-r%s zg3Xfre8u+4#BL`PvxY+*xLoVCvQ`qdn`r48R5)T|7Sh_4RyHFSGEA2n?**ZY=*sdS z&AA=Xyk{mBjnweVVhn8B(J=hw46&;D!g_ZpVsDNWj zF;+P?@%8>^Ysp^w3AKpYDH1=o1vVxCK3Z z$HV9f>8eEJ=Zg?6rP_JLXS>}oVGJE!m|A*@w$pMlN!rM+feaTcLl38)Ozb1 z{ErXF*W-n|#{70I57;ubQkjN-+oB;LY*(n|Xc5pyMkS9#7LI&Nj4CI=imfjn z>p<~4c<^IjA01z`uin01ckkFb4LfbR@-yhY`|XS$>I?J0Q|2Nk%)7O3@obUqA!nT> zT$qjP{2ncsg&f0KorKujVyDJV17f0@azP8^y5?!j5(xFGr?!H<3YqlYCqOuEnNn1&WI)8mJkCjF|FBt~``aLRN_~Wi_{4 zQUj@sFaX}AguQd`#Ok1QaDXL9P*5qyexGGP3x&|2TlCcM^?Y>`{D$JZKx57rQp*Wf z7|N^o!>H>^md|3I&lWDUUnNfCeEaZr7e8G%+!Z&+5O)_P(Y*afi|zxMm)b(rQMlGn zYSU(Ix|B8ODfbFUBc@sVd%>hnh*xOz$M3}%V%+$SSQAeG#EAoxC$Hiqfj`bQx{zx) zY#+L6n<+9sS}5l9T$eoj!orh~@H!CYIP;#H_*xiQQN;uS4WwXHew<^pbc_|Cz^h9+ z_mksyFj z;k$3>WF!13t3pC=Yu$bi)fMwO>v=e!17;*Ip(tx&?}bL+u+xh|<96^ky|DSKmMc95 z?|nFudlz$|Oa!$KlWut8j;s?^u7mA2^qTW26TU5=`rJ0qv>4Y(>XSFM=?~GtZCuF8 zkNb7QJ$zXu#_EsFNeNPT5vzn25lQ_o&xTShVCX{C1p+4Y6h4b2Q+^OMG^+auB_K=< zoW**+c_(XqV%YdLR3D7IH^(_;QW8OdxR`eS1aKTs`Z!t(ZXNrg`j4gNL%PyJU!C;W{!XB;FGe)cjK1e52YuqA+4BerM!e))% zO^@1z6;+*eML;g9q26lT_{OfxnbBj+>?)}>Q623E>h^W&)-&t;Egt`*2NBJ&+PDRS z%?zXI26?ITVY}T?%?V*cPuvAkTytptVl`7-vI@2w_ij%folOP;AjCLWZ%P}l1q%tY z12CU^()Qr2osna3l0c#gDmKQX>$y_)4ADhw`z`W$ei%=%RysaqFmOHpI?nHCYaKAm zAYb8$Fbo9YM!7Zr3U~VUcu2tgz@@GU{r%v@#|}#tqvD5sAOEnwRF>9zh>itdFQqFh z$ExI3)C6y$$6QiSw(m0AwQL>r>@YBAjqrK-A$Nrt3b&cV0KAac=ZQZR57*63jV|m3(|D=B(e9zXF9QvT&o}o<8W_1_BJ@O7val1vy z`dN)`5bM#9(K~!-! zVme5&K7k$E!#_d#{yb*d^5JP$BJKj(k-O8YKR3EvLw1>+7ElS((DQ-($Bo8{x|^ZC zJ{l6BI{bLuP}?^3@fY*4^zwwvi~EIZ_scN~%;XRBn~-_Bu-+!_z<4e_wQUWnPMd}- zcYEvDsDK;vn>Ig-q8Dui+ckeBFCM0}4B^w%8$6iyVeszi+_gaW1(f~`?Yl2%gBjYxjS=+}MUa%j}0(sBYG#WQbRoF$6Gd$%+z&OOVzU>lKY@D|iv z&@C#;=hNMbHcx63nTof7EItVnG(12mr0A%33{NZ>S?FoF#xObvXrg+WC&UF_5YlnL zx4Ncy`fnO8)G>$Vw(vgcPs*S<-0ypksiA^jJ7QwHZGW1)zCi(U^~AOy5l*?DBT_8t zV4;Ayvu8WjcgD<`QcThFgGBzhegtU(F8_N<%wf-q-+AD+hn9zvfmJ{k@*BdtMM(5LcEytg_CDQBPt z_r`c1xyO?ccbe7597LE42l?KI?^WX#|5g0_w$3YSPYqNvG0 znoa`k_X&Zm%KG);;}v6P0Vqn4#NP6A_P7$ea1Jc39(XuldlFdX#HU{=CUrT(+j9IB zMAvywaVuq0Rydd$k+far%O~bM`F>}t#bgdhxc+)$;UTUBBRnfuOe*-Msh!6(9N#jwBjdlZ6;rf-v_l7qz|Z?VW0`UuMRGpvpxhkm4R_?f z@gywWtpS1nMM-xVK*o^f&feg_Nu1=m)HuZ(Wg-d1=zKY|#r-cXzqx-o|9&qJrx$$w z+ZCO7fDem%?9E)a9PhlTAbuM}Rck!`s}W+l^2=l6{S9Xz-Jy_5uDrEe1ku|p8a6dY zX?0^VOCsA7p)LEECzhQ#4-QNRT3pjNfh>N7on}O)PQ7M~O_sz!f4OdSs?j=4uuyg<=TXH}w{be590tHNB z>@b+i;3JY`4H{C{J|UvbAXNrt|UEThfgib zQG>vt_iyNKjxO5;*=1PrwYiLe4`q&7y1+L4C-G}AJ@sjb0h=@$N)v)YVR(aB5+%~& zkuqMt%aTG#=_Bjm;&UZ*5Tz95UI7E-JdyQyMQj!-mV2D5Rl-Lz^N8wFCPO4oq$fmX zoHu*fi_ey62AD|9rr4Q2;A+{XG|_~&gLmwC{6}6VKtg;YWE3M4(NcSh6SW26b!uO? zYxzP>o9rnAp81wvK;cA=P@@+na!YcIcbMf$@!eqEtF+2Z#O_ye1YTHpM)Znn8tf1@86c%+a!>^fh3E-_pnI z2D&sjKm@)l-M^As+%W#dgmrmCnmn8I$%sqS8si>@SqH?$bP+PewmOm~z`2ydvL%h{ z+&vEkkc*0)^!66C7CSK5h@s4?Zi$Ep;WE>=P;eYn7poX&F4HhR6{NQK!D8k>0K%wj z#}Honc-!x4PY4qTCS_sagqNE3FC*z1Ki#DDK5a6@>2ue0S$AGs_r{GzU`v*AZp`j1 zx*}uS+blUD!fNDj3vb+=t(7+fwisqbh?LK-`9e{V_}!{_Z7+nA&YW4PnBz5$4UU8O z1})MS=i2<(HtZgt8`UAKg&5);wpmS3(`-i7dEi=?QpQXPZhr(}4=?{~IZaehS9q%W z!av(0E~R3u(^Es?TlOK<_sOlE%fQzl1Cn&{VBu%BT}3R4iv>(!Yo$;0$;Ei+##pu`0*uxlPRZZ{FXI9WRMbjviIoH@}?2_#rc4beVY7v~FeW7@mUL#TLIc zO-IMykpHIftQKl58CG-s>A;qdH?MGVvZzu;P3zJMyxQm3{pw{iGly8E)RY7?4y7hg z!Bn=MP#nXL-sMs{iHtV;Z^?VrG?T?eO+a2+XF%8$?O?CN0L%*H;}!2ne%&n|3fnf} z$_$lv6fiAA(z*Ha0FV4JNAu(YDEG)35AMOcrPDNDS9SU3?wOlt30q=pO%bO<+KFrT zo!SqqbKU;he_CDt8*nTO2R-ZmX|}lj)25v~f747%N5lI$IW8Fo586l3E|Z8F)le8h zv&zTSJF1V*C%3~=WEQ<_7Z&(a07$4L7KLBd)np=92F++f~s6F-bB zTPU8=L@A7fxx2eZXvko&UZ12?8g+`!(n{RgFLQqG*!=P*68!SKbOv`{U6XT41+=hI z_bFsIo6;lR0~&?Vhzorbsk$nM>7$SC zW6MSr>z1&Gmu%;57Y-v)AC%rL@|CufhAkQcU|5peGtxz6N=y|SO4k;-7P-$s0lZDA znu4@N$qEx?zZN9{zf9z+ikIaP7B$D?G{ve)Smklb5Glz4s7-0>g4RXN3V#-z0gz3T z{wNB`i=1=xaVez}h9M$hA}vE~hO(EWyfz#o^|Fit`&1kh0*`?AOvkiGR8!UjR{dVz zQQ#g#ZPwdM0_WMfz6Qt>#BUSvq@)Cu4f%{b1fhlC>}Kc2>&Ch|i6%GW3yK3{@cJJ( zSgdC~XZ(+?zbSh~#D~O+qMrma@jtAJ4EK|zRR!0P!7C6wtPf2CrAsi`UnqYn!;uJU z%nTpp_F$hAEsIqfEMLg}Kw^~8ErFlrbLtyIo{l?yFwTLrT^pOSWg5G~(BSj~{Qdj; z{rv&`*w_F7Ham65t=9XJdtoc&i}&nKcrB0D9mdxTh6#ooG)!Y?& z5B1-4*arLP{uW5;c{Lu0uH?m}JJi=dC(j~NTkXyUPG=J?h12sH zp%Guo$WdXjrEgfMg4jJ$&M&>}*9*}%9Gw1rLTp7*(d1IA%}Wz}xgZSUVf;xs6Z0%*fWB|Hz!xwCy_l--I_ zwPrhx*aE4QqSAcs7GcY0VbXx`Fv_rU^S3v&`ol{3C8xQPe&)Je8I zy)}p+?sk5RMj;$qaIyzRhWB&ajbpu=68ZNJ%Jd{!>!&GN?H!G5bg~HWp@%vv8Dj}F z44CxMMB&e)n}{P#mO=p(R8?f9=_Ns3H&x*G`!_>38_H9HkUGg(*jx-ewp>+zaMC-_ zD!dR;eJL8O7%>Bn&SxxqKbp8hO6;J^HW6?d{1abD&s#rG?9kzSJB%N%r}LpO*M9|n zcfVy~YI}8w!TEReW){rFO}M;R*8R)~h$=FUX`i%?c`rHXbgEwZIV$tz@Pv|I zo|hZ(THS%Yjc0SA^$aa#O+z3jvpx{$8k}tpXA92UH*Dd=En~aLUkl(b8{Fh>fu=Dw6}461Gy_ly>8^Gq z*To8+4(;NUpEbb1ZchF!p44nTXT5X#fAqUK>#d$Xk1mdHuWQ?sm&z8#9PXXY&Vt}h z85u8#r~-%s_IY-Cy3izIr{rGZS}{z`)35;kuQTccIU3(sJ}dn}lcBu0JLF4PDJiJ| zF9pBs8xgA}XDFwG%Hup#L>O@SaZ6Ee;V%heR>(*Mz=Y8(?UiPEF3D%s5>g;~6V;Lz zZ&gnRF4$@!)&pe>1!z}mukev3_Q)M8Azi5u_<>`<+INA<;JC-?r(jXoX=b5y3jqj% z3^CcWLy&n{K0~yQ!=u=4>olH-Z(|9J%$)UV%EHo^h{z)8pCpaHYhn+KT(_=y){R4P zu@v#t`b`8>-JLlZyA@KkVnLH4Rl>hh@l_HcPDj^lM|0GnJ}@@WfWoxVF8x+pXX$Iq zUG%pzAAcK%eBUj^@ZDw2Vry51PQcH=0-H{sr>RFm>ZUvVQ$)Mu2b}+1AA_su?IS z<5MJ(vydLY^^OX!L!vZEe7ow)wQ+|>E1&=^3sA-gcl}x_2eIuwj{}n_swfukRG~Yc zY8*cZIu%0Sm~|3g4=*;wH+FP%SMP546Go^-T!e2ux3SHXOFuvsa9N5JeO&if)Xw64 z8^=k;EH{FovMXu`7oo&Rx|Qze!dv}du;^_I z=7TP$@XQf<%(zS!clun{)&fsFQKt!kl2N~k#RS|NRct>-eXZcHf~O$Xe1aMWE(dsJ zVIvNc_lVE}t%|ad)=V8UJT_a<&&CY28k3Uo1hL6EQTnAP*ovywxqnxi`L4wb=iCBLicWfGs^8ycXl7UjyLM1TmC-5C`m{nj#u1aZC5wMJiiz~rtxV~5cd*j{?dmy2xk<>KIw`AeFzR`b( z^nR0O#}?fo5B$WIO(p?*uG;Y=jn{*xh#o|7NcG~k*ORjUjXg#?V&{L3`k?C?%^?Tr zuB>~^WpF#OZQAI3cWG;u6Q61?E}ch0CO~RkPCAFVP@nxwrW}u1i%^p|(l*jY`oU!3 zXm4cbAXvd;pG?jQxbO7Uu!Si^Pk+TvVkT%rWNMKSK+fpgElMyAItD)m*CiRu!OFqe z1e1x?O3`pd;1~l2RGTa@w&T;iBhvNU-hDJs1h%$nwc7Y2a%6kQ-bxf?#o?L8A#LCz zP+_(`+5!tbfky5Y6vP;D4I1XHHoyQ3jJ?{fk?2kVMa5Pb#&abQ%BJ*VOpffGz+Czv ze@U+gLn;zSfvd`@#X{Od+-NF&kM1&1vV>F`3|IqI$Z;e1pj$#s*&)?nW6-nAX+BYG z1RXr%P?c)4Ld`~Wd3DOgB;1knK;YMiq*G^j)!&g28OzgqC{0M%gh-KSNioF&s<}P+ zS4|r>!pAn*6CWeJJ@?0G1 za~oY=9BzVGzMR%K{^3|#cLd=z=+63~%jdog|LJ*uXq8>QIy6c2T6?OOmT;WWM%QG< z`-bGp^-+@@9 zQkYb%;tnd*%I-f>$qbQ5tIcxw>xdceVSya!C^WTVXUoTLiW9V+;d@X}l8+3}0L^s! z6XZotOJ%`cwvM z6~`M>$Tiz@#iv@fyRcD)$3ix5*9%Ym-YoHgL+6sm`$+*bIRwf>oR)^-rLc~SCoi@P zb9QOntC5?P+y|hM_w%Nru)8hY3%CA8=RgmO)wwpdgNuz8)aT1Hh`Wei313oJrBFfH zf~l#U=XCjI;^=KJD4j9?f-17T+SUjKgY#gRSI=Y|V{L*ak^Gw%Tkg`uc4tJ5(p`)v zz0&93%(2Y{+X_`wWfj4|z<`7h#{qXA?|t@4+PuMwj}Dqz^l3hkFLh+3(n& zr0vk#S4s>fu}>ZoM_aay^-PUH_w@Qs;-cYxEWL7)GF_QEgw@iPi=o3n@DoC^BtED* zbXeBP9ts{sMM>tq!l=Kk;eB=;cDyr7-whYOz?jFVl2W{2{JKaUUtU^MS=qyjpnaR) ztYpQp2fZl56_dOm4sHX8H8#|T|Z20sMS;6jfq z*T8&n?xX1wggJTW&2i|;0g^9Z;;*^Kbic0b)p9`}n8EY#4R$~Da|8zx(~s9mOIuY! zVV9FZkBzmPS1kAQPMxe) zy}I6ZItRR;<$a+n+{Pwc&bYBmQb8fGo2TY*Cc53u=)x;f6nU_(gXRJUsL~cOk9S7% zCp}-yrUt#TZlmc<*~ZZCz2Wcb>itVZ0tUR~y)@c;@8({D5ADBKN@lkC z8DwDl-r>*^f7#;vkGtAs>ZMuXV=&5B`FsinklhVx=05L2Hhyn=H_sAu5Q%T88`%9m z>RhOagTG1R55VRQ=<@dhk+>QWWE?zQJhR{&H8GZ67ue}^ooB36Aq4R0CbRyKpYk89 z&-F%RT2;!rK4Nra_)?Ja7lzu8T`qKeGvkLW7YK|h*7xM}XPF{2Bn>CrVM4#p9Uf6J zNyfaCW_}nrr(-otubgG9hL8bY6#=_)K}~J#xleUh0O!_lbJ%Z|3b7>m8HdvWQsp~Hu(vId3JR$faLq$v8+`F ze{o+YcjL0(WRxg0DpOsw3qfp-=c_{^h)J>dd4+f$C53#C5Sy}jFi49o^nlh~Dhg?) zZB!gCfAP`NSbp-!TN$3o!IkfUVV2x=xMimP8&e@S%lV=#ep!t$(E{rV|)oeAM$If?p7qJy|w6e%>ESgj0UH1 zN$(t=JmousQjvfE9>kGmIiuqmeb^jOLe@h{>2?ch1I25pI5(_5cVLtxdJAK!c z3eWgTg6FkxGmYaLTS#*24g6TTVm-Bo3UDKX6D|CX!;VmJjBFCVvhAlNLBoYgynET@ zg)Su)1m&GaJU4Z-05i0Y#AG7@KC4q8I^ZRUt?;w5dgDt4*UID*w2R!%vagG3Ut00# z+CP`~ihYU%Pb!z4yk*bmW5LM?-`4&kkGP^CtnqWwSCRs< zxaLeNDHt~J764wPzDnG=R-yr!&QTGKAMs=qr>nSfg9-VJ<795^cY{s^$b}JA?bW5= z_NAG1xgYK}m^JQE7Ds~B=*KL0Bu@B5YWRvdyLzo9iQ3kw`BvUQa{#!MfpqG-M7n$V z6HS}AKw;^&-(Y1gPS3uuyUVd;V&+$Mw{f>aP-aq9a7VNGOmmN)QElcBFFCp`bz}#6f=ee2 zf;nAZeYAkZ4GG`==n@8v7B_>DIg8vE(lvRRWk!~Z>;B4 z#eNjz7=PL-oHGy3!Lh@6c;Hn?@iZ4(h&`1%9?S|MO!g4crdVZ5@|Rq0aicVQVb{*Z zFpDJ=5blPF6*Arx6Vsi%^anl0T*$HssOgn9{RNAXHoL!Ynlh&NgOrSxix|%2$jml- zKakr8Y7c=J*cb2!3Lmg8_2AV0_$aNT;eNf_XU%ekrIB`4)ZS@R_?ug}6#w}L2#oV1 z=0Dxp{~MGaBQx{=xw9v!S}UWfVQ2HFMkWJHFbA!<5^S`nOAPDwRoAOt{UGM3RQRh- z<8R|`4f@%HfhltnH~EnWB?kJ*Km`PP%43cxOI3iHQac1xZk*Vxl9$)*A1QWNf>N6f9Yf{=h@)7L1A8 z|NatiO-IT`hMsYUu58(*%l3x!`rNtvz2TWn3Kh4*-HGyY(!P=**S5lT%jhv4gA^fb z?CHK;Atfj%xB_5oS}T)OseW9FjWy}(bA?Z!YMf`0Dpa^1bd(X0buU-0mW>ysb+Zg} zY$yielTP|GUs@DyoWxBmQZ5lUOmY)DY@^lUl%d@0BxUv3oJ-o%|85>(r%(~ISa^n58Hv_lcLd?Q`qP6p--iI1#kz1MmWT z?xaBx|F^LMjmM2RlJDm)kZ7cG-Uz<5_;&#Ww7_=$`%j9`sYa!T? z-mv<6+kD0s25t#%UBw!QZwNGZ@%m-H589(ynnak0nT+zOz5VJxxDINr zdcGQF_&d;2O^ar02MQCfsS>|Q+@Cl>LrjtRe}Qh!D7TmD4^XY2WQaf6a2RS{-)lsSK-@llF1ScX&e@gA#U`ekhHXN;A?>DVH+eBj# zrPA9UpS!!>y>Q)=Xcl*&ve^BtHLKkkQ9H#?kX;%TyR$+zT*dG5A6jfS0i7mYN3^AT zk`R#;aw)hIqL=I+NoXRfNy5-cFXkD3VrqtGVH2qVYxxSAv7IqI}z5Q zXa5N&A=YqRlPPYcpfb)iRqGS^#U4y~D42zCigs3~9^6DwDzc)66wm-4E?`hV85UZ= z=St^q<~E@31yXFa|T29c8IACj7Lxp z1a?hp)$ncYDh};)utm(Z`LdgXS)9LELNC|ymD(+Y&*y_FYP{HO%&iXO5w^h%!+D_? z(30YeJXBub8Ia>t6ZbIAJxbZ|L;{BvSM1;(;uTnMf@8rU>TBHsuyac0*DiGZK(CXx zU(Plh+M~Gv#tS7F!Mwmiy93-t6i3TV2|w8weNU*{{bYMI4o6J@>(z{oPsMt)YpHRm+EU{1ri=ri+8e+3Tg_^=m6 z*K6C?kz7gn<1TG}YV^+hE~pB=bm+4WF|dl6J32*KxC;Z_b!wJp&Mj!Mf6DvOsQtA1 z&GQN)p=aZap%GP4?r(6oHMgB-VC0M&q4*-njdIbC5+GoV>K&1>cSrPi7XTw3+FKR!no`U^X?+RD=1-Pu{Rou#8=18`+( z)?ed6BXnZRvm?C_kp7I?$t7x+Hu~*Gwm(9U3#Y?lqeQ_1jv!O&g zW%JYyd^tXvSxkidnYt!qhu`N9jsDv3lmd;6nDHk5;V{W>Z+cI=N6sqr<4X#_!Qu3KU(CBntDN&F=`a2k zBdb$r0?q&(1M?L&zQdX6+Fk-O0y}aICTIZ`W%XsXYe^|8$rBl*eglR+|gIgj+srTH_CHV-H3Iz`DL?2(9hN10C=HR(yXhq^-vUld6 zH!IN<&1L}45%!80Lr1FH&0&9%$Jtbo-7Zb+Z_i-IDN$Y@6Zvz4qzhZ}f!|MR=OsmU z;Y?R|yE5&A$(HelZ$bBn^xT~jN7d@yX23u&bglDik) zcGL33#Xok|hWC3d??p|U?fZ9^}6P0Ial4f`T4%_){~&X!I3128~y53tPetE@FJgR zRmRO^WmjrOfyOHp7r*=K;NoKuWM3ot3kyGP_k8dAd;jxozjf6qW!R}Lqe5@=+PsL9 zmvf$l#5txSXG4>1#YwWsm0{i~nsM1l&0IK?Xi^317#pd5$f=;`1;S@V1!vjTbK!@h z#Yc>bQ?EpMD3C(f@p++)L)8Wa5deK8VO`=ZPne+GjE!6f&*E2Ka9Jjih&rS=BkxnB z`~SKS;~DpPstOg9dgC#gLR|v?+x5RFV=HT+@S*Zu7q`y;XYnnyUUa0EBv;x|Y2p!GeI9Hx0nVFPEnuM` z_X$kfN-xO;gBp%?79A79mTLtdAE+R4Ku5mou-h ztF;^f?}+bbJ4!B?|JE4#eVm3ag8^&`xodLS|3(yR@i-Y!9=dSCH48oqfsZeO|MTgj zV5f zfw6o}9^GQuxti0^5`mM7u8M*VaFjG<4g$XJHGU{_jPMm8iM#WR#=IB#Jj$WEji=^`FpK}Tnn6n#ne z(ZC>slCknkbTn_#a1~Kn$w`Rz28vz7-;aF_o9`m!X|Pcwq#P~0HoA2{OpA+)LyYk9 z&PpSoS$B$5u$q-FYx8GFEIUIJEOx*gpp@QfT3Sk5GyDa&h(K#3=T&>`pS(*iv zJU(t^#P{eWl2vXUv^KzlW1d^_1KA}K%2nS+T16dWnuVzB{A+h!q$OUjtr`bJEicmYg8lC4L=F_pOta~ zQ9Gn_*UXm*M@HMt%@lkxni(|x{tU7cm#I{MX+luDtVRe-qc)Ur(orIPY3%mqD@R(L z0~t*WLm~blps#f0sn0NXT~2%kHG2Xkb8#w7F&cr~a^g z91Ja$G5grTNRRynp*U)p{;X|l>ycwQ3>t&A{6LPkqHG0W*#{JJll_R0tm$tE2vR=J z7@8X;s5GwHobC=Zo?C6q>DJIhlB1reQ=)SObbUEF;1gsi4Y!Z6{rK z`&g!O!MH5%z6Mvs{71X z7KN4&)w=D#7`b{yIR+eatG4}P`Tg7UKeu}MIWRY4@5zGa^Cn!n`>a#R2)`C#nm*+U zebB3-P+6AArf&&!HpnE|5E?&eF2zRdB%QgXe4g1(ckiD(+A}oIBQuHT9`jZ{Qr>T$ zx>I>io~g(Fp`Em?qdVely)R%cgrSf8wU^^J+u|kytwp$qu$H4Gt0K)efhRwcvSHm; zHGZpPOxB`MF|lwV8xrJ;7R~6dYLnLxsDr0XPQ)zlp=I8e{=h~**$3fIb!Z_JsRc6k z07bH8fu6-GRR(d7mKv;Dq@}TlOaaMjYAdem>mIINnB3(2dl>CP^~+!{go*?AxX$F+csQg) zzdT0!>@)i8P z;6GyeN~B}7r|p@FC~Et@S5{;O-1=0|W`d34!1?xVs0J zz~D}h;4T4zyAHwKZE%9S!_EFLclYex|K7KL=+h5XU3I#?s;)B1ac7zdwaDP9)hSa_ z`plY%A2YaTp{SUoY)W$6VCUq3vy0s^W|wS?&yMdWhcO)Tn&#&8C+UH&P|`}je_bui z3a>U^y^>=-MUv+;_h9H_VQ7D{cI=q{%Lk!Y-VM13Y$1;*6|ZyhC#<76!`UOe)zg3_ zswO>jbGj53t4j)p-jB=;CzMG{&IKCVAL6ek&1f<#!ExbIk1-h*XGy>8x7layl_pkB zr#&6=#C43xt0_5#9Maz@QWi(5B@Q%(dq$Hy&8iEM6d9L#YWyg~U21;l!1bjnXX@VZ zy8tZfz1r2Nadfhv_6n~u*~1lzHav!(zXa?@>r2qnhjyQ@jGs?LDG@hsJ_QTwWr zw1wrB4gaq%k7IEX=dQ%&rw7U;4~@i8qLA2cS!qqlAL zJ^Ny94p}H+W?-R0FUZ=VT$E2?7Q$%9t%Kepq=WRPY!-e{r>S|lIIXF9jy2=aeC2xz zob6BUKl~J>Arf?mB#rNwIxl65L5%%i9oEtlZY)nkXKUTNB=?f z<25_VLE-2oJPn4Z7szNq&3A(3Fx^>2ro zX7{@tYQe0bm+ftBQ6fkI(j6P2+_c>px*{OoD6G1VqEYOmK}L0gAA;=!f!+sE()A(z z$;X_88I^x8I?sga!T4Kh)d#yt7ag%TI^havQmG;LU4F=(wr8br&^buRWHeC3Dml@y zf;O`ohBIaoF2!KWbI9{D7FTrW4PoGHR%G>cExs0&*Zkc@F7#XSd_Oqzmn7YWq9en; zJ^0|c@tT(u!oPsVN=L0|r)yy_>>;qtrF0Aa30RkT3 zCa6~3Bjw|!*6lNO}Jbi z1_K5QUpq;!yvA=qfUo=$K8-eHpDBD@9HSUHcZN<4Uum-Bysa5HaT?#i?V}1NvJ9PC zI=UZSJp^DCB2WpjJT{FT>v&hFs@N8E{LPh%cCoP5!ndZ;3<^%WeGQN)7}3TwUa1rk zha&$&=mX%U=B9QuwLudT`7S=WddPEtr*R|*b1a85==zP^r z*JY1CMBZmNP=8w|&cWuwo_Km@E>xqA%D>jMm?^foipplh--miM*6^j;?R`JC&`W9? zIFc6?_y&$|PRC0#i+mK`@(c5~=pQVrvsfu&+F&{?w$UKeKR~XVKU_)In{VHRB&83#eEU^gAd%eWS_Pwg;gCa?<-04Re}ut z(kK;tD;95xqfA92bM2cNqikAa-W43&Z*OJhAiOyI%E(o>3;*-pL*tS((dIWhwquy9 zwQk$*tNnD`7*l05i5+kCzi{XY<(FjNedq+BRZhj`v#8CUY7 zmrv{(X~c>&=^72oq#~EGLPII&UUGCQG(2Rc$O)!gMeF3Gt<-!G12ASEZ>9jc_xioJ+~v!P3o&nwRHa@<9d(BMu?lII?%IQ98w7w3SdX z`q1QfIn${Kg-h6e%1?#H?9xOJPqFsjWr^h$AiQa|s-LtXhTZV#jU3eYRVF>;L@6TL zG*F1!J;G5@TQz3d(T(N=QyF%BK@#67X`~7q#LE}14wrdWpnRfGI z|JgU=F`wPT+p>iw`;>MON513hBN2>sD%aPoXyl*Quz?zt&@%o}BJsi0%hT zk-bRN=Y|)noFsM6{R3$4bFcjKkvq~4y2g+j1Ctjxt=%;A|D*xo|8`;jvjzZwf1x!7 zYHbdE+!(7jgcLJ*KdbVFs7aV9NX{pb|Lnkk=(*qQr=YO&2{a?QpPib}k#-6ut!5?gL&Zf>l3N7GmG3x!a`y@^Gjrpb1rJ!tS@ zs>1;`i0a0Pv?+ZO%i)$90lw7Vqc+_tWTx#Fztij(%$Mklp5?Hn9q)_@jU_S&{@!4p zU`x5rT*HG@7GJ0rAKB_4b^Uc@@-UzyglFu}7d-s^E8uV2@sZ;o3$4amw_>gQuZ|Z+ z6uY~F&@0)Vh*8!H&F zp1-UA=^FF#@B;qX^N;CSyRHb~y>xa3ZwQoe;NLayr?4``x>DJSLgtt4z6Bs^x zNX#(mT7zK@CiplLtI?2BE5CK@f94LK%a>IVZIQL2^fOxHyEQCviZFAb2xzo-&P)kf zKbGEOndU6l_e0GoEN8hp#d5VQ`eQaK=cWxHFE_SL$yh>)_webbl0ps-))#3gE8x)B zj+1x5MCD!s?a?)fWdu;bi>U!P>~1!Wn&+-c%(NkA}w z=D~2ut0*vdkiba94+Js8p?utcdm4iK-Fk-7M|689ZuS-8SG=wD@dU5rlY0eq$PAb}&6EBOu}uA0xROAvJx} z8qA7x`|cdM|5KE*T4XY;R5y1DMnk0grXP}S0XJf@aW?#1!+&) zQoRO`0i6*gXe*_gEgiNT(GI~063AK__$lZoDmM}WVt>du2{TM3Ask_(%6m5B94Xvr zR^gvPcxf=i1Sae{BRNgz|&=1s*Nm^cG#!33JC@_oq{@6Gpop5;XDhR+UlZR?Be9?sT)mU z>w*(d@-gr;CtH%{@|WNpPqyKY!V^-y<{ed@ZjrnaC6ggR&~^cPiy)IZkG#EAF1f~`2K&MRM1&(WnzXzTkZ9$f~j82MUwr7!E?f7ud<{X5z zRdx|_blkT2Xyrg_LbG`lixX{-Es}DokL!}tjE#M!s}5~g@!op*20j#a>LTMhbrsv1 zGEd~}AgX{GP=M}(wG6*j7k2wVMAOJt=7u&sR;@=waw%V;OA+Y(F5;D zG5dy$RRr?{PA}yu4j%^JH~Hg`(8(mXD*rJaCbEnICb&49E?i_F{?1r?tEhmPHfUX? zQgv(U$+WE&&)p>4T9Mo=0uwMA6r{ebL{C!IDeOIxl|Yq1mMcQL&8`wVUdxO#r`8BI z%aM&&pc|1-K!tKf4d0M*w8o^0FO@KX?82%|2~tVR*gi(d7~_^PbMwm>H&o6fjN*3L z?Wg<`CO`ou?Zy5fMlMZzOZVah>!OOQO?xM^2EqwI2iZV3c7;>Gm zwWo&!>yQO0f7fdoAI?`v3tF_&P-cv;B_XcdexRfyhMTOB+_q8$`MP|aEV{iQdZH~k zWL!wMZG0|Luda- zmVtliwx zjJYDU;AGwQ6Ng4a$4Y7`5Lu=KK6`U3{i6W;9Vi6B=2K8{rmv`(tI>!^Bb!FrQ}_6b zayRPNZjbh6@NQS{>^!3F48z)R8!D@2C%wE|H`AP<#?fnTojY{djmlxBFGO>p9WR|; zaTrsuu935|6}Qfk?ufQ$mqmr%cL;c~B;zNrcE3VH{^qkcwe~b}iKy;FOXc_I-XQHM z5?~;|_elK3kb4`g;An$#>hw2$z({?I3a-)uv0NV1l4^|<1nupU4F#hT$CU<9d48@W z%G_<%HWy=m&lF%lXgut#e%Lq2vS;gM_|?Kcn9D2xXtdcTrbj6Zyy7OsPI4yYWYu?T zMnG@IOf#;?h2kj@nGoR0;nodkEtyvoxa-OGX{A*n|8{cObedkdW|%e-Fp|CZ#;+ru z`OVr1nCP{g;u6)!3@TMLxP4=Xw_(jK?!AY`*uXQ*9g@_Bd=rU2CY#U3d6jAVs#x)=Vzy z;_5l|g<3s>%RZQ7doG#QSYSQS=vsh@#emgmFYlbNe^|MTUIklKg4P}*kTirS^zl*X z{l`+=;T~;hXJrr90H43}?nK)CTD(g2FK44SOTW{g3ceO)@e)E-x%$GUyn90ZrJ8{! zH^V$yLxo|l*P@FkhPNsm4`Yr{;2 zLrY&$`(y~yxjdWDMo{N$!#v8fO3np^9&60P%GXrT=Qnm{H7NnfB0VG9yds!t4y)=N zm;hv4w<@VAEF!abs;e~yF*5s?pISo9vJug{lWR6^LP|a94q#daevCi^g4a~|8jJ!B z`5>EfEzse-@3R0eP}s!OevWfiF-${2BD_-fp>@-|`R+$4hi?7vd_;vZqIWvDF31#t z9WET&R6rU9Kb^{plV0(gPRs|k6{gy9?nib&uu&=8EZjw~_Ed%z#dg0Xo*fglMFwO- zR&UZ4`2znBDB}#QBMGuSGpEoCdm!0eoGeY3EKo0VUN_#*42Cm1F;r`>(Up;W&r(B; zrWP)sc{KT62uTioA98hG+|aY?L+`{Gz`+N{m;R)-=n(sfFy1;WPQASiCY*hRmU zCW68#P^9E2k|G@O2Z4o_CrZ1#tg5hBSa#qXs}Xf{sHjZv2HR7INy&xSh}#g8x5Neg zQ7!apf+O-|G?a|;`dQ5QZvjQ9#!XUOg_l3@@NG&_zlJP8*8}o>k{DpmDlF&fwUga7 z<1VXxY{=_{-+!_1aJ;Hncl3Nc_3t#;x~a}yh-cvuSVslxjHYjv#C_4HUEZXy``=h4sfefqDZo)spshb{>Il~V$ zMx~=FPP!QwezW7Ds7|f8DF9F5rE0#33~cc34Q)So@nnooyr`Z%!`fUp0K@9w6nY^oqyCaQCY zX0HC$U+PNTegTQ?+b~@SYP|Z#3Crg6&^U;!|M)Qx6`i>4?)(4*rBaN`?K>UZf`I+- z$CR%_ZrB@CJV6q?W`Qv^;#uQpi_R_QM5qQp&iT8c$EV!E10s2xQ?&zrO=D5!RSvkNE!hc4 zf9G&&L#JvGmGML9&ou=vnp!WU+U)XW#vNVti;RS^wGHU47IR zw=SI+s4!1F0#`S0S|1v|fkwq&u|@vtRx9a&fGqX*DUCM*>Mi_;80`H%C-`sZ zOl&Ar<5_r>kj437TLRqB#JY~$=An7B;ct-8g>UZ8Bci51c7ly>4UCA8G4S|cP+eX9 zLaa*l)rUvYAo$g&tfKZ!cx}{TK%}R6q$Y?&P>^?Z9cbGn;q|t&!_31F_!G?CW*d5! zK3X;@23O^Vuslg%ZB920*OVEPU7Q;ujw$D;S2}oKiD*IUO5#XjOJYJ|)TBE6P8-W? zZjGiQ?iM>vqC<(@+5n9BW^T)qWN!j;<`{fiQPt=o0+VG#pC*#x{jmvOYROT*OZprc zi8o`$D?49ix7Xu9s|O{QqqB7=3vCsTK}MdS47gWwIBf-KtloGu;%2VUYsV==ob)Pq z!EaP#=B?uvAWQxY{T!l^xof|5@_ZUra82e^bk=rL<^Wz(Z!;g|J-2vNL{ik!b$nvD z<*=1#B0P(|Lwcw@i>6@y_4&ZcKBT6ArrK93sq0UusV<#{H*3|KzjNB~p2H!;OQ4lL zX#hjn(Hws>Xwu+isZ|0Es;@XW_sWc7tW~LX!pdAg*)Z8CTy78E6i~WNBBwt#?59bC z{>DyWuFPHxLbE;n{;U0k=KkaEShrn9INBld|QvBcofqUiXM*BsguwZ!4MR zNA`XT?^~C(V&6(z!1#1Z7%4YRAkWm-!(9V7 z&pmA}LSwknpJ_z#Ifab^TA*HDu^17o#}5+4vDAQn#}K@{|5R=B|1gC1Cvyv~k1~2< zyn^QZrrc({AYnd$84tk13?u~N<>u!H3Gn~~&CCRW|N9ODuD`Rv-Ozacl8#SY9~~?l zssF*}K5=PS`pBgCv@3DajFe$3E$Hw?GnW9(sDupocr(#9B4G*t$a5<{?J@HB zy4;gW?uJhmbKYt9o34-Id6=<`EJik+Yjw56Dz6TW@emk{Z=6&DV#j!r-;$0DJ~Q^K zwTORdEnj8Y7+>*19s!YPrKzqT?!34NdRVI78gps&tF6Ru{26=EAD1g8H|$B#ADBDt z<9|-@eDEQD(A27n#H`#hdJd1P=c;%hnQ&$kbS9_T>RTQ6U+wv@_#@7R3He+HI1#iu zCcZi%MKMaV3L$>LGulIa?N55nkbdY~k?-J9I_;mO@f;~r6{*13k9ht@<%(eI^)13X z^vAhI&OYMnc*1j1n$R#YIOFkwQus#uPsP+~cZ^>!NGP?zFH!Zv8rZkr4CXq2SIpv@ zcIHfheNGLzf`9ErRl4$xD$#-P5nFntc3ld-_JE(WjGSoWt`v*Q9-@p~@!~E?n67v| zQ*KAuvU=#q5Cw_r^J&c#RXO?;eg+m-K?8kRJpL6Q(;klj~_@?TGKQPpV zzRPHw*R9_6aoE#$FyTFVAT!z*>+Eq9{-M~MJklJ9-tr9$Vi(;CAhN3u_GeqP2vZxU zR9dMdZ>tydts`dB9snxol_tI{rOh2fdMLVsDEj$Qq=k~LT|T%7efSw}{e2oid57GIbn{IT2*eg zXaR diff --git a/a2ml/docs/paper/a2ml-arxiv.tex b/a2ml/docs/paper/a2ml-arxiv.tex deleted file mode 100644 index 92ebf2981..000000000 --- a/a2ml/docs/paper/a2ml-arxiv.tex +++ /dev/null @@ -1,454 +0,0 @@ -% SPDX-License-Identifier: MPL-2.0 -\documentclass[10pt,twocolumn]{article} -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} -\usepackage{amsmath,amssymb,amsthm} -\usepackage{listings} -\usepackage{hyperref} -\usepackage{xcolor} -\usepackage{graphicx} -\usepackage{booktabs} - -% Listings configuration -\lstdefinelanguage{A2ML}{ - morekeywords={@abstract,@refs,@fig,@table,@opaque,@requires,@end}, - sensitive=true, - morecomment=[l]{\#}, - morestring=[b]", -} - -\lstset{ - basicstyle=\ttfamily\small, - keywordstyle=\color{blue}\bfseries, - commentstyle=\color{gray}\itshape, - stringstyle=\color{red}, - showstringspaces=false, - breaklines=true, -} - -% Theorem environments -\newtheorem{theorem}{Theorem} -\newtheorem{lemma}[theorem]{Lemma} -\newtheorem{definition}[theorem]{Definition} - -\title{A2ML: A Lightweight Markup Language with \\ -Formal Proof Obligations} - -\author{ - Jonathan D.A. Jewell \\ - The Open University \\ - \texttt{j.d.a.jewell@open.ac.uk} -} - -\date{January 2026} - -\begin{document} - -\maketitle - -\begin{abstract} -We present A2ML (Attested Markup Language), a lightweight markup format that combines ease of authoring with formal verification guarantees. Unlike existing markup languages (Markdown, AsciiDoc, reStructuredText), A2ML provides a typed core with decidable proof obligations implemented in Idris2. Documents can be validated in three modes: lax (permissive authoring), checked (structural validation), and attested (formal proofs required). We demonstrate that A2ML's hybrid architecture—a Djot-inspired surface syntax compiled to a dependently-typed core—enables progressive strictness without sacrificing usability. Our implementation includes a formally verified parser that compiles to JavaScript (45KB) and a ReScript-based GUI. Benchmarks show A2ML parsing performance competitive with Markdown while providing guarantees unattainable in traditional markup languages. A2ML is designed for documents requiring structural invariants: academic papers, technical specifications, and standards documents. -\end{abstract} - -\section{Introduction} - -Markup languages prioritize ease of authoring over structural guarantees. Markdown~\cite{markdown}, the most popular lightweight markup format, provides no formal specification and exhibits inconsistent behavior across implementations~\cite{commonmark}. AsciiDoc~\cite{asciidoc} and reStructuredText~\cite{rst} offer more structure but lack formal verification capabilities. Authors of critical documents—academic papers, technical specifications, standards—require stronger guarantees about document structure. - -Consider these requirements for a conference paper submission: -\begin{itemize} - \item Every figure must have a unique identifier - \item All references must resolve to existing bibliography entries - \item An abstract section is required - \item Code listings must preserve exact byte content -\end{itemize} - -Existing markup languages cannot \emph{prove} these invariants hold. Authors discover violations late in the publishing pipeline, often after typesetting. A2ML addresses this gap through \emph{proof obligations}: decidable properties validated at compile time using dependent types. - -\subsection{Contributions} - -This paper makes the following contributions: - -\begin{enumerate} - \item \textbf{A2ML language design}: A lightweight markup syntax with typed core semantics (Section~\ref{sec:design}) - \item \textbf{Formal verification}: Decidable proof obligations for structural invariants implemented in Idris2 (Section~\ref{sec:verification}) - \item \textbf{Progressive strictness}: Three validation modes enabling gradual adoption from lax authoring to formal proofs (Section~\ref{sec:modes}) - \item \textbf{Implementation}: A verified parser compiling to JavaScript with performance competitive with Markdown (Section~\ref{sec:implementation}) - \item \textbf{Evaluation}: Benchmarks and case studies demonstrating practical applicability (Section~\ref{sec:evaluation}) -\end{enumerate} - -\section{Related Work} - -\subsection{Lightweight Markup Languages} - -\textbf{Markdown}~\cite{markdown} dominates lightweight markup but lacks formal specification. CommonMark~\cite{commonmark} attempts standardization but still provides no structural guarantees. Dozens of incompatible extensions (GitHub Flavored Markdown, Pandoc, MultiMarkdown) fragment the ecosystem. - -\textbf{AsciiDoc}~\cite{asciidoc} offers richer structure suitable for books and technical documentation. However, it lacks formal semantics and cannot prove structural invariants. - -\textbf{reStructuredText}~\cite{rst} provides extensibility through directives and roles, primarily for Python documentation. Like AsciiDoc, it offers no formal guarantees. - -\textbf{Djot}~\cite{djot} improves upon Markdown with simpler, more consistent syntax. A2ML draws inspiration from Djot's surface grammar while adding typed semantics. - -\subsection{Formal Verification of Parsers} - -\textbf{Verified parsers}: Jourdan et al.~\cite{jourdan-parser} verify a LR parser in Coq. Koprowski and Binsztok~\cite{koprowski-peg} formalize PEG parsers. These focus on parser correctness, not document structure validation. - -\textbf{Dependent types for validation}: Brady's work on Idris~\cite{idris-book} demonstrates dependent types for program verification. Christiansen~\cite{christiansen-dependent} shows practical applications in type-driven development. A2ML applies these techniques to document validation. - -\subsection{Structured Documents} - -\textbf{XML/SGML}: Provide validation through DTDs and schemas but require verbose syntax unsuitable for authoring. - -\textbf{Typst}~\cite{typst}: A modern markup language with strong typing, focused on typesetting rather than structural validation. - -A2ML uniquely combines lightweight syntax, formal verification, and progressive strictness, filling a gap between casual markup and formally verified documents. - -\section{Language Design} -\label{sec:design} - -\subsection{Surface Syntax} - -A2ML's surface syntax resembles Djot and Markdown for familiarity: - -\begin{lstlisting}[language=A2ML] -# Introduction - -This is **bold** and *italic* text. - -@fig(id=diagram1, ref=related-work): - ![System Architecture](arch.png) -@end - -See Figure @ref(diagram1) for details. -\end{lstlisting} - -Key features: -\begin{itemize} - \item Headings: \texttt{\#} markers (1-5 levels) - \item Inline: \texttt{*emphasis*}, \texttt{**strong**}, \texttt{[link](url)} - \item Directives: \texttt{@directive(...): ... @end} - \item References: \texttt{@ref(id)} -\end{itemize} - -\subsection{Typed Core} - -The surface AST translates to a typed core in Idris2: - -\begin{lstlisting}[language=Haskell] -record Id where - constructor MkId - raw : String - -data Block - = Section Sec - | Para String - | Bullet (List String) - | Figure Fig - | Opaque Payload - -record Doc where - constructor MkDoc - blocks : List Block -\end{lstlisting} - -This typed representation enables proof obligations. - -\subsection{Opaque Payload Fidelity} - -A2ML guarantees byte-for-byte preservation of opaque payloads: - -\begin{lstlisting}[language=A2ML] -@opaque(lang=rust): -fn main() { - // Exact bytes preserved -} -@end -\end{lstlisting} - -\noindent This is critical for code listings, cryptographic signatures, and embedded data. - -\section{Formal Verification} -\label{sec:verification} - -\subsection{Proof Obligations} - -A2ML defines three core proof obligations: - -\begin{definition}[Unique IDs] -All \texttt{id} attributes in a document must be unique: -\begin{lstlisting}[language=Haskell] -UniqueIds : Doc -> Type -UniqueIds doc = uniqueIdsB doc = True -\end{lstlisting} -\end{definition} - -\begin{definition}[Resolved References] -All \texttt{@ref(id)} must reference existing IDs: -\begin{lstlisting}[language=Haskell] -RefsResolve : Doc -> Type -RefsResolve doc = refsResolveB doc = True -\end{lstlisting} -\end{definition} - -\begin{definition}[Required Sections] -Specific sections must be present (configurable): -\begin{lstlisting}[language=Haskell] -HasAbstract : Doc -> Type -HasAbstract doc = hasAbstractB doc = True -\end{lstlisting} -\end{definition} - -\subsection{Decidability} - -Each proof obligation has a decidable procedure: - -\begin{lstlisting}[language=Haskell] -uniqueIdsDec : (doc : Doc) - -> Dec (UniqueIds doc) - -refsResolveDec : (doc : Doc) - -> Dec (RefsResolve doc) - -hasAbstractDec : (doc : Doc) - -> Dec (HasAbstract doc) -\end{lstlisting} - -\noindent If the proof succeeds at compile time, the invariant is guaranteed for that document. - -\subsection{Extensibility} - -Custom proof obligations can be defined: - -\begin{lstlisting}[language=Haskell] -MaxDepth : Nat -> Doc -> Type -MaxDepth n doc = depth doc <= n - -NoExternalLinks : Doc -> Type -NoExternalLinks doc = - externalLinkCount doc = 0 -\end{lstlisting} - -\section{Validation Modes} -\label{sec:modes} - -A2ML supports three modes enabling gradual adoption: - -\subsection{Lax Mode} - -Lax mode prioritizes authoring: -\begin{itemize} - \item All valid syntax accepted - \item Missing IDs generate warnings - \item Unresolved references warn but don't fail - \item Suitable for drafting and prototyping -\end{itemize} - -\subsection{Checked Mode} - -Checked mode enforces structure: -\begin{itemize} - \item IDs required on figures, tables, sections - \item All references must resolve - \item Unknown directives rejected - \item Suitable for production documents -\end{itemize} - -\subsection{Attested Mode} - -Attested mode requires formal proofs: -\begin{itemize} - \item All checked mode requirements - \item Proof obligations must be satisfied - \item Decidable checks execute at compile time - \item Suitable for critical documents (specifications, standards) -\end{itemize} - -\section{Implementation} -\label{sec:implementation} - -\subsection{Architecture} - -A2ML uses a hybrid architecture: - -\begin{enumerate} - \item \textbf{Idris2 Parser}: Formally verified core with proof obligations - \item \textbf{JavaScript Compilation}: Idris2 codegen produces 45KB JavaScript - \item \textbf{ReScript GUI}: Web interface for interactive validation -\end{enumerate} - -\subsection{Parser Implementation} - -The Idris2 parser uses mutual recursion for block and inline parsing: - -\begin{lstlisting}[language=Haskell] -mutual - covering - parseBlocks : List String -> Nat - -> (List SBlock, Nat) - - covering - parseInline : String -> List SInline - -export covering -parse : String -> Either ParseError SDoc -\end{lstlisting} - -\noindent Functions are marked \texttt{covering} where termination is complex but guaranteed in practice. Proof obligations remain \texttt{total}. - -\subsection{Compilation} - -The parser compiles to JavaScript via Idris2's Node.js backend: - -\begin{lstlisting}[language=bash] -$ idris2 --codegen node A2ML/Parser.idr \ - -o parser.js -$ ls -lh parser.js --rw-r--r-- 1 user user 45K parser.js -\end{lstlisting} - -\noindent The 45KB output includes runtime and proof checking code. - -\section{Evaluation} -\label{sec:evaluation} - -\subsection{Performance Benchmarks} - -We compare A2ML parsing performance against established markup languages: - -\begin{table}[h] -\centering -\caption{Parsing Performance (ms, 10KB document)} -\label{tab:performance} -\begin{tabular}{@{}lrr@{}} -\toprule -Parser & Time (ms) & Speedup vs A2ML \\ -\midrule -Markdown-it (JS) & 2.3 & 1.35x \\ -A2ML (Idris2→JS) & 3.1 & 1.00x \\ -AsciiDoctor (Ruby) & 45.2 & 0.07x \\ -Pandoc (Haskell) & 18.7 & 0.17x \\ -\bottomrule -\end{tabular} -\end{table} - -A2ML performance is competitive with Markdown while providing formal guarantees unavailable in any other markup language. - -\subsection{Case Study: IETF RFC} - -We converted RFC 9116 (security.txt) to A2ML with attested mode: - -\begin{itemize} - \item Original: 42KB plaintext - \item A2ML version: 38KB (more concise syntax) - \item Proof obligations: 7 (unique IDs, resolved refs, required sections) - \item Validation time: 8ms -\end{itemize} - -\noindent All structural requirements were proven at compile time, catching two invalid references present in the original. - -\subsection{Case Study: Academic Paper} - -A conference paper (10 pages, 15 figures, 42 references): - -\begin{itemize} - \item Lax mode: Fast drafting with warnings - \item Checked mode: Caught 3 missing figure IDs, 1 unresolved reference - \item Attested mode: All invariants proven before submission -\end{itemize} - -\noindent Authors reported confidence in structural correctness without manual verification. - -\section{Discussion} - -\subsection{Usability vs. Verification} - -A2ML balances usability and formal verification through progressive strictness. Authors can start in lax mode (no different from Markdown) and gradually adopt stronger guarantees as documents mature. - -\subsection{Performance Trade-offs} - -The Idris2→JavaScript compilation adds 35\% overhead compared to hand-written JavaScript parsers. However, this overhead buys formal correctness guarantees unattainable through manual implementation. - -\subsection{Limitations} - -\begin{itemize} - \item \textbf{WASM support}: Deferred to v1.1 pending Idris2 WASM maturity - \item \textbf{Proof complexity}: Custom proof obligations require Idris2 knowledge - \item \textbf{Tooling}: IDE integration still under development -\end{itemize} - -\section{Future Work} - -\begin{itemize} - \item \textbf{Module system}: Module 1+ for tables, citations, mathematics - \item \textbf{Policy bundles}: Domain-specific proof obligation sets - \item \textbf{Signed attestations}: Cryptographic proof of validation - \item \textbf{IDE integration}: Real-time proof checking in editors - \item \textbf{WASM compilation}: Faster execution in browsers -\end{itemize} - -\section{Conclusion} - -A2ML demonstrates that lightweight markup and formal verification are not mutually exclusive. Through dependent types and progressive strictness, A2ML provides the ease of authoring expected from Markdown while enabling formal proofs of structural invariants. Our implementation shows this approach is practical: parsing performance is competitive, and case studies demonstrate real-world applicability. - -A2ML is particularly suited for documents where structural correctness is critical: academic papers, technical specifications, standards documents. By moving validation from runtime discovery to compile-time proofs, A2ML reduces errors and increases author confidence. - -The A2ML specification, parser implementation, and test suite are available as open source under the PMPL-1.0-or-later license at \url{https://github.com/hyperpolymath/standards/tree/main/a2ml}. - -\section*{Acknowledgments} - -Thanks to the Idris2 and ReScript communities for their excellent tooling and documentation. OpenSSF provided security scanning infrastructure through Hypatia. - -\begin{thebibliography}{99} - -\bibitem{markdown} -J. Gruber. -\newblock Markdown. -\newblock \url{https://daringfireball.net/projects/markdown/}, 2004. - -\bibitem{commonmark} -J. MacFarlane. -\newblock CommonMark: A strongly defined, highly compatible specification of Markdown. -\newblock \url{https://commonmark.org/}, 2014. - -\bibitem{asciidoc} -S. White. -\newblock AsciiDoc. -\newblock \url{https://asciidoc.org/}, 2002. - -\bibitem{rst} -D. Goodger. -\newblock reStructuredText. -\newblock \url{https://docutils.sourceforge.io/rst.html}, 2001. - -\bibitem{djot} -J. MacFarlane. -\newblock Djot: A light markup syntax. -\newblock \url{https://djot.net/}, 2022. - -\bibitem{jourdan-parser} -J.-H. Jourdan, F. Pottier, and X. Leroy. -\newblock Validating LR(1) parsers. -\newblock In \emph{ESOP 2012}, pages 397--416, 2012. - -\bibitem{koprowski-peg} -R. Koprowski and A. Binsztok. -\newblock TRX: A formally verified parser interpreter. -\newblock In \emph{ESOP 2010}, pages 345--365, 2010. - -\bibitem{idris-book} -E. Brady. -\newblock \emph{Type-Driven Development with Idris}. -\newblock Manning, 2017. - -\bibitem{christiansen-dependent} -D. Christiansen. -\newblock Practical dependent types in Haskell: Type-safe neural networks. -\newblock In \emph{Haskell Symposium}, 2019. - -\bibitem{typst} -Typst GmbH. -\newblock Typst: A new markup-based typesetting system. -\newblock \url{https://typst.app/}, 2023. - -\end{thebibliography} - -\end{document} diff --git a/a2ml/docs/paper/arxiv-submission/a2ml-arxiv.tex b/a2ml/docs/paper/arxiv-submission/a2ml-arxiv.tex deleted file mode 100644 index 92ebf2981..000000000 --- a/a2ml/docs/paper/arxiv-submission/a2ml-arxiv.tex +++ /dev/null @@ -1,454 +0,0 @@ -% SPDX-License-Identifier: MPL-2.0 -\documentclass[10pt,twocolumn]{article} -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} -\usepackage{amsmath,amssymb,amsthm} -\usepackage{listings} -\usepackage{hyperref} -\usepackage{xcolor} -\usepackage{graphicx} -\usepackage{booktabs} - -% Listings configuration -\lstdefinelanguage{A2ML}{ - morekeywords={@abstract,@refs,@fig,@table,@opaque,@requires,@end}, - sensitive=true, - morecomment=[l]{\#}, - morestring=[b]", -} - -\lstset{ - basicstyle=\ttfamily\small, - keywordstyle=\color{blue}\bfseries, - commentstyle=\color{gray}\itshape, - stringstyle=\color{red}, - showstringspaces=false, - breaklines=true, -} - -% Theorem environments -\newtheorem{theorem}{Theorem} -\newtheorem{lemma}[theorem]{Lemma} -\newtheorem{definition}[theorem]{Definition} - -\title{A2ML: A Lightweight Markup Language with \\ -Formal Proof Obligations} - -\author{ - Jonathan D.A. Jewell \\ - The Open University \\ - \texttt{j.d.a.jewell@open.ac.uk} -} - -\date{January 2026} - -\begin{document} - -\maketitle - -\begin{abstract} -We present A2ML (Attested Markup Language), a lightweight markup format that combines ease of authoring with formal verification guarantees. Unlike existing markup languages (Markdown, AsciiDoc, reStructuredText), A2ML provides a typed core with decidable proof obligations implemented in Idris2. Documents can be validated in three modes: lax (permissive authoring), checked (structural validation), and attested (formal proofs required). We demonstrate that A2ML's hybrid architecture—a Djot-inspired surface syntax compiled to a dependently-typed core—enables progressive strictness without sacrificing usability. Our implementation includes a formally verified parser that compiles to JavaScript (45KB) and a ReScript-based GUI. Benchmarks show A2ML parsing performance competitive with Markdown while providing guarantees unattainable in traditional markup languages. A2ML is designed for documents requiring structural invariants: academic papers, technical specifications, and standards documents. -\end{abstract} - -\section{Introduction} - -Markup languages prioritize ease of authoring over structural guarantees. Markdown~\cite{markdown}, the most popular lightweight markup format, provides no formal specification and exhibits inconsistent behavior across implementations~\cite{commonmark}. AsciiDoc~\cite{asciidoc} and reStructuredText~\cite{rst} offer more structure but lack formal verification capabilities. Authors of critical documents—academic papers, technical specifications, standards—require stronger guarantees about document structure. - -Consider these requirements for a conference paper submission: -\begin{itemize} - \item Every figure must have a unique identifier - \item All references must resolve to existing bibliography entries - \item An abstract section is required - \item Code listings must preserve exact byte content -\end{itemize} - -Existing markup languages cannot \emph{prove} these invariants hold. Authors discover violations late in the publishing pipeline, often after typesetting. A2ML addresses this gap through \emph{proof obligations}: decidable properties validated at compile time using dependent types. - -\subsection{Contributions} - -This paper makes the following contributions: - -\begin{enumerate} - \item \textbf{A2ML language design}: A lightweight markup syntax with typed core semantics (Section~\ref{sec:design}) - \item \textbf{Formal verification}: Decidable proof obligations for structural invariants implemented in Idris2 (Section~\ref{sec:verification}) - \item \textbf{Progressive strictness}: Three validation modes enabling gradual adoption from lax authoring to formal proofs (Section~\ref{sec:modes}) - \item \textbf{Implementation}: A verified parser compiling to JavaScript with performance competitive with Markdown (Section~\ref{sec:implementation}) - \item \textbf{Evaluation}: Benchmarks and case studies demonstrating practical applicability (Section~\ref{sec:evaluation}) -\end{enumerate} - -\section{Related Work} - -\subsection{Lightweight Markup Languages} - -\textbf{Markdown}~\cite{markdown} dominates lightweight markup but lacks formal specification. CommonMark~\cite{commonmark} attempts standardization but still provides no structural guarantees. Dozens of incompatible extensions (GitHub Flavored Markdown, Pandoc, MultiMarkdown) fragment the ecosystem. - -\textbf{AsciiDoc}~\cite{asciidoc} offers richer structure suitable for books and technical documentation. However, it lacks formal semantics and cannot prove structural invariants. - -\textbf{reStructuredText}~\cite{rst} provides extensibility through directives and roles, primarily for Python documentation. Like AsciiDoc, it offers no formal guarantees. - -\textbf{Djot}~\cite{djot} improves upon Markdown with simpler, more consistent syntax. A2ML draws inspiration from Djot's surface grammar while adding typed semantics. - -\subsection{Formal Verification of Parsers} - -\textbf{Verified parsers}: Jourdan et al.~\cite{jourdan-parser} verify a LR parser in Coq. Koprowski and Binsztok~\cite{koprowski-peg} formalize PEG parsers. These focus on parser correctness, not document structure validation. - -\textbf{Dependent types for validation}: Brady's work on Idris~\cite{idris-book} demonstrates dependent types for program verification. Christiansen~\cite{christiansen-dependent} shows practical applications in type-driven development. A2ML applies these techniques to document validation. - -\subsection{Structured Documents} - -\textbf{XML/SGML}: Provide validation through DTDs and schemas but require verbose syntax unsuitable for authoring. - -\textbf{Typst}~\cite{typst}: A modern markup language with strong typing, focused on typesetting rather than structural validation. - -A2ML uniquely combines lightweight syntax, formal verification, and progressive strictness, filling a gap between casual markup and formally verified documents. - -\section{Language Design} -\label{sec:design} - -\subsection{Surface Syntax} - -A2ML's surface syntax resembles Djot and Markdown for familiarity: - -\begin{lstlisting}[language=A2ML] -# Introduction - -This is **bold** and *italic* text. - -@fig(id=diagram1, ref=related-work): - ![System Architecture](arch.png) -@end - -See Figure @ref(diagram1) for details. -\end{lstlisting} - -Key features: -\begin{itemize} - \item Headings: \texttt{\#} markers (1-5 levels) - \item Inline: \texttt{*emphasis*}, \texttt{**strong**}, \texttt{[link](url)} - \item Directives: \texttt{@directive(...): ... @end} - \item References: \texttt{@ref(id)} -\end{itemize} - -\subsection{Typed Core} - -The surface AST translates to a typed core in Idris2: - -\begin{lstlisting}[language=Haskell] -record Id where - constructor MkId - raw : String - -data Block - = Section Sec - | Para String - | Bullet (List String) - | Figure Fig - | Opaque Payload - -record Doc where - constructor MkDoc - blocks : List Block -\end{lstlisting} - -This typed representation enables proof obligations. - -\subsection{Opaque Payload Fidelity} - -A2ML guarantees byte-for-byte preservation of opaque payloads: - -\begin{lstlisting}[language=A2ML] -@opaque(lang=rust): -fn main() { - // Exact bytes preserved -} -@end -\end{lstlisting} - -\noindent This is critical for code listings, cryptographic signatures, and embedded data. - -\section{Formal Verification} -\label{sec:verification} - -\subsection{Proof Obligations} - -A2ML defines three core proof obligations: - -\begin{definition}[Unique IDs] -All \texttt{id} attributes in a document must be unique: -\begin{lstlisting}[language=Haskell] -UniqueIds : Doc -> Type -UniqueIds doc = uniqueIdsB doc = True -\end{lstlisting} -\end{definition} - -\begin{definition}[Resolved References] -All \texttt{@ref(id)} must reference existing IDs: -\begin{lstlisting}[language=Haskell] -RefsResolve : Doc -> Type -RefsResolve doc = refsResolveB doc = True -\end{lstlisting} -\end{definition} - -\begin{definition}[Required Sections] -Specific sections must be present (configurable): -\begin{lstlisting}[language=Haskell] -HasAbstract : Doc -> Type -HasAbstract doc = hasAbstractB doc = True -\end{lstlisting} -\end{definition} - -\subsection{Decidability} - -Each proof obligation has a decidable procedure: - -\begin{lstlisting}[language=Haskell] -uniqueIdsDec : (doc : Doc) - -> Dec (UniqueIds doc) - -refsResolveDec : (doc : Doc) - -> Dec (RefsResolve doc) - -hasAbstractDec : (doc : Doc) - -> Dec (HasAbstract doc) -\end{lstlisting} - -\noindent If the proof succeeds at compile time, the invariant is guaranteed for that document. - -\subsection{Extensibility} - -Custom proof obligations can be defined: - -\begin{lstlisting}[language=Haskell] -MaxDepth : Nat -> Doc -> Type -MaxDepth n doc = depth doc <= n - -NoExternalLinks : Doc -> Type -NoExternalLinks doc = - externalLinkCount doc = 0 -\end{lstlisting} - -\section{Validation Modes} -\label{sec:modes} - -A2ML supports three modes enabling gradual adoption: - -\subsection{Lax Mode} - -Lax mode prioritizes authoring: -\begin{itemize} - \item All valid syntax accepted - \item Missing IDs generate warnings - \item Unresolved references warn but don't fail - \item Suitable for drafting and prototyping -\end{itemize} - -\subsection{Checked Mode} - -Checked mode enforces structure: -\begin{itemize} - \item IDs required on figures, tables, sections - \item All references must resolve - \item Unknown directives rejected - \item Suitable for production documents -\end{itemize} - -\subsection{Attested Mode} - -Attested mode requires formal proofs: -\begin{itemize} - \item All checked mode requirements - \item Proof obligations must be satisfied - \item Decidable checks execute at compile time - \item Suitable for critical documents (specifications, standards) -\end{itemize} - -\section{Implementation} -\label{sec:implementation} - -\subsection{Architecture} - -A2ML uses a hybrid architecture: - -\begin{enumerate} - \item \textbf{Idris2 Parser}: Formally verified core with proof obligations - \item \textbf{JavaScript Compilation}: Idris2 codegen produces 45KB JavaScript - \item \textbf{ReScript GUI}: Web interface for interactive validation -\end{enumerate} - -\subsection{Parser Implementation} - -The Idris2 parser uses mutual recursion for block and inline parsing: - -\begin{lstlisting}[language=Haskell] -mutual - covering - parseBlocks : List String -> Nat - -> (List SBlock, Nat) - - covering - parseInline : String -> List SInline - -export covering -parse : String -> Either ParseError SDoc -\end{lstlisting} - -\noindent Functions are marked \texttt{covering} where termination is complex but guaranteed in practice. Proof obligations remain \texttt{total}. - -\subsection{Compilation} - -The parser compiles to JavaScript via Idris2's Node.js backend: - -\begin{lstlisting}[language=bash] -$ idris2 --codegen node A2ML/Parser.idr \ - -o parser.js -$ ls -lh parser.js --rw-r--r-- 1 user user 45K parser.js -\end{lstlisting} - -\noindent The 45KB output includes runtime and proof checking code. - -\section{Evaluation} -\label{sec:evaluation} - -\subsection{Performance Benchmarks} - -We compare A2ML parsing performance against established markup languages: - -\begin{table}[h] -\centering -\caption{Parsing Performance (ms, 10KB document)} -\label{tab:performance} -\begin{tabular}{@{}lrr@{}} -\toprule -Parser & Time (ms) & Speedup vs A2ML \\ -\midrule -Markdown-it (JS) & 2.3 & 1.35x \\ -A2ML (Idris2→JS) & 3.1 & 1.00x \\ -AsciiDoctor (Ruby) & 45.2 & 0.07x \\ -Pandoc (Haskell) & 18.7 & 0.17x \\ -\bottomrule -\end{tabular} -\end{table} - -A2ML performance is competitive with Markdown while providing formal guarantees unavailable in any other markup language. - -\subsection{Case Study: IETF RFC} - -We converted RFC 9116 (security.txt) to A2ML with attested mode: - -\begin{itemize} - \item Original: 42KB plaintext - \item A2ML version: 38KB (more concise syntax) - \item Proof obligations: 7 (unique IDs, resolved refs, required sections) - \item Validation time: 8ms -\end{itemize} - -\noindent All structural requirements were proven at compile time, catching two invalid references present in the original. - -\subsection{Case Study: Academic Paper} - -A conference paper (10 pages, 15 figures, 42 references): - -\begin{itemize} - \item Lax mode: Fast drafting with warnings - \item Checked mode: Caught 3 missing figure IDs, 1 unresolved reference - \item Attested mode: All invariants proven before submission -\end{itemize} - -\noindent Authors reported confidence in structural correctness without manual verification. - -\section{Discussion} - -\subsection{Usability vs. Verification} - -A2ML balances usability and formal verification through progressive strictness. Authors can start in lax mode (no different from Markdown) and gradually adopt stronger guarantees as documents mature. - -\subsection{Performance Trade-offs} - -The Idris2→JavaScript compilation adds 35\% overhead compared to hand-written JavaScript parsers. However, this overhead buys formal correctness guarantees unattainable through manual implementation. - -\subsection{Limitations} - -\begin{itemize} - \item \textbf{WASM support}: Deferred to v1.1 pending Idris2 WASM maturity - \item \textbf{Proof complexity}: Custom proof obligations require Idris2 knowledge - \item \textbf{Tooling}: IDE integration still under development -\end{itemize} - -\section{Future Work} - -\begin{itemize} - \item \textbf{Module system}: Module 1+ for tables, citations, mathematics - \item \textbf{Policy bundles}: Domain-specific proof obligation sets - \item \textbf{Signed attestations}: Cryptographic proof of validation - \item \textbf{IDE integration}: Real-time proof checking in editors - \item \textbf{WASM compilation}: Faster execution in browsers -\end{itemize} - -\section{Conclusion} - -A2ML demonstrates that lightweight markup and formal verification are not mutually exclusive. Through dependent types and progressive strictness, A2ML provides the ease of authoring expected from Markdown while enabling formal proofs of structural invariants. Our implementation shows this approach is practical: parsing performance is competitive, and case studies demonstrate real-world applicability. - -A2ML is particularly suited for documents where structural correctness is critical: academic papers, technical specifications, standards documents. By moving validation from runtime discovery to compile-time proofs, A2ML reduces errors and increases author confidence. - -The A2ML specification, parser implementation, and test suite are available as open source under the PMPL-1.0-or-later license at \url{https://github.com/hyperpolymath/standards/tree/main/a2ml}. - -\section*{Acknowledgments} - -Thanks to the Idris2 and ReScript communities for their excellent tooling and documentation. OpenSSF provided security scanning infrastructure through Hypatia. - -\begin{thebibliography}{99} - -\bibitem{markdown} -J. Gruber. -\newblock Markdown. -\newblock \url{https://daringfireball.net/projects/markdown/}, 2004. - -\bibitem{commonmark} -J. MacFarlane. -\newblock CommonMark: A strongly defined, highly compatible specification of Markdown. -\newblock \url{https://commonmark.org/}, 2014. - -\bibitem{asciidoc} -S. White. -\newblock AsciiDoc. -\newblock \url{https://asciidoc.org/}, 2002. - -\bibitem{rst} -D. Goodger. -\newblock reStructuredText. -\newblock \url{https://docutils.sourceforge.io/rst.html}, 2001. - -\bibitem{djot} -J. MacFarlane. -\newblock Djot: A light markup syntax. -\newblock \url{https://djot.net/}, 2022. - -\bibitem{jourdan-parser} -J.-H. Jourdan, F. Pottier, and X. Leroy. -\newblock Validating LR(1) parsers. -\newblock In \emph{ESOP 2012}, pages 397--416, 2012. - -\bibitem{koprowski-peg} -R. Koprowski and A. Binsztok. -\newblock TRX: A formally verified parser interpreter. -\newblock In \emph{ESOP 2010}, pages 345--365, 2010. - -\bibitem{idris-book} -E. Brady. -\newblock \emph{Type-Driven Development with Idris}. -\newblock Manning, 2017. - -\bibitem{christiansen-dependent} -D. Christiansen. -\newblock Practical dependent types in Haskell: Type-safe neural networks. -\newblock In \emph{Haskell Symposium}, 2019. - -\bibitem{typst} -Typst GmbH. -\newblock Typst: A new markup-based typesetting system. -\newblock \url{https://typst.app/}, 2023. - -\end{thebibliography} - -\end{document} diff --git a/a2ml/docs/paper/manifest.scm b/a2ml/docs/paper/manifest.scm deleted file mode 100644 index dd942c7fa..000000000 --- a/a2ml/docs/paper/manifest.scm +++ /dev/null @@ -1,24 +0,0 @@ -;;; SPDX-License-Identifier: MPL-2.0 -;;; manifest.scm — Generic Guix manifest for RSR-compliant projects -;;; -;;; Usage: -;;; guix shell -m manifest.scm -;;; - -(specifications->manifest - '(;; Core development tools - "git" - "just" - "nickel" - "curl" - "bash" - "coreutils" - - ;; Documentation - "asciidoctor" - "pandoc" - - ;; Common build dependencies - "openssl" - "zlib" - "pkg-config")) diff --git a/a2ml/docs/style.css b/a2ml/docs/style.css deleted file mode 100644 index 50e91d3ec..000000000 --- a/a2ml/docs/style.css +++ /dev/null @@ -1,74 +0,0 @@ -:root { - --bg: #f5f1e8; - --ink: #1f1f1f; - --accent: #0f5d4f; - --card: #fffaf1; - --border: #e2d9c8; -} - -* { - box-sizing: border-box; -} - -body { - margin: 0; - font-family: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", serif; - color: var(--ink); - background: var(--bg); -} - -.page { - max-width: 860px; - margin: 0 auto; - padding: 48px 20px 72px; -} - -.hero { - border-left: 6px solid var(--accent); - padding-left: 16px; - margin-bottom: 28px; -} - -.kicker { - text-transform: uppercase; - letter-spacing: 0.18em; - font-size: 12px; - color: var(--accent); - margin: 0 0 6px 0; -} - -h1 { - margin: 0 0 8px 0; - font-size: 34px; -} - -.lede { - margin: 0; - font-size: 18px; -} - -.card { - background: var(--card); - border: 1px solid var(--border); - padding: 16px 18px; - margin-bottom: 16px; -} - -h2 { - margin: 0 0 8px 0; - font-size: 18px; -} - -ul { - margin: 0; - padding-left: 18px; -} - -a { - color: var(--accent); - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} diff --git a/a2ml/editors/a2ml-notepadpp.xml b/a2ml/editors/a2ml-notepadpp.xml deleted file mode 100644 index e8d75a634..000000000 --- a/a2ml/editors/a2ml-notepadpp.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - abstract opaque fig ref include embed section metadata attestation signature proof import require export template override extend validate - - end true false null - - - - - - - - - - - 00" 01" 02 - - 03` 04` 05 - - 06 07 08 - - 09 10 11 - - 12 13 14 - - 15 16 17 - - 18 19 20 - - 21 22 23 - - - - 00# 01 02 03// 04 - - - = | @ - - - @abstract: @opaque( @fig( @section( @metadata( @attestation( @signature( @proof( @include( @embed( @template( @override( - @end - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/a2ml/editors/a2ml.tmLanguage.json b/a2ml/editors/a2ml.tmLanguage.json deleted file mode 100644 index a0221dd79..000000000 --- a/a2ml/editors/a2ml.tmLanguage.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "A2ML", - "scopeName": "source.a2ml", - "comment": "SPDX-License-Identifier: MPL-2.0", - "fileTypes": ["a2ml"], - "patterns": [ - { "include": "#comment" }, - { "include": "#heading" }, - { "include": "#directive-block" }, - { "include": "#inline-ref" }, - { "include": "#section-header" }, - { "include": "#key-value" }, - { "include": "#code-block" }, - { "include": "#inline" } - ], - "repository": { - "comment": { - "patterns": [ - { - "name": "comment.line.double-slash.a2ml", - "match": "//.*$" - }, - { - "name": "comment.line.number-sign.a2ml", - "comment": "Hash comments only at start of line (not headings)", - "match": "^\\s*#(?!\\s*[A-Z#]).*$" - } - ] - }, - "heading": { - "name": "markup.heading.a2ml", - "match": "^(#{1,5})\\s+(.*)$", - "captures": { - "1": { "name": "punctuation.definition.heading.a2ml" }, - "2": { "name": "entity.name.section.a2ml" } - } - }, - "directive-block": { - "patterns": [ - { - "comment": "Opaque directive with lang attribute — treated as embedded raw content", - "name": "meta.directive.opaque.a2ml", - "begin": "^(@)(opaque)(\\([^)]*\\))?(:)\\s*$", - "end": "^(@end)\\b", - "beginCaptures": { - "1": { "name": "punctuation.definition.directive.a2ml" }, - "2": { "name": "keyword.control.directive.a2ml" }, - "3": { "name": "entity.other.attribute-name.a2ml" }, - "4": { "name": "punctuation.separator.a2ml" } - }, - "endCaptures": { - "1": { "name": "keyword.control.directive.end.a2ml" } - }, - "contentName": "string.quoted.other.opaque.a2ml" - }, - { - "comment": "Generic directive block: @name(attrs): ... @end", - "name": "meta.directive.a2ml", - "begin": "^(@)([A-Za-z][A-Za-z0-9:_-]*)(\\([^)]*\\))?(:)\\s*$", - "end": "^(@end)\\b", - "beginCaptures": { - "1": { "name": "punctuation.definition.directive.a2ml" }, - "2": { "name": "keyword.control.directive.a2ml" }, - "3": { "name": "entity.name.function.a2ml" }, - "4": { "name": "punctuation.separator.a2ml" } - }, - "endCaptures": { - "1": { "name": "keyword.control.directive.end.a2ml" } - }, - "patterns": [ - { "include": "#inline" }, - { "include": "#heading" }, - { "include": "#comment" } - ] - } - ] - }, - "inline-ref": { - "name": "variable.other.reference.a2ml", - "match": "@ref\\([^)]+\\)", - "captures": { - "0": { "name": "variable.other.reference.a2ml" } - } - }, - "section-header": { - "comment": "TOML-like [section] headers", - "name": "entity.name.section.toml.a2ml", - "match": "^\\[([A-Za-z][A-Za-z0-9:._-]*)\\]\\s*$", - "captures": { - "1": { "name": "entity.name.section.a2ml" } - } - }, - "key-value": { - "comment": "key = \"value\" pairs", - "match": "^\\s*([A-Za-z_][A-Za-z0-9_-]*)\\s*(=)\\s*(\"[^\"]*\"|'[^']*'|[^\\s#]+)?", - "captures": { - "1": { "name": "variable.other.key.a2ml" }, - "2": { "name": "keyword.operator.assignment.a2ml" }, - "3": { "name": "string.quoted.double.a2ml" } - } - }, - "code-block": { - "comment": "Fenced code blocks", - "begin": "^(```)([A-Za-z0-9_+-]*)?\\s*$", - "end": "^(```)\\s*$", - "beginCaptures": { - "1": { "name": "punctuation.definition.code.fenced.a2ml" }, - "2": { "name": "entity.name.tag.language.a2ml" } - }, - "endCaptures": { - "1": { "name": "punctuation.definition.code.fenced.a2ml" } - }, - "contentName": "markup.raw.block.a2ml" - }, - "inline": { - "patterns": [ - { - "comment": "Bold text **...**", - "name": "markup.bold.a2ml", - "match": "\\*\\*([^*]+)\\*\\*" - }, - { - "comment": "Italic text *...*", - "name": "markup.italic.a2ml", - "match": "(? -# -# Dev Container image for {{PROJECT_NAME}} -# Base: Chainguard Wolfi (minimal, supply-chain-secure) -# Build: podman build -t {{PROJECT_NAME}}-dev -f .devcontainer/Containerfile . - -FROM cgr.dev/chainguard/wolfi-base:latest - -# Install common development tools -RUN apk update && apk add --no-cache \ - bash \ - curl \ - git \ - openssh-client \ - ca-certificates \ - build-base \ - posix-libc-utils \ - shadow \ - && rm -rf /var/cache/apk/* - -# Create non-root dev user (matches devcontainer.json remoteUser) -RUN groupadd -g 1000 nonroot || true \ - && useradd -m -u 1000 -g 1000 -s /bin/bash nonroot || true - -# Set workspace directory -WORKDIR /workspaces/{{PROJECT_NAME}} - -# Default shell -ENV SHELL=/bin/bash - -USER nonroot diff --git a/a2ml/editors/vscode/.devcontainer/README.adoc b/a2ml/editors/vscode/.devcontainer/README.adoc deleted file mode 100644 index 3bfb50e5c..000000000 --- a/a2ml/editors/vscode/.devcontainer/README.adoc +++ /dev/null @@ -1,27 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Dev Container Usage -:author: {{AUTHOR}} <{{AUTHOR_EMAIL}}> - -== Overview - -This dev container uses `cgr.dev/chainguard/wolfi-base` with git, curl, bash, and just pre-installed. Dev container features add git, just, and nickel automatically. - -== VS Code (Local) - -. Install the *Dev Containers* extension (`ms-vscode-remote.remote-containers`). -. Set `dev.containers.dockerPath` to `podman` in VS Code settings. -. Open the repo folder, then choose **Reopen in Container** from the command palette. - -== GitHub Codespaces - -. From the repository on GitHub, click **Code > Codespaces > New codespace**. -. The container builds automatically from this configuration. - -== Gitpod - -. Prefix the repo URL with `https://gitpod.io/#` to launch a workspace. -. Gitpod reads `devcontainer.json` and builds the environment. - -== Customization - -Replace `{{PROJECT_NAME}}` placeholders in both `devcontainer.json` and `Containerfile` with your actual project name. Run `just deps` to verify the environment after first launch. diff --git a/a2ml/editors/vscode/.devcontainer/devcontainer.json b/a2ml/editors/vscode/.devcontainer/devcontainer.json deleted file mode 100644 index a4b33e0ae..000000000 --- a/a2ml/editors/vscode/.devcontainer/devcontainer.json +++ /dev/null @@ -1,69 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -// -// Dev Container configuration for {{PROJECT_NAME}} -// Works with: VS Code Dev Containers, GitHub Codespaces, Gitpod -// Container runtime: Podman (recommended) or any OCI-compliant runtime -{ - "name": "{{PROJECT_NAME}}", - - "build": { - "dockerfile": "Containerfile", - "context": ".." - }, - - "features": { - "ghcr.io/devcontainers/features/git:1": { - "ppa": false, - "version": "latest" - }, - "ghcr.io/jdx/devcontainer-features/just:1": {}, - "ghcr.io/nickel-lang/devcontainer-feature:0": {} - }, - - "postCreateCommand": "just deps", - - "remoteUser": "nonroot", - - "containerEnv": { - "EDITOR": "code --wait", - "LANG": "C.UTF-8" - }, - - "customizations": { - "vscode": { - "extensions": [ - "EditorConfig.EditorConfig", - "eamodio.gitlens", - "streetsidesoftware.code-spell-checker", - "timonwong.shellcheck", - "tamasfe.even-better-toml", - "skellock.just", - "redhat.vscode-yaml", - "DavidAnson.vscode-markdownlint", - "asciidoctor.asciidoctor-vscode", - "usernamehw.errorlens" - ], - "settings": { - "editor.formatOnSave": true, - "editor.insertSpaces": true, - "editor.tabSize": 2, - "files.trimTrailingWhitespace": true, - "files.insertFinalNewline": true, - "files.trimFinalNewlines": true, - "[makefile]": { - "editor.insertSpaces": false - } - } - }, - "codespaces": { - "openFiles": [ - "README.adoc" - ] - } - }, - - "forwardPorts": [], - - "shutdownAction": "stopContainer" -} diff --git a/a2ml/editors/vscode/.editorconfig b/a2ml/editors/vscode/.editorconfig deleted file mode 100644 index bcdbb4de3..000000000 --- a/a2ml/editors/vscode/.editorconfig +++ /dev/null @@ -1,65 +0,0 @@ -# RSR-template-repo - Editor Configuration -# https://editorconfig.org - -root = true - -[*] -charset = utf-8 -end_of_line = lf -indent_size = 2 -indent_style = space -insert_final_newline = true -trim_trailing_whitespace = true - -[*.md] -trim_trailing_whitespace = false - -[*.adoc] -trim_trailing_whitespace = false - -[*.rs] -indent_size = 4 - -[*.ex] -indent_size = 2 - -[*.exs] -indent_size = 2 - -[*.zig] -indent_size = 4 - -[*.ada] -indent_size = 3 - -[*.adb] -indent_size = 3 - -[*.ads] -indent_size = 3 - -[*.hs] -indent_size = 2 - -[*.res] -indent_size = 2 - -[*.resi] -indent_size = 2 - -[*.ncl] -indent_size = 2 - -[*.rkt] -indent_size = 2 - -[*.scm] -indent_size = 2 - -[*.nix] -indent_size = 2 - -[Justfile] -indent_style = space -indent_size = 4 - diff --git a/a2ml/editors/vscode/.envrc b/a2ml/editors/vscode/.envrc deleted file mode 100644 index 4ca685b44..000000000 --- a/a2ml/editors/vscode/.envrc +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Activate development environment -# Install direnv: https://direnv.net/ - -# Load .tool-versions if asdf is available -if has asdf; then - use asdf -fi - -# Load Guix shell if guix.scm exists -if has guix && [ -f guix.scm ]; then - use guix -fi - -# Load Nix flake if flake.nix exists -if has nix && [ -f flake.nix ]; then - use flake -fi - -# Project environment variables -export PROJECT_NAME="{{PROJECT_NAME}}" -export RSR_TIER="infrastructure" -# export DATABASE_URL= -# export API_KEY= - -# Source .env if it exists (gitignored) -dotenv_if_exists diff --git a/a2ml/editors/vscode/.gitattributes b/a2ml/editors/vscode/.gitattributes deleted file mode 100644 index c95d5ebd9..000000000 --- a/a2ml/editors/vscode/.gitattributes +++ /dev/null @@ -1,55 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# RSR-compliant .gitattributes - -* text=auto eol=lf - -# Source -*.rs text eol=lf diff=rust -*.ex text eol=lf diff=elixir -*.exs text eol=lf diff=elixir -*.jl text eol=lf -*.res text eol=lf -*.resi text eol=lf -*.ada text eol=lf diff=ada -*.adb text eol=lf diff=ada -*.ads text eol=lf diff=ada -*.hs text eol=lf -*.chpl text eol=lf -*.scm text eol=lf -*.a2ml text eol=lf linguist-language=TOML -*.ncl text eol=lf -*.nix text eol=lf - -# Docs -*.md text eol=lf diff=markdown -*.adoc text eol=lf -*.txt text eol=lf - -# Data -*.json text eol=lf -*.yaml text eol=lf -*.yml text eol=lf -*.toml text eol=lf - -# Config -.gitignore text eol=lf -.gitattributes text eol=lf -Justfile text eol=lf -Makefile text eol=lf -Containerfile text eol=lf - -# Scripts -*.sh text eol=lf - -# Binary -*.png binary -*.jpg binary -*.gif binary -*.pdf binary -*.woff2 binary -*.zip binary -*.gz binary - -# Lock files -Cargo.lock text eol=lf -diff -flake.lock text eol=lf -diff diff --git a/a2ml/editors/vscode/.github/.mailmap b/a2ml/editors/vscode/.github/.mailmap deleted file mode 100644 index 0ada9de5b..000000000 --- a/a2ml/editors/vscode/.github/.mailmap +++ /dev/null @@ -1 +0,0 @@ -{{AUTHOR}} <{{AUTHOR_EMAIL}}> <{{AUTHOR_EMAIL_ALT}}> diff --git a/a2ml/editors/vscode/.github/.nojekyll b/a2ml/editors/vscode/.github/.nojekyll deleted file mode 100644 index e69de29bb..000000000 diff --git a/a2ml/editors/vscode/.github/0.1-AI-MANIFEST.a2ml b/a2ml/editors/vscode/.github/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index 85b2f0f0a..000000000 --- a/a2ml/editors/vscode/.github/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1 +0,0 @@ -# AI Manifest - Level 1: .github diff --git a/a2ml/editors/vscode/.github/CODEOWNERS b/a2ml/editors/vscode/.github/CODEOWNERS deleted file mode 100644 index 611b5a845..000000000 --- a/a2ml/editors/vscode/.github/CODEOWNERS +++ /dev/null @@ -1,14 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# CODEOWNERS - Define code review assignments -# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners -# -# Replace {{OWNER}} with your GitHub username or team - -# Default owners for everything -* @{{OWNER}} - -# Security-sensitive files require explicit review -SECURITY.md @{{OWNER}} -.github/workflows/ @{{OWNER}} -Trustfile.a2ml @{{OWNER}} -.machine_readable/ @{{OWNER}} diff --git a/a2ml/editors/vscode/.github/CODE_OF_CONDUCT.md b/a2ml/editors/vscode/.github/CODE_OF_CONDUCT.md deleted file mode 100644 index 2777a724e..000000000 --- a/a2ml/editors/vscode/.github/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,327 +0,0 @@ -# Code of Conduct - - - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in {{PROJECT_NAME}} a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, colour, religion, or sexual identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. - -We recognise that a thriving open source community requires **psychological safety** — an environment where people can contribute, ask questions, make mistakes, and learn without fear of ridicule or retaliation. - ---- - -## Our Standards - -### Expected Behaviour - -The following behaviours contribute to a positive environment: - -**Communication** -- Using welcoming and inclusive language -- Being respectful of differing viewpoints and experiences -- Giving and gracefully accepting constructive feedback -- Assuming good intent while addressing impact -- Communicating clearly and patiently, especially with newcomers - -**Collaboration** -- Focusing on what is best for the community -- Showing empathy and kindness toward other community members -- Being collaborative rather than competitive -- Mentoring and supporting less experienced contributors -- Celebrating others' contributions and successes - -**Professionalism** -- Accepting responsibility and apologising to those affected by our mistakes -- Learning from the experience and avoiding repetition -- Respecting others' time and attention -- Staying on topic in project spaces -- Following project guidelines and conventions - -**Accessibility** -- Using plain language and avoiding unnecessary jargon -- Providing alt text for images and transcripts for audio/video -- Being patient with those using assistive technologies -- Accommodating different communication styles and needs -- Recognising that not everyone communicates the same way - -### Unacceptable Behaviour - -The following behaviours are considered harassment and are unacceptable: - -**Harassment** -- The use of sexualised language or imagery, and sexual attention or advances of any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Deliberate intimidation, stalking, or following (online or in-person) -- Unwelcome physical contact or simulated physical contact (e.g., emoji) -- Sustained disruption of talks, events, or online discussions - -**Discrimination** -- Discriminatory jokes and language -- Posting or threatening to post others' personally identifying information ("doxing") -- Advocating for, or encouraging, any of the above behaviour -- Microaggressions — subtle, often unintentional, discriminatory comments or actions - -**Professional Misconduct** -- Publishing others' private information without explicit permission -- Misrepresenting affiliation or contributions -- Plagiarism or claiming credit for others' work -- Retaliating against anyone who reports a Code of Conduct violation -- Other conduct which could reasonably be considered inappropriate in a professional setting - -### Grey Areas - -Some situations require judgement. When uncertain: - -- **Intent vs Impact**: Good intentions do not excuse harmful impact. Focus on making things right. -- **Power Dynamics**: Those with more power (maintainers, employers, experienced contributors) must be especially mindful of their impact. -- **Cultural Differences**: What's acceptable varies by culture. When in doubt, err on the side of caution and ask. -- **Humour**: Jokes at others' expense are rarely funny to everyone. Punch up, not down. - ---- - -## Scope - -This Code of Conduct applies within all community spaces, including: - -**Online Spaces** -- Repository discussions, issues, and pull/merge requests -- Project chat channels (Matrix, Discord, Slack, IRC) -- Mailing lists and forums -- Social media when representing the project -- Video calls and virtual meetings - -**In-Person Spaces** -- Conferences, meetups, and events -- Workshops and training sessions -- Any gathering where you represent the project - -**Representation** -This Code of Conduct also applies when an individual is officially representing the community in public spaces. Examples include: - -- Using an official project email address -- Posting via an official social media account -- Acting as an appointed representative at an event -- Speaking on behalf of the project - ---- - -## Enforcement - -### Reporting - -If you experience or witness unacceptable behaviour, or have any other concerns, please report it as soon as possible. - -**How to Report** - -| Method | Details | Best For | -|--------|---------|----------| -| **Email** | {{CONDUCT_EMAIL}} | Detailed reports, sensitive matters | -| **Private Message** | Contact any maintainer directly | Quick questions, minor issues | -| **Anonymous Form** | [Link to form if available] | When you need anonymity | - -**What to Include** - -- Your contact information (unless anonymous) -- Names/usernames of those involved -- Description of what happened -- When and where it occurred -- Any witnesses -- Any supporting evidence (screenshots, links) -- How you would like us to respond (if you have a preference) - -**What Happens Next** - -1. You will receive acknowledgment within **{{RESPONSE_TIME}}** -2. The {{CONDUCT_TEAM}} will review the report -3. We may ask for additional information -4. We will determine appropriate action -5. We will inform you of the outcome (respecting others' privacy) - -### Confidentiality - -All reports will be handled with discretion: - -- Reporter identity is protected by default -- Details are shared only with those who need to know -- We will ask before naming you in any communication -- Anonymous reports are accepted and investigated - -### Conflicts of Interest - -If a {{CONDUCT_TEAM}} member is involved in an incident: - -- They will recuse themselves from the process -- Another maintainer or external party will handle the report -- We will disclose any potential conflicts - ---- - -## Enforcement Guidelines - -The {{CONDUCT_TEAM}} will follow these guidelines in determining consequences: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behaviour deemed unprofessional or unwelcome. - -**Consequence**: A private, written warning providing clarity around the nature of the violation and an explanation of why the behaviour was inappropriate. A public apology may be requested. - -**Duration**: Immediate - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of actions. - -**Consequence**: A warning with consequences for continued behaviour. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. - -**Duration**: 1-4 weeks - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including sustained inappropriate behaviour. - -**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. - -**Duration**: 1-6 months - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behaviour, harassment of an individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the community. - -**Duration**: Permanent (with appeal rights after 12 months) - -### Enforcement Across Perimeters - -For contributors with elevated access (Perimeter 2 or 1): - -| Level | Additional Consequence | -|-------|----------------------| -| Correction | Noted in contributor record | -| Warning | Access privileges may be temporarily reduced | -| Temporary Ban | Access reduced to Perimeter 3 for ban duration | -| Permanent Ban | All access revoked | - ---- - -## Appeals - -If you believe an enforcement decision was made in error: - -1. **Wait 7 days** after the decision (cooling-off period) -2. **Email** {{CONDUCT_EMAIL}} with subject line "Appeal: [Original Report ID]" -3. **Explain** why you believe the decision should be reconsidered -4. **Provide** any new information not previously available - -**Appeals Process** - -- Appeals are reviewed by a different {{CONDUCT_TEAM}} member than the original -- You will receive a response within 14 days -- The appeals decision is final -- You may only appeal once per incident - -**Grounds for Appeal** - -- Procedural errors in the original investigation -- New evidence not previously available -- Disproportionate response to the violation -- Misunderstanding of facts - ---- - -## Supporting Those Who Report - -We are committed to supporting those who report violations: - -**We Will** -- Believe and take all reports seriously -- Respect your privacy and confidentiality preferences -- Keep you informed of progress (if you wish) -- Take steps to protect you from retaliation -- Provide resources if you need support - -**We Will Not** -- Require you to confront the person directly -- Dismiss reports without investigation -- Reveal your identity without consent -- Tolerate retaliation against reporters -- Rush you to make decisions - ---- - -## Prevention - -Beyond enforcement, we actively work to prevent issues: - -**Onboarding** -- All contributors are expected to read this Code of Conduct -- Perimeter 2 applicants must confirm they've read and understood it -- Maintainers receive additional training on enforcement - -**Culture** -- We model the behaviour we expect -- We intervene early when we see potential issues -- We thank people for positive contributions -- We create opportunities for diverse voices - -**Review** -- This Code of Conduct is reviewed annually -- Community feedback is welcomed -- Changes are communicated clearly - ---- - -## Acknowledgments - -This Code of Conduct is adapted from: - -- [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1 -- [Django Code of Conduct](https://www.djangoproject.com/conduct/) -- [Rust Code of Conduct](https://www.rust-lang.org/policies/code-of-conduct) -- [Python Community Code of Conduct](https://www.python.org/psf/conduct/) - -We thank these communities for their leadership in creating welcoming spaces. - ---- - -## Questions? - -If you have questions about this Code of Conduct: - -- Open a [Discussion](https://{{FORGE}}/{{OWNER}}/{{REPO}}/discussions) (for general questions) -- Email {{CONDUCT_EMAIL}} (for private questions) -- Contact any maintainer directly - ---- - -## Summary - -**Be kind. Be respectful. Be collaborative.** - -We're all here because we care about this project. Let's make it a place where everyone can do their best work. - ---- - -Last updated: {{CURRENT_YEAR}} · Based on Contributor Covenant 2.1 diff --git a/a2ml/editors/vscode/.github/CONTRIBUTING.md b/a2ml/editors/vscode/.github/CONTRIBUTING.md deleted file mode 100644 index 02758c676..000000000 --- a/a2ml/editors/vscode/.github/CONTRIBUTING.md +++ /dev/null @@ -1,121 +0,0 @@ -# Clone the repository -git clone https://{{FORGE}}/{{OWNER}}/{{REPO}}.git -cd {{REPO}} - -# Using Nix (recommended for reproducibility) -nix develop - -# Or using toolbox/distrobox -toolbox create {{REPO}}-dev -toolbox enter {{REPO}}-dev -# Install dependencies manually - -# Verify setup -just check # or: cargo check / mix compile / etc. -just test # Run test suite -``` - -### Repository Structure -``` -{{REPO}}/ -├── src/ # Source code (Perimeter 1-2) -├── lib/ # Library code (Perimeter 1-2) -├── extensions/ # Extensions (Perimeter 2) -├── plugins/ # Plugins (Perimeter 2) -├── tools/ # Tooling (Perimeter 2) -├── docs/ # Documentation (Perimeter 3) -│ ├── architecture/ # ADRs, specs (Perimeter 2) -│ └── proposals/ # RFCs (Perimeter 3) -├── examples/ # Examples (Perimeter 3) -├── spec/ # Spec tests (Perimeter 3) -├── tests/ # Test suite (Perimeter 2-3) -├── .machine_readable/ # ALL machine-readable content (Perimeter 1) -│ ├── *.a2ml # State files (STATE, META, ECOSYSTEM, etc.) -│ ├── bot_directives/ # Bot configs -│ └── contractiles/ # Policy contracts (k9, dust, lust, must, trust) -├── .well-known/ # Protocol files (Perimeter 1-3) -├── .github/ # GitHub config (Perimeter 1) -│ ├── ISSUE_TEMPLATE/ -│ └── workflows/ -├── CHANGELOG.md -├── CODE_OF_CONDUCT.md -├── CONTRIBUTING.md # This file -├── GOVERNANCE.md -├── LICENSE -├── MAINTAINERS.md -├── README.adoc -├── SECURITY.md -├── flake.nix # Nix flake — fallback (Perimeter 1) -├── guix.scm # Guix package — primary (Perimeter 1) -└── Justfile # Task runner (Perimeter 1) -``` - ---- - -## How to Contribute - -### Reporting Bugs - -**Before reporting**: -1. Search existing issues -2. Check if it's already fixed in `{{MAIN_BRANCH}}` -3. Determine which perimeter the bug affects - -**When reporting**: - -Use the [bug report template](.github/ISSUE_TEMPLATE/bug_report.md) and include: - -- Clear, descriptive title -- Environment details (OS, versions, toolchain) -- Steps to reproduce -- Expected vs actual behaviour -- Logs, screenshots, or minimal reproduction - -### Suggesting Features - -**Before suggesting**: -1. Check the [roadmap](ROADMAP.md) if available -2. Search existing issues and discussions -3. Consider which perimeter the feature belongs to - -**When suggesting**: - -Use the [feature request template](.github/ISSUE_TEMPLATE/feature_request.md) and include: - -- Problem statement (what pain point does this solve?) -- Proposed solution -- Alternatives considered -- Which perimeter this affects - -### Your First Contribution - -Look for issues labelled: - -- [`good first issue`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/good%20first%20issue) — Simple Perimeter 3 tasks -- [`help wanted`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/help%20wanted) — Community help needed -- [`documentation`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/documentation) — Docs improvements -- [`perimeter-3`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/perimeter-3) — Community sandbox scope - ---- - -## Development Workflow - -### Branch Naming -``` -docs/short-description # Documentation (P3) -test/what-added # Test additions (P3) -feat/short-description # New features (P2) -fix/issue-number-description # Bug fixes (P2) -refactor/what-changed # Code improvements (P2) -security/what-fixed # Security fixes (P1-2) -``` - -### Commit Messages - -We follow [Conventional Commits](https://www.conventionalcommits.org/): -``` -(): - -[optional body] - -[optional footer] diff --git a/a2ml/editors/vscode/.github/DISCUSSION_TEMPLATE/ideas.yml b/a2ml/editors/vscode/.github/DISCUSSION_TEMPLATE/ideas.yml deleted file mode 100644 index ef912f85f..000000000 --- a/a2ml/editors/vscode/.github/DISCUSSION_TEMPLATE/ideas.yml +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -labels: [enhancement] -body: - - type: textarea - attributes: - label: Idea - description: Describe your idea - validations: - required: true - - type: textarea - attributes: - label: Motivation - description: Why would this be useful? diff --git a/a2ml/editors/vscode/.github/DISCUSSION_TEMPLATE/q-and-a.yml b/a2ml/editors/vscode/.github/DISCUSSION_TEMPLATE/q-and-a.yml deleted file mode 100644 index df4ec2003..000000000 --- a/a2ml/editors/vscode/.github/DISCUSSION_TEMPLATE/q-and-a.yml +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -labels: [question] -body: - - type: textarea - attributes: - label: Question - description: What would you like to know? - validations: - required: true - - type: textarea - attributes: - label: Context - description: Any relevant background diff --git a/a2ml/editors/vscode/.github/FUNDING.yml b/a2ml/editors/vscode/.github/FUNDING.yml deleted file mode 100644 index c078261e4..000000000 --- a/a2ml/editors/vscode/.github/FUNDING.yml +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Funding platforms for {{OWNER}} projects -# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository - -github: {{OWNER}} -ko_fi: {{OWNER}} -liberapay: {{OWNER}} diff --git a/a2ml/editors/vscode/.github/GOVERNANCE.md b/a2ml/editors/vscode/.github/GOVERNANCE.md deleted file mode 100644 index fcbcec0cb..000000000 --- a/a2ml/editors/vscode/.github/GOVERNANCE.md +++ /dev/null @@ -1,158 +0,0 @@ - - -# Project Governance - -This document describes the governance model for **{{PROJECT_NAME}}**. - ---- - -## Project Governance Model - -{{PROJECT_NAME}} follows a **Benevolent Dictator For Life (BDFL)** governance model. -This model is well-suited for solo maintainers and small project teams where rapid, -consistent decision-making is more valuable than formal consensus processes. - -The BDFL has final authority on all project decisions, including technical direction, -release schedules, contributor access, and community standards. - -> **Transition clause:** When the core team exceeds three active maintainers, this -> project should transition to a **consensus-based governance model** with documented -> voting procedures. That transition should itself be recorded as an Architecture -> Decision Record (ADR) in `docs/decisions/`. - ---- - -## Decision Making - -### Day-to-day decisions - -- The BDFL makes final decisions on all matters. -- Routine decisions (bug fixes, dependency updates, minor improvements) may be made - by any maintainer with commit access. -- Maintainers are expected to use good judgement and seek input on non-trivial changes. - -### Proposing changes - -- Contributors can propose changes by opening issues or pull requests. -- Significant changes (new features, breaking changes, architectural shifts) should - be discussed in an issue before implementation begins. -- The BDFL will provide a clear accept/reject decision with reasoning. - -### Architecture Decision Records (ADRs) - -- Significant technical decisions are documented as ADRs in `docs/decisions/`. -- ADR statuses: `proposed`, `accepted`, `deprecated`, `superseded`, `rejected`. -- ADRs provide a historical record of why decisions were made and what alternatives - were considered. -- See `.machine_readable/META.a2ml` for the machine-readable ADR index. - ---- - -## Roles - -### BDFL (Benevolent Dictator For Life) - -- The project creator and ultimate decision-maker. -- Sets the project's technical direction and long-term vision. -- Has final say on all matters, including maintainer appointments and removals. -- Responsible for ensuring the project adheres to RSR standards. - -### Maintainer - -- Has commit access to the repository. -- Reviews and merges pull requests. -- Triages issues and manages releases. -- Upholds code quality, security standards, and the Code of Conduct. -- Listed in [MAINTAINERS.md](MAINTAINERS.md). - -### Contributor - -- Anyone who submits pull requests, opens issues, or participates in discussions. -- Does not have direct commit access. -- Contributions are reviewed by maintainers before merging. -- All contributors must follow the [Code of Conduct](CODE_OF_CONDUCT.md). - -### Bot - -- Automated agents managed via your bot orchestration system. -- Perform automated code review, security scanning, dependency updates, and - standards enforcement. -- Bot actions are subject to the same quality and review standards as human - contributions. -- Configure your bots in `.machine_readable/bot_directives/`. - ---- - -## Becoming a Maintainer - -A contributor may be nominated to become a maintainer when they demonstrate: - -1. **Sustained quality contributions** -- a track record of well-crafted pull requests - that follow project conventions and require minimal revision. -2. **Understanding of RSR standards** -- familiarity with the Repository Structure - Requirements, security policies, and CI/CD workflows used across the project. -3. **Constructive participation** -- helpful issue triage, thoughtful code review - comments, and mentoring of other contributors. -4. **Reliability** -- consistent engagement over a meaningful period (typically 3+ - months of active contribution). - -### Process - -1. An existing maintainer nominates the candidate by opening a private discussion - with the BDFL. -2. The BDFL reviews the candidate's contribution history and community interactions. -3. The BDFL approves or declines the nomination, with reasoning provided to the - nominator. -4. If approved, the new maintainer is added to [MAINTAINERS.md](MAINTAINERS.md) and - granted appropriate repository access. - ---- - -## Removing a Maintainer - -A maintainer may be removed under the following circumstances: - -- **Inactivity**: No meaningful contributions or reviews for 12 or more consecutive - months. The maintainer will be contacted before removal and offered the option to - move to emeritus status voluntarily. -- **Code of Conduct violation**: Behaviour that violates the - [Code of Conduct](CODE_OF_CONDUCT.md), as determined through the enforcement - process described therein. -- **BDFL discretion**: The BDFL may remove a maintainer for other reasons (e.g., - repeated disregard for project standards, loss of trust). Reasoning will be - documented privately. - -Removed maintainers are moved to the Emeritus section of -[MAINTAINERS.md](MAINTAINERS.md) unless removal was due to a serious Code of Conduct -violation. - ---- - -## Code of Conduct - -All participants in this project are expected to follow the -[Code of Conduct](CODE_OF_CONDUCT.md). The Code of Conduct applies to all project -spaces, including issues, pull requests, discussions, and any forum where the project -is represented. - -Enforcement of the Code of Conduct is described in that document. The BDFL serves as -the final arbiter in conduct disputes. - ---- - -## Amendments - -This governance document may be amended by the BDFL at any time. All amendments will -be: - -1. Documented as an ADR in `docs/decisions/` explaining the rationale for the change. -2. Committed to the repository with a clear commit message. -3. Communicated to existing maintainers and contributors via the project's usual - channels. - -Substantive changes (e.g., changing the governance model itself) should be discussed -with the community before adoption, even though the BDFL retains final authority. - ---- - -Copyright (c) {{CURRENT_YEAR}} {{OWNER}}. Licensed under PMPL-1.0-or-later. diff --git a/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/bug_report.yml b/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index ec2aa2835..000000000 --- a/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,127 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Bug report issue template for {{OWNER}}/{{REPO}} -name: Bug Report -description: Create a report to help us improve -title: "[Bug]: " -labels: ["bug", "priority: unset", "triage"] -assignees: [] -body: - - type: markdown - attributes: - value: | - Thank you for taking the time to report a bug. Please fill out the sections below - so we can reproduce and fix the issue. - - - type: textarea - id: description - attributes: - label: Describe the bug - description: A clear and concise description of what the bug is. - placeholder: When I do X, Y happens instead of Z. - validations: - required: true - - - type: textarea - id: reproduction - attributes: - label: Steps to reproduce - description: Detailed steps to reproduce the behavior. - placeholder: | - 1. Go to '...' - 2. Run command '...' - 3. See error - value: | - 1. - 2. - 3. - validations: - required: true - - - type: textarea - id: expected - attributes: - label: Expected behavior - description: A clear and concise description of what you expected to happen. - placeholder: I expected X to happen. - validations: - required: true - - - type: textarea - id: actual - attributes: - label: Actual behavior - description: What actually happened instead. - placeholder: Instead, Y happened. - validations: - required: true - - - type: textarea - id: screenshots - attributes: - label: Screenshots or logs - description: If applicable, add screenshots or paste error logs to help explain the problem. - placeholder: Paste screenshots or error output here. - render: text - validations: - required: false - - - type: dropdown - id: severity - attributes: - label: Severity - description: How severe is this bug? - options: - - Low (cosmetic, minor inconvenience) - - Medium (functionality impaired but workaround exists) - - High (major functionality broken) - - Critical (data loss, security issue, complete failure) - validations: - required: true - - - type: input - id: os - attributes: - label: Operating system - description: What OS are you using? - placeholder: "e.g. Fedora 43, macOS 15.3, Windows 11" - validations: - required: false - - - type: input - id: version - attributes: - label: Version - description: What version of this project are you using? - placeholder: "e.g. 1.2.3, commit abc1234, main branch" - validations: - required: false - - - type: input - id: runtime - attributes: - label: Runtime / toolchain - description: Relevant runtime or toolchain version, if applicable. - placeholder: "e.g. Deno 2.1, Rust nightly 2026-02-10, Gleam 1.8" - validations: - required: false - - - type: textarea - id: additional - attributes: - label: Additional context - description: Add any other context about the problem here. - placeholder: Any other relevant information. - validations: - required: false - - - type: checkboxes - id: checklist - attributes: - label: Pre-submission checklist - options: - - label: I have searched existing issues to ensure this is not a duplicate - required: true - - label: I am using a supported version of this project - required: false - - label: I would be willing to submit a PR to fix this - required: false diff --git a/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/config.yml b/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index cb7a33cb0..000000000 --- a/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Issue template chooser configuration for {{OWNER}}/{{REPO}} -blank_issues_enabled: true -contact_links: - - name: Discussions - url: https://github.com/{{OWNER}}/{{REPO}}/discussions - about: Ask questions, share ideas, or start a conversation in Discussions. - - name: Security Vulnerabilities - url: https://github.com/{{OWNER}}/{{REPO}}/security/advisories/new - about: Report security vulnerabilities privately via GitHub Security Advisories. diff --git a/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/custom.yml b/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/custom.yml deleted file mode 100644 index 6aa9e6315..000000000 --- a/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/custom.yml +++ /dev/null @@ -1,76 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Custom issue template for {{OWNER}}/{{REPO}} -name: Other -description: Report an issue that does not fit the other categories -title: "" -labels: ["triage"] -assignees: [] -body: - - type: markdown - attributes: - value: | - Use this template for issues that do not fit into bug reports, feature requests, - documentation, or questions. Please provide as much detail as possible. - - - type: dropdown - id: category - attributes: - label: Issue category - description: What best describes this issue? - options: - - Refactoring - - Technical debt - - Build / CI issue - - Dependency update - - Security concern - - Licensing question - - Ecosystem integration - - Other - validations: - required: true - - - type: textarea - id: description - attributes: - label: Description - description: Clearly describe what this issue is about. - placeholder: Provide a detailed description of the issue. - validations: - required: true - - - type: textarea - id: rationale - attributes: - label: Rationale - description: Why is this important? What is the impact of not addressing it? - placeholder: "This matters because..." - validations: - required: false - - - type: textarea - id: proposal - attributes: - label: Proposed approach - description: If you have a plan or approach in mind, describe it here. - placeholder: "I suggest we..." - validations: - required: false - - - type: textarea - id: additional - attributes: - label: Additional context - description: Add any other context, links, or references. - placeholder: Any supplementary information. - validations: - required: false - - - type: checkboxes - id: checklist - attributes: - label: Pre-submission checklist - options: - - label: I have searched existing issues to ensure this is not a duplicate - required: true - - label: I would be willing to submit a PR to address this - required: false diff --git a/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/documentation.yml b/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/documentation.yml deleted file mode 100644 index 88e072058..000000000 --- a/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/documentation.yml +++ /dev/null @@ -1,64 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Documentation issue template for {{OWNER}}/{{REPO}} -name: Documentation -description: Report unclear, missing, or incorrect documentation -title: "[Docs]: " -labels: ["documentation", "priority: unset", "triage"] -assignees: [] -body: - - type: markdown - attributes: - value: | - Help us improve our documentation by reporting issues or gaps. - - - type: dropdown - id: type - attributes: - label: Documentation issue type - description: What kind of documentation problem is this? - options: - - Missing (documentation doesn't exist) - - Incorrect (information is wrong) - - Unclear (confusing or hard to follow) - - Outdated (no longer accurate) - - Incomplete (partially documented) - - Typo or grammar - validations: - required: true - - - type: input - id: location - attributes: - label: Location - description: Where is this documentation? (URL, file path, or section name) - placeholder: "README.adoc, section \"Installation\"" - validations: - required: true - - - type: textarea - id: description - attributes: - label: Description - description: What is the problem with the current documentation? - placeholder: Describe what is wrong or missing. - validations: - required: true - - - type: textarea - id: suggestion - attributes: - label: Suggested improvement - description: How should the documentation be fixed or improved? - placeholder: "The documentation should say..." - validations: - required: false - - - type: checkboxes - id: contribution - attributes: - label: Contribution - options: - - label: I have searched existing issues to ensure this is not a duplicate - required: true - - label: I would be willing to submit a PR to fix this - required: false diff --git a/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/feature_request.yml b/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/feature_request.yml deleted file mode 100644 index 6d88090c9..000000000 --- a/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/feature_request.yml +++ /dev/null @@ -1,87 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Feature request issue template for {{OWNER}}/{{REPO}} -name: Feature Request -description: Suggest an idea or enhancement for this project -title: "[Feature]: " -labels: ["enhancement", "priority: unset", "triage"] -assignees: [] -body: - - type: markdown - attributes: - value: | - Thank you for suggesting a feature. Please describe your idea clearly so we can - evaluate and prioritize it. - - - type: textarea - id: problem - attributes: - label: Problem statement - description: Is your feature request related to a problem? Describe the pain point. - placeholder: "I'm always frustrated when [...]. Currently there is no way to [...]." - validations: - required: true - - - type: textarea - id: solution - attributes: - label: Proposed solution - description: A clear and concise description of what you want to happen. - placeholder: "I'd like a command/option/feature that [...]." - validations: - required: true - - - type: textarea - id: alternatives - attributes: - label: Alternatives considered - description: Any alternative solutions or features you have considered. - placeholder: "I considered using X, but it doesn't work because [...]." - validations: - required: false - - - type: dropdown - id: category - attributes: - label: Category - description: What area does this feature relate to? - options: - - Core functionality - - Developer experience - - Performance - - Documentation - - CI/CD / Tooling - - Integration / Interop - - Security - - Accessibility - - Other - validations: - required: true - - - type: dropdown - id: priority - attributes: - label: Importance to you - description: How important is this feature for your use case? - options: - - Nice to have - - Important (would improve my workflow) - - Critical (blocking my use case) - validations: - required: true - - - type: textarea - id: additional - attributes: - label: Additional context - description: Add any other context, screenshots, mockups, or references about the feature request. - placeholder: Links, screenshots, related projects, etc. - validations: - required: false - - - type: checkboxes - id: contribution - attributes: - label: Contribution - options: - - label: I would be willing to submit a PR to implement this feature - required: false diff --git a/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/question.yml b/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/question.yml deleted file mode 100644 index 48bb574e9..000000000 --- a/a2ml/editors/vscode/.github/ISSUE_TEMPLATE/question.yml +++ /dev/null @@ -1,60 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Question issue template for {{OWNER}}/{{REPO}} -name: Question -description: Ask a question about usage or behaviour -title: "[Question]: " -labels: ["question", "triage"] -assignees: [] -body: - - type: markdown - attributes: - value: | - Have a question? You can also ask in - [Discussions](https://github.com/{{OWNER}}/{{REPO}}/discussions) - for broader conversations. - - - type: textarea - id: question - attributes: - label: Your question - description: What would you like to know? - placeholder: "How do I...?" - validations: - required: true - - - type: textarea - id: context - attributes: - label: Context - description: Any relevant context that helps us answer your question. - placeholder: "I'm trying to achieve X and I've tried Y..." - validations: - required: false - - - type: textarea - id: research - attributes: - label: What I have already tried - description: What have you already looked at or attempted? - placeholder: "I've read the README and searched issues but..." - validations: - required: false - - - type: input - id: version - attributes: - label: Version - description: What version of this project are you using? - placeholder: "e.g. 1.2.3, commit abc1234, main branch" - validations: - required: false - - - type: checkboxes - id: checklist - attributes: - label: Pre-submission checklist - options: - - label: I have searched existing issues and discussions - required: true - - label: I have read the available documentation - required: true diff --git a/a2ml/editors/vscode/.github/MAINTAINERS b/a2ml/editors/vscode/.github/MAINTAINERS deleted file mode 100644 index 145c4e962..000000000 --- a/a2ml/editors/vscode/.github/MAINTAINERS +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# MAINTAINERS - Project maintainers and contact information -# -# Format: Name (role) -# Replace placeholders with actual maintainer information. - -{{AUTHOR}} <{{AUTHOR_EMAIL}}> (Lead Maintainer) - -# Additional maintainers: -# Name (role) diff --git a/a2ml/editors/vscode/.github/README.adoc b/a2ml/editors/vscode/.github/README.adoc deleted file mode 100644 index a97d22022..000000000 --- a/a2ml/editors/vscode/.github/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= .github Pillar diff --git a/a2ml/editors/vscode/.github/SECURITY.md b/a2ml/editors/vscode/.github/SECURITY.md deleted file mode 100644 index 7dd7b29e7..000000000 --- a/a2ml/editors/vscode/.github/SECURITY.md +++ /dev/null @@ -1,406 +0,0 @@ -# Security Policy - - - -We take security seriously. We appreciate your efforts to responsibly disclose vulnerabilities and will make every effort to acknowledge your contributions. - -## Table of Contents - -- [Reporting a Vulnerability](#reporting-a-vulnerability) -- [What to Include](#what-to-include) -- [Response Timeline](#response-timeline) -- [Disclosure Policy](#disclosure-policy) -- [Scope](#scope) -- [Safe Harbour](#safe-harbour) -- [Recognition](#recognition) -- [Security Updates](#security-updates) -- [Security Best Practices](#security-best-practices) - ---- - -## Reporting a Vulnerability - -### Preferred Method: GitHub Security Advisories - -The preferred method for reporting security vulnerabilities is through GitHub's Security Advisory feature: - -1. Navigate to [Report a Vulnerability](https://github.com/{{OWNER}}/{{REPO}}/security/advisories/new) -2. Click **"Report a vulnerability"** -3. Complete the form with as much detail as possible -4. Submit — we'll receive a private notification - -This method ensures: - -- End-to-end encryption of your report -- Private discussion space for collaboration -- Coordinated disclosure tooling -- Automatic credit when the advisory is published - -### Alternative: Encrypted Email - -If you cannot use GitHub Security Advisories, you may email us directly: - -| | | -|---|---| -| **Email** | {{SECURITY_EMAIL}} | -| **PGP Key** | [Download Public Key]({{PGP_KEY_URL}}) | -| **Fingerprint** | `{{PGP_FINGERPRINT}}` | - -```bash -# Import our PGP key -curl -sSL {{PGP_KEY_URL}} | gpg --import - -# Verify fingerprint -gpg --fingerprint {{SECURITY_EMAIL}} - -# Encrypt your report -gpg --armor --encrypt --recipient {{SECURITY_EMAIL}} report.txt -``` - -> **⚠️ Important:** Do not report security vulnerabilities through public GitHub issues, pull requests, discussions, or social media. - ---- - -## What to Include - -A good vulnerability report helps us understand and reproduce the issue quickly. - -### Required Information - -- **Description**: Clear explanation of the vulnerability -- **Impact**: What an attacker could achieve (confidentiality, integrity, availability) -- **Affected versions**: Which versions/commits are affected -- **Reproduction steps**: Detailed steps to reproduce the issue - -### Helpful Additional Information - -- **Proof of concept**: Code, scripts, or screenshots demonstrating the vulnerability -- **Attack scenario**: Realistic attack scenario showing exploitability -- **CVSS score**: Your assessment of severity (use [CVSS 3.1 Calculator](https://www.first.org/cvss/calculator/3.1)) -- **CWE ID**: Common Weakness Enumeration identifier if known -- **Suggested fix**: If you have ideas for remediation -- **References**: Links to related vulnerabilities, research, or advisories - -### Example Report Structure - -```markdown -## Summary -[One-sentence description of the vulnerability] - -## Vulnerability Type -[e.g., SQL Injection, XSS, SSRF, Path Traversal, etc.] - -## Affected Component -[File path, function name, API endpoint, etc.] - -## Affected Versions -[Version range or specific commits] - -## Severity Assessment -- CVSS 3.1 Score: [X.X] -- CVSS Vector: [CVSS:3.1/AV:X/AC:X/PR:X/UI:X/S:X/C:X/I:X/A:X] - -## Description -[Detailed technical description] - -## Steps to Reproduce -1. [First step] -2. [Second step] -3. [...] - -## Proof of Concept -[Code, curl commands, screenshots, etc.] - -## Impact -[What can an attacker achieve?] - -## Suggested Remediation -[Optional: your ideas for fixing] - -## References -[Links to related issues, CVEs, research] -``` - ---- - -## Response Timeline - -We commit to the following response times: - -| Stage | Timeframe | Description | -|-------|-----------|-------------| -| **Initial Response** | 48 hours | We acknowledge receipt and confirm we're investigating | -| **Triage** | 7 days | We assess severity, confirm the vulnerability, and estimate timeline | -| **Status Update** | Every 7 days | Regular updates on remediation progress | -| **Resolution** | 90 days | Target for fix development and release (complex issues may take longer) | -| **Disclosure** | 90 days | Public disclosure after fix is available (coordinated with you) | - -> **Note:** These are targets, not guarantees. Complex vulnerabilities may require more time. We'll communicate openly about any delays. - ---- - -## Disclosure Policy - -We follow **coordinated disclosure** (also known as responsible disclosure): - -1. **You report** the vulnerability privately -2. **We acknowledge** and begin investigation -3. **We develop** a fix and prepare a release -4. **We coordinate** disclosure timing with you -5. **We publish** security advisory and fix simultaneously -6. **You may publish** your research after disclosure - -### Our Commitments - -- We will not take legal action against researchers who follow this policy -- We will work with you to understand and resolve the issue -- We will credit you in the security advisory (unless you prefer anonymity) -- We will notify you before public disclosure -- We will publish advisories with sufficient detail for users to assess risk - -### Your Commitments - -- Report vulnerabilities promptly after discovery -- Give us reasonable time to address the issue before disclosure -- Do not access, modify, or delete data beyond what's necessary to demonstrate the vulnerability -- Do not degrade service availability (no DoS testing on production) -- Do not share vulnerability details with others until coordinated disclosure - -### Disclosure Timeline - -``` -Day 0 You report vulnerability -Day 1-2 We acknowledge receipt -Day 7 We confirm vulnerability and share initial assessment -Day 7-90 We develop and test fix -Day 90 Coordinated public disclosure - (earlier if fix is ready; later by mutual agreement) -``` - -If we cannot reach agreement on disclosure timing, we default to 90 days from your initial report. - ---- - -## Scope - -### In Scope ✅ - -The following are within scope for security research: - -- This repository (`{{OWNER}}/{{REPO}}`) and all its code -- Official releases and packages published from this repository -- Documentation that could lead to security issues -- Build and deployment configurations in this repository -- Dependencies (report here, we'll coordinate with upstream) - -### Out of Scope ❌ - -The following are **not** in scope: - -- Third-party services we integrate with (report directly to them) -- Social engineering attacks against maintainers -- Physical security -- Denial of service attacks against production infrastructure -- Spam, phishing, or other non-technical attacks -- Issues already reported or publicly known -- Theoretical vulnerabilities without proof of concept - -### Qualifying Vulnerabilities - -We're particularly interested in: - -- Remote code execution -- SQL injection, command injection, code injection -- Authentication/authorisation bypass -- Cross-site scripting (XSS) and cross-site request forgery (CSRF) -- Server-side request forgery (SSRF) -- Path traversal / local file inclusion -- Information disclosure (credentials, PII, secrets) -- Cryptographic weaknesses -- Deserialisation vulnerabilities -- Memory safety issues (buffer overflows, use-after-free, etc.) -- Supply chain vulnerabilities (dependency confusion, etc.) -- Significant logic flaws - -### Non-Qualifying Issues - -The following generally do not qualify as security vulnerabilities: - -- Missing security headers on non-sensitive pages -- Clickjacking on pages without sensitive actions -- Self-XSS (requires victim to paste code) -- Missing rate limiting (unless it enables a specific attack) -- Username/email enumeration (unless high-risk context) -- Missing cookie flags on non-sensitive cookies -- Software version disclosure -- Verbose error messages (unless exposing secrets) -- Best practice deviations without demonstrable impact - ---- - -## Safe Harbour - -We support security research conducted in good faith. - -### Our Promise - -If you conduct security research in accordance with this policy: - -- ✅ We will not initiate legal action against you -- ✅ We will not report your activity to law enforcement -- ✅ We will work with you in good faith to resolve issues -- ✅ We consider your research authorised under the Computer Fraud and Abuse Act (CFAA), UK Computer Misuse Act, and similar laws -- ✅ We waive any potential claim against you for circumvention of security controls - -### Good Faith Requirements - -To qualify for safe harbour, you must: - -- Comply with this security policy -- Report vulnerabilities promptly -- Avoid privacy violations (do not access others' data) -- Avoid service degradation (no destructive testing) -- Not exploit vulnerabilities beyond proof-of-concept -- Not use vulnerabilities for profit (beyond bug bounties where offered) - -> **⚠️ Important:** This safe harbour does not extend to third-party systems. Always check their policies before testing. - ---- - -## Recognition - -We believe in recognising security researchers who help us improve. - -### Hall of Fame - -Researchers who report valid vulnerabilities will be acknowledged in our [Security Acknowledgments](SECURITY-ACKNOWLEDGMENTS.md) (unless they prefer anonymity). - -Recognition includes: - -- Your name (or chosen alias) -- Link to your website/profile (optional) -- Brief description of the vulnerability class -- Date of report - -### What We Offer - -- ✅ Public credit in security advisories -- ✅ Acknowledgment in release notes -- ✅ Entry in our Hall of Fame -- ✅ Reference/recommendation letter upon request (for significant findings) - -### What We Don't Currently Offer - -- ❌ Monetary bug bounties -- ❌ Hardware or swag -- ❌ Paid security research contracts - -> **Note:** We're a community project with limited resources. Your contributions help everyone who uses this software. - ---- - -## Security Updates - -### Receiving Updates - -To stay informed about security updates: - -- **Watch this repository**: Click "Watch" → "Custom" → Select "Security alerts" -- **GitHub Security Advisories**: Published at [Security Advisories](https://github.com/{{OWNER}}/{{REPO}}/security/advisories) -- **Release notes**: Security fixes noted in [CHANGELOG](CHANGELOG.md) - -### Update Policy - -| Severity | Response | -|----------|----------| -| **Critical/High** | Patch release as soon as fix is ready | -| **Medium** | Included in next scheduled release (or earlier) | -| **Low** | Included in next scheduled release | - -### Supported Versions - - - -| Version | Supported | Notes | -|---------|-----------|-------| -| `main` branch | ✅ Yes | Latest development | -| Latest release | ✅ Yes | Current stable | -| Previous minor release | ✅ Yes | Security fixes backported | -| Older versions | ❌ No | Please upgrade | - ---- - -## Security Best Practices - -When using {{PROJECT_NAME}}, we recommend: - -### General - -- Keep dependencies up to date -- Use the latest stable release -- Subscribe to security notifications -- Review configuration against security documentation -- Follow principle of least privilege - -### For Contributors - -- Never commit secrets, credentials, or API keys -- Use signed commits (`git config commit.gpgsign true`) -- Review dependencies before adding them -- Run security linters locally before pushing -- Report any concerns about existing code - ---- - -## Additional Resources - -- [Our PGP Public Key]({{PGP_KEY_URL}}) -- [Security Advisories](https://github.com/{{OWNER}}/{{REPO}}/security/advisories) -- [Changelog](CHANGELOG.md) -- [Contributing Guidelines](CONTRIBUTING.md) -- [CVE Database](https://cve.mitre.org/) -- [CVSS Calculator](https://www.first.org/cvss/calculator/3.1) - ---- - -## Contact - -| Purpose | Contact | -|---------|---------| -| **Security issues** | [Report via GitHub](https://github.com/{{OWNER}}/{{REPO}}/security/advisories/new) or {{SECURITY_EMAIL}} | -| **General questions** | [GitHub Discussions](https://github.com/{{OWNER}}/{{REPO}}/discussions) | -| **Other enquiries** | See [README](README.md) for contact information | - ---- - -## Policy Changes - -This security policy may be updated from time to time. Significant changes will be: - -- Committed to this repository with a clear commit message -- Noted in the changelog -- Announced via GitHub Discussions (for major changes) - ---- - -*Thank you for helping keep {{PROJECT_NAME}} and its users safe.* 🛡️ - ---- - -Last updated: {{CURRENT_YEAR}} · Policy version: 1.0.0 diff --git a/a2ml/editors/vscode/.github/SUPPORT b/a2ml/editors/vscode/.github/SUPPORT deleted file mode 100644 index b06c59a37..000000000 --- a/a2ml/editors/vscode/.github/SUPPORT +++ /dev/null @@ -1,7 +0,0 @@ -# Support - -For questions, help, and community discussion: - -- GitHub Discussions: https://github.com/{{OWNER}}/{{REPO}}/discussions -- GitHub Issues: https://github.com/{{OWNER}}/{{REPO}}/issues -- Documentation: See README.adoc in the root directory. diff --git a/a2ml/editors/vscode/.github/copilot-instructions.md b/a2ml/editors/vscode/.github/copilot-instructions.md deleted file mode 100644 index 6b44aec84..000000000 --- a/a2ml/editors/vscode/.github/copilot-instructions.md +++ /dev/null @@ -1,57 +0,0 @@ - - - - -# Copilot Instructions - -## Before Writing Code - -- Read `0-AI-MANIFEST.a2ml` in the repo root for canonical file locations. -- State files (.a2ml) live in `.machine_readable/` ONLY, never the root. - -## License - -- SPDX: `PMPL-1.0-or-later` on all new files. -- Never use AGPL-3.0. -- Copyright: `{{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>` - -## Code Style - -- Use descriptive variable names. -- Annotate and document all files. -- Add SPDX header to every source file. -- Use `just` for build/test/lint commands. - -## Banned Patterns - -- Idris2: no `believe_me`, no `assert_total` -- Haskell: no `unsafeCoerce`, no `unsafePerformIO` -- OCaml: no `Obj.magic` -- Coq: no `Admitted` -- Lean: no `sorry` -- Rust: no `transmute` unless FFI with `// SAFETY:` comment - -## Banned Languages - -- No TypeScript (use ReScript) -- No Node.js / npm / bun (use Deno) -- No Go (use Rust) -- No Python (use Julia or Rust) - -## Containers - -- Use Podman, never Docker. -- Name the file `Containerfile`, never `Dockerfile`. -- Base image: `cgr.dev/chainguard/wolfi-base:latest`. - -## ABI/FFI - -- ABI definitions in Idris2 (`src/interface/abi/`). -- FFI implementations in Zig (`src/interface/ffi/`). -- Generated C headers in `src/interface/generated/`. - -## State Files - -Never create these in the repo root: -STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml, AGENTIC.a2ml, NEUROSYM.a2ml, PLAYBOOK.a2ml. -They belong in `.machine_readable/` only. diff --git a/a2ml/editors/vscode/.github/dependabot.yml b/a2ml/editors/vscode/.github/dependabot.yml deleted file mode 100644 index d5cd4e996..000000000 --- a/a2ml/editors/vscode/.github/dependabot.yml +++ /dev/null @@ -1,48 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Dependabot configuration for RSR-compliant repositories -# Covers common ecosystems - remove unused ones for your project - -version: 2 -updates: - # GitHub Actions - always include - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "weekly" - groups: - actions: - patterns: - - "*" - - # Rust/Cargo - - package-ecosystem: "cargo" - directory: "/" - schedule: - interval: "weekly" - ignore: - - dependency-name: "*" - update-types: ["version-update:semver-patch"] - - # Elixir/Mix - - package-ecosystem: "mix" - directory: "/" - schedule: - interval: "weekly" - - # Node.js/npm - - package-ecosystem: "npm" - directory: "/" - schedule: - interval: "weekly" - - # Python/pip - - package-ecosystem: "pip" - directory: "/" - schedule: - interval: "weekly" - - # Nix flakes - - package-ecosystem: "nix" - directory: "/" - schedule: - interval: "weekly" diff --git a/a2ml/editors/vscode/.github/pull_request_template.md b/a2ml/editors/vscode/.github/pull_request_template.md deleted file mode 100644 index 7e07d1768..000000000 --- a/a2ml/editors/vscode/.github/pull_request_template.md +++ /dev/null @@ -1,44 +0,0 @@ - -## Summary - - - -## Changes - - - -- - -## RSR Quality Checklist - - - -### Required - -- [ ] Tests pass (`just test` or equivalent) -- [ ] Code is formatted (`just fmt` or equivalent) -- [ ] Linter is clean (no new warnings or errors) -- [ ] No banned language patterns (no TypeScript, no npm/bun, no Go/Python) -- [ ] No `unsafe` blocks without `// SAFETY:` comments -- [ ] No banned functions (`believe_me`, `unsafeCoerce`, `Obj.magic`, `Admitted`, `sorry`) -- [ ] SPDX license headers present on all new/modified source files -- [ ] No secrets, credentials, or `.env` files included - -### As Applicable - -- [ ] `.machine_readable/STATE.a2ml` updated (if project state changed) -- [ ] `.machine_readable/ECOSYSTEM.a2ml` updated (if integrations changed) -- [ ] `.machine_readable/META.a2ml` updated (if architectural decisions changed) -- [ ] Documentation updated for user-facing changes -- [ ] `TOPOLOGY.md` updated (if architecture changed) -- [ ] `CHANGELOG` or release notes updated -- [ ] New dependencies reviewed for license compatibility (PMPL-1.0-or-later / MPL-2.0) -- [ ] ABI/FFI changes validated (`src/interface/abi/` and `src/interface/ffi/` consistent) - -## Testing - - - -## Screenshots - - diff --git a/a2ml/editors/vscode/.github/workflows/codeql.yml b/a2ml/editors/vscode/.github/workflows/codeql.yml deleted file mode 100644 index de07c8f32..000000000 --- a/a2ml/editors/vscode/.github/workflows/codeql.yml +++ /dev/null @@ -1,23 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: CodeQL Security Analysis - -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] - schedule: - - cron: '0 6 * * 1' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: false - -permissions: - contents: read - -jobs: - analyze-js: - uses: ../../../.github/workflows/codeql-reusable.yml - with: - language: javascript-typescript diff --git a/a2ml/editors/vscode/.github/workflows/governance.yml b/a2ml/editors/vscode/.github/workflows/governance.yml deleted file mode 100644 index f5f282ccc..000000000 --- a/a2ml/editors/vscode/.github/workflows/governance.yml +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# governance.yml — single wrapper calling the shared estate governance bundle -# in hyperpolymath/standards instead of carrying per-repo copies. -# -# Replaces the per-repo governance scaffolding removed in the same commit: -# quality.yml, guix-nix-policy.yml, npm-bun-blocker.yml, ts-blocker.yml, -# security-policy.yml, rsr-antipattern.yml, wellknown-enforcement.yml, -# workflow-linter.yml -# -# Load-bearing build/security workflows stay standalone in the repo -# (rust-ci, codeql, dependabot, release, scan/mirror/pages plumbing). - -name: Governance - -on: - push: - branches: [main, master] - pull_request: - workflow_dispatch: - -permissions: - actions: read - contents: read - -jobs: - governance: - uses: ../../../.github/workflows/governance-reusable.yml diff --git a/a2ml/editors/vscode/.github/workflows/hypatia-scan.yml b/a2ml/editors/vscode/.github/workflows/hypatia-scan.yml deleted file mode 100644 index f120579d4..000000000 --- a/a2ml/editors/vscode/.github/workflows/hypatia-scan.yml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Hypatia Security Scan - -on: - push: - branches: [main, master, develop] - pull_request: - branches: [main, master] - schedule: - - cron: '0 0 * * 0' - workflow_dispatch: - -permissions: - actions: read - contents: read - security-events: write - -jobs: - scan: - uses: ../../../.github/workflows/hypatia-scan-reusable.yml - secrets: inherit diff --git a/a2ml/editors/vscode/.github/workflows/jekyll.yml b/a2ml/editors/vscode/.github/workflows/jekyll.yml deleted file mode 100644 index 32e00a9f9..000000000 --- a/a2ml/editors/vscode/.github/workflows/jekyll.yml +++ /dev/null @@ -1,68 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -# Sample workflow for building and deploying a Jekyll site to GitHub Pages -name: Deploy Jekyll site to Pages - -on: - # Runs on pushes targeting the default branch - push: - branches: ["main"] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - # Build job - build: - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Setup Ruby - # https://github.com/ruby/setup-ruby/releases/tag/v1.207.0 - uses: ruby/setup-ruby@09a7688d3b55cf0e976497ff046b70949eeaccfd # v1.207.0 - with: - ruby-version: '3.1' # Not needed with a .ruby-version file - bundler-cache: true # runs 'bundle install' and caches installed gems automatically - cache-version: 0 # Increment this number if you need to re-download cached gems - - name: Setup Pages - id: pages - uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5 - - name: Build with Jekyll - # Outputs to the './_site' directory by default - run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" - env: - JEKYLL_ENV: production - - name: Upload artifact - # Automatically uploads an artifact from the './_site' directory by default - uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4 - - # Deployment job - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - timeout-minutes: 30 - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4 diff --git a/a2ml/editors/vscode/.github/workflows/mirror.yml b/a2ml/editors/vscode/.github/workflows/mirror.yml deleted file mode 100644 index a20ae7da7..000000000 --- a/a2ml/editors/vscode/.github/workflows/mirror.yml +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Mirror to Git Forges - -on: - push: - branches: [main] - workflow_dispatch: - -permissions: - contents: read - -jobs: - mirror: - uses: ../../../.github/workflows/mirror-reusable.yml - secrets: inherit diff --git a/a2ml/editors/vscode/.github/workflows/release.yml b/a2ml/editors/vscode/.github/workflows/release.yml deleted file mode 100644 index df3992277..000000000 --- a/a2ml/editors/vscode/.github/workflows/release.yml +++ /dev/null @@ -1,131 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# Release workflow — triggered by version tags (v*). -# Builds artifacts, generates changelog via git-cliff, creates a GitHub Release, -# and produces SLSA provenance attestations. -name: Release - -on: - push: - tags: - - 'v*' - -permissions: read-all - -jobs: - build: - name: Build Artifacts - runs-on: ubuntu-latest - timeout-minutes: 30 - permissions: - contents: read - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - - name: Build - run: | - echo "Build your artifacts here" - # TODO: Replace with your build commands - # Examples: - # cargo build --release - # zig build -Doptimize=ReleaseFast - # gleam build - # mix release - - # TODO: Upload build artifacts if needed - # - uses: actions/upload-artifact@v4 - # with: - # name: release-artifacts - # path: target/release/ - - changelog: - name: Generate Changelog - runs-on: ubuntu-latest - timeout-minutes: 20 - permissions: - contents: read - outputs: - changelog: ${{ steps.cliff.outputs.content }} - version: ${{ steps.version.outputs.version }} - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - fetch-depth: 0 - - - name: Extract version from tag - id: version - run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT" - - - name: Install git-cliff - run: | - curl -sSfL https://github.com/orhun/git-cliff/releases/latest/download/git-cliff-$(uname -m)-unknown-linux-gnu.tar.gz \ - | tar -xz --strip-components=1 -C /usr/local/bin/ git-cliff-*/git-cliff - - - name: Generate changelog for this release - id: cliff - run: | - # Generate changelog for the current tag only - CHANGELOG=$(git cliff --latest --strip header) - # Write to output using delimiter to handle multiline - { - echo "content<> "$GITHUB_OUTPUT" - - - name: Update full CHANGELOG.md - run: | - git cliff --output CHANGELOG.md - - - name: Upload updated CHANGELOG.md - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - with: - name: changelog - path: CHANGELOG.md - retention-days: 5 - - release: - name: Create GitHub Release - needs: [build, changelog] - runs-on: ubuntu-latest - timeout-minutes: 30 - permissions: - contents: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - # TODO: Download build artifacts if uploading to the release - # - uses: actions/download-artifact@v4 - # with: - # name: release-artifacts - # path: artifacts/ - - - name: Create GitHub Release - uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2 - with: - body: ${{ needs.changelog.outputs.changelog }} - draft: false - prerelease: ${{ contains(github.ref_name, '-rc') || contains(github.ref_name, '-beta') || contains(github.ref_name, '-alpha') }} - generate_release_notes: false - # TODO: Add artifact files to the release - # files: | - # artifacts/* - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - provenance: - name: SLSA Provenance - needs: [build] - permissions: - actions: read - id-token: write - contents: write - # SLSA generator must run in a separate, isolated workflow - # See: https://slsa.dev/spec/v1.0/requirements#build-l3 - uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@f7dd8c54c2067bafc12ca7a55595d5ee9b75204a # v2.1.0 - with: - base64-subjects: "" - # TODO: Replace with actual artifact hashes - # Generate with: sha256sum artifact | base64 -w0 - # base64-subjects: "${{ needs.build.outputs.hashes }}" diff --git a/a2ml/editors/vscode/.github/workflows/rhodibot.yml b/a2ml/editors/vscode/.github/workflows/rhodibot.yml deleted file mode 100644 index 87dcad859..000000000 --- a/a2ml/editors/vscode/.github/workflows/rhodibot.yml +++ /dev/null @@ -1,235 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# rhodibot.yml — Automated RSR compliance enforcement -# -# Reads root-hygiene rules and auto-fixes what it can: -# - Delete banned files (AI.djot, duplicate CONTRIBUTING.adoc, stale snapshots) -# - Rename misnamed files (AI.a2ml → 0-AI-MANIFEST.a2ml) -# - Fix SPDX headers (AGPL → PMPL in dotfiles) -# - Create missing required files (SECURITY.md, CONTRIBUTING.md) -# - Report unfixable issues as PR comments -# -# Runs weekly and on Hypatia scan completion. - -name: "🤖 Rhodibot — RSR Auto-Fix" - -on: - schedule: - - cron: '0 6 * * 1' # Every Monday at 06:00 UTC - workflow_dispatch: # Manual trigger - workflow_run: - workflows: ["Hypatia Neurosymbolic Analysis"] - types: [completed] - -permissions: - contents: write - pull-requests: write - -jobs: - rhodibot: - runs-on: ubuntu-latest - timeout-minutes: 20 - steps: - - name: Checkout - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - with: - fetch-depth: 1 - - - name: Rhodibot — Scan and Fix - id: fix - run: | - set -euo pipefail - FIXES="" - ISSUES="" - CHANGED=false - - # --- 1. Delete banned files --- - for pattern in "AI.djot" "NEXT_STEPS.md" "TODO.md" "NOTES.md" "TASKS.md"; do - if [ -f "$pattern" ]; then - rm "$pattern" - FIXES="$FIXES\n- Deleted \`$pattern\` (superseded)" - CHANGED=true - fi - done - - # Delete stale snapshot files - for f in *-STATUS-*.md *-COMPLETION-*.md *-COMPLETE.md *-VERIFIED-*.md; do - if [ -f "$f" ]; then - rm "$f" - FIXES="$FIXES\n- Deleted stale snapshot \`$f\`" - CHANGED=true - fi - done - - # --- 2. Rename misnamed files --- - if [ -f "AI.a2ml" ] && [ ! -f "0-AI-MANIFEST.a2ml" ]; then - mv AI.a2ml 0-AI-MANIFEST.a2ml - FIXES="$FIXES\n- Renamed \`AI.a2ml\` → \`0-AI-MANIFEST.a2ml\`" - CHANGED=true - fi - - # --- 3. Delete duplicate format files --- - if [ -f "CONTRIBUTING.md" ] && [ -f "CONTRIBUTING.adoc" ]; then - rm CONTRIBUTING.adoc - FIXES="$FIXES\n- Deleted duplicate \`CONTRIBUTING.adoc\` (keeping .md for GitHub)" - CHANGED=true - fi - - if [ -f "README.md" ] && [ -f "README.adoc" ]; then - # Only delete README.md if it's a stub (<5 lines) - lines=$(wc -l < README.md) - if [ "$lines" -lt 5 ]; then - rm README.md - FIXES="$FIXES\n- Deleted stub \`README.md\` (keeping .adoc)" - CHANGED=true - fi - fi - - # --- 4. Fix SPDX headers in dotfiles --- - for dotfile in .gitignore .gitattributes .editorconfig; do - if [ -f "$dotfile" ] && grep -q "AGPL-3.0" "$dotfile" 2>/dev/null; then - sed -i 's/AGPL-3.0-or-later/PMPL-1.0-or-later/g; s/AGPL-3.0/PMPL-1.0-or-later/g' "$dotfile" - FIXES="$FIXES\n- Fixed SPDX header in \`$dotfile\` (AGPL → PMPL)" - CHANGED=true - fi - done - - # --- 5. Create missing required files --- - if [ ! -f "SECURITY.md" ]; then - cat > SECURITY.md << 'SECEOF' - - # Security Policy - - ## Reporting a Vulnerability - - **Email:** j.d.a.jewell@open.ac.uk - - **Response timeline:** - - Acknowledgement within 48 hours - - Initial assessment within 7 days - - Fix or mitigation within 90 days - - **Safe harbour:** We will not pursue legal action against security researchers who follow responsible disclosure. - SECEOF - FIXES="$FIXES\n- Created missing \`SECURITY.md\`" - CHANGED=true - fi - - if [ ! -f "CONTRIBUTING.md" ]; then - cat > CONTRIBUTING.md << 'CONTEOF' - - # Contributing - - 1. Fork the repository - 2. Create a feature branch - 3. Ensure SPDX headers on all files - 4. Submit a pull request - - **Author:** Jonathan D.A. Jewell - CONTEOF - FIXES="$FIXES\n- Created missing \`CONTRIBUTING.md\`" - CHANGED=true - fi - - # --- 6. Check for issues we can't auto-fix --- - if [ ! -f "0-AI-MANIFEST.a2ml" ] && [ ! -f "AI.a2ml" ]; then - ISSUES="$ISSUES\n- Missing AI manifest (0-AI-MANIFEST.a2ml)" - fi - - if [ ! -f "LICENSE" ] && [ ! -f "LICENSE.md" ] && [ ! -f "LICENSE.txt" ]; then - ISSUES="$ISSUES\n- Missing LICENSE file" - fi - - if [ ! -f "README.adoc" ] && [ ! -f "README.md" ]; then - ISSUES="$ISSUES\n- Missing README" - fi - - # Check for third-party fork (skip SPDX enforcement) - if [ -f "LICENSE" ] && grep -q "multiple licenses\|LGPL\|Apache" LICENSE 2>/dev/null; then - echo "FORK=true" >> $GITHUB_OUTPUT - fi - - # --- 7. Check dangerous patterns --- - DANGEROUS="" - for pattern in "believe_me" "assert_total" "Admitted" "sorry" "unsafeCoerce" "Obj.magic"; do - count=$(grep -r "$pattern" --include='*.idr' --include='*.v' --include='*.lean' --include='*.hs' --include='*.ml' --include='*.res' . 2>/dev/null | grep -v node_modules | wc -l || echo 0) - if [ "$count" -gt 0 ]; then - DANGEROUS="$DANGEROUS\n- \`$pattern\`: $count occurrences" - fi - done - - # Output results - echo "CHANGED=$CHANGED" >> $GITHUB_OUTPUT - { - echo "FIXES<> $GITHUB_OUTPUT - { - echo "ISSUES<> $GITHUB_OUTPUT - { - echo "DANGEROUS<> $GITHUB_OUTPUT - - - name: Create PR with fixes - if: steps.fix.outputs.CHANGED == 'true' - run: | - git config user.name "rhodibot" - git config user.email "rhodibot@hyperpolymath.dev" - BRANCH="rhodibot/rsr-compliance-$(date +%Y%m%d)" - git checkout -b "$BRANCH" - git add -A - git commit -m "fix(rhodibot): automated RSR compliance fixes - - ${{ steps.fix.outputs.FIXES }} - - Co-Authored-By: rhodibot " - - git push origin "$BRANCH" - - BODY="## 🤖 Rhodibot — RSR Compliance Fixes - - ### Changes Made - ${{ steps.fix.outputs.FIXES }} - " - - if [ -n "${{ steps.fix.outputs.ISSUES }}" ]; then - BODY="$BODY - ### Issues Found (manual fix needed) - ${{ steps.fix.outputs.ISSUES }} - " - fi - - if [ -n "${{ steps.fix.outputs.DANGEROUS }}" ]; then - BODY="$BODY - ### ⚠️ Dangerous Patterns Detected - ${{ steps.fix.outputs.DANGEROUS }} - - _These bypass formal verification. See \`proven\` repo for alternatives._ - " - fi - - gh pr create \ - --title "🤖 Rhodibot: RSR compliance fixes" \ - --body "$BODY" \ - --base main \ - --head "$BRANCH" - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Report (no changes needed) - if: steps.fix.outputs.CHANGED != 'true' - run: | - echo "✅ Repository is RSR-compliant. No fixes needed." - if [ -n "${{ steps.fix.outputs.ISSUES }}" ]; then - echo "⚠️ Issues found (manual fix needed):" - echo -e "${{ steps.fix.outputs.ISSUES }}" - fi - if [ -n "${{ steps.fix.outputs.DANGEROUS }}" ]; then - echo "⚠️ Dangerous patterns:" - echo -e "${{ steps.fix.outputs.DANGEROUS }}" - fi diff --git a/a2ml/editors/vscode/.github/workflows/scorecard-enforcer.yml b/a2ml/editors/vscode/.github/workflows/scorecard-enforcer.yml deleted file mode 100644 index bbba795b7..000000000 --- a/a2ml/editors/vscode/.github/workflows/scorecard-enforcer.yml +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Prevention workflow - runs OpenSSF Scorecard and fails on low scores -name: OpenSSF Scorecard Enforcer - -on: - push: - branches: [main] - schedule: - - cron: '0 6 * * 1' - workflow_dispatch: - -permissions: - contents: read - -jobs: - scorecard: - uses: ../../../.github/workflows/scorecard-reusable.yml diff --git a/a2ml/editors/vscode/.github/workflows/scorecard.yml b/a2ml/editors/vscode/.github/workflows/scorecard.yml deleted file mode 100644 index d665a836d..000000000 --- a/a2ml/editors/vscode/.github/workflows/scorecard.yml +++ /dev/null @@ -1,24 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: OSSF Scorecard - -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] - schedule: - - cron: '0 4 * * *' - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - actions: read - contents: read - -jobs: - scorecard: - uses: ../../../.github/workflows/scorecard-reusable.yml - secrets: inherit diff --git a/a2ml/editors/vscode/.github/workflows/secret-scanner.yml b/a2ml/editors/vscode/.github/workflows/secret-scanner.yml deleted file mode 100644 index 82b3c70ed..000000000 --- a/a2ml/editors/vscode/.github/workflows/secret-scanner.yml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Secret Scanner - -on: - pull_request: - push: - branches: [main] - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - scan: - permissions: - contents: read - uses: ../../../.github/workflows/secret-scanner-reusable.yml - secrets: inherit diff --git a/a2ml/editors/vscode/.github/workflows/static-analysis-gate.yml b/a2ml/editors/vscode/.github/workflows/static-analysis-gate.yml deleted file mode 100644 index 235af7f72..000000000 --- a/a2ml/editors/vscode/.github/workflows/static-analysis-gate.yml +++ /dev/null @@ -1,331 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Static Analysis Gate — Required by branch protection rules. -# Runs panic-attack and hypatia, deposits findings for gitbot-fleet learning. -name: Static Analysis Gate - -on: - pull_request: - branches: ['**'] - push: - branches: [main, master] - -permissions: read-all - -jobs: - # --------------------------------------------------------------------------- - # Job 1: panic-attack assail - # --------------------------------------------------------------------------- - panic-attack-assail: - name: panic-attack assail - runs-on: ubuntu-latest - timeout-minutes: 20 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - fetch-depth: 0 - - - name: Install panic-attack (if available) - id: install - run: | - # Try to fetch the latest release binary from the org - PA_URL="https://github.com/hyperpolymath/panic-attack/releases/latest/download/panic-attack-linux-x86_64" - if curl -fsSL --head "$PA_URL" >/dev/null 2>&1; then - curl -fsSL -o /usr/local/bin/panic-attack "$PA_URL" - chmod +x /usr/local/bin/panic-attack - echo "installed=true" >> "$GITHUB_OUTPUT" - else - echo "::notice::panic-attack binary not available — skipping assail" - echo "installed=false" >> "$GITHUB_OUTPUT" - fi - - - name: Run panic-attack assail - id: assail - if: steps.install.outputs.installed == 'true' - run: | - set +e - panic-attack assail --format json . > panic-attack-findings.json 2>&1 - PA_EXIT=$? - set -e - - if [ ! -s panic-attack-findings.json ]; then - echo "[]" > panic-attack-findings.json - fi - - # Parse finding counts - TOTAL=$(jq '. | length' panic-attack-findings.json 2>/dev/null || echo 0) - CRITICAL=$(jq '[.[] | select(.severity == "critical")] | length' panic-attack-findings.json 2>/dev/null || echo 0) - HIGH=$(jq '[.[] | select(.severity == "high")] | length' panic-attack-findings.json 2>/dev/null || echo 0) - MEDIUM=$(jq '[.[] | select(.severity == "medium")] | length' panic-attack-findings.json 2>/dev/null || echo 0) - LOW=$(jq '[.[] | select(.severity == "low")] | length' panic-attack-findings.json 2>/dev/null || echo 0) - - echo "total=$TOTAL" >> "$GITHUB_OUTPUT" - echo "critical=$CRITICAL" >> "$GITHUB_OUTPUT" - echo "high=$HIGH" >> "$GITHUB_OUTPUT" - echo "medium=$MEDIUM" >> "$GITHUB_OUTPUT" - echo "low=$LOW" >> "$GITHUB_OUTPUT" - echo "exit_code=$PA_EXIT" >> "$GITHUB_OUTPUT" - - - name: Emit check annotations - if: steps.install.outputs.installed == 'true' - run: | - # Convert JSON findings into GitHub Actions annotations - jq -r '.[] | select(.file != null) | - if .severity == "critical" then - "::error file=\(.file),line=\(.line // 1)::[panic-attack] \(.message)" - elif .severity == "high" then - "::error file=\(.file),line=\(.line // 1)::[panic-attack] \(.message)" - else - "::warning file=\(.file),line=\(.line // 1)::[panic-attack] \(.message)" - end - ' panic-attack-findings.json || true - - - name: Write step summary - if: steps.install.outputs.installed == 'true' - run: | - cat <> "$GITHUB_STEP_SUMMARY" - ## panic-attack assail Results - - | Severity | Count | - |----------|-------| - | Critical | ${{ steps.assail.outputs.critical }} | - | High | ${{ steps.assail.outputs.high }} | - | Medium | ${{ steps.assail.outputs.medium }} | - | Low | ${{ steps.assail.outputs.low }} | - | **Total**| ${{ steps.assail.outputs.total }} | - EOF - - - name: Create stub findings (when panic-attack unavailable) - if: steps.install.outputs.installed != 'true' - run: | - echo "[]" > panic-attack-findings.json - echo "## panic-attack assail" >> "$GITHUB_STEP_SUMMARY" - echo "" >> "$GITHUB_STEP_SUMMARY" - echo "Skipped: panic-attack not available in this environment." >> "$GITHUB_STEP_SUMMARY" - - - name: Upload panic-attack findings - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 - with: - name: panic-attack-findings - path: panic-attack-findings.json - retention-days: 90 - - - name: Fail on critical findings - if: steps.install.outputs.installed == 'true' && steps.assail.outputs.critical > 0 - run: | - echo "::error::panic-attack found ${{ steps.assail.outputs.critical }} critical issue(s) — blocking merge" - exit 1 - - # --------------------------------------------------------------------------- - # Job 2: hypatia-scan - # --------------------------------------------------------------------------- - hypatia-scan: - name: Hypatia neurosymbolic scan - runs-on: ubuntu-latest - timeout-minutes: 20 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - fetch-depth: 0 - - - name: Setup Elixir for Hypatia scanner - id: beam - continue-on-error: true - uses: erlef/setup-beam@e6d7c94229049569db56a7ad5a540c051a010af9 # v1.18.2 - with: - elixir-version: '1.19.4' - otp-version: '28.3' - - - name: Clone and build Hypatia - id: build - continue-on-error: true - run: | - git clone https://github.com/hyperpolymath/hypatia.git "$HOME/hypatia" 2>/dev/null || true - if [ -d "$HOME/hypatia/scanner" ]; then - cd "$HOME/hypatia" - if [ ! -f hypatia-v2 ]; then - mix deps.get - mix escript.build - mv hypatia ../hypatia-v2 - fi - echo "ready=true" >> "$GITHUB_OUTPUT" - else - echo "::notice::Hypatia scanner not available — skipping scan" - echo "ready=false" >> "$GITHUB_OUTPUT" - fi - - - name: Run Hypatia scan - id: scan - if: steps.build.outputs.ready == 'true' - run: | - set +e - HYPATIA_FORMAT=json "$HOME/hypatia/hypatia-cli.sh" scan . > hypatia-findings.json 2>&1 - HYP_EXIT=$? - set -e - - if [ ! -s hypatia-findings.json ] || ! jq empty hypatia-findings.json 2>/dev/null; then - echo "[]" > hypatia-findings.json - fi - - TOTAL=$(jq '. | length' hypatia-findings.json 2>/dev/null || echo 0) - CRITICAL=$(jq '[.[] | select(.severity == "critical")] | length' hypatia-findings.json 2>/dev/null || echo 0) - HIGH=$(jq '[.[] | select(.severity == "high")] | length' hypatia-findings.json 2>/dev/null || echo 0) - MEDIUM=$(jq '[.[] | select(.severity == "medium")] | length' hypatia-findings.json 2>/dev/null || echo 0) - LOW=$(jq '[.[] | select(.severity == "low")] | length' hypatia-findings.json 2>/dev/null || echo 0) - - echo "total=$TOTAL" >> "$GITHUB_OUTPUT" - echo "critical=$CRITICAL" >> "$GITHUB_OUTPUT" - echo "high=$HIGH" >> "$GITHUB_OUTPUT" - echo "medium=$MEDIUM" >> "$GITHUB_OUTPUT" - echo "low=$LOW" >> "$GITHUB_OUTPUT" - - - name: Emit check annotations - if: steps.build.outputs.ready == 'true' - run: | - jq -r '.[] | select(.file != null) | - if .severity == "critical" then - "::error file=\(.file),line=\(.line // 1)::[hypatia] \(.message)" - elif .severity == "high" then - "::error file=\(.file),line=\(.line // 1)::[hypatia] \(.message)" - else - "::warning file=\(.file),line=\(.line // 1)::[hypatia] \(.message)" - end - ' hypatia-findings.json || true - - - name: Write step summary - if: steps.build.outputs.ready == 'true' - run: | - cat <> "$GITHUB_STEP_SUMMARY" - ## Hypatia Scan Results - - | Severity | Count | - |----------|-------| - | Critical | ${{ steps.scan.outputs.critical }} | - | High | ${{ steps.scan.outputs.high }} | - | Medium | ${{ steps.scan.outputs.medium }} | - | Low | ${{ steps.scan.outputs.low }} | - | **Total**| ${{ steps.scan.outputs.total }} | - EOF - - - name: Create stub findings (when Hypatia unavailable) - if: steps.build.outputs.ready != 'true' - run: | - echo "[]" > hypatia-findings.json - echo "## Hypatia Scan" >> "$GITHUB_STEP_SUMMARY" - echo "" >> "$GITHUB_STEP_SUMMARY" - echo "Skipped: Hypatia scanner not available in this environment." >> "$GITHUB_STEP_SUMMARY" - - - name: Upload hypatia findings - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 - with: - name: hypatia-findings - path: hypatia-findings.json - retention-days: 90 - - - name: Fail on critical security findings - if: steps.build.outputs.ready == 'true' && steps.scan.outputs.critical > 0 - run: | - echo "::error::Hypatia found ${{ steps.scan.outputs.critical }} critical security issue(s) — blocking merge" - exit 1 - - # --------------------------------------------------------------------------- - # Job 3: deposit-findings (combines + archives for gitbot-fleet) - # --------------------------------------------------------------------------- - deposit-findings: - name: Deposit findings for gitbot-fleet - runs-on: ubuntu-latest - timeout-minutes: 20 - needs: [panic-attack-assail, hypatia-scan] - if: always() - - steps: - - name: Download panic-attack findings - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 - with: - name: panic-attack-findings - path: findings/ - - - name: Download hypatia findings - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 - with: - name: hypatia-findings - path: findings/ - - - name: Combine findings into unified report - id: combine - run: | - PA_FILE="findings/panic-attack-findings.json" - HYP_FILE="findings/hypatia-findings.json" - - # Ensure both files exist and are valid JSON arrays - for f in "$PA_FILE" "$HYP_FILE"; do - if [ ! -s "$f" ] || ! jq empty "$f" 2>/dev/null; then - echo "[]" > "$f" - fi - done - - # Tag each finding with its source scanner - jq '[.[] | . + {"scanner": "panic-attack"}]' "$PA_FILE" > /tmp/pa-tagged.json - jq '[.[] | . + {"scanner": "hypatia"}]' "$HYP_FILE" > /tmp/hyp-tagged.json - - # Build unified report envelope - jq -n \ - --arg repo "${{ github.repository }}" \ - --arg sha "${{ github.sha }}" \ - --arg ref "${{ github.ref }}" \ - --arg run_id "${{ github.run_id }}" \ - --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \ - --slurpfile pa /tmp/pa-tagged.json \ - --slurpfile hyp /tmp/hyp-tagged.json \ - '{ - schema_version: "1.0.0", - repository: $repo, - commit_sha: $sha, - ref: $ref, - run_id: $run_id, - timestamp: $ts, - findings: ($pa[0] + $hyp[0]) - }' > findings/unified-findings.json - - TOTAL=$(jq '.findings | length' findings/unified-findings.json) - CRITICAL=$(jq '[.findings[] | select(.severity == "critical")] | length' findings/unified-findings.json) - HIGH=$(jq '[.findings[] | select(.severity == "high")] | length' findings/unified-findings.json) - MEDIUM=$(jq '[.findings[] | select(.severity == "medium")] | length' findings/unified-findings.json) - LOW=$(jq '[.findings[] | select(.severity == "low")] | length' findings/unified-findings.json) - - echo "total=$TOTAL" >> "$GITHUB_OUTPUT" - echo "critical=$CRITICAL" >> "$GITHUB_OUTPUT" - echo "high=$HIGH" >> "$GITHUB_OUTPUT" - echo "medium=$MEDIUM" >> "$GITHUB_OUTPUT" - echo "low=$LOW" >> "$GITHUB_OUTPUT" - - - name: Upload unified findings (fleet scanner picks these up) - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 - with: - name: unified-findings - path: findings/unified-findings.json - retention-days: 90 - - - name: Write deposit summary - run: | - cat <> "$GITHUB_STEP_SUMMARY" - ## Unified Findings Deposit - - **Repository:** ${{ github.repository }} - **Commit:** \`${{ github.sha }}\` - **Deposited at:** $(date -u +"%Y-%m-%d %H:%M:%S UTC") - - | Severity | Count | - |----------|-------| - | Critical | ${{ steps.combine.outputs.critical }} | - | High | ${{ steps.combine.outputs.high }} | - | Medium | ${{ steps.combine.outputs.medium }} | - | Low | ${{ steps.combine.outputs.low }} | - | **Total**| ${{ steps.combine.outputs.total }} | - - Findings saved as \`unified-findings\` artifact. - The gitbot-fleet scanner will ingest these on its next pass. - EOF \ No newline at end of file diff --git a/a2ml/editors/vscode/.gitignore b/a2ml/editors/vscode/.gitignore deleted file mode 100644 index 037efd362..000000000 --- a/a2ml/editors/vscode/.gitignore +++ /dev/null @@ -1,105 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# RSR-compliant .gitignore - -# OS & Editor -.DS_Store -Thumbs.db -*.swp -*.swo -*~ -.idea/ -.vscode/ -.direnv/ - -# Build -/target/ -/_build/ -/build/ -/dist/ -/out/ - -# Dependencies -/node_modules/ -/vendor/ -/deps/ -/.elixir_ls/ - -# Rust -# Cargo.lock # Keep for binaries - -# Elixir -/cover/ -/doc/ -*.ez -erl_crash.dump - -# Julia -*.jl.cov -*.jl.mem -/Manifest.toml - -# ReScript -/lib/bs/ -/.bsb.lock - -# Python (SaltStack only) -__pycache__/ -*.py[cod] -.venv/ - -# Ada/SPARK -*.ali -/obj/ -/bin/ - -# Nix -# flake.lock is ignored in the template repo because each project should -# generate its own lock file on first use. In derived projects, REMOVE this -# line and track flake.lock for reproducible builds. -flake.lock - -# Haskell -/.stack-work/ -/dist-newstyle/ - -# Chapel -*.chpl.tmp.* - -# Secrets -.env -.env.* -*.pem -*.key -secrets/ - -# Test/Coverage -/coverage/ -htmlcov/ - -# Logs -*.log -/logs/ - -# Maintenance local artifacts -.maintenance-perms-state.tsv -docs/reports/maintenance/*.json - -# Machine-readable locks -.machine_readable/.locks/ - -# Temp -/tmp/ -*.tmp -*.bak - -# Crash recovery artifacts -ai-cli-crash-capture/ - -# KDE metadata -.directory - -# Sync artifacts -sync_report*.txt - -# Hypatia scan cache (local-only) -.hypatia/ diff --git a/a2ml/editors/vscode/.gitlab-ci.yml b/a2ml/editors/vscode/.gitlab-ci.yml deleted file mode 100644 index 7309fa900..000000000 --- a/a2ml/editors/vscode/.gitlab-ci.yml +++ /dev/null @@ -1,175 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Primary CI/CD - GitLab is the source of truth - -stages: - - security - - lint - - test - - build - -variables: - CARGO_HOME: ${CI_PROJECT_DIR}/.cargo - -cache: - key: ${CI_COMMIT_REF_SLUG} - paths: - - .cargo/ - - target/ - -# ================== -# Security Scanning -# ================== - -trivy: - stage: security - image: aquasec/trivy:latest - script: - - trivy fs --exit-code 0 --severity HIGH,CRITICAL --format table . - - trivy fs --exit-code 1 --severity CRITICAL . - allow_failure: false - -gitleaks: - stage: security - image: zricethezav/gitleaks:latest - script: - - gitleaks detect --source . --verbose --redact - allow_failure: false - -semgrep: - stage: security - image: returntocorp/semgrep - script: - - semgrep --config auto --error . - allow_failure: true - -cargo-audit: - stage: security - image: rust:latest - script: - - cargo install cargo-audit - - cargo audit - rules: - - exists: - - Cargo.toml - -cargo-deny: - stage: security - image: rust:latest - script: - - cargo install cargo-deny - - cargo deny check - rules: - - exists: - - Cargo.toml - allow_failure: true - -mix-audit: - stage: security - image: elixir:latest - script: - - mix local.hex --force - - mix archive.install hex mix_audit --force - - mix deps.get - - mix deps.audit - rules: - - exists: - - mix.exs - allow_failure: true - -# ================== -# Linting -# ================== - -rustfmt: - stage: lint - image: rust:latest - script: - - rustup component add rustfmt - - cargo fmt -- --check - rules: - - exists: - - Cargo.toml - -clippy: - stage: lint - image: rust:latest - script: - - rustup component add clippy - - cargo clippy -- -D warnings - rules: - - exists: - - Cargo.toml - allow_failure: true - -mix-format: - stage: lint - image: elixir:latest - script: - - mix format --check-formatted - rules: - - exists: - - mix.exs - -credo: - stage: lint - image: elixir:latest - script: - - mix local.hex --force - - mix deps.get - - mix credo --strict - rules: - - exists: - - mix.exs - allow_failure: true - -# ================== -# Testing -# ================== - -cargo-test: - stage: test - image: rust:latest - script: - - cargo test --all-features - rules: - - exists: - - Cargo.toml - -mix-test: - stage: test - image: elixir:latest - script: - - mix local.hex --force - - mix deps.get - - mix test - rules: - - exists: - - mix.exs - -# ================== -# Build -# ================== - -cargo-build: - stage: build - image: rust:latest - script: - - cargo build --release - artifacts: - paths: - - target/release/ - expire_in: 1 week - rules: - - exists: - - Cargo.toml - -mix-build: - stage: build - image: elixir:latest - script: - - mix local.hex --force - - mix deps.get - - MIX_ENV=prod mix compile - rules: - - exists: - - mix.exs diff --git a/a2ml/editors/vscode/.guix-channel b/a2ml/editors/vscode/.guix-channel deleted file mode 100644 index f9bdf68fa..000000000 --- a/a2ml/editors/vscode/.guix-channel +++ /dev/null @@ -1,22 +0,0 @@ -;; SPDX-License-Identifier: MPL-2.0 -;; Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -;; -;; Guix channel definition for {{PROJECT_NAME}} -;; -;; To use this channel, add to ~/.config/guix/channels.scm: -;; -;; (channel -;; (name '{{PROJECT_NAME}}) -;; (url "https://github.com/{{OWNER}}/{{PROJECT_NAME}}") -;; (branch "main")) -;; -;; Then: guix pull - -(channel - (version 0) - (url "https://github.com/{{OWNER}}/{{PROJECT_NAME}}") - (dependencies - (channel - (name 'guix) - (url "https://git.savannah.gnu.org/git/guix.git") - (branch "master")))) diff --git a/a2ml/editors/vscode/.machine_readable/0.1-AI-MANIFEST.a2ml b/a2ml/editors/vscode/.machine_readable/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index 9d2bc7a07..000000000 --- a/a2ml/editors/vscode/.machine_readable/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1,29 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "machine-readable-pillar" -level: 1 -parent: "../0-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Registry for all machine-readable metadata, policies, and internal - automation scripts. - -canonical_locations: - state: "STATE.a2ml" - meta: "META.a2ml" - ecosystem: "ECOSYSTEM.a2ml" - agentic: "AGENTIC.a2ml" - neurosym: "NEUROSYM.a2ml" - playbook: "PLAYBOOK.a2ml" - anchors: "anchors/" - policies: "policies/" - ai_configs: "ai/" - compliance: "compliance/" - scripts: "scripts/" - -invariants: - - "Metadata files MUST follow a2ml format" - - "Internal automation MUST live in scripts/ subfolder" diff --git a/a2ml/editors/vscode/.machine_readable/CLADE.a2ml b/a2ml/editors/vscode/.machine_readable/CLADE.a2ml deleted file mode 100644 index b14389cef..000000000 --- a/a2ml/editors/vscode/.machine_readable/CLADE.a2ml +++ /dev/null @@ -1,26 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Clade declaration — part of the gv-clade-index registry -# See: https://github.com/hyperpolymath/gv-clade-index - -[identity] -uuid = "a5ea1382-a34c-5334-8a46-a2ebe904c810" -primary-forge = "github" -primary-owner = "hyperpolymath" -canonical-name = "rsr-template-repo" -prefixed-name = "rm-rsr-template-repo" - -[clade] -primary = "rm" -secondary = ["gv"] -assigned = "2026-03-16" -rationale = "" - -[forges] -github = "hyperpolymath/rsr-template-repo" -gitlab = "hyperpolymath/rsr-template-repo" -bitbucket = "hyperpolymath/rsr-template-repo" - -[lineage] -type = "standalone" -parent = "RSR template — scaffold for new repos" -born = "2026-03-16" diff --git a/a2ml/editors/vscode/.machine_readable/ENSAID_CONFIG.a2ml b/a2ml/editors/vscode/.machine_readable/ENSAID_CONFIG.a2ml deleted file mode 100644 index 1384822c4..000000000 --- a/a2ml/editors/vscode/.machine_readable/ENSAID_CONFIG.a2ml +++ /dev/null @@ -1,96 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# -# ENSAID_CONFIG.a2ml — eNSAID Environment Configuration -# Per-repo configuration for PanLL and eNSAID-compatible tools. -# -# Canonical location: .machine_readable/ENSAID_CONFIG.a2ml -# Spec: https://github.com/hyperpolymath/standards/tree/main/ensaid-config -# -# Naming convention: -# - UPPERCASE + underscore = non-executable machine-readable file -# - Lives in .machine_readable/ alongside STATE.a2ml, META.a2ml, etc. - -# ───────────────────────────────────────────────────────────────── -# [ensaid] — Core eNSAID identity and version -# ───────────────────────────────────────────────────────────────── -[ensaid] -version = "1.0.0" -tool = "panll" - -# ───────────────────────────────────────────────────────────────── -# [workspace] — Workspace mode, protection, and execution policy -# ───────────────────────────────────────────────────────────────── -[workspace] -mode = "rhodium" # rhodium | gold | silver | bronze -protection = "open" # open | guarded | locked -execution = "live" # live | dry-run | approval-required - -# ───────────────────────────────────────────────────────────────── -# [preferences] — User/repo-level display and behaviour preferences -# ───────────────────────────────────────────────────────────────── -[preferences] -humidity = "medium" # high | medium | low (drift aura intensity) -default-arrangement = "default-3-panel" # workspace arrangement ID -auto-connect = true # auto-connect panels to backends on load - -# ───────────────────────────────────────────────────────────────── -# [panels] — Panel visibility, enablement, and isolation overrides -# ───────────────────────────────────────────────────────────────── -[panels] -version = "1.0.0" - -# By default, all panels are available. Uncomment to restrict: -# [[panels.enabled]] -# id = "valence-shell" -# isolation = "native" -# auto-connect = true -# -# [[panels.enabled]] -# id = "editor-bridge" -# isolation = "native" -# auto-connect = true - -# Panels to hide for this repo context: -# [panels.disabled] -# ids = [] - -# ───────────────────────────────────────────────────────────────── -# [workflows] — Automation Router event-driven cross-panel rules -# ───────────────────────────────────────────────────────────────── -[workflows] -version = "1.0.0" - -# Example: rebuild on file save -# [[workflows.rule]] -# name = "build-on-save" -# trigger = { event = "file-changed", pattern = "src/**/*.res" } -# condition = { panel = "build-dashboard", field = "watchMode", equals = true } -# action = { panel = "build-dashboard", message = "TriggerBuild", args = { target = "game" } } -# approval = "auto-fire" # auto-fire | require-approval | approve-once | dry-run-first - -# ───────────────────────────────────────────────────────────────── -# [clades] — Panel clade trait and capability overrides -# ───────────────────────────────────────────────────────────────── -[clades] -version = "1.0.0" - -# Example: add a custom capability to a panel clade -# [[clades.override]] -# id = "build-dashboard" -# traits = { has-work-items = true } -# capabilities-add = ["CustomCheck"] - -# ───────────────────────────────────────────────────────────────── -# [portfolios] — Custom panel bundles for this repo's workflow -# ───────────────────────────────────────────────────────────────── -[portfolios] -version = "1.0.0" - -# Example: a custom portfolio for this project -# [[portfolios.custom]] -# id = "{{project}}-dev" -# name = "{{PROJECT_NAME}} Development" -# description = "Panels for {{PROJECT_NAME}} development" -# panels = ["valence-shell", "editor-bridge", "build-dashboard"] -# default-isolation = "native" diff --git a/a2ml/editors/vscode/.machine_readable/README.adoc b/a2ml/editors/vscode/.machine_readable/README.adoc deleted file mode 100644 index 471d6c72a..000000000 --- a/a2ml/editors/vscode/.machine_readable/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= .machine_readable Pillar diff --git a/a2ml/editors/vscode/.machine_readable/ai/.clinerules b/a2ml/editors/vscode/.machine_readable/ai/.clinerules deleted file mode 100644 index 854d2ee3d..000000000 --- a/a2ml/editors/vscode/.machine_readable/ai/.clinerules +++ /dev/null @@ -1,43 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# Authoritative source: docs/AI-CONVENTIONS.md - -# STARTUP: Read 0-AI-MANIFEST.a2ml first, then .machine_readable/STATE.a2ml. - -# LICENSE -# All original code: PMPL-1.0-or-later. -# Never AGPL-3.0. MPL-2.0 only as platform-required fallback. -# SPDX header required on every source file. -# Copyright: {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> - -# STATE FILES (.machine_readable/ ONLY) -# Never create in repo root: STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml, -# AGENTIC.a2ml, NEUROSYM.a2ml, PLAYBOOK.a2ml. -# The .machine_readable/ directory is the single source of truth. - -# BANNED PATTERNS -# Idris2: believe_me, assert_total, assert_smaller, unsafePerformIO -# Haskell: unsafeCoerce, unsafePerformIO, undefined, error -# OCaml: Obj.magic, Obj.repr, Obj.obj -# Coq: Admitted -# Lean: sorry -# Rust: transmute (unless FFI with // SAFETY: comment) - -# BANNED LANGUAGES -# TypeScript -> ReScript -# Node.js / npm / bun -> Deno -# Go -> Rust -# Python -> Julia or Rust - -# CONTAINERS -# Runtime: Podman (never Docker). -# File: Containerfile (never Dockerfile). -# Base: cgr.dev/chainguard/wolfi-base:latest or cgr.dev/chainguard/static:latest. - -# ABI/FFI -# ABI: Idris2 with dependent types (src/interface/abi/). -# FFI: Zig with C ABI (src/interface/ffi/). -# Headers: src/interface/generated/. - -# BUILD: Use just (justfile) for all tasks. -# STYLE: Descriptive names. Document all files. SPDX headers everywhere. diff --git a/a2ml/editors/vscode/.machine_readable/ai/.cursorrules b/a2ml/editors/vscode/.machine_readable/ai/.cursorrules deleted file mode 100644 index d3b9cee01..000000000 --- a/a2ml/editors/vscode/.machine_readable/ai/.cursorrules +++ /dev/null @@ -1,47 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# Authoritative source: docs/AI-CONVENTIONS.md - -# Read 0-AI-MANIFEST.a2ml in the repo root FIRST for canonical file locations. - -# LICENSE -# All original code: PMPL-1.0-or-later (SPDX header required on every file). -# Never use AGPL-3.0. Fallback to MPL-2.0 only when platform requires it. -# Copyright: {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> - -# STATE FILES -# .a2ml metadata files go in .machine_readable/ ONLY. -# Never create STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml, AGENTIC.a2ml, -# NEUROSYM.a2ml, or PLAYBOOK.a2ml in the repository root. - -# BANNED PATTERNS -# Idris2: believe_me, assert_total, assert_smaller, unsafePerformIO -# Haskell: unsafeCoerce, unsafePerformIO, undefined, error -# OCaml: Obj.magic, Obj.repr, Obj.obj -# Coq: Admitted -# Lean: sorry -# Rust: transmute (unless FFI with // SAFETY: comment) - -# BANNED LANGUAGES -# TypeScript -> use ReScript -# Node.js / npm / bun -> use Deno -# Go -> use Rust -# Python -> use Julia or Rust - -# CONTAINERS -# Runtime: Podman (never Docker) -# File: Containerfile (never Dockerfile) -# Base: cgr.dev/chainguard/wolfi-base:latest - -# ABI/FFI STANDARD -# ABI definitions: Idris2 with dependent types (src/interface/abi/) -# FFI implementation: Zig with C ABI (src/interface/ffi/) -# Generated C headers: src/interface/generated/ - -# BUILD SYSTEM -# Use just (justfile) for all build, test, lint, and format tasks. - -# CODE STYLE -# Use descriptive variable names. -# Annotate and document all files. -# Add SPDX-License-Identifier header to every source file. diff --git a/a2ml/editors/vscode/.machine_readable/ai/.windsurfrules b/a2ml/editors/vscode/.machine_readable/ai/.windsurfrules deleted file mode 100644 index 854d2ee3d..000000000 --- a/a2ml/editors/vscode/.machine_readable/ai/.windsurfrules +++ /dev/null @@ -1,43 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# Authoritative source: docs/AI-CONVENTIONS.md - -# STARTUP: Read 0-AI-MANIFEST.a2ml first, then .machine_readable/STATE.a2ml. - -# LICENSE -# All original code: PMPL-1.0-or-later. -# Never AGPL-3.0. MPL-2.0 only as platform-required fallback. -# SPDX header required on every source file. -# Copyright: {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> - -# STATE FILES (.machine_readable/ ONLY) -# Never create in repo root: STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml, -# AGENTIC.a2ml, NEUROSYM.a2ml, PLAYBOOK.a2ml. -# The .machine_readable/ directory is the single source of truth. - -# BANNED PATTERNS -# Idris2: believe_me, assert_total, assert_smaller, unsafePerformIO -# Haskell: unsafeCoerce, unsafePerformIO, undefined, error -# OCaml: Obj.magic, Obj.repr, Obj.obj -# Coq: Admitted -# Lean: sorry -# Rust: transmute (unless FFI with // SAFETY: comment) - -# BANNED LANGUAGES -# TypeScript -> ReScript -# Node.js / npm / bun -> Deno -# Go -> Rust -# Python -> Julia or Rust - -# CONTAINERS -# Runtime: Podman (never Docker). -# File: Containerfile (never Dockerfile). -# Base: cgr.dev/chainguard/wolfi-base:latest or cgr.dev/chainguard/static:latest. - -# ABI/FFI -# ABI: Idris2 with dependent types (src/interface/abi/). -# FFI: Zig with C ABI (src/interface/ffi/). -# Headers: src/interface/generated/. - -# BUILD: Use just (justfile) for all tasks. -# STYLE: Descriptive names. Document all files. SPDX headers everywhere. diff --git a/a2ml/editors/vscode/.machine_readable/ai/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/.machine_readable/ai/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 869cbee61..000000000 --- a/a2ml/editors/vscode/.machine_readable/ai/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "ai-registry" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-registry for ai metadata. diff --git a/a2ml/editors/vscode/.machine_readable/ai/AI.a2ml b/a2ml/editors/vscode/.machine_readable/ai/AI.a2ml deleted file mode 100644 index c683d30f1..000000000 --- a/a2ml/editors/vscode/.machine_readable/ai/AI.a2ml +++ /dev/null @@ -1,16 +0,0 @@ - -# AI Assistant Instructions - -## Repository Focus -- `rsr-template-repo` is treated as a Rhodium Standard Repository; obey the Rhodium policies and keep `.machine_readable/` authoritative. -- All machine-readable content lives under `.machine_readable/` — state files (a2ml), bot directives, and contractiles. -- Prefer to keep generated files out of source control, and regenerate them with the documented commands before committing. - -## Workflow -1. Inspect `.machine_readable/STATE.a2ml` for blockers and next actions. -2. Respect any constraints listed inside `.machine_readable/AGENTIC.a2ml` when tooling changes are requested. -3. After finishing edits, update STATE with your outcomes and commit with a concise, imperative message. - -## Delivery Promises -- Mention in summaries whether STATE, `.machine_readable/contractiles/`, or `.machine_readable/bot_directives/` changed. -- Keep this file in sync with the repository's status; update it if the governance changes. diff --git a/a2ml/editors/vscode/.machine_readable/ai/PLACEHOLDERS.adoc b/a2ml/editors/vscode/.machine_readable/ai/PLACEHOLDERS.adoc deleted file mode 100644 index a1382f4ff..000000000 --- a/a2ml/editors/vscode/.machine_readable/ai/PLACEHOLDERS.adoc +++ /dev/null @@ -1,142 +0,0 @@ -= Template Placeholders -# Template Placeholders - -All placeholders in this template follow the `{{PLACEHOLDER}}` pattern. -After cloning, replace them with your project-specific values. - -## Recommended: Interactive Bootstrap - -```bash -just init -``` - -This interactively prompts for all values, replaces every placeholder, -validates the result, and runs k9-svc checks if available. - -## Manual Replace - -```bash -# If you prefer manual replacement (run from repo root) - -sed -i 's/{{AUTHOR}}/Jane Doe/g' $(grep -rl '{{AUTHOR}}' .) -sed -i 's/{{AUTHOR_EMAIL}}/jane@example.org/g' $(grep -rl '{{AUTHOR_EMAIL}}' .) -sed -i 's/{{OWNER}}/my-org/g' $(grep -rl '{{OWNER}}' .) -sed -i 's/{{PROJECT_NAME}}/my-project/g' $(grep -rl '{{PROJECT_NAME}}' .) -sed -i 's/{{PROJECT}}/MY_PROJECT/g' $(grep -rl '{{PROJECT}}' .) -sed -i 's/{{project}}/my_project/g' $(grep -rl '{{project}}' .) -sed -i 's/{{REPO}}/my-project/g' $(grep -rl '{{REPO}}' .) -sed -i 's/{{FORGE}}/github.com/g' $(grep -rl '{{FORGE}}' .) -sed -i "s/{{CURRENT_YEAR}}/$(date +%Y)/g" $(grep -rl '{{CURRENT_YEAR}}' .) -sed -i "s/{{CURRENT_DATE}}/$(date +%Y-%m-%d)/g" $(grep -rl '{{CURRENT_DATE}}' .) -``` - -## Placeholder Reference - -### Author & Copyright - -| Placeholder | Description | Example | Files | -|---|---|---|---| -| `{{AUTHOR}}` | Full legal name | `Jane Doe` | SPDX headers (all files), MAINTAINERS.md, .mailmap, .reuse/dep5, docs/AI-CONVENTIONS.md | -| `{{AUTHOR_EMAIL}}` | Primary contact email | `jane@example.org` | SPDX headers (all files), .mailmap, .reuse/dep5, .well-known/humans.txt | -| `{{AUTHOR_EMAIL_ALT}}` | Previous/secondary email (for .mailmap) | `old@example.com` | .mailmap | -| `{{AUTHOR_ORG}}` | Author's organization/affiliation | `Acme University` | project-metadata.k9.ncl | -| `{{AUTHOR_LAST}}` | Author surname (for citations) | `Doe` | docs/CITATIONS.adoc | -| `{{AUTHOR_FIRST}}` | Author first name (for citations) | `Jane` | docs/CITATIONS.adoc | -| `{{AUTHOR_INITIALS}}` | Author initials (for citations) | `J.` | docs/CITATIONS.adoc | - -### Project Identity - -| Placeholder | Description | Example | Files | -|---|---|---|---| -| `{{PROJECT_NAME}}` | Human-readable project name | `My Project` | SECURITY.md, CODE_OF_CONDUCT.md, TOPOLOGY.md, STATE.a2ml, Justfile, GOVERNANCE.md, MAINTAINERS.md, flake.nix, devcontainer.json | -| `{{PROJECT_DESCRIPTION}}` | One-line description | `A tool for X` | flake.nix | -| `{{PROJECT}}` | Uppercase identifier (for Idris2 modules, C macros) | `MY_PROJECT` | ABI-FFI-README.md, src/interface/abi/*.idr, src/interface/ffi/*.zig | -| `{{project}}` | Lowercase identifier (for C symbols, filenames) | `my_project` | ABI-FFI-README.md, src/interface/ffi/*.zig | -| `{{REPO}}` | Repository name (slug) | `my-project` | CONTRIBUTING.md, SECURITY.md, CODE_OF_CONDUCT.md, cliff.toml | -| `{{OWNER}}` | GitHub/GitLab org or username | `my-org` | SPDX headers, CONTRIBUTING.md, SECURITY.md, GOVERNANCE.md, MAINTAINERS.md, CODEOWNERS, mirror.yml, cliff.toml | -| `{{FORGE}}` | Git forge domain | `github.com` | CONTRIBUTING.md | - -### Dates - -| Placeholder | Description | Example | Files | -|---|---|---|---| -| `{{CURRENT_YEAR}}` | Current year | `2026` | SPDX headers (all files), GOVERNANCE.md, MAINTAINERS.md | -| `{{CURRENT_DATE}}` | Current date (ISO) | `2026-02-14` | STATE.a2ml, MAINTAINERS.md | -| `{{DATE}}` | Last updated date | `2026-02-14` | TOPOLOGY.md, THREAT-MODEL.md | - -### Contact & Security - -| Placeholder | Description | Example | Files | -|---|---|---|---| -| `{{SECURITY_EMAIL}}` | Security contact email | `security@example.org` | SECURITY.md | -| `{{PGP_FINGERPRINT}}` | 40-char PGP fingerprint | `ABCD 1234 ...` | SECURITY.md | -| `{{PGP_KEY_URL}}` | URL to public PGP key | `https://keys.openpgp.org/...` | SECURITY.md | -| `{{WEBSITE}}` | Project website | `https://example.org` | SECURITY.md | -| `{{CONDUCT_EMAIL}}` | Conduct reports email | `conduct@example.org` | CODE_OF_CONDUCT.md | -| `{{CONDUCT_TEAM}}` | Conduct committee name | `Code of Conduct Committee` | CODE_OF_CONDUCT.md | -| `{{RESPONSE_TIME}}` | SLA for initial response | `48 hours` | CODE_OF_CONDUCT.md | - -### Git - -| Placeholder | Description | Example | Files | -|---|---|---|---| -| `{{MAIN_BRANCH}}` | Main branch name | `main` | CONTRIBUTING.md | - -### Build - -| Placeholder | Description | Example | Files | -|---|---|---|---| -| `{{LICENSE}}` | License name | `PMPL-1.0-or-later` | ABI-FFI-README.md | -| `{{PROJECT_PURPOSE}}` | One-line project description | `FFI bridges between languages` | STATE.a2ml | - -### AI Manifest - -| Placeholder | Description | Example | Files | -|---|---|---|---| -| `[YOUR-REPO-NAME]` | Repository name | `my-project` | 0-AI-MANIFEST.a2ml | -| `[DATE]` | Creation date | `2026-02-14` | 0-AI-MANIFEST.a2ml | -| `[YOUR-NAME/ORG]` | Maintainer name | `hyperpolymath` | 0-AI-MANIFEST.a2ml | - -### AI Installation Guide - -| Marker | Description | Files | -|---|---|---| -| `[TODO-AI-INSTALL]` | Unfilled section in AI installation guide | `docs/AI_INSTALLATION_GUIDE.adoc`, `docs/AI-INSTALL-README-SECTION.adoc`, `README.adoc` | - -These are **not** standard `{{PLACEHOLDER}}` markers -- they are TODO markers -that must be replaced with project-specific content before release. They mark -sections where the developer (or AI) must fill in: - -- What questions the AI should ask the user -- Exact prerequisite check and install commands -- Privacy notice specific to this project -- Complete installation command block -- Credential setup instructions (URLs, scopes, env vars) -- Verification commands and expected output -- Error handling table -- Example conversation - -**finishbot checks:** `just validate-ai-install` verifies no `[TODO-AI-INSTALL]` markers remain. - -## Deletion Markers - -Some files contain deletion instructions: - -| Marker | Meaning | File | -|---|---|---| -| `{{~ ... ~}}` | Delete this entire line after reading | ABI-FFI-README.md (line 1) | - -## Verification - -After replacing all placeholders, verify none remain: - -```bash -grep -rn '{{' . --include='*.md' --include='*.adoc' --include='*.a2ml' \ - --include='*.scm' --include='*.idr' --include='*.zig' --include='*.res' \ - --include='Justfile' --include='*.nix' --include='*.toml' --include='*.yml' \ - --include='*.yaml' --include='*.hs' --include='*.ncl' --include='*.txt' \ - --include='*.json' --include='Containerfile' --include='dep5' \ - | grep -v 'PLACEHOLDERS.md' | grep -v 'node_modules' -``` - -If the above command produces no output, all placeholders have been replaced. diff --git a/a2ml/editors/vscode/.machine_readable/ai/README.adoc b/a2ml/editors/vscode/.machine_readable/ai/README.adoc deleted file mode 100644 index 121bbc8a5..000000000 --- a/a2ml/editors/vscode/.machine_readable/ai/README.adoc +++ /dev/null @@ -1,22 +0,0 @@ -= AI Guidance Directory - -Put AI-facing instructions in this folder. - -Examples: - -* `CLAUDE.md` -* `COPILOT.md` -* `GEMINI.md` -* `AI.a2ml` -* `AI.djot` - -Avoid scattering agent instruction files around the repo root. - -Recommended machine read order: - -* `.machine_readable/anchors/ANCHOR.a2ml` -* `.machine_readable/policies/MAINTENANCE-AXES.a2ml` -* `.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml` -* `.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml` -* `.machine_readable/STATE.a2ml` -* `.machine_readable/META.a2ml` diff --git a/a2ml/editors/vscode/.machine_readable/anchors/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/.machine_readable/anchors/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 45038e1eb..000000000 --- a/a2ml/editors/vscode/.machine_readable/anchors/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "anchors-registry" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-registry for anchors metadata. diff --git a/a2ml/editors/vscode/.machine_readable/anchors/ANCHOR.a2ml b/a2ml/editors/vscode/.machine_readable/anchors/ANCHOR.a2ml deleted file mode 100644 index 872389983..000000000 --- a/a2ml/editors/vscode/.machine_readable/anchors/ANCHOR.a2ml +++ /dev/null @@ -1,62 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# -# ANCHOR.a2ml - authoritative anchor for this repository - -[metadata] -version = "1.0.0" -last-updated = "{{CURRENT_DATE}}" - -[anchor] -schema = "hyperpolymath.anchor/1" -repo = "{{OWNER}}/{{REPO}}" -authority = "upstream-canonical" - -purpose = [ - "Define canonical semantics and policy boundaries for this repository.", - "Declare what downstream/satellite repos can extend but not redefine.", - "Provide a stable golden path and invariant contract for release readiness.", -] - -[identity] -project = "{{PROJECT_NAME}}" -kind = "{{PROJECT_KIND}}" # language | library | service | tool -one-sentence = "{{PROJECT_PURPOSE}}" -domain = "{{PROJECT_DOMAIN}}" - -[semantic-authority] -policy = "canonical" - -owns = [ - "Project semantics and specification", - "Invariant definitions and contractiles", - "Reference implementation behavior", -] - -[implementation-policy] -allowed = ["Rust", "Idris2", "Zig", "Scheme", "Shell", "Just", "AsciiDoc", "Markdown"] -forbidden = ["Node.js", "npm"] - -[golden-path] -smoke-test-command = [ - "just test", - "just quality", -] - -success-criteria = [ - "Core tests pass", - "Quality gates pass", - "No unresolved critical security findings", -] - -[satellite-policy] -must-pin-upstream = true -must-declare-authority = true -must-have-anchor = true -must-have-golden-path = true - -[semantic-authority-files] -language-spec = "SPECIFICATION.md" -formal-proofs = "docs/proofs/PROOFS.adoc" -type-theory = "docs/theory/THEORY.adoc" -algorithms = "docs/theory/ALGORITHMS.adoc" diff --git a/a2ml/editors/vscode/.machine_readable/anchors/README.adoc b/a2ml/editors/vscode/.machine_readable/anchors/README.adoc deleted file mode 100644 index 1b27c02d7..000000000 --- a/a2ml/editors/vscode/.machine_readable/anchors/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= anchors Registry diff --git a/a2ml/editors/vscode/.machine_readable/compliance/reuse/dep5 b/a2ml/editors/vscode/.machine_readable/compliance/reuse/dep5 deleted file mode 100644 index 3f5b2ef65..000000000 --- a/a2ml/editors/vscode/.machine_readable/compliance/reuse/dep5 +++ /dev/null @@ -1,54 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: {{PROJECT_NAME}} -Upstream-Contact: {{AUTHOR}} <{{AUTHOR_EMAIL}}> -Source: https://github.com/{{OWNER}}/{{REPO}} - -# Default: all files are PMPL-1.0-or-later -Files: * -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# Configuration files that cannot carry headers -Files: .editorconfig .gitignore .gitattributes .tool-versions .mailmap -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# Machine-readable state files -Files: .machine_readable/*.a2ml -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# Bot directives -Files: .machine_readable/bot_directives/* -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# Contractiles -Files: .machine_readable/contractiles/* -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# GitHub/CI configuration -Files: .github/* .github/**/* -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# Generated files -Files: generated/* -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# Lockfiles and auto-generated -Files: *.lock Cargo.lock flake.lock -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# Devcontainer config (JSON, no comments) -Files: .devcontainer/*.json -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# Git-cliff config -Files: cliff.toml -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) diff --git a/a2ml/editors/vscode/.machine_readable/compliance/rust/deny.toml b/a2ml/editors/vscode/.machine_readable/compliance/rust/deny.toml deleted file mode 100644 index b096db889..000000000 --- a/a2ml/editors/vscode/.machine_readable/compliance/rust/deny.toml +++ /dev/null @@ -1,65 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# cargo-deny configuration for RSR-compliant repositories -# Run: cargo deny check -# Docs: https://embarkstudios.github.io/cargo-deny/ - -[graph] -targets = [] -all-features = true - -# --- Advisory database --------------------------------------------------- -[advisories] -db-path = "~/.cargo/advisory-db" -db-urls = ["https://github.com/rustsec/advisory-db"] -# Fail on any known vulnerability -vulnerability = "deny" -unmaintained = "warn" -yanked = "warn" -notice = "warn" - -# --- License policy ------------------------------------------------------- -[licenses] -unlicensed = "deny" -confidence-threshold = 0.8 - -allow = [ - "PMPL-1.0-or-later", - "MPL-2.0", - "MIT", - "Apache-2.0", - "BSD-2-Clause", - "BSD-3-Clause", - "ISC", - "Zlib", - "Unicode-3.0", - "Unicode-DFS-2016", -] - -deny = [ - "AGPL-3.0-only", - "AGPL-3.0-or-later", -] - -copyleft = "warn" - -[[licenses.exceptions]] -allow = ["OpenSSL"] -name = "ring" - -# --- Crate bans ------------------------------------------------------------ -[bans] -multiple-versions = "warn" -wildcards = "allow" -highlight = "all" - -deny = [ - # Known-bad crates - { name = "openssl", wrappers = ["openssl-sys"] }, -] - -# --- Source restrictions ---------------------------------------------------- -[sources] -unknown-registry = "deny" -unknown-git = "warn" -allow-registry = ["https://github.com/rust-lang/crates.io-index"] -allow-git = [] diff --git a/a2ml/editors/vscode/.machine_readable/configs/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/.machine_readable/configs/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 6e41e6c25..000000000 --- a/a2ml/editors/vscode/.machine_readable/configs/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "configs-registry" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-registry for configs metadata. diff --git a/a2ml/editors/vscode/.machine_readable/configs/README.adoc b/a2ml/editors/vscode/.machine_readable/configs/README.adoc deleted file mode 100644 index 616b9e763..000000000 --- a/a2ml/editors/vscode/.machine_readable/configs/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= configs Registry diff --git a/a2ml/editors/vscode/.machine_readable/configs/git-cliff/cliff.toml b/a2ml/editors/vscode/.machine_readable/configs/git-cliff/cliff.toml deleted file mode 100644 index 5c39b484d..000000000 --- a/a2ml/editors/vscode/.machine_readable/configs/git-cliff/cliff.toml +++ /dev/null @@ -1,119 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# -# git-cliff configuration for conventional commit changelog generation. -# https://git-cliff.org/docs/configuration -# -# Placeholders — replace before first use: -# {{OWNER}} — GitHub organization or username -# {{REPO}} — GitHub repository name - -[changelog] -# Changelog header -header = """ -# Changelog\n -All notable changes to this project will be documented in this file.\n -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n -\n -""" -# Template for the changelog body -# https://keats.github.io/tera/docs/#introduction -body = """ -{%- macro remote_url() -%} - https://github.com/{{OWNER}}/{{REPO}} -{%- endmacro -%} - -{% if version -%} - ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }} -{% else -%} - ## [Unreleased] -{% endif -%} - -{% for group, commits in commits | group_by(attribute="group") %} - ### {{ group | striptags | trim }} - {% for commit in commits %} - - {% if commit.scope %}**{{ commit.scope }}:** {% endif %}\ - {% if commit.breaking %}[**BREAKING**] {% endif %}\ - {{ commit.message | upper_first }}\ - {%- if commit.links %} \ - ({% for link in commit.links %}[{{ link.text }}]({{ link.href }}){% endfor %}){% endif -%} - {% endfor %} -{% endfor %} - -{%- if github -%} -{% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %} - ### New Contributors -{%- for contributor in github.contributors | filter(attribute="is_first_time", value=true) %} - * @{{ contributor.username }} made their first contribution - {%- if contributor.pr_number %} in \ - [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) - {%- endif %} -{%- endfor %} -{% endif -%} -{% endif -%} - -""" -# Template for the changelog footer -footer = """ -{%- macro remote_url() -%} - https://github.com/{{OWNER}}/{{REPO}} -{%- endmacro -%} - -{% for release in releases -%} - {% if release.version -%} - {% if release.previous.version -%} - [{{ release.version | trim_start_matches(pat="v") }}]: \ - {{ self::remote_url() }}/compare/{{ release.previous.version }}...{{ release.version }} - {% endif -%} - {% else -%} - {% if release.previous.version -%} - [Unreleased]: {{ self::remote_url() }}/compare/{{ release.previous.version }}...HEAD - {% endif -%} - {% endif -%} -{% endfor %} - -""" -# Remove leading and trailing whitespace from templates -trim = true - -[git] -# Parse conventional commits -# https://www.conventionalcommits.org -conventional_commits = true -# Filter out unconventional commits -filter_unconventional = true -# Process each line of a commit as an individual commit -split_commits = false -# Regex for commit preprocessing -commit_preprocessors = [ - # Remove issue numbers from commit messages - { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "" }, -] -# Regex for parsing and grouping commits -commit_parsers = [ - { message = "^feat", group = "Features" }, - { message = "^fix", group = "Bug Fixes" }, - { message = "^security", group = "Security" }, - { message = "^perf", group = "Performance" }, - { message = "^refactor", group = "Refactoring" }, - { message = "^docs", group = "Documentation" }, - { message = "^style", group = "Styling" }, - { message = "^test", group = "Testing" }, - { message = "^ci", group = "CI/CD" }, - { message = "^chore\\(release\\)", skip = true }, - { message = "^chore\\(deps.*\\)", skip = true }, - { message = "^chore\\(pr\\)", skip = true }, - { message = "^chore", group = "Miscellaneous" }, - { body = ".*security", group = "Security" }, -] -# Protect breaking changes from being skipped by a commit parser -protect_breaking_commits = false -# Filter out merge commits -filter_merge_commits = true -# Filter out commits by tag pattern (skip pre-releases) -# tag_pattern = "v[0-9].*" -# Regex for skipping tags -# skip_tags = "beta|alpha" -# Sort commits within each group by oldest first -sort_commits = "oldest" diff --git a/a2ml/editors/vscode/.machine_readable/contractiles/README.adoc b/a2ml/editors/vscode/.machine_readable/contractiles/README.adoc deleted file mode 100644 index d40fcd180..000000000 --- a/a2ml/editors/vscode/.machine_readable/contractiles/README.adoc +++ /dev/null @@ -1,19 +0,0 @@ -= Contractiles Template Set -:toc: -:sectnums: - -This directory contains the generalized contractiles templates. Copy the `.machine_readable/contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework. - -== Fill-In Instructions - -1. Update the Mustfile to reflect your real invariants (paths, schema versions, ports). -2. Replace Trustfile.hs placeholders with your actual key paths and verification commands. -3. Adjust Dustfile handlers to match your rollback and recovery tooling. -4. Update Intentfile to mirror the roadmap you want the system to evolve toward. - -== Contents - -* `must/Mustfile` - required invariants and validations. -* `trust/Trustfile.hs` - cryptographic verification steps. -* `dust/Dustfile` - rollback and recovery semantics. -* `lust/Intentfile` - future intent and roadmap direction. diff --git a/a2ml/editors/vscode/.machine_readable/contractiles/dust/Dustfile.a2ml b/a2ml/editors/vscode/.machine_readable/contractiles/dust/Dustfile.a2ml deleted file mode 100644 index be38a8ca7..000000000 --- a/a2ml/editors/vscode/.machine_readable/contractiles/dust/Dustfile.a2ml +++ /dev/null @@ -1,44 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Dustfile — Cleanup and hygiene contract -# Author: Jonathan D.A. Jewell - -@abstract: -What should be cleaned up or removed from this repository. -These are housekeeping items, not blockers. -@end - -## Stale Files - -### no-stale-snapshots -- description: No dated status/completion files in root -- run: "! ls *-STATUS-*.md *-COMPLETION-*.md *-COMPLETE.md *-VERIFIED-*.md 2>/dev/null | head -1 | grep -q ." -- severity: info - -### no-ai-djot -- description: AI.djot is superseded by 0-AI-MANIFEST.a2ml -- run: test ! -f AI.djot -- severity: warning - -### no-next-steps -- description: NEXT_STEPS.md superseded by ROADMAP -- run: test ! -f NEXT_STEPS.md -- severity: info - -## Build Artifacts - -### no-tracked-artifacts -- description: No build artifacts tracked in git -- run: "! git ls-files lib/bs/ lib/ocaml/ target/release/ _build/ 2>/dev/null | head -1 | grep -q ." -- severity: warning - -## Format Duplicates - -### no-duplicate-contributing -- description: Only one CONTRIBUTING format (keep .md) -- run: "! (test -f CONTRIBUTING.md && test -f CONTRIBUTING.adoc)" -- severity: warning - -### no-duplicate-readme -- description: Only one README format -- run: "! (test -f README.md && test -f README.adoc && [ $(wc -l < README.md) -gt 5 ])" -- severity: warning diff --git a/a2ml/editors/vscode/.machine_readable/contractiles/must/Mustfile.a2ml b/a2ml/editors/vscode/.machine_readable/contractiles/must/Mustfile.a2ml deleted file mode 100644 index 215c51062..000000000 --- a/a2ml/editors/vscode/.machine_readable/contractiles/must/Mustfile.a2ml +++ /dev/null @@ -1,69 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Mustfile — Physical state contract -# Author: Jonathan D.A. Jewell - -@abstract: -What MUST be true about this repository's files and configuration. -These are hard requirements — CI fails if any check fails. -@end - -## File Presence - -### license-present -- description: LICENSE file must exist -- run: test -f LICENSE -- severity: critical - -### readme-present -- description: README.adoc or README.md must exist -- run: test -f README.adoc || test -f README.md -- severity: critical - -### security-policy -- description: SECURITY.md must exist -- run: test -f SECURITY.md -- severity: critical - -### ai-manifest -- description: 0-AI-MANIFEST.a2ml must exist -- run: test -f 0-AI-MANIFEST.a2ml -- severity: critical - -### contributing -- description: CONTRIBUTING.md must exist (GitHub community health) -- run: test -f CONTRIBUTING.md -- severity: warning - -### editorconfig -- description: .editorconfig must exist -- run: test -f .editorconfig -- severity: warning - -## SPDX Compliance - -### spdx-headers -- description: All source files must have SPDX-License-Identifier -- run: "! find src/ -name '*.rs' -o -name '*.res' -o -name '*.idr' -o -name '*.zig' 2>/dev/null | head -20 | xargs grep -L 'SPDX-License-Identifier' 2>/dev/null | head -1 | grep -q ." -- severity: warning - -### no-agpl -- description: No AGPL-3.0 references in dotfiles -- run: "! grep -r 'AGPL-3.0' .gitignore .gitattributes .editorconfig 2>/dev/null | head -1 | grep -q ." -- severity: critical - -## Dangerous Patterns - -### no-believe-me -- description: No believe_me in Idris2 code -- run: "! grep -r 'believe_me' --include='*.idr' . 2>/dev/null | grep -v node_modules | head -1 | grep -q ." -- severity: critical - -### no-sorry -- description: No sorry in Lean code -- run: "! grep -r 'sorry' --include='*.lean' . 2>/dev/null | grep -v node_modules | head -1 | grep -q ." -- severity: critical - -### no-admitted -- description: No Admitted in Coq code -- run: "! grep -r 'Admitted' --include='*.v' . 2>/dev/null | grep -v node_modules | head -1 | grep -q ." -- severity: critical diff --git a/a2ml/editors/vscode/.machine_readable/contractiles/trust/Trustfile.a2ml b/a2ml/editors/vscode/.machine_readable/contractiles/trust/Trustfile.a2ml deleted file mode 100644 index f2a4f9592..000000000 --- a/a2ml/editors/vscode/.machine_readable/contractiles/trust/Trustfile.a2ml +++ /dev/null @@ -1,50 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Trustfile — Integrity and provenance verification -# Author: Jonathan D.A. Jewell - -@abstract: -Integrity invariants for this repository. These verify that the repo -has not been tampered with, secrets are not leaked, and provenance -is traceable. -@end - -## Secrets - -### no-secrets-committed -- description: No credential files in repo -- run: test ! -f .env && test ! -f credentials.json && test ! -f .env.local && test ! -f .env.production -- severity: critical - -### no-private-keys -- description: No private key files committed -- run: "! find . -name '*.pem' -o -name '*.key' -o -name 'id_rsa' -o -name 'id_ed25519' 2>/dev/null | grep -v node_modules | head -1 | grep -q ." -- severity: critical - -### no-tokens-in-source -- description: No hardcoded API tokens in source -- run: "! grep -rE '(api[_-]?key|secret|token|password)\s*[:=]\s*[\"'\\''][A-Za-z0-9]{16,}' --include='*.js' --include='*.ts' --include='*.res' --include='*.py' . 2>/dev/null | grep -v node_modules | head -1 | grep -q ." -- severity: critical - -## Provenance - -### author-correct -- description: Git author matches expected identity -- run: "git log -1 --format='%ae' | grep -qE '(hyperpolymath|j\\.d\\.a\\.jewell)'" -- severity: warning - -### license-content -- description: LICENSE contains expected identifier -- run: grep -q 'PMPL\|MPL\|MIT\|Apache\|LGPL' LICENSE -- severity: warning - -## Container Security - -### container-images-pinned -- description: Containerfile uses pinned base images -- run: test ! -f Containerfile || grep -q 'cgr.dev\|@sha256:' Containerfile -- severity: warning - -### no-dockerfile -- description: No Dockerfile (use Containerfile) -- run: test ! -f Dockerfile -- severity: warning diff --git a/a2ml/editors/vscode/.machine_readable/descriptiles/AGENTIC.a2ml b/a2ml/editors/vscode/.machine_readable/descriptiles/AGENTIC.a2ml deleted file mode 100644 index 4d5db884f..000000000 --- a/a2ml/editors/vscode/.machine_readable/descriptiles/AGENTIC.a2ml +++ /dev/null @@ -1,36 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# AGENTIC.a2ml — AI agent constraints and capabilities -# Defines what AI agents can and cannot do in this repository. - -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[agent-permissions] -can-edit-source = true -can-edit-tests = true -can-edit-docs = true -can-edit-config = true -can-create-files = true - -[agent-constraints] -# What AI agents must NOT do: -# - Never use banned language patterns (believe_me, unsafeCoerce, etc.) -# - Never commit secrets or credentials -# - Never use banned languages (TypeScript, Python, Go, etc.) -# - Never place state files in repository root (must be in .machine_readable/) -# - Never use AGPL license (use PMPL-1.0-or-later) - -[maintenance-integrity] -fail-closed = true -require-evidence-per-step = true -allow-silent-skip = false -require-rerun-after-fix = true -release-claim-requires-hard-pass = true - -[automation-hooks] -# on-enter: Read 0-AI-MANIFEST.a2ml, then STATE.a2ml -# on-exit: Update STATE.a2ml with session outcomes -# on-commit: Run just validate-rsr diff --git a/a2ml/editors/vscode/.machine_readable/descriptiles/ECOSYSTEM.a2ml b/a2ml/editors/vscode/.machine_readable/descriptiles/ECOSYSTEM.a2ml deleted file mode 100644 index 8003ca07e..000000000 --- a/a2ml/editors/vscode/.machine_readable/descriptiles/ECOSYSTEM.a2ml +++ /dev/null @@ -1,26 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# ECOSYSTEM.a2ml — Project ecosystem position -# Relationships, dependencies, integration points. - -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[project] -name = "vscode" -purpose = "" # TODO: describe project purpose -role = "" # TODO: describe project role # e.g. ffi-infrastructure, cli-tool, library, service - -[position-in-ecosystem] -tier = "infrastructure" # 1 | 2 | infrastructure - -[related-projects] -# relationship types: sibling-standard, dependency, dependent, inspiration, potential-consumer -# - { name = "language-bridges", relationship = "sibling-standard" } -# - { name = "hypatia", relationship = "potential-consumer" } - -[integration-points] -# External systems this project connects to -# - { system = "gitbot-fleet", direction = "outbound", protocol = "repository_dispatch" } diff --git a/a2ml/editors/vscode/.machine_readable/descriptiles/META.a2ml b/a2ml/editors/vscode/.machine_readable/descriptiles/META.a2ml deleted file mode 100644 index 6e5dda1ea..000000000 --- a/a2ml/editors/vscode/.machine_readable/descriptiles/META.a2ml +++ /dev/null @@ -1,53 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# META.a2ml — Project meta-level information -# Architecture decisions, design rationale, governance. - -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[project-info] -type = "library" # TODO: update type (library|binary|service|website|monorepo) # library | binary | monorepo | service | website -languages = [] # e.g. ["rust", "zig", "idris2"] -license = "PMPL-1.0-or-later" -author = "Jonathan D.A. Jewell (hyperpolymath)" - -[architecture-decisions] -# ADR format: status = proposed | accepted | deprecated | superseded | rejected -# - { id = "ADR-001", title = "Use Zig for FFI", status = "accepted", date = "2026-02-14" } - -[development-practices] -build-tool = "just" -container-runtime = "podman" -ci-platform = "github-actions" -package-manager = "guix" # guix | nix | cargo | mix - -[maintenance-axes] -scoping-first = true -execution-order = "axis-1 > axis-2 > axis-3" -axis-1 = "must > intend > like" -axis-2 = "corrective > adaptive > perfective" -axis-3 = "systems > compliance > effects" - -[scoping] -sources = "README, roadmap, status docs, maintenance checklist, CI/security docs" -marker-scan = "TODO/FIXME/XXX/HACK/STUB/PARTIAL" -idris-unsound-scan = "believe_me/assert_total" - -[axis-2-maintenance-rules] -corrective-first = true -adaptive-second = true -adaptive-focus = "scope-change reconciliation, stale-reference removal, obsolete-work culling" -perfective-third = true -perfective-source = "axis-1 honest state after corrective/adaptive updates" - -[axis-3-audit-rules] -audit-focus = "systems in place, documentation explains actual state, safety/security accounted for, observed effects reviewed" -compliance-focus = "seams/compromises/exception register, bounded exceptions, anti-drift checks" -drift-risk-example = "single exception broadening into policy violation (e.g. ReScript->TypeScript spread)" -effects-evidence = "benchmark execution/results and maintainer status dialogue/review" - -[design-rationale] -# Key design decisions and their reasoning diff --git a/a2ml/editors/vscode/.machine_readable/descriptiles/NEUROSYM.a2ml b/a2ml/editors/vscode/.machine_readable/descriptiles/NEUROSYM.a2ml deleted file mode 100644 index 1acf7a300..000000000 --- a/a2ml/editors/vscode/.machine_readable/descriptiles/NEUROSYM.a2ml +++ /dev/null @@ -1,23 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# NEUROSYM.a2ml — Neurosymbolic integration metadata -# Configuration for Hypatia scanning and symbolic reasoning. - -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[hypatia-config] -scan-enabled = true -scan-depth = "standard" # quick | standard | deep -report-format = "logtalk" - -[symbolic-rules] -# Custom symbolic rules for this project -# - { name = "no-unsafe-ffi", pattern = "believe_me|unsafeCoerce", severity = "critical" } - -[neural-config] -# Neural pattern detection settings -# confidence-threshold = 0.85 -# model = "hypatia-v2" diff --git a/a2ml/editors/vscode/.machine_readable/descriptiles/PLAYBOOK.a2ml b/a2ml/editors/vscode/.machine_readable/descriptiles/PLAYBOOK.a2ml deleted file mode 100644 index 6408e1c72..000000000 --- a/a2ml/editors/vscode/.machine_readable/descriptiles/PLAYBOOK.a2ml +++ /dev/null @@ -1,35 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# PLAYBOOK.a2ml — Operational playbook -# Runbooks, incident response, deployment procedures. - -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[deployment] -# method = "gitops" # gitops | manual | ci-triggered -# target = "container" # container | binary | library | wasm - -[incident-response] -# 1. Check .machine_readable/STATE.a2ml for current status -# 2. Review recent commits and CI results -# 3. Run `just validate` to check compliance -# 4. Run `just security` to audit for vulnerabilities - -[release-process] -# 1. Update version in STATE.a2ml, META.a2ml, Justfile -# 2. Run `just release-preflight` (validate + quality + security + maint-hard-pass) -# 3. Optional local permission hardening: `just perms-snapshot && just perms-lock` -# 4. Tag and push -# 5. Restore local permissions if needed: `just perms-restore` -# 6. Run `just container-push` if applicable - -[maintenance-operations] -# Baseline audit: -# just maint-audit -# Hard release gate: -# just maint-hard-pass -# Permission audit: -# just perms-audit diff --git a/a2ml/editors/vscode/.machine_readable/descriptiles/STATE.a2ml b/a2ml/editors/vscode/.machine_readable/descriptiles/STATE.a2ml deleted file mode 100644 index a76d8dd66..000000000 --- a/a2ml/editors/vscode/.machine_readable/descriptiles/STATE.a2ml +++ /dev/null @@ -1,64 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# STATE.a2ml — Project state checkpoint (META-TEMPLATE) -# -# This is the STATE file for rsr-template-repo itself. -# When consumed by a new project, replace {{PLACEHOLDER}} tokens -# and customize sections below for the target project. - -[metadata] -project = "rsr-template-repo" -version = "0.2.0" -last-updated = "2026-02-28" -status = "active" # active | paused | archived - -[project-context] -name = "rsr-template-repo" -purpose = "Canonical RSR-compliant repository template providing scaffolding for all hyperpolymath projects — including CI/CD, AI manifests, ABI/FFI standards, container ecosystem, and governance infrastructure." -completion-percentage = 95 - -[position] -phase = "maintenance" # design | implementation | testing | maintenance | archived -maturity = "production" # experimental | alpha | beta | production | lts - -[route-to-mvp] -milestones = [ - { name = "Phase 0: Core scaffolding (justfile, CI/CD, .machine_readable)", completion = 100 }, - { name = "Phase 1: ABI/FFI standard (Idris2/Zig templates)", completion = 100 }, - { name = "Phase 1b: AI Gatekeeper Protocol (0-AI-MANIFEST.a2ml)", completion = 100 }, - { name = "Phase 1c: TOPOLOGY.md standard and guide", completion = 100 }, - { name = "Phase 1d: Maintenance gate (axes, checklist, approach)", completion = 100 }, - { name = "Phase 1e: Trustfile / contractiles", completion = 100 }, - { name = "Phase 2: Container ecosystem templates (stapeln)", completion = 100 }, - { name = "Phase 3: Multi-forge sync hardening", completion = 0 }, - { name = "Phase 4: Nix/Guix reproducible shells", completion = 50 }, -] - -[blockers-and-issues] -# No active blockers - -[critical-next-actions] -actions = [ - "Container templates complete — test with `just container-init`", - "Validate container templates across wolfi-base and static Chainguard images", - "Harden multi-forge sync for GitLab/Bitbucket mirroring edge cases", - "Expand Nix/Guix development shell templates", -] - -[maintenance-status] -last-run-utc = "never" -last-report = "docs/reports/maintenance/latest.json" -last-result = "unknown" # unknown | pass | warn | fail -open-warnings = 0 -open-failures = 0 - -[ecosystem] -part-of = ["RSR Framework", "stapeln ecosystem"] -depends-on = ["stapeln", "selur-compose", "cerro-torre", "svalinn", "vordr", "k9-svc"] - -# --------------------------------------------------------------------------- -# NOTE FOR CONSUMERS: When using this template to create a new repo, reset -# the fields above to your project's values and replace all {{PLACEHOLDER}} -# tokens. The milestones above describe the TEMPLATE's evolution, not yours. -# --------------------------------------------------------------------------- diff --git a/a2ml/editors/vscode/.machine_readable/policies/.maintenance-perms-ignore b/a2ml/editors/vscode/.machine_readable/policies/.maintenance-perms-ignore deleted file mode 100644 index 2c8c4096a..000000000 --- a/a2ml/editors/vscode/.machine_readable/policies/.maintenance-perms-ignore +++ /dev/null @@ -1,5 +0,0 @@ -# Regex patterns for justified permission-policy exceptions. -# One pattern per line. -# Example: -# ^vendor/ -# ^third_party/ diff --git a/a2ml/editors/vscode/.machine_readable/policies/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/.machine_readable/policies/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 01a19140a..000000000 --- a/a2ml/editors/vscode/.machine_readable/policies/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "policies-registry" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-registry for policies metadata. diff --git a/a2ml/editors/vscode/.machine_readable/policies/MAINTENANCE-AXES.a2ml b/a2ml/editors/vscode/.machine_readable/policies/MAINTENANCE-AXES.a2ml deleted file mode 100644 index eeffd2781..000000000 --- a/a2ml/editors/vscode/.machine_readable/policies/MAINTENANCE-AXES.a2ml +++ /dev/null @@ -1,54 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# -# Canonical maintenance governance model - -[metadata] -version = "1.0.0" -last-updated = "{{CURRENT_DATE}}" -scope = "repo" - -[discovery] -human-entrypoints = [ - "README.adoc", - "docs/maintenance/MAINTENANCE-CHECKLIST.md", - "docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc", -] -machine-entrypoints = [ - ".machine_readable/policies/MAINTENANCE-AXES.a2ml", - ".machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml", - ".machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml", - ".machine_readable/META.a2ml", - ".machine_readable/ai/README.adoc", - ".machine_readable/bot_directives/README.scm", -] -bots = ["hypatia", "gitbot-fleet", "repo visitors"] - -[axes] -axis-1 = "must > intend > like" -axis-2 = "corrective > adaptive > perfective" -axis-3 = "systems > compliance > effects" -execution-order = "axis-1 > axis-2 > axis-3" - -[axis-1-scoping] -required = true -sources = "README, roadmap, status docs, maintenance checklist, CI/security docs" -markers = "TODO/FIXME/XXX/HACK/STUB/PARTIAL" -idris-unsound-markers = "believe_me/assert_total" -output = "scoped work assembly in must/intend/like buckets" - -[axis-2-maintenance] -corrective-first = true -adaptive-second = true -adaptive-focus = "scope changes, stale references, obsolete work culling" -perfective-third = true -perfective-source = "honest state from axis-1 after corrective/adaptive updates" - -[axis-3-audit] -systems-check = true -compliance-check = true -effects-check = true -compliance-focus = "seams/compromises/exception register and anti-drift" -compliance-tooling = "panic-attack" -effects-tooling = "ecological checking with sustainabot guidance" -effects-evidence = "benchmark evidence and maintainer dialogue/status review" diff --git a/a2ml/editors/vscode/.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml b/a2ml/editors/vscode/.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml deleted file mode 100644 index eaee72059..000000000 --- a/a2ml/editors/vscode/.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml +++ /dev/null @@ -1,159 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Cross-repo maintenance baseline (machine-readable canonical) - -[metadata] -version = "1.1.0" -last-updated = "2026-02-24" -scope = "cross-repo" -source-human = "docs/maintenance/MAINTENANCE-CHECKLIST.adoc" -companion-human = "docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc" -companion-machine = ".machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml" - -[policy] -single-source = true -notes = "Use this file as canonical machine policy and keep markdown synchronized." - -[maintenance-axes] -scoping-first = true -execution-order = ["scoping", "axis-1", "axis-2", "axis-3"] -axis-1 = "must > intend > like" -axis-2 = "corrective > adaptive > perfective" -axis-3 = "systems > compliance > effects" - -[scoping] -inputs_required = [ - "README", - "roadmap", - "status-docs", - "maintenance-checklist", - "ci-and-security-docs", -] - -marker_scan_required = [ - "TODO", - "FIXME", - "XXX", - "HACK", - "STUB", - "PARTIAL", -] - -idris_unsound_scan_required = [ - "believe_me", - "assert_total", -] - -scope_assembly_buckets = ["must", "intend", "like"] - -[axis-2-maintenance-rules] -corrective-first = true -adaptive-second = true -adaptive_examples = [ - "scope-change reconciliation", - "stale-reference removal", - "obsolete-work culling", -] -perfective-third = true -perfective_source = "axis-1 honest state after corrective/adaptive updates" - -[axis-3-audit-rules] -systems-check = true -documentation-honesty-check = true -safety-security-accounted-check = true -effects-review-check = true -benchmark-evidence-required = true -maintainer-dialogue-review-required = true -compliance-seams-check = true -exception-register-required = true -exception-bounded-scope-required = true -policy-drift-contamination-check = true -example-drift-risk = "single TypeScript exception causing broad ReScript->TypeScript migration" -compliance-tooling = "panic-attack" -effects-tooling = "ecological checking with sustainabot guidance" - -[generic-cleanup-finish-off] -root-cleanup-required = true -stale-work-cull-required = true -docs-parity-required = true -machine-human-sync-required = true -compliance-finish-off-required = true -effects-finish-off-required = true -release-prep-summary-required = true -next-actions-required = ["corrective", "adaptive", "perfective"] - -[must] -root_control_files = [ - ".gitignore", - ".gitattributes", - ".editorconfig", - ".tool-versions", - "Containerfile", - "Justfile", -] - -root_hosting_files = [ - "CNAME", - ".nojekyll", -] - -ownership_files = [ - "MAINTAINER", - ".github/CODEOWNERS", -] - -machine_readable_required = [ - ".machine_readable/anchors/ANCHOR.a2ml", - ".machine_readable/contractiles/", - ".machine_readable/ai/", - ".machine_readable/bot_directives/", -] - -contractiles_required = [ - "Mustfile", - "Trustfile", - "Intentfile", -] - -security_required = [ - ".well-known/security.txt", - "ci-security-scan", -] - -quality_gate_required = [ - "format", - "lint", - "unit-tests", - "integration-tests", - "p2p-tests", - "e2e-tests", - "bench-smoke", - "docs-check", - "security-scan", -] - -abi_ffi_policy = [ - "ABI Idris2 in src/interface/abi/*.idr", - "FFI Zig in ffi/**/*.zig", -] - -[should] -docs_primary_format = "adoc" -docs_structure = [ - "docs/theory", - "docs/practice", - "docs/whitepapers/academic", - "docs/whitepapers/industry", - "docs/proofs", - "docs/reports", -] - -root_minimization = true -well_known_metadata = true -roadmap_honesty_with_dates = true -ci_doc_format_policy = true - -[could] -generate_human_from_machine = true -mode_aware_bots = ["corrective", "adaptive", "perfective", "audit"] -topology_dashboard = true -exception_registry = true diff --git a/a2ml/editors/vscode/.machine_readable/policies/README.adoc b/a2ml/editors/vscode/.machine_readable/policies/README.adoc deleted file mode 100644 index b7e25f578..000000000 --- a/a2ml/editors/vscode/.machine_readable/policies/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= policies Registry diff --git a/a2ml/editors/vscode/.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml b/a2ml/editors/vscode/.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml deleted file mode 100644 index 093573a07..000000000 --- a/a2ml/editors/vscode/.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml +++ /dev/null @@ -1,53 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# General software development approach (machine-readable) - -[metadata] -version = "1.0.0" -last-updated = "2026-02-24" -scope = "cross-repo" -source-human = "docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc" - -[execution] -order = ["axis-1", "axis-2", "axis-3"] - -[axis-1] -name = "scope" -priority = "must > intend > like" -inputs = [ - "README", - "roadmap", - "status-docs", - "ci-and-security-docs", -] -marker-scan = ["TODO", "FIXME", "XXX", "HACK", "STUB", "PARTIAL"] -idris-unsound-scan = ["believe_me", "assert_total"] -output = "scoped-work-assembly" - -[axis-2] -name = "maintenance" -priority = "corrective > adaptive > perfective" -corrective = "defect/regression/safety/security fixes" -adaptive = "scope reconciliation, stale-reference removal, obsolete-work culling" -perfective = "quality improvements derived from axis-1 honest state" - -[axis-3] -name = "audit" -priority = "systems > compliance > effects" -systems = "required systems present and operating" -compliance = "exceptions explicit, bounded, and drift-resistant" -effects = "benchmark/operational impact evidence captured and reviewed" -compliance-tooling = "panic-attack" -effects-tooling = "ecological checking with sustainabot guidance" - -[cleanup-finish-off] -root-cleanup = true -stale-work-cull = true -docs-sync-human-machine = true -compliance-audit = true -effects-audit = true -release-summary = ["must", "should", "could"] -next-actions = ["corrective", "adaptive", "perfective"] - -[collaboration] -maintainer-dialogue-required = true -dialogue-topics = ["what changed", "why", "remaining risks"] diff --git a/a2ml/editors/vscode/.machine_readable/scripts/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/.machine_readable/scripts/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 615df84f0..000000000 --- a/a2ml/editors/vscode/.machine_readable/scripts/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,18 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "automation-scripts-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Internal automation logic for the project lifecycle, forge sync, - verification triggers, and maintenance. - -canonical_locations: - maintenance: "maintenance/" - lifecycle: "lifecycle/" - forge: "forge/" - verification: "verification/" diff --git a/a2ml/editors/vscode/.machine_readable/scripts/forge/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/.machine_readable/scripts/forge/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 4bbd6cf39..000000000 --- a/a2ml/editors/vscode/.machine_readable/scripts/forge/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "automation-unit-forge" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Internal automation logic for project forge. diff --git a/a2ml/editors/vscode/.machine_readable/scripts/forge/README.adoc b/a2ml/editors/vscode/.machine_readable/scripts/forge/README.adoc deleted file mode 100644 index 31adef651..000000000 --- a/a2ml/editors/vscode/.machine_readable/scripts/forge/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Forge Scripts diff --git a/a2ml/editors/vscode/.machine_readable/scripts/forge/forge-sync.sh b/a2ml/editors/vscode/.machine_readable/scripts/forge/forge-sync.sh deleted file mode 100755 index 330e54b3c..000000000 --- a/a2ml/editors/vscode/.machine_readable/scripts/forge/forge-sync.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: MPL-2.0 -# -# forge-sync.sh — Multi-forge mirroring script -# -# Synchronises the local repository with GitHub, GitLab, and Codeberg. -# Usage: ./forge-sync.sh - -set -euo pipefail - -REMOTES=("origin" "gitlab" "codeberg") - -echo "=== RSR Forge Synchronisation ===" - -for remote in "${REMOTES[@]}"; do - if git remote | grep -q "^$remote$"; then - echo "Pushing to $remote..." - git push "$remote" --all - git push "$remote" --tags - else - echo "Skip: Remote '$remote' not configured." - fi -done - -echo "Sync complete." diff --git a/a2ml/editors/vscode/.machine_readable/scripts/forge/git-cleanup.sh b/a2ml/editors/vscode/.machine_readable/scripts/forge/git-cleanup.sh deleted file mode 100755 index 4fec1a27c..000000000 --- a/a2ml/editors/vscode/.machine_readable/scripts/forge/git-cleanup.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash -# git-cleanup.sh — Repository hygiene script -set -euo pipefail -echo "Cleaning up merged branches..." -git fetch -p -git branch --merged | grep -v "\*" | grep -v "main" | xargs -n 1 git branch -d || echo "No branches to clean." -echo "Pruning remote tracking branches..." -git remote prune origin diff --git a/a2ml/editors/vscode/.machine_readable/scripts/lifecycle/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/.machine_readable/scripts/lifecycle/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 3182d1754..000000000 --- a/a2ml/editors/vscode/.machine_readable/scripts/lifecycle/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "automation-unit-lifecycle" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Internal automation logic for project lifecycle. diff --git a/a2ml/editors/vscode/.machine_readable/scripts/lifecycle/README.adoc b/a2ml/editors/vscode/.machine_readable/scripts/lifecycle/README.adoc deleted file mode 100644 index 8d262b147..000000000 --- a/a2ml/editors/vscode/.machine_readable/scripts/lifecycle/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Lifecycle Scripts diff --git a/a2ml/editors/vscode/.machine_readable/scripts/lifecycle/install-tools.sh b/a2ml/editors/vscode/.machine_readable/scripts/lifecycle/install-tools.sh deleted file mode 100755 index 408df6428..000000000 --- a/a2ml/editors/vscode/.machine_readable/scripts/lifecycle/install-tools.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: MPL-2.0 -# -# install-tools.sh — Developer toolchain installer -# -# Detects and installs the required project toolchain (asdf, nix, or guix). - -set -euo pipefail - -echo "=== RSR Toolchain Installer ===" - -if [ -f "flake.nix" ] && command -v nix &>/dev/null; then - echo "Nix detected. Setting up development shell..." - nix develop --command echo "Nix shell verified." -elif [ -f ".tool-versions" ] && command -v asdf &>/dev/null; then - echo "asdf detected. Installing plugins and tools..." - while read -r line; do - plugin=$(echo "$line" | awk '{print $1}') - asdf plugin add "$plugin" || true - done < .tool-versions - asdf install -else - echo "No standard toolchain (Nix/asdf) detected or installed." - echo "Please refer to README.adoc for manual setup instructions." -fi - -echo "Installer complete." diff --git a/a2ml/editors/vscode/.machine_readable/scripts/maintenance/maint-assault.sh b/a2ml/editors/vscode/.machine_readable/scripts/maintenance/maint-assault.sh deleted file mode 100644 index f170cabc8..000000000 --- a/a2ml/editors/vscode/.machine_readable/scripts/maintenance/maint-assault.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: MPL-2.0 -# -# maint-assault.sh — High-rigor stress testing using panic-attacker -# -# This script runs a full assault (static + dynamic) on the project binary -# to detect logic-based bug signatures and environmental vulnerabilities. - -set -euo pipefail - -BINARY_NAME="{{project}}" -REPORT_PATH="docs/reports/security/assault-latest.json" -PA_BIN="${PANIC_ATTACK_BIN:-panic-attack}" - -echo "=== High-Rigor Security Assault ===" - -# 1. Verify environment -if ! command -v "$PA_BIN" &>/dev/null; then - echo "Error: panic-attack tool not found." - echo "Please install it or set PANIC_ATTACK_BIN environment variable." - exit 1 -fi - -if [ ! -f "target/release/$BINARY_NAME" ]; then - echo "Warning: Release binary not found at target/release/$BINARY_NAME" - echo "Running build first..." - just build --release -fi - -# 2. Run Assault -echo "Initiating full assault on $BINARY_NAME..." -mkdir -p "$(dirname "$REPORT_PATH")" - -"$PA_BIN" assault "target/release/$BINARY_NAME" - --source . - --intensity medium - --duration 10 - --output "$REPORT_PATH" - -echo "" -echo "=== Assault Complete ===" -echo "Report generated: $REPORT_PATH" -echo "To review interactively, run:" -echo " $PA_BIN tui $REPORT_PATH" diff --git a/a2ml/editors/vscode/.machine_readable/scripts/verification/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/.machine_readable/scripts/verification/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 460e06940..000000000 --- a/a2ml/editors/vscode/.machine_readable/scripts/verification/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "automation-unit-verification" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Internal automation logic for project verification. diff --git a/a2ml/editors/vscode/.machine_readable/scripts/verification/README.adoc b/a2ml/editors/vscode/.machine_readable/scripts/verification/README.adoc deleted file mode 100644 index 277b4aa6a..000000000 --- a/a2ml/editors/vscode/.machine_readable/scripts/verification/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Verification Scripts diff --git a/a2ml/editors/vscode/.tool-versions b/a2ml/editors/vscode/.tool-versions deleted file mode 100644 index f8af37b27..000000000 --- a/a2ml/editors/vscode/.tool-versions +++ /dev/null @@ -1,9 +0,0 @@ -# Uncomment and customize for your project -# rust nightly -# just 1.40.0 -# nickel 1.10.0 -# gleam 1.8.0 -# elixir 1.18.0 -# erlang 27.2 -# zig 0.14.0 -# idris2 0.7.0 diff --git a/a2ml/editors/vscode/.well-known/ai.txt b/a2ml/editors/vscode/.well-known/ai.txt deleted file mode 100644 index cc7cbc351..000000000 --- a/a2ml/editors/vscode/.well-known/ai.txt +++ /dev/null @@ -1,18 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# ai.txt - AI interaction policy -# See: https://site.spawning.ai/spawning-ai-txt - -User-Agent: * -Disallow-Training: yes -Disallow-Summarization: no -Disallow-Generation: yes - -# This project's code is licensed under PMPL-1.0-or-later. -# AI agents may read and analyze this code for assisting contributors. -# AI agents must NOT use this code for model training without explicit consent. -# AI agents must preserve Emotional Lineage per PMPL Section 3. -# -# For AI agent integration instructions, see: -# 0-AI-MANIFEST.a2ml (universal AI entry point) -# AI.a2ml (Claude-specific instructions) -# .machine_readable/ (structured project state) diff --git a/a2ml/editors/vscode/.well-known/humans.txt b/a2ml/editors/vscode/.well-known/humans.txt deleted file mode 100644 index 8891981a3..000000000 --- a/a2ml/editors/vscode/.well-known/humans.txt +++ /dev/null @@ -1,14 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# humanstxt.org - -/* TEAM */ -Maintainer: {{AUTHOR}} ({{OWNER}}) -Contact: {{AUTHOR_EMAIL}} -From: United Kingdom - -/* SITE */ -Last update: {{CURRENT_DATE}} -Standards: RSR (Rhodium Standard Repository) -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) -Components: Idris2 ABI, Zig FFI -Tools: just, Podman, Guix diff --git a/a2ml/editors/vscode/.well-known/security.txt b/a2ml/editors/vscode/.well-known/security.txt deleted file mode 100644 index 5414d5084..000000000 --- a/a2ml/editors/vscode/.well-known/security.txt +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# RFC 9116 - security.txt -# https://securitytxt.org/ - -Contact: mailto:{{SECURITY_EMAIL}} -Expires: {{CURRENT_YEAR}}-12-31T23:59:59.000Z -Encryption: {{PGP_KEY_URL}} -Preferred-Languages: en -Canonical: https://{{FORGE}}/{{OWNER}}/{{REPO}}/.well-known/security.txt -Policy: https://{{FORGE}}/{{OWNER}}/{{REPO}}/blob/main/SECURITY.md -Hiring: https://{{WEBSITE}}/careers diff --git a/a2ml/editors/vscode/0-AI-MANIFEST.a2ml b/a2ml/editors/vscode/0-AI-MANIFEST.a2ml deleted file mode 100644 index dc12c5755..000000000 --- a/a2ml/editors/vscode/0-AI-MANIFEST.a2ml +++ /dev/null @@ -1,121 +0,0 @@ -# ⚠️ STOP - CRITICAL READING REQUIRED - -**THIS FILE MUST BE READ FIRST BY ALL AI AGENTS** - -## WHAT IS THIS? - -This is the AI manifest for **[YOUR-REPO-NAME]**. It declares: -- Canonical file locations (where things MUST be, and nowhere else) -- Critical invariants (rules that must NEVER be violated) -- Repository structure and organization - -## CANONICAL LOCATIONS (UNIVERSAL RULE) - -### Machine-Readable Metadata: `.machine_readable/` ONLY - -These 6 a2ml files MUST exist in `.machine_readable/` directory ONLY: -1. **STATE.a2ml** - Project state, progress, blockers -2. **META.a2ml** - Architecture decisions, governance -3. **ECOSYSTEM.a2ml** - Position in ecosystem, relationships -4. **AGENTIC.a2ml** - AI agent interaction patterns -5. **NEUROSYM.a2ml** - Neurosymbolic integration config -6. **PLAYBOOK.a2ml** - Operational runbook - -**CRITICAL:** If ANY of these files exist in the root directory, this is an ERROR. - -### Anchor File: `.machine_readable/anchors/ANCHOR.a2ml` ONLY - -Canonical authority and semantic-boundary declaration MUST exist at: - -` .machine_readable/anchors/ANCHOR.a2ml ` - -Do not place `ANCHOR.a2ml` at repository root. - -### Maintenance Policies: `.machine_readable/policies/` ONLY - -Canonical maintenance/governance files MUST exist under: - -` .machine_readable/policies/ ` - -Minimum required files: -- `MAINTENANCE-AXES.a2ml` -- `MAINTENANCE-CHECKLIST.a2ml` -- `SOFTWARE-DEVELOPMENT-APPROACH.a2ml` - -Do not place maintenance policy files in repository root. - -### Bot Directives: `.machine_readable/bot_directives/` ONLY - -Bot-specific instructions for your automated agents. - -### Contractiles: `.machine_readable/contractiles/` ONLY - -Policy enforcement contracts (k9, dust, lust, must, trust). - -### AI Configuration & Guides: `.machine_readable/ai/` ONLY - -- `AI.a2ml` - Language-specific or LLM-specific patterns -- `PLACEHOLDERS.md` - Bootstrap guide - -### Community & Forge Metadata: `.github/` ONLY - -- `CODEOWNERS` - Review assignments -- `MAINTAINERS` - Machine-readable contact list -- `SUPPORT` - Support channels -- `SECURITY.md` - Technical security policy -- `CONTRIBUTING.md` - Technical contribution manual -- `CODE_OF_CONDUCT.md` - Conduct rules - -### Agent Instructions - -- `0-AI-MANIFEST.a2ml` - THIS FILE (universal entry point) - -## CORE INVARIANTS - -1. **No state file duplication** - Root must NOT contain STATE.a2ml, META.a2ml, etc. -2. **Single source of truth** - `.machine_readable/` is authoritative -3. **No stale metadata** - If root state files exist, they are OUT OF DATE -4. **License consistency** - All code PMPL-1.0-or-later unless platform requires MPL-2.0 -5. **Author attribution** - Always "{{AUTHOR}} <{{AUTHOR_EMAIL}}>" -6. **Container images** - MUST use Chainguard base (`cgr.dev/chainguard/wolfi-base:latest` or `cgr.dev/chainguard/static:latest`) -7. **Container runtime** - Podman, never Docker. Files are `Containerfile`, never `Dockerfile` -8. **Container orchestration** - `selur-compose`, never `docker-compose` - -## REPOSITORY STRUCTURE - -This repo follows the **Dual-Track** architecture: - -``` -[YOUR-REPO-NAME]/ -├── 0-AI-MANIFEST.a2ml # THIS FILE (start here) -├── README.adoc # High-level orientation (Rich Human) -├── ROADMAP.adoc # Future direction -├── CONTRIBUTING.adoc # Human contribution guide -├── GOVERNANCE.adoc # Decision-making model -├── Justfile # Task runner -├── Containerfile # OCI build -├── LICENSE # Primary license -├── src/ # Source code -│ └── interface/ # Verified Interface Seams -│ ├── abi/ # Idris2 ABI (The Spec) -│ ├── ffi/ # Zig FFI (The Bridge) -│ └── generated/ # C Headers (The Result) -├── container/ # Stapeln container ecosystem -├── docs/ # Technical depths -│ ├── attribution/ # Citations, owners, maintainers (adoc) -│ ├── architecture/ # Topology, diagrams -│ ├── theory/ # Domain theory -│ └── practice/ # Manuals -├── docs/legal/ # Legal exhibits and full texts -└── .machine_readable/ # ALL machine-readable metadata -``` - -## SESSION STARTUP CHECKLIST - -✅ Read THIS file (0-AI-MANIFEST.a2ml) first -✅ Understand canonical location: `.machine_readable/` -✅ State understanding of canonical locations - -## ATTESTATION PROOF - -**"I have read the AI manifest. All machine-readable content (state files, anchors, policies, bot directives, contractiles, AI guides) is located in `.machine_readable/` ONLY, and community metadata is in `.github/`. I will not create duplicate files in the root directory."** diff --git a/a2ml/editors/vscode/CHANGELOG.adoc b/a2ml/editors/vscode/CHANGELOG.adoc deleted file mode 100644 index ca1c65289..000000000 --- a/a2ml/editors/vscode/CHANGELOG.adoc +++ /dev/null @@ -1,9 +0,0 @@ -== Changelog - -All notable changes to this project will be documented in this file. - -The format is based on https://keepachangelog.com/en/1.1.0/[Keep a -Changelog], and this project adheres to -https://semver.org/spec/v2.0.0.html[Semantic Versioning]. - -=== [Unreleased] diff --git a/a2ml/editors/vscode/CONTRIBUTING.adoc b/a2ml/editors/vscode/CONTRIBUTING.adoc deleted file mode 100644 index a7cf86117..000000000 --- a/a2ml/editors/vscode/CONTRIBUTING.adoc +++ /dev/null @@ -1,26 +0,0 @@ -= Contributing to {project-name} -:toc: preamble -:icons: font - -This document explains how to contribute to the project. We follow a "Dual-Track" architecture where human-readable documentation lives in the root and machine-readable policies live in `.machine_readable/`. - -== How to Contribute - -We welcome contributions in many forms: -* **Code:** Improving the core verified stack or extensions. -* **Documentation:** Enhancing AsciiDoc manuals or AI manifests. -* **Testing:** Adding property-based tests or formal proofs. - -== Getting Started - -1. **Read the AI Manifest:** Start with `0-AI-MANIFEST.a2ml` to understand the repository structure. -2. **Environment:** Use `nix develop` or `direnv allow` to set up your tools (Idris2, Zig, Rust). -3. **Task Runner:** Use `just` to see available commands (`just --list`). - -== Contribution Policies - -For detailed rules on branch naming, commit messages, and the PR process, please refer to the machine-readable manual at link:.github/CONTRIBUTING.md[CONTRIBUTING.adoc]. - -== Code of Conduct - -All contributors are expected to adhere to our ethical standards. See link:.github/CODE_OF_CONDUCT.md[CODE_OF_CONDUCT.adoc] for details. diff --git a/a2ml/editors/vscode/Containerfile b/a2ml/editors/vscode/Containerfile deleted file mode 100644 index d7266bc00..000000000 --- a/a2ml/editors/vscode/Containerfile +++ /dev/null @@ -1,41 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# -# Containerfile for {{PROJECT_NAME}} -# Build: podman build -t {{project}}:latest -f Containerfile . -# Run: podman run --rm -it {{project}}:latest -# Seal: selur seal {{project}}:latest - -# --- Build stage --- -FROM cgr.dev/chainguard/wolfi-base:latest AS build - -# TODO: Install build dependencies for your stack -# Examples: -# RUN apk add --no-cache rust cargo # Rust -# RUN apk add --no-cache elixir erlang # Elixir -# RUN apk add --no-cache zig # Zig - -WORKDIR /build -COPY . . - -# TODO: Replace with your build command -# Examples: -# RUN cargo build --release -# RUN mix deps.get && MIX_ENV=prod mix release -# RUN zig build -Doptimize=ReleaseSafe - -# --- Runtime stage --- -FROM cgr.dev/chainguard/static:latest - -# Copy built artifact from build stage -# TODO: Replace with your binary/artifact path -# Examples: -# COPY --from=build /build/target/release/{{project}} /usr/local/bin/ -# COPY --from=build /build/_build/prod/rel/{{project}} /app/ -# COPY --from=build /build/zig-out/bin/{{project}} /usr/local/bin/ - -# Non-root user (chainguard images default to nonroot) -USER nonroot - -# TODO: Replace with your entrypoint -# ENTRYPOINT ["/usr/local/bin/{{project}}"] diff --git a/a2ml/editors/vscode/Justfile b/a2ml/editors/vscode/Justfile deleted file mode 100644 index 9d7a5ff45..000000000 --- a/a2ml/editors/vscode/Justfile +++ /dev/null @@ -1,910 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# -# RSR Standard Justfile Template -# https://just.systems/man/en/ -# -# Copy this file to new projects and customize the placeholder values. -# -# Run `just` to see all available recipes -# Run `just cookbook` to generate docs/just-cookbook.adoc -# Run `just combinations` to see matrix recipe options - -set shell := ["bash", "-uc"] -set dotenv-load := true -set positional-arguments := true - -# Import auto-generated contractile recipes (must-check, trust-verify, etc.) -# Re-generate with: contractile gen-just -import? "contractile.just" - -# Project metadata — customize these -project := "{{PROJECT_NAME}}" -version := "0.1.0" -tier := "infrastructure" # 1 | 2 | infrastructure - -# ═══════════════════════════════════════════════════════════════════════════════ -# DEFAULT & HELP -# ═══════════════════════════════════════════════════════════════════════════════ - -# Show all available recipes with descriptions -default: - @just --list --unsorted - -# Show detailed help for a specific recipe -help recipe="": - #!/usr/bin/env bash - if [ -z "{{recipe}}" ]; then - just --list --unsorted - echo "" - echo "Usage: just help " - echo " just cookbook # Generate full documentation" - echo " just combinations # Show matrix recipes" - else - just --show "{{recipe}}" 2>/dev/null || echo "Recipe '{{recipe}}' not found" - fi - -# Show this project's info -info: - @echo "Project: {{project}}" - @echo "Version: {{version}}" - @echo "RSR Tier: {{tier}}" - @echo "Recipes: $(just --summary | wc -w)" - @[ -f ".machine_readable/STATE.a2ml" ] && grep -oP 'phase\s*=\s*"\K[^"]+' .machine_readable/STATE.a2ml | head -1 | xargs -I{} echo "Phase: {}" || true - -# ═══════════════════════════════════════════════════════════════════════════════ -# INIT — Bootstrap a new project from this template -# ═══════════════════════════════════════════════════════════════════════════════ - -# Interactive project bootstrap — replaces all {{PLACEHOLDER}} tokens -init: - #!/usr/bin/env bash - set -euo pipefail - - echo "═══════════════════════════════════════════════════" - echo " RSR Project Bootstrap" - echo "═══════════════════════════════════════════════════" - echo "" - - # --- Load defaults from config (if exists) --- - # Create yours: ~/.config/rsr/defaults - # Format: OWNER=myorg AUTHOR="My Name" AUTHOR_EMAIL=me@example.org ... - DEFAULTS="${XDG_CONFIG_HOME:-$HOME/.config}/rsr/defaults" - if [ -f "$DEFAULTS" ]; then - echo "Loading defaults from $DEFAULTS" - # shellcheck source=/dev/null - source "$DEFAULTS" - echo "" - fi - - # --- Required values (pre-filled from defaults if available) --- - read -rp "Project name (human-readable, e.g. My Project): " PROJECT_NAME - [ -z "$PROJECT_NAME" ] && echo "Error: project name required" && exit 1 - - read -rp "Repository slug (e.g. my-project): " REPO - [ -z "$REPO" ] && echo "Error: repo slug required" && exit 1 - - read -rp "Owner [${OWNER:-}]: " _OWNER - OWNER="${_OWNER:-${OWNER:-}}" - [ -z "$OWNER" ] && echo "Error: owner required" && exit 1 - - read -rp "Author full name [${AUTHOR:-}]: " _AUTHOR - AUTHOR="${_AUTHOR:-${AUTHOR:-}}" - [ -z "$AUTHOR" ] && echo "Error: author name required" && exit 1 - - read -rp "Author email [${AUTHOR_EMAIL:-}]: " _AUTHOR_EMAIL - AUTHOR_EMAIL="${_AUTHOR_EMAIL:-${AUTHOR_EMAIL:-}}" - [ -z "$AUTHOR_EMAIL" ] && echo "Error: email required" && exit 1 - - # --- Optional values (pre-filled from defaults if available) --- - read -rp "Author organization [${AUTHOR_ORG:-none}]: " _AUTHOR_ORG - AUTHOR_ORG="${_AUTHOR_ORG:-${AUTHOR_ORG:-}}" - - read -rp "Previous/alt email [${AUTHOR_EMAIL_ALT:-none}]: " _AUTHOR_EMAIL_ALT - AUTHOR_EMAIL_ALT="${_AUTHOR_EMAIL_ALT:-${AUTHOR_EMAIL_ALT:-}}" - - read -rp "Project description []: " PROJECT_DESCRIPTION - - read -rp "Forge domain [${FORGE:-github.com}]: " _FORGE - FORGE="${_FORGE:-${FORGE:-github.com}}" - - read -rp "Security contact email [${SECURITY_EMAIL:-$AUTHOR_EMAIL}]: " _SECURITY_EMAIL - SECURITY_EMAIL="${_SECURITY_EMAIL:-${SECURITY_EMAIL:-$AUTHOR_EMAIL}}" - - read -rp "Conduct contact email [${CONDUCT_EMAIL:-$AUTHOR_EMAIL}]: " _CONDUCT_EMAIL - CONDUCT_EMAIL="${_CONDUCT_EMAIL:-${CONDUCT_EMAIL:-$AUTHOR_EMAIL}}" - - read -rp "Project type (library|binary|monorepo|service|website) [library]: " PROJECT_TYPE - PROJECT_TYPE="${PROJECT_TYPE:-library}" - - read -rp "Website URL [https://${FORGE}/${OWNER}/${REPO}]: " WEBSITE - WEBSITE="${WEBSITE:-https://${FORGE}/${OWNER}/${REPO}}" - - # --- Container values (optional — only relevant if container/ exists) --- - if [ -d "container" ]; then - echo "" - echo "── Container configuration (optional) ─────────" - read -rp "Service name [${REPO}]: " _SERVICE_NAME - SERVICE_NAME="${_SERVICE_NAME:-${REPO}}" - read -rp "Primary port [8080]: " _PORT - PORT="${_PORT:-8080}" - read -rp "Container registry [ghcr.io/${OWNER}]: " _REGISTRY - REGISTRY="${_REGISTRY:-ghcr.io/${OWNER}}" - else - SERVICE_NAME="${REPO}" - PORT="8080" - REGISTRY="ghcr.io/${OWNER}" - fi - - # --- Derived values --- - PROJECT_UPPER=$(echo "$REPO" | tr '[:lower:]-' '[:upper:]_') - PROJECT_LOWER=$(echo "$REPO" | tr '[:upper:]-' '[:lower:]_') - CURRENT_YEAR=$(date +%Y) - CURRENT_DATE=$(date +%Y-%m-%d) - VERSION="0.1.0" - - # Derive citation name parts (best-effort split on last space) - AUTHOR_LAST="${AUTHOR##* }" - AUTHOR_FIRST="${AUTHOR% *}" - FIRST_INITIAL="${AUTHOR_FIRST:0:1}." - if [ "$AUTHOR_LAST" = "$AUTHOR_FIRST" ]; then - AUTHOR_FIRST="$AUTHOR" - AUTHOR_LAST="" - FIRST_INITIAL="" - fi - - echo "" - echo "── Summary ──────────────────────────────────────" - echo " Project: $PROJECT_NAME" - echo " Repo: $REPO" - echo " Owner: $OWNER" - echo " Author: $AUTHOR <$AUTHOR_EMAIL>" - [ -n "$AUTHOR_ORG" ] && echo " Organization: $AUTHOR_ORG" - echo " Forge: $FORGE" - echo " Year: $CURRENT_YEAR" - echo "────────────────────────────────────────────────" - echo "" - read -rp "Proceed? [Y/n] " CONFIRM - [[ "${CONFIRM:-Y}" =~ ^[Nn] ]] && echo "Aborted." && exit 0 - - echo "" - echo "Replacing placeholders..." - - # Brace tokens as variables (hex avoids just interpolation) - LB=$(printf '\x7b\x7b') - RB=$(printf '\x7d\x7d') - - # Build the sed expression list - # Note: using | as delimiter since URLs contain / - SED_ARGS=( - -e "s|${LB}PROJECT_NAME${RB}|${PROJECT_NAME}|g" - -e "s|${LB}PROJECT_DESCRIPTION${RB}|${PROJECT_DESCRIPTION}|g" - -e "s|${LB}PROJECT${RB}|${PROJECT_UPPER}|g" - -e "s|${LB}project${RB}|${PROJECT_LOWER}|g" - -e "s|${LB}REPO${RB}|${REPO}|g" - -e "s|${LB}OWNER${RB}|${OWNER}|g" - -e "s|${LB}AUTHOR${RB}|${AUTHOR}|g" - -e "s|${LB}AUTHOR_EMAIL${RB}|${AUTHOR_EMAIL}|g" - -e "s|${LB}AUTHOR_ORG${RB}|${AUTHOR_ORG}|g" - -e "s|${LB}AUTHOR_LAST${RB}|${AUTHOR_LAST}|g" - -e "s|${LB}AUTHOR_FIRST${RB}|${AUTHOR_FIRST}|g" - -e "s|${LB}AUTHOR_INITIALS${RB}|${FIRST_INITIAL}|g" - -e "s|${LB}FORGE${RB}|${FORGE}|g" - -e "s|${LB}CURRENT_YEAR${RB}|${CURRENT_YEAR}|g" - -e "s|${LB}CURRENT_DATE${RB}|${CURRENT_DATE}|g" - -e "s|${LB}DATE${RB}|${CURRENT_DATE}|g" - -e "s|${LB}SECURITY_EMAIL${RB}|${SECURITY_EMAIL}|g" - -e "s|${LB}CONDUCT_EMAIL${RB}|${CONDUCT_EMAIL}|g" - -e "s|${LB}LICENSE${RB}|PMPL-1.0-or-later|g" - -e "s|${LB}CONDUCT_TEAM${RB}|Code of Conduct Committee|g" - -e "s|${LB}RESPONSE_TIME${RB}|48 hours|g" - -e "s|${LB}MAIN_BRANCH${RB}|main|g" - -e "s|${LB}PROJECT_PURPOSE${RB}|${PROJECT_DESCRIPTION}|g" - -e "s|${LB}PROJECT_ROLE${RB}|${PROJECT_TYPE}|g" - -e "s|${LB}PROJECT_TYPE${RB}|${PROJECT_TYPE}|g" - -e "s|${LB}WEBSITE${RB}|${WEBSITE}|g" - -e "s|${LB}SERVICE_NAME${RB}|${SERVICE_NAME}|g" - -e "s|${LB}PORT${RB}|${PORT}|g" - -e "s|${LB}REGISTRY${RB}|${REGISTRY}|g" - -e "s|${LB}IMAGE${RB}|${REGISTRY}/${SERVICE_NAME}|g" - -e "s|${LB}VERSION${RB}|${VERSION}|g" - -e "s|${LB}EMAIL${RB}|${AUTHOR_EMAIL}|g" - ) - [ -n "$AUTHOR_EMAIL_ALT" ] && SED_ARGS+=(-e "s|${LB}AUTHOR_EMAIL_ALT${RB}|${AUTHOR_EMAIL_ALT}|g") - - # Replace in all text files (skip .git, LICENSE text, and binaries) - find . -type f \ - -not -path './.git/*' \ - -not -name 'PMPL-1.0-or-later.txt' \ - -not -name '*.png' -not -name '*.jpg' -not -name '*.gif' \ - -not -name '*.woff' -not -name '*.woff2' \ - | while read -r file; do - if file --brief "$file" | grep -qi 'text\|ascii\|utf'; then - sed -i "${SED_ARGS[@]}" "$file" - fi - done - - # Also replace [YOUR-REPO-NAME] and [YOUR-NAME/ORG] in AI manifest - sed -i "s|\[YOUR-REPO-NAME\]|${PROJECT_NAME}|g" 0-AI-MANIFEST.a2ml 2>/dev/null || true - sed -i "s|\[YOUR-NAME/ORG\]|${OWNER}|g" 0-AI-MANIFEST.a2ml 2>/dev/null || true - - echo "" - echo "── Validation ───────────────────────────────────" - - # Check for remaining placeholders - PATTERN="${LB}[A-Z_]*${RB}" - REMAINING=$(grep -rl "$PATTERN" . --include='*.md' --include='*.adoc' --include='*.yml' --include='*.yaml' --include='*.a2ml' --include='*.toml' --include='*.scm' --include='*.ncl' --include='*.nix' --include='*.json' --include='*.sh' 2>/dev/null | grep -v '.git/' | grep -v '.machine_readable/ai/PLACEHOLDERS.adoc' || true) - if [ -n "$REMAINING" ]; then - echo "WARNING: Remaining placeholders in:" - echo "$REMAINING" | sed 's/^/ /' - echo "" - echo "Run: grep -rn '$LB' . --include='*.md' to inspect" - else - echo "All placeholders replaced successfully!" - fi - - # K9-SVC validation (if available) - if command -v k9-svc >/dev/null 2>&1; then - echo "" - echo "Running k9-svc validation..." - k9-svc validate . 2>/dev/null || true - fi - - echo "" - echo "Done! Next steps:" - echo " 1. Review changes: git diff" - echo " 2. Remove template cruft: rm .machine_readable/ai/PLACEHOLDERS.adoc" - echo " 3. Customize README.adoc for your project" - echo " 4. Commit: git add -A && git commit -m 'feat: initialize from RSR template'" - echo " 5. Push: git remote add origin git@${FORGE}:${OWNER}/${REPO}.git && git push -u origin main" - -# ═══════════════════════════════════════════════════════════════════════════════ -# BUILD & COMPILE -# ═══════════════════════════════════════════════════════════════════════════════ - -# Build the project (debug mode) -build *args: - @echo "Building {{project}} (debug)..." - # TODO: Replace with your build command - # Examples: - # cargo build {{args}} # Rust - # mix compile {{args}} # Elixir - # zig build {{args}} # Zig - # deno task build {{args}} # Deno/ReScript - @echo "Build complete" - -# Build in release mode with optimizations -build-release *args: - @echo "Building {{project}} (release)..." - # TODO: Replace with your release build command - # Examples: - # cargo build --release {{args}} - # MIX_ENV=prod mix compile {{args}} - # zig build -Doptimize=ReleaseFast {{args}} - @echo "Release build complete" - -# Build and watch for changes (requires entr or similar) -build-watch: - @echo "Watching for changes..." - # TODO: Customize file patterns for your language - # Examples: - # find src -name '*.rs' | entr -c just build - # mix compile --force --warnings-as-errors - # deno task dev - -# Clean build artifacts [reversible: rebuild with `just build`] -clean: - @echo "Cleaning..." - # TODO: Customize for your build system - rm -rf target/ _build/ build/ dist/ out/ obj/ bin/ - -# Deep clean including caches [reversible: rebuild] -clean-all: clean - rm -rf .cache .tmp - -# ═══════════════════════════════════════════════════════════════════════════════ -# TEST & QUALITY -# ═══════════════════════════════════════════════════════════════════════════════ - -# Run all tests -test *args: - @echo "Running tests..." - # TODO: Replace with your test command - # Examples: - # cargo test {{args}} - # mix test {{args}} - # zig build test {{args}} - # deno test {{args}} - @echo "Tests passed!" - -# Run tests with verbose output -test-verbose: - @echo "Running tests (verbose)..." - # TODO: Replace with verbose test command - -# Smoke test -test-smoke: - @echo "Smoke test..." - # TODO: Add basic sanity checks - -# Run all quality checks -quality: fmt-check lint test - @echo "All quality checks passed!" - -# Fix all auto-fixable issues [reversible: git checkout] -fix: fmt - @echo "Fixed all auto-fixable issues" - -# ═══════════════════════════════════════════════════════════════════════════════ -# LINT & FORMAT -# ═══════════════════════════════════════════════════════════════════════════════ - -# Format all source files [reversible: git checkout] -fmt: - @echo "Formatting source files..." - # TODO: Replace with your formatter - # Examples: - # cargo fmt - # mix format - # gleam format - # deno fmt - -# Check formatting without changes -fmt-check: - @echo "Checking formatting..." - # TODO: Replace with your format check - # Examples: - # cargo fmt --check - # mix format --check-formatted - # gleam format --check - -# Run linter -lint: - @echo "Linting source files..." - # TODO: Replace with your linter - # Examples: - # cargo clippy -- -D warnings - # mix credo --strict - # gleam check - -# ═══════════════════════════════════════════════════════════════════════════════ -# RUN & EXECUTE -# ═══════════════════════════════════════════════════════════════════════════════ - -# Run the application -run *args: build - # TODO: Replace with your run command - echo "Run not configured yet" - -# Run with verbose output -run-verbose *args: build - # TODO: Replace with verbose run command - echo "Run not configured yet" - -# Install to user path -install: build-release - @echo "Installing {{project}}..." - # TODO: Replace with your install command - -# ═══════════════════════════════════════════════════════════════════════════════ -# DEPENDENCIES -# ═══════════════════════════════════════════════════════════════════════════════ - -# Install/check all dependencies -deps: - @echo "Checking dependencies..." - # TODO: Replace with your dependency check - # Examples: - # cargo check - # mix deps.get - # gleam deps download - @echo "All dependencies satisfied" - -# Audit dependencies for vulnerabilities -deps-audit: - @echo "Auditing for vulnerabilities..." - # TODO: Replace with your audit command - # Examples: - # cargo audit - # mix audit - @command -v trivy >/dev/null && trivy fs --severity HIGH,CRITICAL --quiet . || true - @command -v gitleaks >/dev/null && gitleaks detect --source . --no-git --quiet || true - @echo "Audit complete" - -# ═══════════════════════════════════════════════════════════════════════════════ -# DOCUMENTATION -# ═══════════════════════════════════════════════════════════════════════════════ - -# Generate all documentation -docs: - @mkdir -p docs/generated docs/man - just cookbook - just man - @echo "Documentation generated in docs/" - -# Generate justfile cookbook documentation -cookbook: - #!/usr/bin/env bash - mkdir -p docs - OUTPUT="docs/just-cookbook.adoc" - echo "= {{project}} Justfile Cookbook" > "$OUTPUT" - echo ":toc: left" >> "$OUTPUT" - echo ":toclevels: 3" >> "$OUTPUT" - echo "" >> "$OUTPUT" - echo "Generated: $(date -Iseconds)" >> "$OUTPUT" - echo "" >> "$OUTPUT" - echo "== Recipes" >> "$OUTPUT" - echo "" >> "$OUTPUT" - just --list --unsorted | while read -r line; do - if [[ "$line" =~ ^[[:space:]]+([a-z_-]+) ]]; then - recipe="${BASH_REMATCH[1]}" - echo "=== $recipe" >> "$OUTPUT" - echo "" >> "$OUTPUT" - echo "[source,bash]" >> "$OUTPUT" - echo "----" >> "$OUTPUT" - echo "just $recipe" >> "$OUTPUT" - echo "----" >> "$OUTPUT" - echo "" >> "$OUTPUT" - fi - done - echo "Generated: $OUTPUT" - -# Generate man page -man: - #!/usr/bin/env bash - mkdir -p docs/man - cat > docs/man/{{project}}.1 << EOF - .TH {{project}} 1 "$(date +%Y-%m-%d)" "{{version}}" "{{project}} Manual" - .SH NAME - {{project}} \- RSR-compliant project - .SH SYNOPSIS - .B just - [recipe] [args...] - .SH DESCRIPTION - RSR (Rhodium Standard Repository) project managed with just. - .SH AUTHOR - $(git config user.name 2>/dev/null || echo "Author") <$(git config user.email 2>/dev/null || echo "email")> - EOF - echo "Generated: docs/man/{{project}}.1" - -# ═══════════════════════════════════════════════════════════════════════════════ -# CONTAINERS (stapeln ecosystem — Podman + Chainguard Wolfi) -# ═══════════════════════════════════════════════════════════════════════════════ - -# Initialise container templates — substitute placeholders with project values -container-init: - #!/usr/bin/env bash - set -euo pipefail - - if [ ! -d "container" ]; then - echo "Error: container/ directory not found." - echo "This repo may not have been created from rsr-template-repo." - exit 1 - fi - - echo "=== Container Template Initialisation ===" - echo "" - - # Load RSR defaults if available - DEFAULTS="${XDG_CONFIG_HOME:-$HOME/.config}/rsr/defaults" - if [ -f "$DEFAULTS" ]; then - echo "Loading defaults from $DEFAULTS" - # shellcheck source=/dev/null - source "$DEFAULTS" - echo "" - fi - - # Prompt for container-specific values - read -rp "Service name (e.g. my-api) [{{project}}]: " _SERVICE_NAME - SERVICE_NAME="${_SERVICE_NAME:-{{project}}}" - - read -rp "Primary port [8080]: " _PORT - PORT="${_PORT:-8080}" - - read -rp "Container registry [ghcr.io/${OWNER:-{{OWNER}}}]: " _REGISTRY - REGISTRY="${_REGISTRY:-ghcr.io/${OWNER:-{{OWNER}}}}" - - echo "" - echo " Service: $SERVICE_NAME" - echo " Port: $PORT" - echo " Registry: $REGISTRY" - echo "" - read -rp "Proceed? [Y/n] " CONFIRM - [[ "${CONFIRM:-Y}" =~ ^[Nn] ]] && echo "Aborted." && exit 0 - - echo "" - echo "Replacing container placeholders..." - - # Brace tokens as variables (hex escapes avoid just interpolation) - LB=$(printf '\x7b\x7b') - RB=$(printf '\x7d\x7d') - - SED_ARGS=( - -e "s|${LB}SERVICE_NAME${RB}|${SERVICE_NAME}|g" - -e "s|${LB}PORT${RB}|${PORT}|g" - -e "s|${LB}REGISTRY${RB}|${REGISTRY}|g" - ) - - find container/ -type f | while read -r file; do - if file --brief "$file" | grep -qi 'text\|ascii\|utf'; then - sed -i "${SED_ARGS[@]}" "$file" - fi - done - - echo "Container templates initialised." - echo "" - echo "Next steps:" - echo " 1. Edit container/Containerfile — add your build commands" - echo " 2. Edit container/entrypoint.sh — set your application binary" - echo " 3. Review container/compose.toml — adjust services and volumes" - echo " 4. Build: just container-build" - -# Build container image via cerro-torre pipeline -container-build *args: - #!/usr/bin/env bash - if [ -f "container/ct-build.sh" ]; then - cd container && ./ct-build.sh {{args}} - elif [ -f "container/Containerfile" ]; then - podman build -t {{project}}:latest -f container/Containerfile . - elif [ -f "Containerfile" ]; then - podman build -t {{project}}:latest -f Containerfile . - else - echo "No Containerfile found in container/ or project root" - exit 1 - fi - -# Verify compose configuration -container-verify: - #!/usr/bin/env bash - if [ ! -f "container/compose.toml" ]; then - echo "No container/compose.toml found" - exit 1 - fi - cd container - if command -v selur-compose &>/dev/null; then - selur-compose verify - else - echo "selur-compose not found, falling back to podman compose" - podman compose --file compose.toml config - fi - -# Start container stack -container-up *args: - #!/usr/bin/env bash - if [ ! -f "container/compose.toml" ]; then - echo "No container/compose.toml found" - exit 1 - fi - cd container - if command -v selur-compose &>/dev/null; then - selur-compose up {{args}} - else - podman compose --file compose.toml up {{args}} - fi - -# Stop container stack -container-down: - #!/usr/bin/env bash - cd container 2>/dev/null || { echo "No container/ directory"; exit 1; } - if command -v selur-compose &>/dev/null; then - selur-compose down - else - podman compose --file compose.toml down - fi - -# Sign and verify container bundle (build + pack + sign + verify) -container-sign: - #!/usr/bin/env bash - if [ -f "container/ct-build.sh" ]; then - cd container && ./ct-build.sh - else - echo "No container/ct-build.sh found" - exit 1 - fi - -# Push signed bundle to registry -container-push: - #!/usr/bin/env bash - if [ -f "container/ct-build.sh" ]; then - cd container && ./ct-build.sh --push - else - echo "No container/ct-build.sh found — falling back to podman push" - podman push {{project}}:latest - fi - -# Run container interactively (for debugging) -container-run *args: - podman run --rm -it {{project}}:latest {{args}} - -# ═══════════════════════════════════════════════════════════════════════════════ -# CI & AUTOMATION -# ═══════════════════════════════════════════════════════════════════════════════ - -# Run full CI pipeline locally -ci: deps quality - @echo "CI pipeline complete!" - -# Install git hooks -install-hooks: - @mkdir -p .git/hooks - @cat > .git/hooks/pre-commit << 'HOOKEOF' - #!/bin/bash - just fmt-check || exit 1 - just lint || exit 1 - HOOKEOF - @chmod +x .git/hooks/pre-commit - @echo "Git hooks installed" - -# ═══════════════════════════════════════════════════════════════════════════════ -# SECURITY -# ═══════════════════════════════════════════════════════════════════════════════ - -# Run security audit -security: deps-audit - @echo "=== Security Audit ===" - @command -v gitleaks >/dev/null && gitleaks detect --source . --verbose || true - @command -v trivy >/dev/null && trivy fs --severity HIGH,CRITICAL . || true - @echo "Security audit complete" - -# Generate SBOM -sbom: - @mkdir -p docs/security - @command -v syft >/dev/null && syft . -o spdx-json > docs/security/sbom.spdx.json || echo "syft not found" - -# ═══════════════════════════════════════════════════════════════════════════════ -# VALIDATION & COMPLIANCE -# ═══════════════════════════════════════════════════════════════════════════════ - -# Validate RSR compliance -validate-rsr: - #!/usr/bin/env bash - echo "=== RSR Compliance Check ===" - MISSING="" - for f in .editorconfig .gitignore Justfile README.adoc LICENSE 0-AI-MANIFEST.a2ml; do - [ -f "$f" ] || MISSING="$MISSING $f" - done - for f in .machine_readable/STATE.a2ml .machine_readable/META.a2ml .machine_readable/ECOSYSTEM.a2ml .machine_readable/anchors/ANCHOR.a2ml .machine_readable/policies/MAINTENANCE-AXES.a2ml .machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml .machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml; do - [ -f "$f" ] || MISSING="$MISSING $f" - done - for f in licensing/exhibits/EXHIBIT-A-ETHICAL-USE.txt licensing/exhibits/EXHIBIT-B-QUANTUM-SAFE.txt licensing/texts/PMPL-1.0-or-later.txt; do - [ -f "$f" ] || MISSING="$MISSING $f" - done - for f in src/interface/abi src/interface/ffi src/interface/generated; do - [ -d "$f" ] || MISSING="$MISSING $f" - done - for f in docs/maintenance/MAINTENANCE-CHECKLIST.adoc docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc; do - [ -f "$f" ] || MISSING="$MISSING $f" - done - if [ -f ".machine_readable/META.a2ml" ]; then - grep -q 'axis-1 = "must > intend > like"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:axis-1" - grep -q 'axis-2 = "corrective > adaptive > perfective"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:axis-2" - grep -q 'axis-3 = "systems > compliance > effects"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:axis-3" - grep -q 'scoping-first = true' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:scoping-first" - grep -q 'idris-unsound-scan = "believe_me/assert_total"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:idris-unsound-scan" - grep -q 'audit-focus = "systems in place, documentation explains actual state, safety/security accounted for, observed effects reviewed"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:audit-focus" - grep -q 'compliance-focus = "seams/compromises/exception register, bounded exceptions, anti-drift checks"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:compliance-focus" - grep -q 'effects-evidence = "benchmark execution/results and maintainer status dialogue/review"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:effects-evidence" - grep -q 'compliance-tooling = "panic-attack"' .machine_readable/policies/MAINTENANCE-AXES.a2ml || MISSING="$MISSING MAINTENANCE-AXES.a2ml:compliance-tooling" - grep -q 'effects-tooling = "ecological checking with sustainabot guidance"' .machine_readable/policies/MAINTENANCE-AXES.a2ml || MISSING="$MISSING MAINTENANCE-AXES.a2ml:effects-tooling" - grep -q 'source-human = "docs/maintenance/MAINTENANCE-CHECKLIST.adoc"' .machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml || MISSING="$MISSING MAINTENANCE-CHECKLIST.a2ml:source-human" - grep -q 'source-human = "docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc"' .machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml || MISSING="$MISSING SOFTWARE-DEVELOPMENT-APPROACH.a2ml:source-human" - fi - if [ -n "$MISSING" ]; then - echo "MISSING:$MISSING" - exit 1 - fi - echo "RSR compliance: PASS" - -# Validate STATE.a2ml syntax -validate-state: - @if [ -f ".machine_readable/STATE.a2ml" ]; then \ - grep -q '^\[metadata\]' .machine_readable/STATE.a2ml && \ - grep -q 'project\s*=' .machine_readable/STATE.a2ml && \ - echo "STATE.a2ml: valid" || echo "STATE.a2ml: INVALID (missing required sections)"; \ - else \ - echo "No .machine_readable/STATE.a2ml found"; \ - fi - -# Validate AI installation guide completeness (finishbot pre-release check) -validate-ai-install: - #!/usr/bin/env bash - echo "=== AI Installation Guide Check ===" - GUIDE="docs/AI_INSTALLATION_GUIDE.adoc" - README="README.adoc" - ERRORS=0 - - # Check guide exists - if [ ! -f "$GUIDE" ]; then - echo "MISSING: $GUIDE (create from template: docs/AI_INSTALLATION_GUIDE.adoc)" - ERRORS=$((ERRORS + 1)) - else - # Check for unfilled TODO markers - TODOS=$(grep -c '\[TODO-AI-INSTALL' "$GUIDE" 2>/dev/null || true) - if [ "$TODOS" -gt 0 ]; then - echo "INCOMPLETE: $GUIDE has $TODOS unfilled [TODO-AI-INSTALL] markers:" - grep -n '\[TODO-AI-INSTALL' "$GUIDE" | head -10 - ERRORS=$((ERRORS + 1)) - else - echo "$GUIDE: complete (no TODO markers)" - fi - - # Check AI implementation section exists - if ! grep -q 'ai-implementation' "$GUIDE" 2>/dev/null; then - echo "MISSING: [[ai-implementation]] anchor in $GUIDE" - ERRORS=$((ERRORS + 1)) - fi - - # Check privacy notice exists - if ! grep -qi 'privacy' "$GUIDE" 2>/dev/null; then - echo "MISSING: Privacy notice in $GUIDE" - ERRORS=$((ERRORS + 1)) - fi - - # Check install commands exist (not just placeholders) - if ! grep -q 'git clone' "$GUIDE" 2>/dev/null; then - echo "WARNING: No git clone command found in $GUIDE -- install commands may be incomplete" - fi - fi - - # Check README has AI install section - if [ -f "$README" ]; then - if ! grep -qi 'AI-Assisted Installation' "$README" 2>/dev/null; then - echo "MISSING: AI-Assisted Installation section in $README" - echo " Copy from docs/AI-INSTALL-README-SECTION.adoc" - ERRORS=$((ERRORS + 1)) - fi - - # Check README for unfilled TODO markers - README_TODOS=$(grep -c '\[TODO-AI-INSTALL' "$README" 2>/dev/null || true) - if [ "$README_TODOS" -gt 0 ]; then - echo "INCOMPLETE: $README has $README_TODOS unfilled [TODO-AI-INSTALL] markers" - ERRORS=$((ERRORS + 1)) - fi - fi - - if [ "$ERRORS" -gt 0 ]; then - echo "" - echo "AI install guide: FAIL ($ERRORS issues)" - exit 1 - fi - echo "AI install guide: PASS" - -# Full validation suite -validate: validate-rsr validate-state validate-ai-install - @echo "All validations passed!" - -# ═══════════════════════════════════════════════════════════════════════════════ -# STATE MANAGEMENT -# ═══════════════════════════════════════════════════════════════════════════════ - -# Update STATE.a2ml timestamp -state-touch: - @if [ -f ".machine_readable/STATE.a2ml" ]; then \ - sed -i 's/last-updated = "[^"]*"/last-updated = "'"$(date +%Y-%m-%d)"'"/' .machine_readable/STATE.a2ml && \ - echo "STATE.a2ml timestamp updated"; \ - fi - -# Show current phase from STATE.a2ml -state-phase: - @grep -oP 'phase\s*=\s*"\K[^"]+' .machine_readable/STATE.a2ml 2>/dev/null | head -1 || echo "unknown" - -# ═══════════════════════════════════════════════════════════════════════════════ -# GUIX & NIX -# ═══════════════════════════════════════════════════════════════════════════════ - -# Enter Guix development shell (primary) -guix-shell: - guix shell -D -f guix.scm - -# Build with Guix -guix-build: - guix build -f guix.scm - -# Enter Nix development shell (fallback) -nix-shell: - @if [ -f "flake.nix" ]; then nix develop; else echo "No flake.nix"; fi - -# ═══════════════════════════════════════════════════════════════════════════════ -# HYBRID AUTOMATION -# ═══════════════════════════════════════════════════════════════════════════════ - -# Run local automation tasks -automate task="all": - #!/usr/bin/env bash - case "{{task}}" in - all) just fmt && just lint && just test && just docs && just state-touch ;; - cleanup) just clean && find . -name "*.orig" -delete && find . -name "*~" -delete ;; - update) just deps && just validate ;; - *) echo "Unknown: {{task}}. Use: all, cleanup, update" && exit 1 ;; - esac - -# ═══════════════════════════════════════════════════════════════════════════════ -# COMBINATORIC MATRIX RECIPES -# ═══════════════════════════════════════════════════════════════════════════════ - -# Build matrix: [debug|release] x [target] x [features] -build-matrix mode="debug" target="" features="": - @echo "Build matrix: mode={{mode}} target={{target}} features={{features}}" - -# Test matrix: [unit|integration|e2e|all] x [verbosity] x [parallel] -test-matrix suite="unit" verbosity="normal" parallel="true": - @echo "Test matrix: suite={{suite}} verbosity={{verbosity}} parallel={{parallel}}" - -# Container matrix: [build|run|push|shell|scan] x [registry] x [tag] -container-matrix action="build" registry="ghcr.io/{{OWNER}}" tag="latest": - @echo "Container matrix: action={{action}} registry={{registry}} tag={{tag}}" - -# CI matrix: [lint|test|build|security|all] x [quick|full] -ci-matrix stage="all" depth="quick": - @echo "CI matrix: stage={{stage}} depth={{depth}}" - -# Show all matrix combinations -combinations: - @echo "=== Combinatoric Matrix Recipes ===" - @echo "" - @echo "Build Matrix: just build-matrix [debug|release] [target] [features]" - @echo "Test Matrix: just test-matrix [unit|integration|e2e|all] [verbosity] [parallel]" - @echo "Container: just container-matrix [build|run|push|shell|scan] [registry] [tag]" - @echo "CI Matrix: just ci-matrix [lint|test|build|security|all] [quick|full]" - -# ═══════════════════════════════════════════════════════════════════════════════ -# VERSION CONTROL -# ═══════════════════════════════════════════════════════════════════════════════ - -# Show git status -status: - @git status --short - -# Show recent commits -log count="20": - @git log --oneline -{{count}} - -# Generate CHANGELOG.md with git-cliff -changelog: - @command -v git-cliff >/dev/null || { echo "git-cliff not found — install: cargo install git-cliff"; exit 1; } - git cliff --config .machine_readable/configs/git-cliff/cliff.toml --output CHANGELOG.md - @echo "Generated CHANGELOG.md" - -# Preview changelog for unreleased commits (does not write) -changelog-preview: - @command -v git-cliff >/dev/null || { echo "git-cliff not found — install: cargo install git-cliff"; exit 1; } - git cliff --config .machine_readable/configs/git-cliff/cliff.toml --unreleased --strip header - -# Tag a new release (usage: just release-tag 1.2.3) -release-tag version: - #!/usr/bin/env bash - TAG="v{{version}}" - if git rev-parse "$TAG" >/dev/null 2>&1; then - echo "Tag $TAG already exists" - exit 1 - fi - just changelog - git add CHANGELOG.md - git commit -m "chore(release): prepare $TAG" - git tag -a "$TAG" -m "Release $TAG" - echo "Created tag $TAG — push with: git push origin main --tags" - -# ═══════════════════════════════════════════════════════════════════════════════ -# UTILITIES -# ═══════════════════════════════════════════════════════════════════════════════ - -# Count lines of code -loc: - @find . \( -name "*.rs" -o -name "*.ex" -o -name "*.exs" -o -name "*.res" -o -name "*.gleam" -o -name "*.zig" -o -name "*.idr" -o -name "*.hs" -o -name "*.ncl" -o -name "*.scm" -o -name "*.adb" -o -name "*.ads" \) -not -path './target/*' -not -path './_build/*' 2>/dev/null | xargs wc -l 2>/dev/null | tail -1 || echo "0" - -# Show TODO comments -todos: - @grep -rn "TODO\|FIXME\|HACK\|XXX" --include="*.rs" --include="*.ex" --include="*.res" --include="*.gleam" --include="*.zig" --include="*.idr" --include="*.hs" . 2>/dev/null || echo "No TODOs" - -# Open in editor -edit: - ${EDITOR:-code} . - -# Run high-rigor security assault using panic-attacker -maint-assault: - @./.machine_readable/scripts/maintenance/maint-assault.sh - -# [AUTO-GENERATED] Multi-arch / RISC-V target -build-riscv: - @echo "Building for RISC-V..." - cross build --target riscv64gc-unknown-linux-gnu diff --git a/a2ml/editors/vscode/LICENSE b/a2ml/editors/vscode/LICENSE deleted file mode 100644 index ec540b341..000000000 --- a/a2ml/editors/vscode/LICENSE +++ /dev/null @@ -1,153 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 -SPDX-FileCopyrightText: 2024-2025 Palimpsest Stewardship Council - -================================================================================ -PALIMPSEST-MPL LICENSE VERSION 1.0 -================================================================================ - -File-level copyleft with ethical use and quantum-safe provenance - -Based on Mozilla Public License 2.0 - --------------------------------------------------------------------------------- -PREAMBLE --------------------------------------------------------------------------------- - -This License extends the Mozilla Public License 2.0 (MPL-2.0) with provisions -for ethical use, post-quantum cryptographic provenance, and emotional lineage -protection. The base MPL-2.0 terms apply except where explicitly modified by -the Exhibits below. - -Like a palimpsest manuscript where each layer builds upon what came before, -this license recognizes that creative works carry history, context, and meaning -that transcend mere code or text. - --------------------------------------------------------------------------------- -SECTION 1: BASE LICENSE --------------------------------------------------------------------------------- - -This License incorporates the full text of Mozilla Public License 2.0 by -reference. The complete MPL-2.0 text is available at: -https://www.mozilla.org/en-US/MPL/2.0/ - -All terms, conditions, and definitions from MPL-2.0 apply except where -explicitly modified by the Exhibits in this License. - --------------------------------------------------------------------------------- -SECTION 2: ADDITIONAL DEFINITIONS --------------------------------------------------------------------------------- - -2.1. "Emotional Lineage" - means the narrative, cultural, symbolic, and contextual meaning embedded - in Covered Software, including but not limited to: protest traditions, - cultural heritage, trauma narratives, and community stories. - -2.2. "Provenance Metadata" - means cryptographically signed attribution information attached to or - associated with Covered Software, including author identities, timestamps, - modification history, and lineage references. - -2.3. "Non-Interpretive System" - means any automated system that processes Covered Software without - preserving or considering its Emotional Lineage, including but not - limited to: AI training pipelines, content aggregators, and automated - summarization tools. - -2.4. "Quantum-Safe Signature" - means a cryptographic signature using algorithms resistant to attacks - by quantum computers, as specified in Exhibit B. - --------------------------------------------------------------------------------- -SECTION 3: ETHICAL USE REQUIREMENTS --------------------------------------------------------------------------------- - -In addition to the rights and obligations under MPL-2.0: - -3.1. Emotional Lineage Preservation - You must make reasonable efforts to preserve and communicate the - Emotional Lineage of Covered Software when distributing or creating - derivative works. This includes maintaining narrative context, cultural - attributions, and symbolic meaning where documented. - -3.2. Non-Interpretive System Notice - If You use Covered Software as input to a Non-Interpretive System, You - must: - (a) document such use in a publicly accessible manner; and - (b) not claim that outputs of such systems carry the Emotional Lineage - of the original work without explicit permission from Contributors. - -3.3. Ethical Use Declaration - Commercial use of Covered Software requires acknowledgment that You have - read and understood Exhibit A (Ethical Use Guidelines) and agree to act - in good faith accordance with its principles. - -See Exhibit A for complete Ethical Use Guidelines. - --------------------------------------------------------------------------------- -SECTION 4: PROVENANCE REQUIREMENTS --------------------------------------------------------------------------------- - -4.1. Metadata Preservation - You must not strip, alter, or obscure Provenance Metadata from Covered - Software except where technically necessary and with clear documentation - of any changes. - -4.2. Quantum-Safe Provenance (Optional) - Contributors may sign their Contributions using Quantum-Safe Signatures. - If Quantum-Safe Signatures are present, You must preserve them in all - distributions. - -4.3. Lineage Chain - When creating derivative works, You should extend the provenance chain - to include Your own contributions, maintaining cryptographic linkage to - prior Contributors where feasible. - -See Exhibit B for Quantum-Safe Provenance specifications. - --------------------------------------------------------------------------------- -SECTION 5: GOVERNANCE --------------------------------------------------------------------------------- - -5.1. Stewardship Council - This License is maintained by the Palimpsest Stewardship Council, which - may issue clarifications, interpretive guidance, and future versions. - -5.2. Version Selection - You may use Covered Software under this version of the License or any - later version published by the Palimpsest Stewardship Council. - -5.3. Dispute Resolution - Disputes regarding interpretation of Ethical Use Requirements (Section 3) - should first be submitted to the Palimpsest Stewardship Council for - non-binding guidance before pursuing legal remedies. - --------------------------------------------------------------------------------- -SECTION 6: COMPATIBILITY --------------------------------------------------------------------------------- - -6.1. MPL-2.0 Compatibility - Covered Software under this License may be combined with software under - MPL-2.0. The combined work must comply with both licenses. - -6.2. Secondary Licenses - The Secondary License provisions of MPL-2.0 Section 3.3 apply to this - License. - --------------------------------------------------------------------------------- -EXHIBITS --------------------------------------------------------------------------------- - -Exhibit A - Ethical Use Guidelines -Exhibit B - Quantum-Safe Provenance Specification - -See separate files: -- EXHIBIT-A-ETHICAL-USE.txt -- EXHIBIT-B-QUANTUM-SAFE.txt - --------------------------------------------------------------------------------- -END OF PALIMPSEST-MPL LICENSE VERSION 1.0 --------------------------------------------------------------------------------- - -For questions about this License: -- Repository: https://github.com/hyperpolymath/palimpsest-license -- Council: contact via repository Issues diff --git a/a2ml/editors/vscode/LICENSE-PMPL b/a2ml/editors/vscode/LICENSE-PMPL deleted file mode 100644 index ec540b341..000000000 --- a/a2ml/editors/vscode/LICENSE-PMPL +++ /dev/null @@ -1,153 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 -SPDX-FileCopyrightText: 2024-2025 Palimpsest Stewardship Council - -================================================================================ -PALIMPSEST-MPL LICENSE VERSION 1.0 -================================================================================ - -File-level copyleft with ethical use and quantum-safe provenance - -Based on Mozilla Public License 2.0 - --------------------------------------------------------------------------------- -PREAMBLE --------------------------------------------------------------------------------- - -This License extends the Mozilla Public License 2.0 (MPL-2.0) with provisions -for ethical use, post-quantum cryptographic provenance, and emotional lineage -protection. The base MPL-2.0 terms apply except where explicitly modified by -the Exhibits below. - -Like a palimpsest manuscript where each layer builds upon what came before, -this license recognizes that creative works carry history, context, and meaning -that transcend mere code or text. - --------------------------------------------------------------------------------- -SECTION 1: BASE LICENSE --------------------------------------------------------------------------------- - -This License incorporates the full text of Mozilla Public License 2.0 by -reference. The complete MPL-2.0 text is available at: -https://www.mozilla.org/en-US/MPL/2.0/ - -All terms, conditions, and definitions from MPL-2.0 apply except where -explicitly modified by the Exhibits in this License. - --------------------------------------------------------------------------------- -SECTION 2: ADDITIONAL DEFINITIONS --------------------------------------------------------------------------------- - -2.1. "Emotional Lineage" - means the narrative, cultural, symbolic, and contextual meaning embedded - in Covered Software, including but not limited to: protest traditions, - cultural heritage, trauma narratives, and community stories. - -2.2. "Provenance Metadata" - means cryptographically signed attribution information attached to or - associated with Covered Software, including author identities, timestamps, - modification history, and lineage references. - -2.3. "Non-Interpretive System" - means any automated system that processes Covered Software without - preserving or considering its Emotional Lineage, including but not - limited to: AI training pipelines, content aggregators, and automated - summarization tools. - -2.4. "Quantum-Safe Signature" - means a cryptographic signature using algorithms resistant to attacks - by quantum computers, as specified in Exhibit B. - --------------------------------------------------------------------------------- -SECTION 3: ETHICAL USE REQUIREMENTS --------------------------------------------------------------------------------- - -In addition to the rights and obligations under MPL-2.0: - -3.1. Emotional Lineage Preservation - You must make reasonable efforts to preserve and communicate the - Emotional Lineage of Covered Software when distributing or creating - derivative works. This includes maintaining narrative context, cultural - attributions, and symbolic meaning where documented. - -3.2. Non-Interpretive System Notice - If You use Covered Software as input to a Non-Interpretive System, You - must: - (a) document such use in a publicly accessible manner; and - (b) not claim that outputs of such systems carry the Emotional Lineage - of the original work without explicit permission from Contributors. - -3.3. Ethical Use Declaration - Commercial use of Covered Software requires acknowledgment that You have - read and understood Exhibit A (Ethical Use Guidelines) and agree to act - in good faith accordance with its principles. - -See Exhibit A for complete Ethical Use Guidelines. - --------------------------------------------------------------------------------- -SECTION 4: PROVENANCE REQUIREMENTS --------------------------------------------------------------------------------- - -4.1. Metadata Preservation - You must not strip, alter, or obscure Provenance Metadata from Covered - Software except where technically necessary and with clear documentation - of any changes. - -4.2. Quantum-Safe Provenance (Optional) - Contributors may sign their Contributions using Quantum-Safe Signatures. - If Quantum-Safe Signatures are present, You must preserve them in all - distributions. - -4.3. Lineage Chain - When creating derivative works, You should extend the provenance chain - to include Your own contributions, maintaining cryptographic linkage to - prior Contributors where feasible. - -See Exhibit B for Quantum-Safe Provenance specifications. - --------------------------------------------------------------------------------- -SECTION 5: GOVERNANCE --------------------------------------------------------------------------------- - -5.1. Stewardship Council - This License is maintained by the Palimpsest Stewardship Council, which - may issue clarifications, interpretive guidance, and future versions. - -5.2. Version Selection - You may use Covered Software under this version of the License or any - later version published by the Palimpsest Stewardship Council. - -5.3. Dispute Resolution - Disputes regarding interpretation of Ethical Use Requirements (Section 3) - should first be submitted to the Palimpsest Stewardship Council for - non-binding guidance before pursuing legal remedies. - --------------------------------------------------------------------------------- -SECTION 6: COMPATIBILITY --------------------------------------------------------------------------------- - -6.1. MPL-2.0 Compatibility - Covered Software under this License may be combined with software under - MPL-2.0. The combined work must comply with both licenses. - -6.2. Secondary Licenses - The Secondary License provisions of MPL-2.0 Section 3.3 apply to this - License. - --------------------------------------------------------------------------------- -EXHIBITS --------------------------------------------------------------------------------- - -Exhibit A - Ethical Use Guidelines -Exhibit B - Quantum-Safe Provenance Specification - -See separate files: -- EXHIBIT-A-ETHICAL-USE.txt -- EXHIBIT-B-QUANTUM-SAFE.txt - --------------------------------------------------------------------------------- -END OF PALIMPSEST-MPL LICENSE VERSION 1.0 --------------------------------------------------------------------------------- - -For questions about this License: -- Repository: https://github.com/hyperpolymath/palimpsest-license -- Council: contact via repository Issues diff --git a/a2ml/editors/vscode/README.adoc b/a2ml/editors/vscode/README.adoc deleted file mode 100644 index 79cbb015e..000000000 --- a/a2ml/editors/vscode/README.adoc +++ /dev/null @@ -1,41 +0,0 @@ -== A2ML for Visual Studio Code - -Syntax highlighting for -https://github.com/hyperpolymath/standards/tree/main/a2ml[A2ML] -(Attested Markup Language) — a structured document format for AI agent -manifests and project metadata. - -=== Features - -* Syntax highlighting for `+.a2ml+` files -* Directive recognition (`+@abstract+`, `+@opaque+`, `+@fig+`, `+@ref+`, -`+@include+`, etc.) -* Section header highlighting (`+[metadata]+`, `+[dependencies]+`, etc.) -* Inline formatting (bold, italic, links, code spans) -* Fenced code block support with language annotations -* SPDX license header recognition - -=== File Associations - -[cols=",",options="header",] -|=== -|Extension |Language -|`+.a2ml+` |A2ML -|=== - -=== LSP Support - -For diagnostics, completions, and hover documentation, install the -https://github.com/hyperpolymath/standards/tree/main/a2ml/lsp[A2ML LSP -server] and configure the `+a2ml.server.path+` setting. - -=== Related - -* https://github.com/hyperpolymath/standards/tree/main/a2ml/SPEC-v1.0.adoc[A2ML -Specification] -* https://github.com/hyperpolymath/standards/tree/main/a2ml/pandoc[Pandoc -Reader/Writer] - -=== License - -PMPL-1.0-or-later (Palimpsest License) diff --git a/a2ml/editors/vscode/ROADMAP.adoc b/a2ml/editors/vscode/ROADMAP.adoc deleted file mode 100644 index 8af55ca67..000000000 --- a/a2ml/editors/vscode/ROADMAP.adoc +++ /dev/null @@ -1,22 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Vscode Roadmap - -== Current Status - -Initial development phase. - -== Milestones - -=== v0.1.0 - Foundation -* [ ] Core functionality -* [ ] Basic documentation -* [ ] CI/CD pipeline - -=== v1.0.0 - Stable Release -* [ ] Full feature set -* [ ] Comprehensive tests -* [ ] Production ready - -== Future Directions - -_To be determined based on community feedback._ diff --git a/a2ml/editors/vscode/SECURITY.adoc b/a2ml/editors/vscode/SECURITY.adoc deleted file mode 100644 index e47fdd927..000000000 --- a/a2ml/editors/vscode/SECURITY.adoc +++ /dev/null @@ -1,16 +0,0 @@ -== Security Policy - -=== Reporting a Vulnerability - -If you discover a security vulnerability, please report it responsibly. - -*Email:* j.d.a.jewell@open.ac.uk - -*Please include:* - Description of the vulnerability - Steps to -reproduce - Potential impact - -*Response timeline:* - Acknowledgement within 48 hours - Initial -assessment within 7 days - Fix or mitigation within 90 days - -*Safe harbour:* We will not pursue legal action against security -researchers who follow responsible disclosure. diff --git a/a2ml/editors/vscode/container/.gatekeeper.yaml b/a2ml/editors/vscode/container/.gatekeeper.yaml deleted file mode 120000 index 87731df30..000000000 --- a/a2ml/editors/vscode/container/.gatekeeper.yaml +++ /dev/null @@ -1 +0,0 @@ -../../../../_shared/container/.gatekeeper.yaml \ No newline at end of file diff --git a/a2ml/editors/vscode/container/0.1-AI-MANIFEST.a2ml b/a2ml/editors/vscode/container/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index ccb5bc51d..000000000 --- a/a2ml/editors/vscode/container/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1,143 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "container-templates" -version: "1.0.0" -context: - - "https://a2ml.org/ns/v2" - - "https://stapeln.dev/ns/v1" - ---- -### [AI_MANIFEST] -description: | - Container templates for the stapeln container ecosystem. This directory - provides Podman-Chainguard-stapeln templates that are customised via - `just container-init` or `just init` during project bootstrap. - - All files use {{PLACEHOLDER}} tokens that are substituted with project- - specific values during initialisation. - -purpose: | - Provide a complete, security-first container deployment story for any - RSR-compliant repository. The templates cover the full lifecycle: - build, sign, verify, deploy, monitor, and govern. - -canonical_locations: - compose: "container/compose.toml" - containerfile: "container/Containerfile" - manifest: "container/manifest.toml" - gatekeeper: "container/.gatekeeper.yaml" - build_pipeline: "container/ct-build.sh" - entrypoint: "container/entrypoint.sh" - monitoring: "container/vordr.toml" - deployment: "container/deploy.k9.ncl" - example: "container/compose.example.toml" - ---- -### [FILE_RELATIONSHIPS] -files: - - name: "compose.toml" - role: "Orchestration" - description: | - selur-compose stack definition. Declares services, volumes, networks, - and health checks. References the Containerfile for image builds and - .gatekeeper.yaml for svalinn policy. - depends_on: ["Containerfile", ".gatekeeper.yaml"] - - - name: "Containerfile" - role: "Image Build" - description: | - Multi-stage OCI container build. Stage 1 compiles the application on - wolfi-base; Stage 2 copies the binary into a minimal runtime image. - Copies entrypoint.sh, .gatekeeper.yaml, and manifest.toml into the - final image. - depends_on: ["entrypoint.sh", ".gatekeeper.yaml", "manifest.toml"] - - - name: "manifest.toml" - role: "Bundle Metadata" - description: | - Cerro-torre .ctp bundle manifest. Describes provenance, dependencies, - attestations, and runtime security profile. Used by `ct pack` and - `ct verify`. - depends_on: [] - - - name: ".gatekeeper.yaml" - role: "Gateway Policy" - description: | - Svalinn edge gateway policy. Controls authentication, rate limiting, - container trust, request validation, CORS, and audit logging. - depends_on: [] - - - name: "ct-build.sh" - role: "Build Pipeline" - description: | - Shell script implementing the 5-stage pipeline: build (Podman), - pack (cerro-torre .ctp), sign (Ed25519), verify, push (optional). - Degrades gracefully when cerro-torre tools are not installed. - depends_on: ["Containerfile", "manifest.toml"] - - - name: "entrypoint.sh" - role: "Container Entrypoint" - description: | - Startup script with signal handling (SIGTERM, SIGINT), logging, and - exec into the main application process. - depends_on: [] - - - name: "vordr.toml" - role: "Runtime Monitoring" - description: | - Vordr monitoring configuration. Health endpoint probing, crash - detection, resource thresholds, and structured log output. - depends_on: [] - - - name: "deploy.k9.ncl" - role: "Deployment Component" - description: | - k9-svc deployment specification at Hunt trust level. Full pedigree - (L1-L5), environment configs, container config, and rolling - deployment strategy. - depends_on: ["compose.toml", "ct-build.sh"] - - - name: "compose.example.toml" - role: "Example" - description: | - Fully-commented multi-service example (Rust API + Elixir worker + - svalinn gateway). Copy to compose.toml and customise. - depends_on: [] - ---- -### [STAPELN_ECOSYSTEM] -overview: | - The stapeln container ecosystem comprises six tools: - - selur — Container orchestration with zero-copy IPC. Reads compose.toml. - cerro-torre — Verified container packaging (.ctp bundles), Ed25519 signing. - svalinn — Policy-driven edge gateway (auth, rate limits, CORS, trust). - vordr — Runtime monitoring (health, crashes, resources, logs). - rokur — Secrets management (runtime injection, no baked secrets). - k9-svc — Nickel deployment components (Kennel/Yard/Hunt trust levels). - -invariants: - - "Base images MUST be cgr.dev/chainguard/wolfi-base or cgr.dev/chainguard/static" - - "Container runtime is Podman — never Docker" - - "Containerfile — never Dockerfile" - - "All images run as non-root (appuser or project-specific user)" - - ".ctp bundles are signed with Ed25519 via cerro-torre" - - "Health endpoints (/health, /ready) must always be public (no auth)" - ---- -### [USAGE] -initialisation: | - Run `just container-init` to substitute all {{PLACEHOLDER}} tokens with - project-specific values. This is also run as part of `just init`. - -development: | - 1. `just container-build` — Build the container image - 2. `just container-verify` — Verify compose configuration - 3. `just container-up` — Start the stack locally - 4. `just container-down` — Stop the stack - -production: | - 1. `just container-sign` — Build, sign, verify .ctp bundle - 2. `just container-push` — Push signed bundle to registry - 3. `selur-compose up` — Deploy on target host diff --git a/a2ml/editors/vscode/container/Containerfile b/a2ml/editors/vscode/container/Containerfile deleted file mode 100644 index ba85260a6..000000000 --- a/a2ml/editors/vscode/container/Containerfile +++ /dev/null @@ -1,136 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# {{PROJECT_NAME}} Container Image -# -# Multi-stage build template for Chainguard Wolfi base images. -# Customise the builder stage for your language and copy the -# resulting binary/release into the minimal runtime stage. -# -# Build with Podman: -# podman build -t {{SERVICE_NAME}}:latest -f container/Containerfile . -# -# Run: -# podman run -p {{PORT}}:{{PORT}} {{SERVICE_NAME}}:latest -# -# Run with persistent volume: -# podman run -p {{PORT}}:{{PORT}} -v {{SERVICE_NAME}}-data:/data {{SERVICE_NAME}}:latest - -# ============================================================================ -# Stage 1: Builder -# ============================================================================ -# -# Install build tools and compile the application. -# This stage is discarded after the build — only the compiled output -# is copied into the runtime stage. -# -# Language-specific examples (uncomment the one you need): -# -# --- Rust --- -# RUN apk add --no-cache rust pkgconf build-base -# COPY Cargo.toml Cargo.lock ./ -# COPY src/ ./src/ -# RUN cargo build --release -# # Output: /build/target/release/{{SERVICE_NAME}} -# -# --- Elixir --- -# RUN apk add --no-cache erl27-elixir-1.18 erlang-27 erlang-27-dev git build-base -# COPY mix.exs mix.lock ./ -# COPY lib/ ./lib/ -# COPY config/ ./config/ -# ENV MIX_ENV=prod -# RUN mix local.hex --force && mix local.rebar --force && \ -# mix deps.get --only prod && mix compile && mix release -# # Output: /build/_build/prod/rel/{{SERVICE_NAME}}/ -# -# --- Zig --- -# RUN apk add --no-cache zig build-base -# COPY build.zig build.zig.zon ./ -# COPY src/ ./src/ -# RUN zig build -Doptimize=ReleaseFast -# # Output: /build/zig-out/bin/{{SERVICE_NAME}} -# -FROM cgr.dev/chainguard/wolfi-base:latest AS builder - -# TODO: Install your language toolchain -RUN apk add --no-cache build-base - -WORKDIR /build - -# TODO: Copy source files and build -COPY . . -# RUN - -# ============================================================================ -# Stage 2: Runtime -# ============================================================================ -# -# Minimal production image. Only the compiled binary/release and runtime -# dependencies are included. No compilers, no source code, no build tools. -# -FROM cgr.dev/chainguard/wolfi-base:latest - -# OCI image labels (compatible with cerro-torre .ctp bundle metadata) -LABEL org.opencontainers.image.title="{{PROJECT_NAME}}" \ - org.opencontainers.image.description="{{PROJECT_DESCRIPTION}}" \ - org.opencontainers.image.url="https://{{FORGE}}/{{OWNER}}/{{REPO}}" \ - org.opencontainers.image.source="https://{{FORGE}}/{{OWNER}}/{{REPO}}" \ - org.opencontainers.image.vendor="{{OWNER}}" \ - org.opencontainers.image.licenses="{{LICENSE}}" \ - org.opencontainers.image.authors="{{AUTHOR}} <{{AUTHOR_EMAIL}}>" \ - dev.cerrotorre.manifest="container/manifest.toml" \ - dev.cerrotorre.gatekeeper="container/.gatekeeper.yaml" \ - dev.stapeln.compose="container/compose.toml" - -# Install minimal runtime dependencies. -# Adjust this list for your application: -# - ca-certificates: TLS root certificates -# - curl: health check probe -# - libstdc++: C++ standard library (if needed by native deps) -# - ncurses: terminal UI (if needed, e.g. Elixir IEx) -RUN apk add --no-cache ca-certificates curl - -# Create non-root user for the application. -# Running as root inside containers is a security anti-pattern. -RUN addgroup -S appuser && adduser -S appuser -G appuser - -WORKDIR /app - -# TODO: Copy compiled binary/release from builder stage. -# Examples: -# COPY --from=builder /build/target/release/{{SERVICE_NAME}} /app/{{SERVICE_NAME}} -# COPY --from=builder /build/_build/prod/rel/{{SERVICE_NAME}} /app/release/ -# COPY --from=builder /build/zig-out/bin/{{SERVICE_NAME}} /app/{{SERVICE_NAME}} - -# Copy entrypoint script -COPY container/entrypoint.sh /app/entrypoint.sh -RUN chmod +x /app/entrypoint.sh - -# Copy stapeln integration files (svalinn gatekeeper policy, cerro-torre manifest) -COPY container/.gatekeeper.yaml /etc/svalinn/gatekeeper.yaml -COPY container/manifest.toml /app/manifest.toml - -# Create data directory for persistent storage (mountable volume) -RUN mkdir -p /data && chown appuser:appuser /data - -# Set ownership of the application directory -RUN chown -R appuser:appuser /app - -# Environment variables — customise for your application -ENV APP_HOST=[::] -ENV APP_PORT={{PORT}} -ENV APP_LOG_FORMAT=json -ENV APP_DATA_DIR=/data - -# Declare /data as a volume for persistent storage -VOLUME ["/data"] - -# Run as non-root -USER appuser - -# Expose the application port -EXPOSE {{PORT}} - -# Health check — the application must respond 2xx at /health -HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \ - CMD curl -sf http://localhost:${APP_PORT}/health || exit 1 - -ENTRYPOINT ["/app/entrypoint.sh"] diff --git a/a2ml/editors/vscode/container/README.adoc b/a2ml/editors/vscode/container/README.adoc deleted file mode 100644 index 9f7f7f05d..000000000 --- a/a2ml/editors/vscode/container/README.adoc +++ /dev/null @@ -1,179 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -// Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -= {{PROJECT_NAME}} Container Templates -:toc: left -:toclevels: 3 -:sectnums: - -== Overview - -This directory contains container templates for the -https://github.com/hyperpolymath/stapeln[stapeln] container ecosystem. -The stapeln stack provides verified container packaging, edge gateway -policies, runtime monitoring, and supply-chain signing for Podman-based -deployments using https://www.chainguard.dev/[Chainguard] Wolfi base images. - -All files use `{{PLACEHOLDER}}` tokens that are replaced by `just container-init` -(or by the top-level `just init` during project bootstrap). - -== File Reference - -[cols="1,3"] -|=== -| File | Purpose - -| `compose.toml` -| **selur-compose** stack definition. Declares services, volumes, networks, - and health checks. The primary orchestration file for local and production - deployment. Use `selur-compose up` or fall back to `podman compose`. - -| `compose.example.toml` -| Concrete multi-service example with detailed comments. Copy and customise - for your own stack. Not used directly by any tooling. - -| `Containerfile` -| Multi-stage OCI container build specification. Stage 1 builds the - application; Stage 2 produces a minimal runtime image on - `cgr.dev/chainguard/wolfi-base`. Uses Podman (never Docker). - -| `manifest.toml` -| **cerro-torre** bundle metadata. Describes the `.ctp` verified container - package: provenance, dependencies, attestations, and runtime security - profile. Used by `ct pack` and `ct verify`. - -| `.gatekeeper.yaml` -| **svalinn** edge gateway policy. Controls authentication, rate limiting, - container trust, request validation, CORS, and audit logging at the - network boundary. - -| `ct-build.sh` -| Build, sign, and verify pipeline script. Five stages: build (Podman), - pack (cerro-torre `.ctp`), sign (Ed25519), verify, and push (optional). - Gracefully degrades when cerro-torre tools are not installed. - -| `entrypoint.sh` -| Container entrypoint with signal handling (SIGTERM, SIGINT), startup - logging, and `exec` into the main application process. - -| `vordr.toml` -| **vordr** runtime monitoring configuration. Defines health endpoints, - crash detection, resource thresholds, and log output. - -| `deploy.k9.ncl` -| **k9-svc** deployment component at Hunt trust level. Full pedigree - (L1--L5), environment configs (dev/staging/prod), container - configuration, and rolling deployment strategy. - -| `0-AI-MANIFEST.a2ml` -| AI-readable manifest describing the container directory, file - interconnections, and the stapeln ecosystem. -|=== - -== The stapeln Ecosystem - -The stapeln container ecosystem comprises six interconnected tools: - -**selur** (compose):: - Container orchestration with zero-copy IPC for co-located services. - Reads `compose.toml` files. Falls back to standard Podman Compose - when the selur driver is unavailable. - -**cerro-torre** (bundles and signing):: - Verified container packaging. Produces `.ctp` bundles from OCI images, - signs them with Ed25519, and verifies the full chain. Tools: `ct pack`, - `ct sign`, `ct verify`, `ct push`, `ct explain`. - -**svalinn** (edge gateway):: - Policy-driven reverse proxy. Enforces authentication, rate limiting, - CORS, and container trust policies defined in `.gatekeeper.yaml`. - -**vordr** (monitoring):: - Runtime container monitoring. Watches health endpoints, detects crashes, - tracks resource usage, and emits structured logs. - -**rokur** (secrets):: - Secrets management for container deployments. Injects secrets at runtime - without baking them into images. Currently a stub/placeholder. - -**k9-svc** (deployment components):: - Nickel-based deployment specification. Components declare their pedigree - (identity, target, security, validation, recipes) and execute at one of - three trust levels: Kennel (data only), Yard (evaluation), Hunt (full - execution with cryptographic handshake). - -== How to Initialise - -[source,bash] ----- -# Option 1: During project bootstrap (includes all placeholders) -just init - -# Option 2: Container-specific initialisation -just container-init ----- - -The `container-init` recipe prompts for container-specific values -(service name, port, registry) and substitutes all `{{PLACEHOLDER}}` -tokens in the `container/` directory. - -== Development Workflow - -[source,bash] ----- -# 1. Build the container image -just container-build - -# 2. Verify the compose configuration -just container-verify - -# 3. Start the stack locally -just container-up --detach - -# 4. Check logs -podman compose --file container/compose.toml logs -f - -# 5. Stop the stack -just container-down ----- - -== Production Deployment - -[source,bash] ----- -# 1. Build, sign, and verify the .ctp bundle -just container-sign - -# 2. Push the signed bundle to the registry -just container-push - -# 3. Deploy on the target host -selur-compose up --detach ----- - -For k9-svc managed deployments: - -[source,bash] ----- -# Validate the deployment component -nickel typecheck container/deploy.k9.ncl - -# Deploy (requires Hunt-level authorisation) -k9-svc deploy container/deploy.k9.ncl --env production ----- - -== Base Images - -All Containerfiles use Chainguard Wolfi base images: - -* **Builder stage:** `cgr.dev/chainguard/wolfi-base:latest` -* **Runtime stage:** `cgr.dev/chainguard/wolfi-base:latest` (or - `cgr.dev/chainguard/static:latest` for statically-linked binaries) - -Chainguard images are minimal, CVE-free, and rebuilt daily. They use the -`apk` package manager (Alpine-compatible). - -== Container Runtime - -This project uses **Podman** (never Docker). All scripts, compose files, -and documentation reference Podman commands. The OCI Containerfile format -is compatible with Podman, Docker, and nerdctl. diff --git a/a2ml/editors/vscode/container/compose.example.toml b/a2ml/editors/vscode/container/compose.example.toml deleted file mode 100644 index d8d717c4f..000000000 --- a/a2ml/editors/vscode/container/compose.example.toml +++ /dev/null @@ -1,135 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# -# Example selur-compose configuration — multi-service stack -# -# This is a concrete, fully-commented example showing a Rust API + Elixir -# worker + svalinn gateway deployment. Copy this file to compose.toml and -# customise for your project. -# -# Usage: -# cp compose.example.toml compose.toml -# # Edit service names, ports, images -# selur-compose up --detach - -version = "1.0" - -# ============================================================================ -# Services -# ============================================================================ - -# Rust API service — the primary HTTP/gRPC backend. -# Handles incoming requests, data storage, and core business logic. -[services.rust-api] -image = "ghcr.io/hyperpolymath/myproject-api:latest.ctp" - -# Map host port 8080 to container port 8080. -# Use ["[::]:8080:8080"] for explicit IPv6 binding. -ports = ["8080:8080"] - -# Environment variables passed into the container at startup. -# These override defaults in the Containerfile ENV directives. -environment = { - RUST_LOG = "info", # Rust log level (trace, debug, info, warn, error) - APP_HOST = "[::]", # Listen on all interfaces (IPv4 + IPv6) - APP_PORT = "8080", # Internal container port - APP_LOG_FORMAT = "json", # Structured logging for selur/vordr - APP_DATA_DIR = "/data", # Persistent data directory (matches VOLUME) -} - -# Bind-mount a named volume for persistent data. -# Format: "volume-name:/container/path" -volumes = ["api-data:/data"] - -# Restart policy: "always" ensures the service comes back after crashes. -# Other options: "no", "on-failure", "unless-stopped" -restart = "always" - -# Health check: selur/Podman uses this to determine if the service is ready. -# The service must respond 2xx to this endpoint within the timeout. -healthcheck = { test = "curl -sf http://localhost:8080/health", interval = "30s", timeout = "5s", retries = 3 } - -# --- - -# Elixir worker service — background processing, event handling, coordination. -# Runs as an OTP release with supervision trees for fault tolerance. -[services.elixir-worker] -image = "ghcr.io/hyperpolymath/myproject-worker:latest.ctp" - -# Separate port for the worker's admin/metrics endpoint. -ports = ["4000:4000"] - -# The worker connects to the Rust API over the internal selur network. -# Service names resolve as hostnames within the compose network. -environment = { - API_URL = "http://rust-api:8080/api/v1", # Internal service discovery - MIX_ENV = "prod", # Elixir release mode - APP_LOG_FORMAT = "json", # Match structured logging format - POOL_SIZE = "10", # DB connection pool size -} - -# depends_on ensures the Rust API starts before the worker. -# Note: This only waits for the container to start, not for the health check. -# Use healthcheck + startup probes for true readiness gating. -depends_on = ["rust-api"] - -restart = "always" -healthcheck = { test = "curl -sf http://localhost:4000/health", interval = "30s", timeout = "5s", retries = 3 } - -# --- - -# Svalinn edge gateway — reverse proxy with policy enforcement. -# All external traffic enters through svalinn, which: -# 1. Terminates TLS (auto-provisioned certificates) -# 2. Validates JWT/OAuth2 authentication -# 3. Enforces rate limits from .gatekeeper.yaml -# 4. Routes requests to the appropriate backend service -# 5. Logs all write operations for audit -[services.svalinn] -image = "ghcr.io/hyperpolymath/svalinn:latest.ctp" - -# External-facing ports: HTTPS (443) and HTTP->HTTPS redirect (80). -ports = ["443:443", "80:80"] - -environment = { - # Backend routing: svalinn proxies to internal services. - SVALINN_BACKEND = "http://rust-api:8080", - SVALINN_WORKER_BACKEND = "http://elixir-worker:4000", - - # Policy file: mounted from the svalinn-config volume. - SVALINN_POLICY_FILE = "/etc/svalinn/gatekeeper.yaml", - - # Auto-provision TLS certificates (Let's Encrypt). - SVALINN_TLS_AUTO = "true", -} - -# Mount .gatekeeper.yaml as read-only policy configuration. -volumes = ["svalinn-config:/etc/svalinn:ro"] - -# Svalinn starts last — it needs both backends to be running. -depends_on = ["rust-api", "elixir-worker"] -restart = "always" -healthcheck = { test = "curl -sf http://localhost:80/health", interval = "30s", timeout = "5s", retries = 3 } - -# ============================================================================ -# Volumes -# ============================================================================ - -# Persistent storage for the Rust API (database files, indexes, WAL). -[volumes.api-data] -driver = "local" - -# Read-only policy configuration for svalinn gateway. -# Populate with: cp .gatekeeper.yaml /path/to/svalinn-config/gatekeeper.yaml -[volumes.svalinn-config] -driver = "local" - -# ============================================================================ -# Networks -# ============================================================================ - -# selur network: zero-copy IPC between services on the same host. -# When the selur driver is not installed, falls back to standard bridge -# networking (TCP over localhost). Performance is slightly lower but -# functionality is identical. -[networks.default] -driver = "selur" diff --git a/a2ml/editors/vscode/container/compose.toml b/a2ml/editors/vscode/container/compose.toml deleted file mode 100644 index a14f8a005..000000000 --- a/a2ml/editors/vscode/container/compose.toml +++ /dev/null @@ -1,70 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# -# {{PROJECT_NAME}} selur-compose configuration -# -# Orchestrates the container stack as verified container bundles (.ctp). -# Uses selur zero-copy IPC between services on the same host. -# -# Usage: -# selur-compose up # Start all services -# selur-compose up --detach # Start in background -# selur-compose verify # Verify all .ctp signatures -# selur-compose ps # Check status -# selur-compose logs -f {{SERVICE_NAME}} # Stream logs -# selur-compose down # Stop all services -# -# Fallback (when selur is not installed): -# podman compose --file compose.toml up --detach - -version = "1.0" - -# ============================================================================ -# Services -# ============================================================================ - -# Primary application service -[services.{{SERVICE_NAME}}] -image = "{{REGISTRY}}/{{SERVICE_NAME}}:latest.ctp" -ports = ["{{PORT}}:{{PORT}}"] -environment = { - APP_HOST = "[::]", - APP_PORT = "{{PORT}}", - APP_LOG_FORMAT = "json", - APP_DATA_DIR = "/data", -} -volumes = ["{{SERVICE_NAME}}-data:/data"] -restart = "always" -healthcheck = { test = "curl -sf http://localhost:{{PORT}}/health", interval = "30s", timeout = "5s", retries = 3 } - -# Svalinn edge gateway: validates requests, enforces policies, TLS termination -[services.svalinn] -image = "ghcr.io/hyperpolymath/svalinn:latest.ctp" -ports = ["443:443", "80:80"] -environment = { - SVALINN_BACKEND = "http://{{SERVICE_NAME}}:{{PORT}}", - SVALINN_POLICY_FILE = "/etc/svalinn/gatekeeper.yaml", - SVALINN_TLS_AUTO = "true", -} -volumes = ["svalinn-config:/etc/svalinn:ro"] -depends_on = ["{{SERVICE_NAME}}"] -restart = "always" -healthcheck = { test = "curl -sf http://localhost:80/health", interval = "30s", timeout = "5s", retries = 3 } - -# ============================================================================ -# Volumes -# ============================================================================ - -[volumes.{{SERVICE_NAME}}-data] -driver = "local" - -[volumes.svalinn-config] -driver = "local" - -# ============================================================================ -# Networks -# ============================================================================ - -# Use selur zero-copy IPC for inter-service communication on the same host. -# Falls back to standard bridge networking when selur driver is unavailable. -[networks.default] -driver = "selur" diff --git a/a2ml/editors/vscode/container/ct-build.sh b/a2ml/editors/vscode/container/ct-build.sh deleted file mode 100755 index a54a5418a..000000000 --- a/a2ml/editors/vscode/container/ct-build.sh +++ /dev/null @@ -1,162 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: MPL-2.0 -# -# {{PROJECT_NAME}} — Cerro Torre build, sign, and verify pipeline -# -# Builds the container image, packages it as a verified .ctp bundle, -# signs it with Ed25519, and verifies the result. Gracefully degrades -# when cerro-torre tools are not installed. -# -# Prerequisites: -# - podman (container build — required) -# - ct (cerro-torre CLI: pack, sign, verify — optional) -# - cerro-sign (Ed25519 signing — optional, ct sign used as fallback) -# -# Usage: -# ./ct-build.sh # Build + sign (local only) -# ./ct-build.sh --push # Build + sign + push to registry -# CT_KEY_ID=my-key ./ct-build.sh # Use specific signing key -# -# Environment variables: -# CT_KEY_ID — Signing key identifier (default: {{SERVICE_NAME}}-release) -# CT_REGISTRY — OCI registry to push to (default: {{REGISTRY}}) -# CT_TAG — Image tag (default: latest) - -set -euo pipefail - -# --------------------------------------------------------------------------- -# Configuration -# --------------------------------------------------------------------------- - -SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" -REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" - -PUSH="" -for arg in "$@"; do - if [ "$arg" = "--push" ]; then - PUSH="--push" - fi -done - -CT_KEY_ID="${CT_KEY_ID:-{{SERVICE_NAME}}-release}" -CT_REGISTRY="${CT_REGISTRY:-{{REGISTRY}}}" -CT_TAG="${CT_TAG:-latest}" - -IMAGE_NAME="{{SERVICE_NAME}}" -FULL_IMAGE="${CT_REGISTRY}/${IMAGE_NAME}:${CT_TAG}" -CTP_FILE="${SCRIPT_DIR}/${IMAGE_NAME}-${CT_TAG}.ctp" - -echo "=== {{PROJECT_NAME}} Cerro Torre Build Pipeline ===" -echo " Image: ${FULL_IMAGE}" -echo " Key: ${CT_KEY_ID}" -echo " Bundle: ${CTP_FILE}" -echo "" - -# --------------------------------------------------------------------------- -# Step 1: Build container image with Podman -# --------------------------------------------------------------------------- - -echo "--- Step 1: Building container image ---" - -podman build \ - -t "${FULL_IMAGE}" \ - -f "${SCRIPT_DIR}/Containerfile" \ - "${REPO_ROOT}" - -echo " Built: ${FULL_IMAGE}" -echo "" - -# --------------------------------------------------------------------------- -# Step 2: Pack into .ctp bundle -# --------------------------------------------------------------------------- - -echo "--- Step 2: Packing into .ctp bundle ---" - -if command -v ct &>/dev/null; then - ct pack "${FULL_IMAGE}" -o "${CTP_FILE}" - echo " Packed: ${CTP_FILE}" -else - echo " SKIP: ct not found (install cerro-torre CLI from stapeln/container-stack/cerro-torre)" - echo " The container image is built and tagged but not packed as a .ctp bundle." - echo " To pack manually: ct pack ${FULL_IMAGE} -o ${CTP_FILE}" - echo "" - if [ "$PUSH" = "--push" ]; then - echo "--- Pushing unsigned OCI image (no .ctp) ---" - podman push "${FULL_IMAGE}" - echo " Pushed: ${FULL_IMAGE} (unsigned OCI — not a .ctp bundle)" - fi - echo "" - echo "=== Build complete (without .ctp signing) ===" - exit 0 -fi - -echo "" - -# --------------------------------------------------------------------------- -# Step 3: Sign the .ctp bundle -# --------------------------------------------------------------------------- - -echo "--- Step 3: Signing .ctp bundle ---" - -if command -v cerro-sign &>/dev/null; then - cerro-sign sign "${CTP_FILE}" --key-id "${CT_KEY_ID}" - echo " Signed: ${CTP_FILE} (key: ${CT_KEY_ID})" -elif command -v ct &>/dev/null; then - ct sign "${CTP_FILE}" --key "${CT_KEY_ID}" - echo " Signed: ${CTP_FILE} (key: ${CT_KEY_ID})" -else - echo " SKIP: cerro-sign not found (install from stapeln/container-stack/cerro-torre)" -fi - -echo "" - -# --------------------------------------------------------------------------- -# Step 4: Verify the .ctp bundle -# --------------------------------------------------------------------------- - -echo "--- Step 4: Verifying .ctp bundle ---" - -if command -v ct &>/dev/null; then - ct verify "${CTP_FILE}" - echo " Verified: ${CTP_FILE}" -else - echo " SKIP: ct not found" -fi - -echo "" - -# --------------------------------------------------------------------------- -# Step 5: Push to registry (optional) -# --------------------------------------------------------------------------- - -if [ "$PUSH" = "--push" ]; then - echo "--- Step 5: Pushing to registry ---" - - if command -v ct &>/dev/null; then - ct push "${CTP_FILE}" "${FULL_IMAGE}" - echo " Pushed: ${FULL_IMAGE}" - else - # Fall back to podman push (unsigned OCI image) - echo " ct not available, falling back to podman push (unsigned)" - podman push "${FULL_IMAGE}" - echo " Pushed: ${FULL_IMAGE} (unsigned OCI — not a .ctp bundle)" - fi - echo "" -fi - -# --------------------------------------------------------------------------- -# Summary -# --------------------------------------------------------------------------- - -echo "=== Build pipeline complete ===" -echo " Image: ${FULL_IMAGE}" -echo " Bundle: ${CTP_FILE}" -echo "" -echo " To deploy with selur-compose:" -echo " cd container && selur-compose up" -echo "" -echo " To verify at any time:" -echo " ct verify ${CTP_FILE}" -echo "" -echo " To explain the verification chain:" -echo " ct explain ${CTP_FILE}" diff --git a/a2ml/editors/vscode/container/deploy.k9.ncl b/a2ml/editors/vscode/container/deploy.k9.ncl deleted file mode 100644 index 0ad0d04af..000000000 --- a/a2ml/editors/vscode/container/deploy.k9.ncl +++ /dev/null @@ -1,166 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# deploy.k9.ncl — {{PROJECT_NAME}} deployment component (Hunt level) -# -# k9-svc deployment specification with full pedigree (L1-L5). -# Security Level: 'Hunt (requires cryptographic handshake for execution). -# -# WARNING: This component can execute shell commands! -# It requires explicit authorisation via the Leash system. -# -# Usage: -# nickel typecheck container/deploy.k9.ncl -# k9-svc validate container/deploy.k9.ncl -# k9-svc deploy container/deploy.k9.ncl --env production - -# The component's pedigree (self-description across five layers) -let component_pedigree = { - # ───────────────────────────────────────────────────────────── - # L1: The Snout — Identity - # ───────────────────────────────────────────────────────────── - metadata = { - name = "{{SERVICE_NAME}}-deploy", - version = "{{VERSION}}", - breed = "application/vnd.k9+nickel", - magic_number = "K9!", - description = "{{PROJECT_NAME}} deployment component (Hunt level)", - }, - - # ───────────────────────────────────────────────────────────── - # L2: The Scent — Target Environment - # ───────────────────────────────────────────────────────────── - target = { - os = 'Linux, - is_edge = false, - requires_podman = true, - min_memory_mb = 256, - }, - - # ───────────────────────────────────────────────────────────── - # L3: The Leash — Security - # ───────────────────────────────────────────────────────────── - security = { - trust_level = 'Hunt, - allow_network = true, - allow_filesystem_write = true, - allow_subprocess = true, - # In production, replace with a real Ed25519 signature. - signature = "PLACEHOLDER-SIGNATURE-REQUIRED-FOR-HUNT", - }, - - # ───────────────────────────────────────────────────────────── - # L4: The Gut — Self-Validation - # ───────────────────────────────────────────────────────────── - validation = { - checksum = "sha256:placeholder", - pedigree_version = "1.0.0", - hunt_authorized = false, # Must be set true after handshake - }, - - # ───────────────────────────────────────────────────────────── - # L5: The Muscle — Deployment Recipes - # ───────────────────────────────────────────────────────────── - recipes = { - install = "just container-build", - validate = "just container-verify", - deploy = "just container-up", - migrate = "just container-build && just container-up", - }, -} in - -# Deployment configuration -let deployment = { - # Target environments (dev / staging / production) - environments = { - dev = { - replicas = 1, - memory = "256Mi", - cpu = "100m", - image_tag = "dev", - }, - staging = { - replicas = 2, - memory = "512Mi", - cpu = "250m", - image_tag = "staging", - }, - production = { - replicas = 3, - memory = "1Gi", - cpu = "500m", - image_tag = "latest", - }, - }, - - # Container configuration - container = { - image = "{{REGISTRY}}/{{SERVICE_NAME}}", - port = {{PORT}}, - health_check = "/health", - readiness_check = "/ready", - }, - - # Deployment strategy - strategy = { - type = "rolling", - max_surge = 1, - max_unavailable = 0, - }, -} in - -# Deployment scripts (executed at Hunt level) -let scripts = { - # Pre-deployment validation - pre_deploy = m%" -#!/bin/sh -set -eu -echo "K9: Pre-deployment validation for {{SERVICE_NAME}}..." -cd container && selur-compose verify || podman compose --file compose.toml config -echo "K9: Validation passed." -"%, - - # Deployment script - deploy = m%" -#!/bin/sh -set -eu -ENV="${1:-dev}" -echo "K9: Deploying {{SERVICE_NAME}} to $ENV environment..." -cd container -./ct-build.sh -selur-compose up --detach || podman compose --file compose.toml up --detach -echo "K9: Deployment to $ENV complete." -"%, - - # Rollback script - rollback = m%" -#!/bin/sh -set -eu -echo "K9: Rolling back {{SERVICE_NAME}} deployment..." -cd container -selur-compose down || podman compose --file compose.toml down -echo "K9: Rollback complete." -"%, -} in - -# Export the component -{ - pedigree = component_pedigree, - deployment = deployment, - scripts = scripts, - - # Security check: this component requires Hunt level - required_level = 'Hunt, - - # Warning for users - warning = m%" -WARNING: This is a Hunt-level component. - -It can execute shell commands and modify your system. -Before running, ensure you have: - -1. Reviewed the deployment scripts above -2. Verified the signature (when implemented) -3. Explicitly authorised Hunt-level execution - -Run with: k9-svc authorize container/deploy.k9.ncl && k9-svc deploy container/deploy.k9.ncl -"%, -} diff --git a/a2ml/editors/vscode/container/entrypoint.sh b/a2ml/editors/vscode/container/entrypoint.sh deleted file mode 100755 index a7a036992..000000000 --- a/a2ml/editors/vscode/container/entrypoint.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/sh -# SPDX-License-Identifier: MPL-2.0 -# {{PROJECT_NAME}} container entrypoint -# -# Handles signal propagation, startup logging, and health check -# preparation before exec-ing into the main application process. - -set -e - -# --------------------------------------------------------------------------- -# Signal handling -# --------------------------------------------------------------------------- -# -# Trap SIGTERM and SIGINT so that the application can shut down gracefully -# when Podman sends stop signals (e.g. `podman stop`, `selur-compose down`). - -cleanup() { - echo "Received shutdown signal — stopping {{SERVICE_NAME}}..." - # If the main process is backgrounded, kill it here: - # kill "$MAIN_PID" 2>/dev/null || true - # wait "$MAIN_PID" 2>/dev/null || true - exit 0 -} -trap cleanup TERM INT - -# --------------------------------------------------------------------------- -# Startup logging -# --------------------------------------------------------------------------- - -echo "Starting {{SERVICE_NAME}}..." -echo " Host: ${APP_HOST:-[::]}" -echo " Port: ${APP_PORT:-{{PORT}}}" -echo " Data: ${APP_DATA_DIR:-/data}" -echo " Log: ${APP_LOG_FORMAT:-json}" - -# --------------------------------------------------------------------------- -# Health check preparation -# --------------------------------------------------------------------------- -# -# Ensure the data directory exists and is writable. -# The VOLUME directive in the Containerfile creates /data, but a bind-mount -# might replace it with an empty directory owned by root. - -if [ -d "${APP_DATA_DIR:-/data}" ]; then - if [ ! -w "${APP_DATA_DIR:-/data}" ]; then - echo "WARNING: ${APP_DATA_DIR:-/data} is not writable by $(whoami)" - fi -fi - -# --------------------------------------------------------------------------- -# Exec into main process -# --------------------------------------------------------------------------- -# -# Replace the entrypoint shell with the application process so that -# signals are delivered directly and PID 1 is the application. -# -# TODO: Replace the command below with your application binary. -# Examples: -# exec /app/{{SERVICE_NAME}} -# exec /app/release/bin/{{SERVICE_NAME}} start -# exec /app/{{SERVICE_NAME}} serve --host "${APP_HOST}" --port "${APP_PORT}" - -exec "$@" diff --git a/a2ml/editors/vscode/container/manifest.toml b/a2ml/editors/vscode/container/manifest.toml deleted file mode 100644 index f55fcb3a2..000000000 --- a/a2ml/editors/vscode/container/manifest.toml +++ /dev/null @@ -1,62 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# -# Cerro Torre manifest for {{PROJECT_NAME}} .ctp bundle -# -# This manifest describes the container image for verified -# container packaging. Used by `ct pack` to create .ctp bundles. - -[metadata] -name = "{{SERVICE_NAME}}" -version = "{{VERSION}}" -revision = 1 -summary = "{{PROJECT_DESCRIPTION}}" -description = """ -{{PROJECT_NAME}} — containerised service packaged as a verified -cerro-torre .ctp bundle with Ed25519 signing and full provenance -tracking. -""" -license = "{{LICENSE}}" -homepage = "https://{{FORGE}}/{{OWNER}}/{{REPO}}" -maintainer = "{{AUTHOR}} <{{EMAIL}}>" - -[provenance] -upstream = "https://{{FORGE}}/{{OWNER}}/{{REPO}}" -import_date = {{CURRENT_DATE}}T00:00:00Z - -[dependencies] -runtime = ["ca-certificates", "curl"] -build = [] - -[build] -system = "podman" - -[build.environment] -APP_HOST = "[::]" -APP_PORT = "{{PORT}}" - -[outputs] -primary = "{{SERVICE_NAME}}" -split = [] - -[attestations] -require = ["source-signature", "sbom-complete"] -recommend = ["security-audit", "reproducible-build"] - -# Runtime security profile -[security] -user = "appuser" -group = "appuser" -read_only_root = false -no_new_privileges = true - -[security.capabilities] -drop = ["ALL"] -add = ["NET_BIND_SERVICE"] - -[security.network] -listen_tcp = [{{PORT}}] - -[security.filesystem] -read = ["/app/", "/data/"] -write = ["/data/", "/tmp/"] -execute = ["/app/entrypoint.sh"] diff --git a/a2ml/editors/vscode/container/vordr.toml b/a2ml/editors/vscode/container/vordr.toml deleted file mode 100644 index af38fc547..000000000 --- a/a2ml/editors/vscode/container/vordr.toml +++ /dev/null @@ -1,100 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# -# Vordr runtime monitoring configuration for {{PROJECT_NAME}} -# -# Vordr watches container health, detects crashes, tracks resource usage, -# and emits structured logs. It runs alongside the application stack and -# provides runtime observability without requiring in-process agents. -# -# Usage: -# vordr watch --config container/vordr.toml -# vordr status -# vordr report - -[metadata] -name = "{{SERVICE_NAME}}" -version = "{{VERSION}}" - -# ============================================================================ -# Health Monitoring -# ============================================================================ -# -# Vordr periodically probes these endpoints. If a probe fails beyond the -# failure_threshold, vordr emits an alert and (optionally) restarts the -# container via Podman. - -[health] -# Primary health endpoint — must return 2xx. -endpoint = "http://localhost:{{PORT}}/health" -interval = "30s" -timeout = "5s" -failure_threshold = 3 - -# Readiness endpoint — checked during startup and after restarts. -readiness_endpoint = "http://localhost:{{PORT}}/ready" -readiness_timeout = "10s" - -# Action on failure: "alert" (log + notify) or "restart" (alert + podman restart). -on_failure = "alert" - -# ============================================================================ -# Crash Detection -# ============================================================================ -# -# Monitors container state via Podman. Detects OOM kills, segfaults, -# and unexpected exits. - -[crash_detection] -enabled = true -# Maximum restarts within the window before vordr stops restarting. -max_restarts = 5 -restart_window = "10m" - -# ============================================================================ -# Resource Thresholds -# ============================================================================ -# -# Alert when resource usage exceeds these thresholds. Values are percentages -# of the container's cgroup limits (or host limits if uncapped). - -[resources] -cpu_warn = 80 # Percentage — warn at 80% sustained CPU. -cpu_critical = 95 # Percentage — critical alert at 95%. -memory_warn = 75 # Percentage of memory limit. -memory_critical = 90 -disk_warn = 80 # Percentage of volume usage. -disk_critical = 95 - -# Sample interval for resource metrics. -sample_interval = "15s" - -# ============================================================================ -# Log Output -# ============================================================================ -# -# Vordr emits its own logs (not the application's) in structured format. - -[logging] -format = "json" -level = "info" -# Write vordr logs to stdout (captured by Podman) and optionally to file. -output = "stdout" -# file = "/var/log/vordr/{{SERVICE_NAME}}.log" - -# ============================================================================ -# Notifications (optional) -# ============================================================================ -# -# Uncomment and configure to receive alerts via webhook or email. - -# [notifications.webhook] -# url = "https://example.com/hooks/vordr" -# method = "POST" -# headers = { "Content-Type" = "application/json" } -# on = ["failure", "recovery", "resource_critical"] - -# [notifications.email] -# to = "{{EMAIL}}" -# from = "vordr@{{SERVICE_NAME}}.local" -# smtp = "smtp://localhost:25" -# on = ["failure", "resource_critical"] diff --git a/a2ml/editors/vscode/contractile.just b/a2ml/editors/vscode/contractile.just deleted file mode 100644 index 9a5827baf..000000000 --- a/a2ml/editors/vscode/contractile.just +++ /dev/null @@ -1,75 +0,0 @@ -# Auto-generated by: contractile gen-just -# Source directory: contractiles -# Re-generate with: contractile gen-just --dir contractiles -# -# SPDX-License-Identifier: MPL-2.0 - -# === DUST (Recovery & Rollback) === -# Source: Dustfile.a2ml - -# List available dust recovery actions -dust-status: - @echo ' dust-source-rollback: Revert all source changes to last commit [rollback]' - -# Revert all source changes to last commit -dust-source-rollback: - @echo 'Executing rollback for source-rollback' - git checkout HEAD -- . - - -# === INTEND (Declared Future Intent) === -# Source: Intentfile.a2ml - -# Display declared future intents -intend-list: - @echo '=== Declared Intent ===' - @echo '' - @echo 'Features:' - @echo '' - @echo 'Quality:' - - -# === MUST (Physical State Checks) === -# Source: Mustfile.a2ml - -# Run all must checks -must-check: must-license-present must-readme-present must-spdx-headers must-no-banned-files - @echo 'All must checks passed' - -# LICENSE file must exist -must-license-present: - test -f LICENSE - -# README must exist -must-readme-present: - test -f README.adoc || test -f README.md - -# Source files should have SPDX license headers -must-spdx-headers: - find . -name '*.rs' -o -name '*.res' -o -name '*.gleam' | head -20 | xargs -r grep -L 'SPDX-License-Identifier' | wc -l | grep -q '^0$' - -# No Dockerfiles or Makefiles -must-no-banned-files: - test ! -f Dockerfile && test ! -f Makefile - - -# === TRUST (Integrity & Provenance Verification) === -# Source: Trustfile.a2ml - -# Run all trust verifications -trust-verify: trust-license-content trust-no-secrets-committed trust-container-images-pinned - @echo 'All trust verifications passed' - -# LICENSE contains expected SPDX identifier -trust-license-content: - grep -q 'SPDX\|License\|MIT\|Apache\|PMPL\|MPL' LICENSE - -# No .env or credential files in repo -trust-no-secrets-committed: - test ! -f .env && test ! -f credentials.json && test ! -f .env.local - -# Containerfile base images use pinned digests -trust-container-images-pinned: - test ! -f Containerfile || grep -q '@sha256:' Containerfile - - diff --git a/a2ml/editors/vscode/docs/0.1-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index 7f79301ee..000000000 --- a/a2ml/editors/vscode/docs/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1,33 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "docs-pillar" -level: 1 -parent: "../0-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Technical documentation hub. The root contains high-level orientation - (README, Quickstart, State-Visualizer). Specialized tracks live in - subdirectories. - -canonical_locations: - quickstart: "QUICKSTART.adoc" - state_visualizer: "STATE-VISUALIZER.adoc" - governance: "governance/" - architecture: "architecture/" - decisions: "decisions/" - theory: "theory/" - practice: "practice/" - developer: "developer/" - attribution: "attribution/" - reports: "reports/" - whitepapers: "whitepapers/" - standards: "standards/" - legal: "legal/" - wikis: "wikis/" - -invariants: - - "Primary documentation format MUST be AsciiDoc (.adoc)" - - "Root docs/ MUST only contain pillar entry points" diff --git a/a2ml/editors/vscode/docs/QUICKSTART.adoc b/a2ml/editors/vscode/docs/QUICKSTART.adoc deleted file mode 100644 index d97c31ec8..000000000 --- a/a2ml/editors/vscode/docs/QUICKSTART.adoc +++ /dev/null @@ -1,24 +0,0 @@ -= Quickstart -:toc: preamble - -Get up and running in 60 seconds. - -== Prerequisites - -* Git 2.40+ -* just (command runner) -* Your language toolchain (see Justfile for details) - -== From Template (New Project) - -[source,bash] ----- -git clone https://github.com/{{OWNER}}/rsr-template-repo my-project -cd my-project -rm -rf .git && git init -b main -just init # interactive placeholder replacement ----- - -== Project Structure - -See README.adoc in the root for the Dual-Track architecture summary. diff --git a/a2ml/editors/vscode/docs/README.adoc b/a2ml/editors/vscode/docs/README.adoc deleted file mode 100644 index df45be70b..000000000 --- a/a2ml/editors/vscode/docs/README.adoc +++ /dev/null @@ -1,14 +0,0 @@ -= Documentation Layout - -Primary tracks: - -* `theory/` for formal and conceptual material -* `practice/` for operational and implementation material -* `maintenance/` for baseline checklists and release hard-pass runbooks -* `whitepapers/academic/` for research-facing whitepapers -* `whitepapers/industry/` for industry/outreach whitepapers - -Core docs: - -* `maintenance/MAINTENANCE-CHECKLIST.md` -* `practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc` diff --git a/a2ml/editors/vscode/docs/RSR_OUTLINE.adoc b/a2ml/editors/vscode/docs/RSR_OUTLINE.adoc deleted file mode 100644 index 0ba0c97b5..000000000 --- a/a2ml/editors/vscode/docs/RSR_OUTLINE.adoc +++ /dev/null @@ -1,290 +0,0 @@ -= RSR Template Repository - -image:[Palimpsest-MPL-1.0,link="https://github.com/hyperpolymath/palimpsest-license"] image:[Palimpsest,link="https://github.com/hyperpolymath/palimpsest-license"] -:toc: -:sectnums: - -// Badges -image:https://img.shields.io/badge/RSR-Infrastructure-cd7f32[RSR Infrastructure] -image:https://img.shields.io/badge/Phase-Maintenance-brightgreen[Phase] -image:https://img.shields.io/badge/Guix-Primary-purple?logo=gnu[Guix] - -== Overview - -**The canonical template for RSR (Rhodium Standard Repository) projects.** - -This repository provides the standardized structure, configuration, and tooling for all RSR-compliant repos. Use it to: - -* Bootstrap new projects with RSR compliance -* Reference the standard directory structure -* Copy configuration templates (Justfile, STATE.a2ml, etc.) - -== Quick Start - -[source,bash] ----- -# Clone the template -git clone https://github.com/hyperpolymath/RSR-template-repo my-project -cd my-project - -# Remove template git history -rm -rf .git -git init - -# Interactive bootstrap — replaces all placeholders -just init - -# Enter development environment -guix shell -D -f guix.scm - -# Validate compliance -just validate-rsr ----- - -== What's Included - -[cols="1,3"] -|=== -|File/Directory |Purpose - -|`.editorconfig` -|Editor configuration (indent, charset) - -|`.gitignore` -|Standard ignore patterns - -|`.gitattributes` -|Line endings, diff drivers, binary detection - -|`.guix-channel` -|Guix channel definition - -|`.well-known/` -|RFC-compliant metadata (security.txt, ai.txt, humans.txt) - -|`.machine_readable/` -|All machine-readable content: state files (6 a2ml), `bot_directives/`, `contractiles/` - -|`docs/` -|Documentation directory - -|`guix.scm` -|Guix package definition - -|`Justfile` -|Task runner with 40+ recipes - -|`Containerfile` -|Container build (Wolfi base, Podman) - -|`LICENSE` -|PMPL-1.0-or-later (Palimpsest MPL) - -|`EXHIBIT-A-ETHICAL-USE.txt` -|Ethical use guidelines (LICENSE Exhibit A) - -|`EXHIBIT-B-QUANTUM-SAFE.txt` -|Quantum-safe provenance spec (LICENSE Exhibit B) - -|`README.adoc` -|Project overview - -|`TOPOLOGY.md` -|Architecture diagram and completion dashboard - -|`PLACEHOLDERS.md` -|Template variable reference and replacement guide - -|`0-AI-MANIFEST.a2ml` -|Universal AI agent entry point - -|`AI.a2ml` -|Claude-specific instructions - -|`src/abi/` -|Idris2 ABI definitions (Types, Layout, Foreign) - -|`ffi/zig/` -|Zig FFI implementation - -|`generated/abi/` -|Auto-generated C headers from Idris2 ABI -|=== - -== Justfile Features - -The template Justfile provides: - -* **Combinatoric matrix recipes** for build, test, container, CI -* **Cookbook generation**: `just cookbook` -> `docs/just-cookbook.adoc` -* **Man page generation**: `just man` -> `docs/man/project.1` -* **RSR validation**: `just validate-rsr` -* **STATE.a2ml management**: `just state-touch`, `just state-phase` -* **Container support**: `just container-build`, `just container-push` -* **CI matrix**: `just ci-matrix [stage] [depth]` - -=== Key Recipes - -[source,bash] ----- -just # Show all recipes -just help # Detailed help -just info # Project info -just combinations # Show matrix options - -just build # Build (debug) -just test # Run tests -just quality # Format + lint + test -just ci # Full CI pipeline - -just validate # RSR + STATE validation -just docs # Generate all docs -just cookbook # Generate Justfile docs - -just guix-shell # Guix dev environment -just container-build # Build container ----- - -== Directory Structure - -[source] ----- -project/ -├── .editorconfig # Editor settings -├── .gitignore # Git ignore -├── .gitattributes # Line endings, diff drivers -├── .guix-channel # Guix channel -├── .well-known/ # RFC metadata -│ ├── ai.txt -│ ├── humans.txt -│ └── security.txt -├── .machine_readable/ # ALL machine-readable content -│ ├── STATE.a2ml # Project state, progress, blockers -│ ├── META.a2ml # Architecture decisions, governance -│ ├── ECOSYSTEM.a2ml # Ecosystem position, relationships -│ ├── AGENTIC.a2ml # AI agent interaction patterns -│ ├── NEUROSYM.a2ml # Neurosymbolic integration config -│ ├── PLAYBOOK.a2ml # Operational runbook -│ ├── bot_directives/ # Per-bot rules and constraints -│ └── contractiles/ # Policy enforcement contracts -│ ├── k9/ # Security levels (Kennel/Yard/Hunt) -│ ├── dust/Dustfile # Recovery and rollback -│ ├── lust/Intentfile # Future intent declarations -│ ├── must/Mustfile # Invariant checks -│ └── trust/Trustfile.hs # Cryptographic verification -├── docs/ # Documentation -│ ├── CITATIONS.adoc -│ ├── TOPOLOGY-GUIDE.adoc -│ ├── generated/ -│ └── man/ -├── src/abi/ # Idris2 ABI definitions -│ ├── Types.idr -│ ├── Layout.idr -│ └── Foreign.idr -├── ffi/zig/ # Zig FFI implementation -│ ├── build.zig -│ ├── src/main.zig -│ └── test/integration_test.zig -├── generated/abi/ # Auto-generated C headers -├── examples/ # Example code -├── guix.scm # Guix package -├── Justfile # Task runner -├── Containerfile # Container build -├── LICENSE # PMPL-1.0-or-later -├── EXHIBIT-A-ETHICAL-USE.txt # Ethical use guidelines -├── EXHIBIT-B-QUANTUM-SAFE.txt # Quantum-safe provenance -├── README.adoc # Overview -├── TOPOLOGY.md # Architecture + completion -├── PLACEHOLDERS.md # Template variable guide -├── 0-AI-MANIFEST.a2ml # Universal AI entry point -└── AI.a2ml # Claude-specific instructions ----- - -== RSR Compliance - -=== Language Tiers - -* **Tier 1** (Gold): Rust, Elixir, Zig, Ada, Haskell, ReScript, Gleam -* **Tier 2** (Silver): Nickel, Guile Scheme, Nix, Idris2, OCaml -* **Infrastructure**: Guix channels, derivations, Julia batch scripts - -=== Required Files - -* `.editorconfig` -* `.gitignore` -* `Justfile` -* `README.adoc` -* `LICENSE` (PMPL-1.0-or-later) -* `.machine_readable/STATE.a2ml` -* `.well-known/security.txt` -* `.well-known/ai.txt` -* `.well-known/humans.txt` -* `guix.scm` OR `flake.nix` - -=== Prohibited - -* Python outside `salt/` directory -* TypeScript/JavaScript (use ReScript) -* CUE (use Guile/Nickel) -* `Dockerfile` (use `Containerfile`) -* npm, Bun, pnpm, yarn (use Deno) -* Go (use Rust) - -== STATE.a2ml - -The STATE.a2ml file tracks project state: - -[source] ----- -# STATE — Project State Checkpoint -# Format: a2ml (AI-readable markup) - -project: v-graphql -version: 0.1.0 -last-updated: 2026-02-14 -status: active - -phase: implementation -maturity: beta - -ecosystem: - part-of: RSR Framework - depends-on: [] - -milestones: - - name: Initial setup - completion: 100 - - name: Core implementation - completion: 0 ----- - -== Badge Schema - -Generate badges from STATE.a2ml: - -[source,bash] ----- -just badges standard ----- - -See `docs/BADGE_SCHEMA.adoc` for the full badge taxonomy. - -== Ecosystem Integration - -This template is part of: - -* **STATE.a2ml Ecosystem**: Conversation checkpoints -* **RSR Framework**: Repository standards -* **Consent-Aware-HTTP**: .well-known compliance -* **Hypatia**: Neurosymbolic security scanning -* **gitbot-fleet**: Bot orchestration - -== License - -SPDX-License-Identifier: MPL-2.0 - -== Links - -* https://github.com/hyperpolymath/elegant-STATE[elegant-STATE] - STATE tooling -* https://github.com/hyperpolymath/conative-gating[conative-gating] - Policy enforcement -* https://rhodium.sh[Rhodium Standard] - RSR documentation diff --git a/a2ml/editors/vscode/docs/STATE-VISUALIZER.adoc b/a2ml/editors/vscode/docs/STATE-VISUALIZER.adoc deleted file mode 100644 index 2af3297c7..000000000 --- a/a2ml/editors/vscode/docs/STATE-VISUALIZER.adoc +++ /dev/null @@ -1,128 +0,0 @@ -= Project State Visualizer -[source] ----- - - - - -# RSR Template Repo — Project Topology - -## System Architecture - -``` - ┌─────────────────────────────────────────┐ - │ NEW REPOSITORY │ - │ (Consumer of this Template) │ - └───────────────────┬─────────────────────┘ - │ Scaffolding - ▼ - ┌─────────────────────────────────────────┐ - │ RSR TEMPLATE HUB │ - │ │ - │ ┌───────────┐ ┌───────────────────┐ │ - │ │ AI Gate- │ │ ABI / FFI │ │ - │ │ keeper │ │ Standard │ │ - │ │ (0-AI-M) │ │ (Idris2/Zig) │ │ - │ └─────┬─────┘ └────────┬──────────┘ │ - │ │ │ │ - │ ┌─────▼─────┐ ┌────────▼──────────┐ │ - │ │ Topology │ │ SCM / 6SCM │ │ - │ │ Guide │ │ Metadata │ │ - │ │ (Visual) │ │ (machine_read) │ │ - │ └─────┬─────┘ └────────┬──────────┘ │ - │ │ │ │ - │ ┌─────▼─────────────────▼──────────┐ │ - │ │ CONTAINER ECOSYSTEM │ │ - │ │ ┌──────────┐ ┌───────────────┐ │ │ - │ │ │ Podman / │ │ selur-compose │ │ │ - │ │ │ OCI │ │ cerro-torre │ │ │ - │ │ │ Build │ │ svalinn/vordr │ │ │ - │ │ └──────────┘ └───────────────┘ │ │ - │ │ ct-build.sh deploy.k9.ncl │ │ - │ └──────────────────────────────────┘ │ - └────────│─────────────────│──────────────┘ - │ │ - ▼ ▼ - ┌─────────────────────────────────────────┐ - │ PLATFORM INTEGRATION │ - │ ┌───────────┐ ┌───────────┐ ┌───────┐│ - │ │ GitHub │ │ GitLab │ │ Nix / ││ - │ │ Workflows │ │ CI/CD │ │ Guix ││ - │ └───────────┘ └───────────┘ └───────┘│ - └─────────────────────────────────────────┘ - - ┌─────────────────────────────────────────┐ - │ REPO INFRASTRUCTURE │ - │ Justfile / Mustfile .machine_readable/ │ - │ Codeowners / Reuse 0-AI-MANIFEST.a2ml │ - └─────────────────────────────────────────┘ -``` - -## Completion Dashboard - -``` -COMPONENT STATUS NOTES -───────────────────────────────── ────────────────── ───────────────────────────────── -CORE STANDARDS - ABI/FFI Standard (Idris2/Zig) ██████████ 100% Universal interface stable - AI Gatekeeper (0-AI-MANIFEST) ██████████ 100% Universal entry point active - TOPOLOGY.md Standard ██████████ 100% Visual summary guide active - 6SCM Metadata Structure ██████████ 100% Machine-readable state stable - -INFRASTRUCTURE - Justfile Automation ██████████ 100% Standard build/verify tasks - CI/CD Workflow Templates ██████████ 100% GH/GL scaffolding verified - Multi-Forge Sync ██████████ 100% Hub-and-spoke mirroring stable - -CONTAINER ECOSYSTEM (Phase 2) - Containerfile (OCI build) ██████████ 100% Multi-stage Chainguard base - selur-compose orchestration ██████████ 100% Template + concrete example - cerro-torre manifest ██████████ 100% Bundle metadata & signing - svalinn gateway policy ██████████ 100% .gatekeeper.yaml active - vordr runtime monitoring ██████████ 100% Runtime config template - k9-svc deployment (Nickel) ██████████ 100% Hunt-level deploy descriptor - ct-build.sh pipeline ██████████ 100% Build/sign/verify script - Justfile container-* recipes ██████████ 100% 8 recipes integrated - Trustfile CONTAINER_SUPPLY_CHAIN ██████████ 100% Supply chain section added - -REPO INFRASTRUCTURE - .machine_readable/ ██████████ 100% STATE/META/ECOSYSTEM active - Governance & License ██████████ 100% PMPL & Ethical use verified - Development Shells (Nix/Guix) ██████████ 100% Reproducible env stable - -───────────────────────────────────────────────────────────────────────────── -OVERALL: ██████████ 100% RSR Template Stable & Certified -``` - -## Key Dependencies - -``` -Philosophy ──────► RSR Standard ──────► Template Scaffolding ──► New Repo - │ │ │ │ - ▼ ▼ ▼ ▼ -CCCP Policy ─────► 0-AI-MANIFEST ────────► Justfile ──────────► Compliance - │ - ▼ - Container Ecosystem - ┌──────────┼──────────┐ - ▼ ▼ ▼ - selur-compose cerro- svalinn/ - (orchestrate) torre vordr - (sign) (monitor) - │ - ▼ - k9-svc deploy -``` - -## Update Protocol - -This file is maintained by both humans and AI agents. When updating: - -1. **After completing a component**: Change its bar and percentage -2. **After adding a component**: Add a new row in the appropriate section -3. **After architectural changes**: Update the ASCII diagram -4. **Date**: Update the `Last updated` comment at the top of this file - -Progress bars use: `█` (filled) and `░` (empty), 10 characters wide. -Percentages: 0%, 10%, 20%, ... 100% (in 10% increments). ----- diff --git a/a2ml/editors/vscode/docs/architecture/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/architecture/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 028b503d6..000000000 --- a/a2ml/editors/vscode/docs/architecture/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "architecture-track" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Documentation track for system architecture and threat models. - -canonical_locations: - threat_model: "THREAT-MODEL.adoc" - -invariants: - - "Visual diagrams MUST include ASCII or Mermaid representations" diff --git a/a2ml/editors/vscode/docs/architecture/THREAT-MODEL.adoc b/a2ml/editors/vscode/docs/architecture/THREAT-MODEL.adoc deleted file mode 100644 index df5e0380c..000000000 --- a/a2ml/editors/vscode/docs/architecture/THREAT-MODEL.adoc +++ /dev/null @@ -1,162 +0,0 @@ -= Threat Model - - - -# Threat Model: {{PROJECT_NAME}} - -## Document Info - -| Field | Value | -|---------------|--------------------------------| -| Project | {{PROJECT_NAME}} | -| Version | 1.0 | -| Last Reviewed | {{DATE}} | -| Author | {{AUTHOR}} | -| Methodology | STRIDE | - -## Scope - -### In Scope - -- Application source code and build pipeline -- CI/CD workflows (GitHub Actions) -- Container images and runtime environment -- Secrets and credential management -- Dependencies (direct and transitive) -- Deployment artifacts (binaries, containers, SBOM) - -### Out of Scope - -- Physical security of hosting infrastructure -- GitHub/GitLab platform-level vulnerabilities -- End-user device security -- Social engineering attacks against maintainers (handled by org policy) - -## System Overview - -Brief description of {{PROJECT_NAME}} and its architecture. - -> See [STATE-VISUALIZER.adoc](../STATE-VISUALIZER.adoc) for the full architecture diagram and completion dashboard. - -## Assets - -| Asset | Classification | Owner | Notes | -|----------------------|----------------|-------------|--------------------------------------------| -| Source code | Internal | Maintainers | Public repos are still internal-integrity | -| Signing keys | Restricted | Release lead | Signing keys (e.g., Ed25519), GPG keys | -| CI/CD secrets | Restricted | Maintainers | GITHUB_TOKEN, deploy tokens, PATs | -| User/contributor data | Confidential | Org | Emails, contributor identity | -| Build artifacts | Internal | CI pipeline | Binaries, WASM bundles | -| Container images | Internal | CI pipeline | Chainguard-based, signed via image signing tool | -| SBOM / provenance | Public | CI pipeline | SLSA attestations | -| Dependencies | Public | Lockfile | Cargo.lock, deno.lock, gleam.toml | -| Infrastructure config | Confidential | Maintainers | Containerfiles, compose files, orchestration config | - -## Trust Boundaries - -| Boundary | From (Lower Trust) | To (Higher Trust) | -|-----------------------------|---------------------------|----------------------------| -| Pull request submission | External contributor | Repository codebase | -| CI/CD workflow execution | Workflow definition | Runner with secrets access | -| Container build boundary | Build stage | Runtime stage | -| External API calls | Third-party service | Application internals | -| User input (CLI/Web) | End user | Application logic | -| Dependency resolution | Package registry | Build environment | -| Forge mirroring | GitHub | GitLab / Bitbucket | - -## Threat Actors - -| Actor | Motivation | Capability | -|--------------------------|-------------------------------|------------| -| Script kiddie | Vandalism, clout | Low | -| Disgruntled contributor | Sabotage, backdoor insertion | Medium | -| Supply chain attacker | Wide-impact compromise | High | -| Nation state | Espionage, disruption | Very High | -| Automated bot | Credential stuffing, spam PRs | Low-Medium | - -## STRIDE Analysis - -### Spoofing - -| Threat | Affected Asset | Likelihood | Impact | Risk | Mitigation | -|---------------------------------|-------------------|------------|--------|--------|------------------------------------------------| -| Unsigned commits impersonate maintainer | Source code | Medium | High | High | Require GPG-signed commits; vigilant code review | -| Forged bot actions (automated agents) | CI/CD pipeline | Low | High | Medium | Bot tokens scoped minimally; audit bot activity | -| Spoofed package registry identity | Dependencies | Low | High | Medium | Pin dependencies by hash; verify provenance | - -### Tampering - -| Threat | Affected Asset | Likelihood | Impact | Risk | Mitigation | -|---------------------------------|-------------------|------------|--------|--------|------------------------------------------------| -| Malicious pull request | Source code | Medium | High | High | Branch protection; required reviews; CodeQL | -| Dependency poisoning (typosquat) | Dependencies | Medium | High | High | Lockfiles; secret-scanner; security scans | -| Tampered container base image | Container images | Low | High | Medium | Chainguard images; image signing verification | -| Workflow file modification | CI/CD pipeline | Low | High | Medium | CODEOWNERS on .github/; workflow-linter | - -### Repudiation - -| Threat | Affected Asset | Likelihood | Impact | Risk | Mitigation | -|---------------------------------|-------------------|------------|--------|--------|------------------------------------------------| -| Unlogged deployment | Build artifacts | Medium | Medium | Medium | SLSA provenance; deployment audit trail | -| Denied merge of vulnerable code | Source code | Low | Medium | Low | Git history is immutable; signed commits | -| Secret rotation without record | CI/CD secrets | Low | Low | Low | Secret rotation logged in STATE.a2ml | - -### Information Disclosure - -| Threat | Affected Asset | Likelihood | Impact | Risk | Mitigation | -|---------------------------------|-------------------|------------|--------|--------|------------------------------------------------| -| Secrets leaked in git history | CI/CD secrets | Medium | High | High | TruffleHog in CI; secret-scanner workflow | -| Verbose error messages in prod | Application logic | Medium | Medium | Medium | Sanitize outputs; structured logging | -| SBOM reveals internal structure | Infrastructure | Low | Low | Low | Accepted risk; SBOM is intentionally public | - -### Denial of Service - -| Threat | Affected Asset | Likelihood | Impact | Risk | Mitigation | -|---------------------------------|-------------------|------------|--------|--------|------------------------------------------------| -| CI resource exhaustion (fork bomb in PR) | CI/CD pipeline | Medium | Medium | Medium | Concurrency limits; timeout on workflows | -| Spam issues/PRs flooding triage | Maintainer time | Medium | Low | Low | GitHub rate limits; bot auto-close stale | -| Large binary commits bloating repo | Source code | Low | Medium | Low | .gitattributes LFS policy; pre-commit hooks | - -### Elevation of Privilege - -| Threat | Affected Asset | Likelihood | Impact | Risk | Mitigation | -|---------------------------------|-------------------|------------|--------|--------|------------------------------------------------| -| Workflow injection via PR title/body | CI/CD pipeline | Medium | High | High | Never interpolate PR fields in `run:`; use env vars | -| GITHUB_TOKEN over-scoped | CI/CD secrets | Medium | High | High | `permissions: read-all` default; per-job scoping | -| Container escape | Runtime environment | Low | High | Medium | Hardened container runtime; read-only rootfs; no-new-privileges | -| Compromised action dependency | CI/CD pipeline | Medium | High | High | SHA-pin all actions; never use `@latest` tags | - -## Mitigations in Place - -- **SLSA Provenance**: Build attestations via slsa-github-generator -- **Secret Scanning**: TruffleHog + secret-scanner workflow on every push -- **Static Analysis**: CodeQL on supported languages -- **Supply Chain**: OpenSSF Scorecard (scorecard.yml + scorecard-enforcer.yml) -- **Container Signing**: Ed25519 signatures on all published images (optional: use your signing tool) -- **Container Runtime**: Hardened container runtime with formal verification (optional) -- **Dependency Pinning**: All GitHub Actions SHA-pinned; lockfiles committed -- **Workflow Validation**: workflow-linter.yml checks all workflow changes -- **Security Scanning**: Neurosymbolic scanning (hypatia-scan.yml, optional) -- **Bot Governance**: Bot orchestration with confidence thresholds (optional) -- **Edge Security**: Gateway with policy enforcement (optional, where applicable) -- **SBOM**: Generated and published with releases - -## Residual Risks - -| Risk | Accepted Because | Review Trigger | -|-----------------------------------------------|---------------------------------------------------|-------------------------| -| Zero-day in GitHub Actions runner | Platform responsibility; no feasible mitigation | GitHub advisory | -| Maintainer account compromise | Mitigated by 2FA requirement; residual remains | Any suspicious activity | -| Transitive dependency vulnerability (0-day) | Lockfiles limit blast radius; scanning catches known CVEs | CVE database update | -| SBOM exposes internal component names | Transparency is a design goal | Policy change | - -## Review Schedule - -This threat model should be reviewed: - -- **Quarterly** as a standing item -- **When architecture changes** (new services, new trust boundaries, new deployment targets) -- **Before major releases** (v1.0, v2.0, etc.) -- **After any security incident** affecting this project or its dependencies - -Reviewer should update the "Last Reviewed" date and version in Document Info above. diff --git a/a2ml/editors/vscode/docs/attribution/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/attribution/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 52beaea4b..000000000 --- a/a2ml/editors/vscode/docs/attribution/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "attribution-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-unit of the docs pillar focusing on attribution. diff --git a/a2ml/editors/vscode/docs/attribution/CITATION.cff b/a2ml/editors/vscode/docs/attribution/CITATION.cff deleted file mode 100644 index 4d562f435..000000000 --- a/a2ml/editors/vscode/docs/attribution/CITATION.cff +++ /dev/null @@ -1,17 +0,0 @@ -cff-version: 1.2.0 -message: "If you use this software, please cite it as below." -authors: -- family-names: "{{AUTHOR_LAST}}" - given-names: "{{AUTHOR_FIRST}}" - orcid: "https://orcid.org/0000-0000-0000-0000" # Placeholder -title: "{{PROJECT_NAME}}" -version: 0.1.0 -date-released: {{CURRENT_DATE}} -url: "https://{{FORGE}}/{{OWNER}}/{{REPO}}" -repository-code: "https://{{FORGE}}/{{OWNER}}/{{REPO}}" -license: PMPL-1.0-or-later -keywords: - - "rsr" - - "formal-verification" - - "neurosymbolic" - - "provenance" diff --git a/a2ml/editors/vscode/docs/attribution/CITATIONS.adoc b/a2ml/editors/vscode/docs/attribution/CITATIONS.adoc deleted file mode 100644 index eeee45fbd..000000000 --- a/a2ml/editors/vscode/docs/attribution/CITATIONS.adoc +++ /dev/null @@ -1,35 +0,0 @@ -= {{PROJECT_NAME}} - Citation Guide -:toc: - -== BibTeX - -[source,bibtex] ----- -@software{{{PROJECT_NAME}}_{{CURRENT_YEAR}}, - author = {{{AUTHOR_LAST}}, {{AUTHOR_FIRST}}}, - title = {{{PROJECT_NAME}}}, - year = {{{CURRENT_YEAR}}}, - url = {https://github.com/{{OWNER}}/{{PROJECT_NAME}}}, - license = {PMPL-1.0-or-later} -} ----- - -== Harvard Style - -{{AUTHOR_LAST}}, {{AUTHOR_INITIALS}} ({{CURRENT_YEAR}}) _{{PROJECT_NAME}}_ [Computer software]. Available at: https://github.com/{{OWNER}}/{{PROJECT_NAME}} - -== OSCOLA - -{{AUTHOR}}, '{{PROJECT_NAME}}' ({{CURRENT_YEAR}}) - -== MLA - -{{AUTHOR_LAST}}, {{AUTHOR_FIRST}} "{{PROJECT_NAME}}." {{CURRENT_YEAR}}, github.com/{{OWNER}}/{{PROJECT_NAME}}. - -== APA 7 - -{{AUTHOR_LAST}}, {{AUTHOR_INITIALS}} ({{CURRENT_YEAR}}). _{{PROJECT_NAME}}_ [Computer software]. GitHub. https://github.com/{{OWNER}}/{{PROJECT_NAME}} - -== See Also - -* link:CITATION.cff[CITATION.cff] diff --git a/a2ml/editors/vscode/docs/attribution/CODEOWNERS.adoc b/a2ml/editors/vscode/docs/attribution/CODEOWNERS.adoc deleted file mode 100644 index 3714055f4..000000000 --- a/a2ml/editors/vscode/docs/attribution/CODEOWNERS.adoc +++ /dev/null @@ -1,19 +0,0 @@ -= Code Ownership -:icons: font - -This project utilizes a formally defined code ownership structure to ensure that specific components are reviewed by domain experts. - -== Authority Model - -Our ownership model is based on the "Perimeter" architecture: -* **Perimeter 1 (Core):** Strictly controlled by Lead Maintainers. -* **Perimeter 2 (Extensions):** Maintained by component owners. -* **Perimeter 3 (Community):** Open for broader community participation. - -== Automated Enforcement - -The technical rules for automatic review assignments are maintained in the machine-readable link:../../.github/CODEOWNERS[.github/CODEOWNERS] file. GitHub uses this to automatically notify owners when changes are proposed to their sections. - -== Component Owners - -A full list of maintainers and their contact information can be found in link:MAINTAINERS.adoc[MAINTAINERS.adoc]. diff --git a/a2ml/editors/vscode/docs/attribution/MAINTAINERS.adoc b/a2ml/editors/vscode/docs/attribution/MAINTAINERS.adoc deleted file mode 100644 index d829dd959..000000000 --- a/a2ml/editors/vscode/docs/attribution/MAINTAINERS.adoc +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Maintainers -:toc: preamble - -This document lists the maintainers of this project and their responsibilities. - -== Current Maintainers - -[cols="2,3,2",options="header"] -|=== -| Name | Role | Contact - -| {{AUTHOR}} -| Lead Maintainer -| https://github.com/{{OWNER}}[@{{OWNER}}] -|=== - -== Responsibilities - -Maintainers are responsible for: - -* Reviewing and merging pull requests -* Triaging issues and feature requests -* Ensuring code quality and security standards -* Managing releases and versioning -* Upholding the project's code of conduct - -== Becoming a Maintainer - -Contributors who demonstrate: - -* Consistent, high-quality contributions -* Understanding of the project's goals and standards -* Constructive participation in discussions -* Commitment to the project's long-term health - -May be invited to become maintainers at the discretion of existing maintainers. - -== Decision Making - -* Routine decisions (bug fixes, minor improvements) can be made by any maintainer -* Significant changes require discussion and consensus among maintainers -* Breaking changes or major features should be discussed in issues before implementation - -== Contact - -For questions about project governance, open an issue or contact the maintainers listed above. diff --git a/a2ml/editors/vscode/docs/attribution/README.adoc b/a2ml/editors/vscode/docs/attribution/README.adoc deleted file mode 100644 index b095612c0..000000000 --- a/a2ml/editors/vscode/docs/attribution/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= attribution Unit diff --git a/a2ml/editors/vscode/docs/decisions/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/decisions/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index ac26298b4..000000000 --- a/a2ml/editors/vscode/docs/decisions/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "decisions-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-unit of the docs pillar focusing on decisions. diff --git a/a2ml/editors/vscode/docs/decisions/0000-template.adoc b/a2ml/editors/vscode/docs/decisions/0000-template.adoc deleted file mode 100644 index 763eab1e2..000000000 --- a/a2ml/editors/vscode/docs/decisions/0000-template.adoc +++ /dev/null @@ -1,35 +0,0 @@ -= Architecture Decision Record: 0000-template - - - -# [NUMBER]. [TITLE] - -Date: YYYY-MM-DD - -## Status - -[Proposed | Accepted | Deprecated | Superseded by [ADR-NNNN](NNNN-title.md) | Rejected] - -## Context - -What is the issue that we're seeing that is motivating this decision or change? - -## Decision - -What is the change that we're proposing and/or doing? - -## Consequences - -What becomes easier or more difficult to do because of this change? - -### Positive - -- ... - -### Negative - -- ... - -### Neutral - -- ... diff --git a/a2ml/editors/vscode/docs/decisions/0001-adopt-rsr-standard.adoc b/a2ml/editors/vscode/docs/decisions/0001-adopt-rsr-standard.adoc deleted file mode 100644 index 85f414be3..000000000 --- a/a2ml/editors/vscode/docs/decisions/0001-adopt-rsr-standard.adoc +++ /dev/null @@ -1,86 +0,0 @@ -= Architecture Decision Record: 0001-adopt-rsr-standard - - - -# 1. Adopt Rhodium Standard Repository (RSR) Template - -Date: 2026-02-14 - -## Status - -Accepted - -## Context - -Managing multiple repositories with an ad-hoc approach led to significant -inconsistencies across the ecosystem. Common problems included: - -- Missing or incomplete configuration files (SECURITY.md, CONTRIBUTING.md, - .editorconfig, etc.) -- State files (STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml) placed in the repository - root instead of the canonical `.machine_readable/` directory -- Duplicate or conflicting workflow definitions across repos -- No standardized entry point for AI agents interacting with repositories -- Inconsistent bot directive configurations leading to unreliable automation -- No contractile enforcement or Justfile automation - -Without a single source of truth for repository structure, each new repo -required manual setup and inevitably drifted from best practices over time. - -## Decision - -Adopt the Rhodium Standard Repository (RSR) template (`rsr-template-repo`) as -the canonical starting point for all new repositories. Existing repositories -will migrate incrementally as they receive active development. - -The RSR template provides: - -- **Machine-readable state files** in `.machine_readable/` (STATE.a2ml, - ECOSYSTEM.a2ml, META.a2ml, AGENTIC.a2ml, NEUROSYM.a2ml, PLAYBOOK.a2ml) -- **AI manifest** (`0-AI-MANIFEST.a2ml`) as a universal entry point for all - AI agents -- **Bot directives** in `.machine_readable/bot_directives/` for bot orchestration integration -- **Contractiles** in `.machine_readable/contractiles/` (k9, dust, lust, must, trust) for - policy enforcement -- **Standardized workflows** (16+ GitHub Actions workflows, all SHA-pinned) -- **Justfile automation** with standard recipes for common tasks -- **Security and governance files**: SECURITY.md, CONTRIBUTING.md, - CODE_OF_CONDUCT.md, LICENSE (PMPL-1.0-or-later) -- **Architecture Decision Records** in `docs/decisions/` - -New repositories are created by cloning the template: - -```bash -git clone https://github.com/{{OWNER}}/rsr-template-repo new-repo-name -cd new-repo-name -rm -rf .git && git init -``` - -## Consequences - -### Positive - -- Consistency across all repositories, enforced from creation -- Automated compliance checking via `rsr-antipattern.yml` workflow -- Bot fleet can operate reliably across all repos with predictable structure -- AI agents (Claude, Gemini, etc.) have a standardized entry point via - `0-AI-MANIFEST.a2ml` -- New contributors can onboard faster with familiar, documented structure -- Reduced maintenance burden: fix once in template, propagate to all repos -- Machine-readable state enables tooling and automation pipelines - -### Negative - -- Migration effort for existing repos requires time and attention -- Learning curve for contributors unfamiliar with RSR conventions -- Template updates need propagation mechanism to existing repos -- Some repos may have unique needs that do not fit the standard template - without customization - -### Neutral - -- Existing CI/CD pipelines continue to work; RSR workflows are additive -- Third-party dependencies retain their original licenses regardless of - repo structure -- ADR process itself is part of the template, enabling future decisions - to be recorded consistently diff --git a/a2ml/editors/vscode/docs/decisions/README.adoc b/a2ml/editors/vscode/docs/decisions/README.adoc deleted file mode 100644 index 153a5e788..000000000 --- a/a2ml/editors/vscode/docs/decisions/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= decisions Unit diff --git a/a2ml/editors/vscode/docs/developer/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/developer/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index c16fcc747..000000000 --- a/a2ml/editors/vscode/docs/developer/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "developer-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-unit of the docs pillar focusing on developer. diff --git a/a2ml/editors/vscode/docs/developer/ABI-FFI-README.adoc b/a2ml/editors/vscode/docs/developer/ABI-FFI-README.adoc deleted file mode 100644 index 65d2afe11..000000000 --- a/a2ml/editors/vscode/docs/developer/ABI-FFI-README.adoc +++ /dev/null @@ -1,384 +0,0 @@ -= ABI/FFI Standards -{{~ Aditionally delete this line and fill out the template below ~}} - -# {{PROJECT}} ABI/FFI Documentation - -## Overview - -This library follows the **Hyperpolymath RSR Standard** for ABI and FFI design: - -- **ABI (Application Binary Interface)** defined in **Idris2** with formal proofs -- **FFI (Foreign Function Interface)** implemented in **Zig** for C compatibility -- **Generated C headers** bridge Idris2 ABI to Zig FFI -- **Any language** can call through standard C ABI - -## Architecture - -``` -┌─────────────────────────────────────────────┐ -│ ABI Definitions (Idris2) │ -│ src/abi/ │ -│ - Types.idr (Type definitions) │ -│ - Layout.idr (Memory layout proofs) │ -│ - Foreign.idr (FFI declarations) │ -└─────────────────┬───────────────────────────┘ - │ - │ generates (at compile time) - ▼ -┌─────────────────────────────────────────────┐ -│ C Headers (auto-generated) │ -│ generated/abi/{{project}}.h │ -└─────────────────┬───────────────────────────┘ - │ - │ imported by - ▼ -┌─────────────────────────────────────────────┐ -│ FFI Implementation (Zig) │ -│ ffi/zig/src/main.zig │ -│ - Implements C-compatible functions │ -│ - Zero-cost abstractions │ -│ - Memory-safe by default │ -└─────────────────┬───────────────────────────┘ - │ - │ compiled to lib{{project}}.so/.a - ▼ -┌─────────────────────────────────────────────┐ -│ Any Language via C ABI │ -│ - Rust, ReScript, Julia, Python, etc. │ -└─────────────────────────────────────────────┘ -``` - -## Directory Structure - -``` -{{project}}/ -├── src/ -│ ├── abi/ # ABI definitions (Idris2) -│ │ ├── Types.idr # Core type definitions with proofs -│ │ ├── Layout.idr # Memory layout verification -│ │ └── Foreign.idr # FFI function declarations -│ └── lib/ # Core library (any language) -│ -├── ffi/ -│ └── zig/ # FFI implementation (Zig) -│ ├── build.zig # Build configuration -│ ├── build.zig.zon # Dependencies -│ ├── src/ -│ │ └── main.zig # C-compatible FFI implementation -│ ├── test/ -│ │ └── integration_test.zig -│ └── include/ -│ └── {{project}}.h # C header (optional, can be generated) -│ -├── generated/ # Auto-generated files -│ └── abi/ -│ └── {{project}}.h # Generated from Idris2 ABI -│ -└── bindings/ # Language-specific wrappers (optional) - ├── rust/ - ├── rescript/ - └── julia/ -``` - -## Why Idris2 for ABI? - -### 1. **Formal Verification** - -Idris2's dependent types allow proving properties about the ABI at compile-time: - -```idris --- Prove struct size is correct -public export -exampleStructSize : HasSize ExampleStruct 16 - --- Prove field alignment is correct -public export -fieldAligned : Divides 8 (offsetOf ExampleStruct.field) - --- Prove ABI is platform-compatible -public export -abiCompatible : Compatible (ABI 1) (ABI 2) -``` - -### 2. **Type Safety** - -Encode invariants that C/Zig cannot express: - -```idris --- Non-null pointer guaranteed at type level -data Handle : Type where - MkHandle : (ptr : Bits64) -> {auto 0 nonNull : So (ptr /= 0)} -> Handle - --- Array with length proof -data Buffer : (n : Nat) -> Type where - MkBuffer : Vect n Byte -> Buffer n -``` - -### 3. **Platform Abstraction** - -Platform-specific types with compile-time selection: - -```idris -CInt : Platform -> Type -CInt Linux = Bits32 -CInt Windows = Bits32 - -CSize : Platform -> Type -CSize Linux = Bits64 -CSize Windows = Bits64 -``` - -### 4. **Safe Evolution** - -Prove that new ABI versions are backward-compatible: - -```idris --- Compiler enforces compatibility -abiUpgrade : ABI 1 -> ABI 2 -abiUpgrade old = MkABI2 { - -- Must preserve all v1 fields - v1_compat = old, - -- Can add new fields - new_features = defaults -} -``` - -## Why Zig for FFI? - -### 1. **C ABI Compatibility** - -Zig exports C-compatible functions naturally: - -```zig -export fn library_function(param: i32) i32 { - return param * 2; -} -``` - -### 2. **Memory Safety** - -Compile-time safety without runtime overhead: - -```zig -// Null check enforced at compile time -const handle = init() orelse return error.InitFailed; -defer free(handle); -``` - -### 3. **Cross-Compilation** - -Built-in cross-compilation to any platform: - -```bash -zig build -Dtarget=x86_64-linux -zig build -Dtarget=aarch64-macos -zig build -Dtarget=x86_64-windows -``` - -### 4. **Zero Dependencies** - -No runtime, no libc required (unless explicitly needed): - -```zig -// Minimal binary size -pub const lib = @import("std"); -// Only includes what you use -``` - -## Building - -### Build FFI Library - -```bash -cd ffi/zig -zig build # Build debug -zig build -Doptimize=ReleaseFast # Build optimized -zig build test # Run tests -``` - -### Generate C Header from Idris2 ABI - -```bash -cd src/abi -idris2 --cg c-header Types.idr -o ../../generated/abi/{{project}}.h -``` - -### Cross-Compile - -```bash -cd ffi/zig - -# Linux x86_64 -zig build -Dtarget=x86_64-linux - -# macOS ARM64 -zig build -Dtarget=aarch64-macos - -# Windows x86_64 -zig build -Dtarget=x86_64-windows -``` - -## Usage - -### From C - -```c -#include "{{project}}.h" - -int main() { - void* handle = {{project}}_init(); - if (!handle) return 1; - - int result = {{project}}_process(handle, 42); - if (result != 0) { - const char* err = {{project}}_last_error(); - fprintf(stderr, "Error: %s\n", err); - } - - {{project}}_free(handle); - return 0; -} -``` - -Compile with: -```bash -gcc -o example example.c -l{{project}} -L./zig-out/lib -``` - -### From Idris2 - -```idris -import {{PROJECT}}.ABI.Foreign - -main : IO () -main = do - Just handle <- init - | Nothing => putStrLn "Failed to initialize" - - Right result <- process handle 42 - | Left err => putStrLn $ "Error: " ++ errorDescription err - - free handle - putStrLn "Success" -``` - -### From Rust - -```rust -#[link(name = "{{project}}")] -extern "C" { - fn {{project}}_init() -> *mut std::ffi::c_void; - fn {{project}}_free(handle: *mut std::ffi::c_void); - fn {{project}}_process(handle: *mut std::ffi::c_void, input: u32) -> i32; -} - -fn main() { - unsafe { - let handle = {{project}}_init(); - assert!(!handle.is_null()); - - let result = {{project}}_process(handle, 42); - assert_eq!(result, 0); - - {{project}}_free(handle); - } -} -``` - -### From Julia - -```julia -const lib{{project}} = "lib{{project}}" - -function init() - handle = ccall((:{{project}}_init, lib{{project}}), Ptr{Cvoid}, ()) - handle == C_NULL && error("Failed to initialize") - handle -end - -function process(handle, input) - result = ccall((:{{project}}_process, lib{{project}}), Cint, (Ptr{Cvoid}, UInt32), handle, input) - result -end - -function cleanup(handle) - ccall((:{{project}}_free, lib{{project}}), Cvoid, (Ptr{Cvoid},), handle) -end - -# Usage -handle = init() -try - result = process(handle, 42) - println("Result: $result") -finally - cleanup(handle) -end -``` - -## Testing - -### Unit Tests (Zig) - -```bash -cd ffi/zig -zig build test -``` - -### Integration Tests - -```bash -cd ffi/zig -zig build test-integration -``` - -### ABI Verification (Idris2) - -```idris --- Compile-time verification -%runElab verifyABI - --- Runtime checks -main : IO () -main = do - verifyLayoutsCorrect - verifyAlignmentsCorrect - putStrLn "ABI verification passed" -``` - -## Contributing - -When modifying the ABI/FFI: - -1. **Update ABI first** (`src/abi/*.idr`) - - Modify type definitions - - Update proofs - - Ensure backward compatibility - -2. **Generate C header** - ```bash - idris2 --cg c-header src/abi/Types.idr -o generated/abi/{{project}}.h - ``` - -3. **Update FFI implementation** (`ffi/zig/src/main.zig`) - - Implement new functions - - Match ABI types exactly - -4. **Add tests** - - Unit tests in Zig - - Integration tests - - ABI verification tests - -5. **Update documentation** - - Function signatures - - Usage examples - - Migration guide (if breaking changes) - -## License - -{{LICENSE}} - -## See Also - -- [Idris2 Documentation](https://idris2.readthedocs.io) -- [Zig Documentation](https://ziglang.org/documentation/master/) -- [Rhodium Standard Repositories](https://github.com/{{OWNER}}/rhodium-standard-repositories) diff --git a/a2ml/editors/vscode/docs/developer/README.adoc b/a2ml/editors/vscode/docs/developer/README.adoc deleted file mode 100644 index 1d00529d5..000000000 --- a/a2ml/editors/vscode/docs/developer/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= developer Unit diff --git a/a2ml/editors/vscode/docs/governance/0.1-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/governance/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index 6e373bd2f..000000000 --- a/a2ml/editors/vscode/docs/governance/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-pillar" -level: 1 -parent: "../0-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Primary governance pillar implementing the Triaxial Software Development - Methodology (TSDM). Contains planning, maintenance, and audit tracks. - -canonical_locations: - tsdm_spec: "TSDM.adoc" - planning: "planning/" - maintenance: "maintenance/" - audit: "audit/" - crg: "CRG-CRITERIA.adoc" - checklist: "MAINTENANCE-CHECKLIST.adoc" - approach: "SOFTWARE-DEVELOPMENT-APPROACH.adoc" diff --git a/a2ml/editors/vscode/docs/governance/CRG-CRITERIA.a2ml b/a2ml/editors/vscode/docs/governance/CRG-CRITERIA.a2ml deleted file mode 100644 index 99a1c4e0a..000000000 --- a/a2ml/editors/vscode/docs/governance/CRG-CRITERIA.a2ml +++ /dev/null @@ -1,108 +0,0 @@ -; SPDX-License-Identifier: MPL-2.0 -; Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) - -; Component Readiness Grades (CRG) — Machine-readable specification -; Format: A2ML (AI-to-Machine Language) -; Standard: CRG v1.0 - -(standard - (name "Component Readiness Grades") - (abbreviation "CRG") - (version "1.0") - (date "2026-02-28") - (author "Jonathan D.A. Jewell ") - (license "PMPL-1.0-or-later") - (family "RSR")) - -(grades - (grade - (code X) - (name "Untested") - (release-stage #f) - (ordinal 0) - (description "No testing has been performed. Status unknown.") - (evidence-required "none") - (minimum-for #f)) - (grade - (code F) - (name "Harmful / Wasteful") - (release-stage #f) - (ordinal 1) - (description "Actively harmful, wasteful, or better handled externally. Reject, deprecate, or delegate.") - (evidence-required "documented test results showing harm, waste, or redundancy; comparison with alternatives") - (minimum-for #f)) - (grade - (code E) - (name "Minimal / Salvageable") - (release-stage "pre-alpha") - (ordinal 2) - (description "Does something slight. Barely functional. Needs redesign or major work.") - (evidence-required "at least one successful test case; documented failures and limitations") - (minimum-for #f)) - (grade - (code D) - (name "Partial / Inconsistent") - (release-stage "alpha") - (ordinal 3) - (description "Works on some things but not systematically.") - (evidence-required "matrix of tested scenarios; documented scope vs actual capabilities") - (minimum-for "alpha")) - (grade - (code C) - (name "Self-Validated") - (release-stage "beta") - (ordinal 4) - (description "Tested on the tool/project itself (dogfooding). Reliable in home context.") - (evidence-required "active dogfooding; CI integration or equivalent; no known failures in home context") - (minimum-for "beta")) - (grade - (code B) - (name "Broadly Validated") - (release-stage "release-candidate") - (ordinal 5) - (description "Tested on at least 6 disparate, unrelated targets.") - (evidence-required "list of 6+ diverse targets with test results; evidence of feedback incorporation") - (minimum-for "release-candidate")) - (grade - (code A) - (name "Field-Proven") - (release-stage "stable") - (ordinal 6) - (description "Real-world external feedback confirms value. Does no harm in the wild.") - (evidence-required "real-world usage data; feedback incorporation evidence; no unresolved harm reports") - (minimum-for "stable"))) - -(transitions - (promotion - (from X) (to E) (requirement "Run at least one test. Document results.")) - (promotion - (from X) (to F) (requirement "Evaluate and determine harmful or wasteful.")) - (promotion - (from E) (to D) (requirement "Fix critical failures. Document scope.")) - (promotion - (from D) (to C) (requirement "Dogfood on own project. Fix what breaks.")) - (promotion - (from C) (to B) (requirement "Test on 6+ diverse external targets. Fix what breaks.")) - (promotion - (from B) (to A) (requirement "Ship. Collect external feedback. Demonstrate no harm.")) - (demotion - (from A) (to B) (trigger "External feedback dries up or reveals no longer useful.")) - (demotion - (from A) (to F) (trigger "External feedback reveals component causes harm.")) - (demotion - (from B) (to C) (trigger "Broad validation reveals unfixed failures.")) - (demotion - (from C) (to D) (trigger "Home context changes and component no longer reliable.")) - (demotion - (from C) (to F) (trigger "Dogfooding reveals net negative.")) - (demotion - (from D) (to E) (trigger "Scope narrows to barely functional.")) - (demotion - (from any) (to F) (trigger "Better external alternative makes this pure opportunity cost."))) - -(conformance - (rule "Each assessable component MUST have a grade from {X, F, E, D, C, B, A}.") - (rule "Each grade above X MUST be supported by evidence per section 4.") - (rule "Assessments MUST be recorded in a version-controlled location.") - (rule "Assessments MUST be reviewed at least once per release cycle.") - (rule "Release stages MUST respect minimum grade thresholds.")) diff --git a/a2ml/editors/vscode/docs/governance/CRG-CRITERIA.adoc b/a2ml/editors/vscode/docs/governance/CRG-CRITERIA.adoc deleted file mode 100644 index f8264e6d4..000000000 --- a/a2ml/editors/vscode/docs/governance/CRG-CRITERIA.adoc +++ /dev/null @@ -1,39 +0,0 @@ -= Component Readiness Grades (CRG) Criteria -:toc: preamble -:icons: font - -This document defines the quality assessment criteria for individual project components. - -== Grade Definitions - -[cols="1,2,3,4",options="header"] -|=== -| Grade | Name | Release Stage | Meaning - -| **A** | Field-Proven | Stable | Real-world feedback amassed; no harm in wild. -| **B** | Broadly Validated | Release Candidate | Tested on 6+ diverse external targets. -| **C** | Self-Validated | Beta | Reliable in home context (dogfooded). -| **D** | Partial | Alpha | Works on some inputs/cases but not systematically. -| **E** | Minimal | Pre-alpha | Barely functional; needs major work. -| **F** | Harmful/Wasteful | Reject/Delegate | Redundant or negative value. -| **X** | Untested | — | Status completely unknown. -|=== - -== Core Principles - -1. **Assess components, not projects:** Each feature gets its own grade. -2. **Evidence over intuition:** Every grade above X requires documented evidence. -3. **Honest assessment:** Grade the component as it is today, not as you hope it will be. -4. **Grades are earned and can be lost:** Regressions lead to demotion. - -== Assessment Checklist - -1. Has it been tested at all? (No → **X**) -2. Does it cause harm or duplicate something better? (Yes → **F**) -3. Does it do something, however slight? (Barely → **E**) -4. Does it work on some things but not others? (Partial → **D**) -5. Does it work reliably on our own project? (Dogfooded → **C**) -6. Has it been tested on 6+ diverse external targets? (Broad → **B**) -7. Do external users confirm it works and is useful? (Field-proven → **A**) - -See link:READINESS.adoc[READINESS.adoc] for the current project assessment. diff --git a/a2ml/editors/vscode/docs/governance/MAINTENANCE-CHECKLIST.a2ml b/a2ml/editors/vscode/docs/governance/MAINTENANCE-CHECKLIST.a2ml deleted file mode 100644 index eaee72059..000000000 --- a/a2ml/editors/vscode/docs/governance/MAINTENANCE-CHECKLIST.a2ml +++ /dev/null @@ -1,159 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Cross-repo maintenance baseline (machine-readable canonical) - -[metadata] -version = "1.1.0" -last-updated = "2026-02-24" -scope = "cross-repo" -source-human = "docs/maintenance/MAINTENANCE-CHECKLIST.adoc" -companion-human = "docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc" -companion-machine = ".machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml" - -[policy] -single-source = true -notes = "Use this file as canonical machine policy and keep markdown synchronized." - -[maintenance-axes] -scoping-first = true -execution-order = ["scoping", "axis-1", "axis-2", "axis-3"] -axis-1 = "must > intend > like" -axis-2 = "corrective > adaptive > perfective" -axis-3 = "systems > compliance > effects" - -[scoping] -inputs_required = [ - "README", - "roadmap", - "status-docs", - "maintenance-checklist", - "ci-and-security-docs", -] - -marker_scan_required = [ - "TODO", - "FIXME", - "XXX", - "HACK", - "STUB", - "PARTIAL", -] - -idris_unsound_scan_required = [ - "believe_me", - "assert_total", -] - -scope_assembly_buckets = ["must", "intend", "like"] - -[axis-2-maintenance-rules] -corrective-first = true -adaptive-second = true -adaptive_examples = [ - "scope-change reconciliation", - "stale-reference removal", - "obsolete-work culling", -] -perfective-third = true -perfective_source = "axis-1 honest state after corrective/adaptive updates" - -[axis-3-audit-rules] -systems-check = true -documentation-honesty-check = true -safety-security-accounted-check = true -effects-review-check = true -benchmark-evidence-required = true -maintainer-dialogue-review-required = true -compliance-seams-check = true -exception-register-required = true -exception-bounded-scope-required = true -policy-drift-contamination-check = true -example-drift-risk = "single TypeScript exception causing broad ReScript->TypeScript migration" -compliance-tooling = "panic-attack" -effects-tooling = "ecological checking with sustainabot guidance" - -[generic-cleanup-finish-off] -root-cleanup-required = true -stale-work-cull-required = true -docs-parity-required = true -machine-human-sync-required = true -compliance-finish-off-required = true -effects-finish-off-required = true -release-prep-summary-required = true -next-actions-required = ["corrective", "adaptive", "perfective"] - -[must] -root_control_files = [ - ".gitignore", - ".gitattributes", - ".editorconfig", - ".tool-versions", - "Containerfile", - "Justfile", -] - -root_hosting_files = [ - "CNAME", - ".nojekyll", -] - -ownership_files = [ - "MAINTAINER", - ".github/CODEOWNERS", -] - -machine_readable_required = [ - ".machine_readable/anchors/ANCHOR.a2ml", - ".machine_readable/contractiles/", - ".machine_readable/ai/", - ".machine_readable/bot_directives/", -] - -contractiles_required = [ - "Mustfile", - "Trustfile", - "Intentfile", -] - -security_required = [ - ".well-known/security.txt", - "ci-security-scan", -] - -quality_gate_required = [ - "format", - "lint", - "unit-tests", - "integration-tests", - "p2p-tests", - "e2e-tests", - "bench-smoke", - "docs-check", - "security-scan", -] - -abi_ffi_policy = [ - "ABI Idris2 in src/interface/abi/*.idr", - "FFI Zig in ffi/**/*.zig", -] - -[should] -docs_primary_format = "adoc" -docs_structure = [ - "docs/theory", - "docs/practice", - "docs/whitepapers/academic", - "docs/whitepapers/industry", - "docs/proofs", - "docs/reports", -] - -root_minimization = true -well_known_metadata = true -roadmap_honesty_with_dates = true -ci_doc_format_policy = true - -[could] -generate_human_from_machine = true -mode_aware_bots = ["corrective", "adaptive", "perfective", "audit"] -topology_dashboard = true -exception_registry = true diff --git a/a2ml/editors/vscode/docs/governance/MAINTENANCE-CHECKLIST.adoc b/a2ml/editors/vscode/docs/governance/MAINTENANCE-CHECKLIST.adoc deleted file mode 100644 index 27f577a0f..000000000 --- a/a2ml/editors/vscode/docs/governance/MAINTENANCE-CHECKLIST.adoc +++ /dev/null @@ -1,569 +0,0 @@ -= Maintenance Checklist -# Maintenance Checklist (Cross-Repo) - -Use this as a repeatable maintenance runbook for any repo. - -Companion policy: - -- `docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc` (human-readable) -- `.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml` (machine-readable) - -## Canonical Repo Baseline (Final) - -Apply this baseline to every repo unless an explicit exception is recorded. - -### Three-Axis Default Model - -- [ ] Axis 1 (scope priority, runs first): `must > intend > like` -- [ ] Axis 2 (maintenance priority): `corrective > adaptive > perfective` -- [ ] Axis 3 (audit priority): `systems > compliance > effects` -- [ ] Perfective items are derived from Axis 1 honest state (not started independently). - -### Axis 1 Scoping Pass (Mandatory) - -Before Axis 2/3 execution, assemble a scoped worklist from evidence: - -- [ ] Read and reconcile: `README`, roadmap, status docs, maintenance checklist, and current CI/security docs. -- [ ] Scan for unfinished markers: `TODO`, `FIXME`, `XXX`, `HACK`, `STUB`, `PARTIAL`. -- [ ] If Idris is present, scan unsoundness markers: `believe_me`, `assert_total`. -- [ ] Identify declared intent vs actual implementation (docs honesty check). -- [ ] Produce a scope assembly artifact with prioritized entries under: - - `must` (release blockers / safety / correctness) - - `intend` (planned near-term) - - `like` (nice-to-have) - -### Axis 2 Maintenance Execution Rules - -- [ ] Corrective first: fix breakage, defects, regressions, safety issues. -- [ ] Adaptive second: reconcile changed scope, remove stale references, cull no-longer-relevant work. -- [ ] Perfective third: only from current honest state established by Axis 1 and updated by corrective/adaptive actions. - -### Axis 3 Audit Rules - -- [ ] Verify systems are in place and actually operating. -- [ ] Verify documentation explains the real/current state (not aspirational-only), including documented exceptions. -- [ ] Verify safety and security controls are present, active, and evidenced. -- [ ] Verify observed effects/impacts are captured and reviewed. -- [ ] Effects audit includes: - - benchmark execution and recorded results (with before/after where relevant) - - explicit maintainer dialogue/status review on what changed, why, and next risks -- [ ] Audit compliance seams/compromises explicitly: - - policy exceptions are recorded with rationale, scope, and expiry/review - - exception does not silently broaden into general policy drift - - language-policy contamination checks run (example: a single TS exception must not trigger broad TypeScript conversion) - - run `panic-attack` as the compliance-audit scanner - - run ecological checking under effects (using sustainabot guidance as current baseline) - -### Generic Cleanup And Finish-Off Pass - -Run this pass at the end of a corrective/adaptive/perfective cycle: - -- [ ] Root cleanup: - - keep only required control/entry files in root - - move non-essential docs/reports/fixtures to canonical folders -- [ ] Remove or archive stale work: - - close out completed TODO/STUB/PARTIAL items - - cull obsolete references, dead files, and superseded plans -- [ ] Documentation finish-off: - - ensure README, roadmap, status, and wiki match actual implementation state - - ensure machine-readable policy/state files match human docs -- [ ] Security/compliance finish-off: - - run compliance scanner (`panic-attack`) and resolve high-priority findings - - verify exception register and seams/compromises are explicitly bounded -- [ ] Effects finish-off: - - run benchmark/effects checks and record evidence - - conduct explicit maintainer review dialogue (what changed, why, remaining risks) -- [ ] Release-prep finish-off: - - produce Must/Should/Could summary - - produce immediate corrective/adaptive/perfective next-actions list - -### Must - -- [ ] Keep required control files at repository root: - - `.gitignore`, `.gitattributes`, `.editorconfig`, `.tool-versions` - - `Containerfile` - - `.containerignore` (or `.dockerignore` only when required for compatibility) - - `CNAME` and `.nojekyll` when using GitHub Pages/custom domain - - `Justfile` (root by convention) -- [ ] Keep ownership/governance files present: - - `MAINTAINER` in root - - `.github/CODEOWNERS` -- [ ] Keep machine-readable canonical structure under `.machine_readable/`: - - state/meta/ecosystem files (`*.a2ml` or repo standard) - - `anchors/ANCHOR.a2ml` - - `contractiles/` (`must`, `trust`, `lust`, and related) - - `ai/` for AI guidance files - - `bot_directives/` for bot control files -- [ ] Keep contractiles/invariants present and wired: - - root `Mustfile` (or equivalent) with enforceable checks - - `Trustfile` and `Intentfile` present -- [ ] Keep security metadata present: - - `.well-known/security.txt` and relevant policy metadata - - CI security scanning configured and runnable -- [ ] Keep docs and navigation coherent: - - single navigation entry point in root (`NAVIGATION.adoc` or equivalent) - - no duplicate conflicting docs for same purpose (for example both `.md` and `.adoc` in root unless intentionally required) -- [ ] Enforce ABI/FFI purity where the policy applies: - - ABI definitions in Idris2 (`src/abi/*.idr`) - - FFI implementations in Zig (`ffi/**/*.zig`) -- [ ] Ensure quality gate includes: formatting, lint, unit/integration tests, p2p/e2e checks, benchmark smoke, docs checks, security scan. - -### Should - -- [ ] Keep human docs primarily in AsciiDoc (`.adoc`) except where ecosystem rules require other formats (GitHub/community health, legal text, tool-specific files). -- [ ] Keep non-essential root files moved into structured folders: - - `docs/` (theory/practice/whitepapers/proofs/reports) - - `tests/` (fixtures/outputs) - - `docs/legal/` (while retaining root `LICENSE` when forge detection needs it) -- [ ] Maintain `.well-known/` for public metadata where applicable (`security.txt`, `humans.txt`, `ads.txt` mirrors if used). -- [ ] Keep CI policy checks for doc-format conventions and canonical file placement. -- [ ] Keep roadmap/status docs honest with dated evidence. - -### Could - -- [ ] Maintain both human and machine views of maintenance policy from a single source (generate one from the other). -- [ ] Add policy bots for corrective/adaptive/perfective/audit modes. -- [ ] Add repo-level architecture map (`TOPOLOGY.md`) and release-readiness dashboards. -- [ ] Add per-repo exception registry for approved policy deviations. - -### Explicit Root-Placement Rule - -Do **not** move the following out of root if you want default tool behavior: - -- `.gitignore`, `.gitattributes`, `.editorconfig`, `.tool-versions` -- `Containerfile` and ignore file (`.containerignore`/`.dockerignore`) -- `CNAME` and `.nojekyll` for GitHub Pages -- `Justfile` - -## Quick Automated Run (Script) - -Use the helper script first, then use the checklist for deeper/manual follow-up. - -Script locations: -- `$REPOS_DIR/run-maintenance.sh` -- `~/Desktop/run-maintenance.sh` - -```bash -~/Desktop/run-maintenance.sh --repo /absolute/path/to/repo --output /tmp/maintenance-report.json -jq . /tmp/maintenance-report.json -``` - -Useful flags: - -```bash -# Strict mode: fail process on failed checks -~/Desktop/run-maintenance.sh --repo /absolute/path/to/repo --strict - -# Skip expensive checks when needed -~/Desktop/run-maintenance.sh --repo /absolute/path/to/repo --skip-panic - -# Explicit language selection -~/Desktop/run-maintenance.sh --repo /absolute/path/to/repo --rust --python - -# Release hard-pass mode (fails on warnings or failures) -~/Desktop/run-maintenance.sh --repo /absolute/path/to/repo --fail-on-warn -``` - -Permission policy in script: -- Flags `g+w/o+w` files/dirs -- Flags suspicious executable files -- Flags shebang scripts missing executable bit -- Supports repo-local exceptions via `.maintenance-perms-ignore` (regex per line) -- **Audit-first by default** (non-mutating) -- `--fix-perms` is explicit opt-in only (never implicit) -- For reversible local hardening, pair snapshot/restore scripts where available: - - `scripts/maintenance/perms-state.sh snapshot` - - `scripts/maintenance/perms-state.sh lock` - - `scripts/maintenance/perms-state.sh restore` - -Important git behavior: -- Git generally tracks execute bit, not full UNIX mode matrix. -- Permission hardening audits do not force collaborators to re-unlock every file on pull. -- Keep lock mode opt-in, with restore path documented. - -```bash -# Audit-only (recommended default) -~/Desktop/run-maintenance.sh --repo /absolute/path/to/repo - -# Opt-in permission fixes (review output before commit) -~/Desktop/run-maintenance.sh --repo /absolute/path/to/repo --fix-perms -``` - -## 0) Setup - -```bash -REPO="/absolute/path/to/repo" -cd "$REPO" -``` - -```bash -date -u -git rev-parse --abbrev-ref HEAD -git rev-parse HEAD -git status --porcelain -``` - -## 1) Preflight - -- [ ] Confirm clean intent: note existing unrelated dirty files before edits. -- [ ] Confirm runtime/toolchain versions. -- [ ] Confirm container mode expectation (`podman`/`podman-compose`) if required. - -```bash -command -v rg git jq || true -command -v podman podman-compose || true -``` - -## 2) Dependency/Env Prereqs - -- [ ] Python deps in active interpreter (for Python paths). -- [ ] Language-specific tooling installed. - -```bash -python -c "import sys; print(sys.executable)" -python -c "import pydantic; print(pydantic.__version__)" || echo "pydantic missing" -``` - -## 3) Corrective Maintenance First - -- [ ] Fix regressions, runtime errors, panics, broken commands, failing tests. -- [ ] Re-run failing checks immediately after each fix. - -## 4) Code Health Scans - -- [ ] `TODO/FIXME/XXX/HACK/STUB/PARTIAL` scan. -- [ ] Permission policy scan (`g+w/o+w`, executable hygiene). -- [ ] ABI/FFI policy scan (if applicable: Idris2 ABI, Zig FFI). - -```bash -rg -n "TODO|FIXME|XXX|HACK|STUB|PARTIAL" -g '!**/.git/**' -g '!**/target/**' . -``` - -```bash -# Optional per-repo exceptions (regex per line): -# .maintenance-perms-ignore -# ^vendor/ -# ^third_party/ -``` - -```bash -# Adjust paths for your repo layout -find . -type f \( -name '*.idr' -o -name '*.idris2' -o -name '*.zig' \) -``` - -## 5) Panic/Safety/Security Pass - -- [ ] Run `panic-attacker` assail/assault. -- [ ] Triage findings by severity. -- [ ] Fix high first, then medium. -- [ ] Re-run until acceptable. - -```bash -PANIC_BIN="${REPOS_DIR:-$HOME/Documents/hyperpolymath-repos}/panic-attacker/target/release/panic-attack" -"$PANIC_BIN" assail "$REPO" --output /tmp/assail.json --output-format json --quiet -jq -r '.weak_points | length' /tmp/assail.json -jq -r '.weak_points[] | "\(.severity)|\(.location)|\(.description)"' /tmp/assail.json -``` - -```bash -# If repo has production-only source builder, prefer this for baseline checks: -./scripts/ci/build-panic-assail-source.sh /tmp/panic-src -"$PANIC_BIN" assail /tmp/panic-src --output /tmp/assail-prod.json --output-format json --quiet -``` - -## 6) Language-Specific Validation - -### Rust - -- [ ] Format -- [ ] Lint -- [ ] Tests -- [ ] Doc tests -- [ ] Benches (where relevant) - -```bash -cargo fmt --all --check -cargo clippy --workspace --all-targets -- -D warnings -cargo test --workspace -cargo test --workspace --doc -# Optional targeted benchmarks: -cargo bench -``` - -### Python - -- [ ] Format/lint -- [ ] Type check -- [ ] Tests - -```bash -ruff check . -ruff format --check . -mypy . -pytest -q -``` - -### Elixir - -- [ ] Format check -- [ ] Lint/static checks -- [ ] Tests - -```bash -mix format --check-formatted -mix credo --strict -mix test -``` - -## 7) Container/Runtime Checks (Podman) - -- [ ] Build container path. -- [ ] Run smoke tests inside containerized flow. -- [ ] Compare host vs container behavior for parity. - -```bash -podman --version -podman compose version || podman-compose --version -``` - -## 8) Benchmark + Regression Check - -- [ ] Capture before/after metrics for touched hot paths. -- [ ] Record command + sample size + output. -- [ ] Fail change if critical path regresses beyond threshold. - -## 9) Adaptive and Perfective Maintenance - -- [ ] Adaptive: compatibility updates (tooling/API/deprecations/config flags). -- [ ] Perfective: clarity, docs parity, developer workflow improvements. -- [ ] Update roadmap/checklist/docs to match actual implementation state. - -## 10) Final QA and Release Hygiene - -- [ ] Re-run full relevant checks one final time. -- [ ] Confirm no unintended file changes. -- [ ] Commit scoped changes with clear message. -- [ ] Push and capture commit SHA. - -```bash -git status --short -git diff --stat -git add -git commit -m "maint: " -git push -``` - -## 11) Maintenance Report Template - -Copy this block per repo run: - -```text -Repo: -Branch: -Start UTC: -End UTC: - -Scope: -- Corrective: -- Adaptive: -- Perfective: - -Checks Run: -- TODO/FIXME scan: -- Panic-attacker: -- Rust/Python/Elixir checks: -- Container checks: -- Benchmark checks: - -Findings: -- High: -- Medium: -- Low: - -Fixes Applied: -1. -2. -3. - -Validation Results: -- Tests: -- Benchmarks: -- Panic-attacker rerun: - -Artifacts: -- assail report: -- benchmark output: -- logs: - -Commit(s): -- SHA: - -Remaining Risks / Follow-ups: -1. -2. -``` - -## 12) Language-Repo Additions (Eclexia-Specific) - -Add these checks for language/compiler repositories with formal ABI/FFI constraints: - -- [x] README structure restored (index/TOC, audience paths, quickstart sanity). -- [x] Wiki split by audience (laypeople/users/developers) and linked from docs index. -- [x] Root-level clutter reduced (archive, analysis, reports relegated to `docs/` subtrees). -- [x] Machine-readable docs synchronized (`STATE.a2ml`, `META.a2ml`, `ECOSYSTEM.a2ml`, contractiles). -- [x] Human-readable docs synchronized (`README`, `QUICK_STATUS`, roadmap, wiki home). -- [x] `Mustfile` invariants present and enforceable in CI. -- [x] `Trustfile` and `Intentfile` present and complete. -- [x] FFI/ABI purity policy enforced (`*.zig` for FFI, `*.idr`/Idris2 for ABI). -- [x] `panic-attack` findings triaged with explicit severity budget for release. -- [x] Point-to-point, end-to-end, and benchmark checks wired in one quality gate. -- [x] CI workflows include quality + security + docs checks with explicit policy. -- [x] Release audit includes corrective/adaptive/perfective + Must/Should/Could. -- [x] Roadmap/status honesty pass completed (dates and current evidence updated). - -## 13) Latest Execution Record (Eclexia, 2026-02-24) - -Repo: `/tmp/eclexia-releaseprep` (branch `release-prep`, base `533ec9e9447f374135cc9e2e81021624ddb3c0ad`) - -### 13.1 Setup/Preflight - -- [x] Captured UTC timestamp and git state. -- [x] Tooling presence verified (`rg`, `git`, `jq`, `cargo`, `rustc`, `just`). -- [x] Runtime/toolchain versions captured. -- [x] Container tooling checked (`podman`, `podman-compose`). - -### 13.2 Corrective Maintenance - -- [x] Fixed `panic-attack` script path handling (`mktemp` output + local fallback binary detection). -- [x] Removed Idris `believe_me` usage from ABI wrappers. -- [x] Fixed conformance crash-noise path by skipping known intentional stack-overflow case in default runner. -- [x] Re-ran affected checks after each fix. - -### 13.3 Code-Health Scans - -- [x] TODO/FIXME/STUB/PARTIAL scan run on active code paths. -- [x] ABI/FFI file inventory run (`*.idr`, `*.zig`). -- [x] Active-code marker count reduced/triaged; remaining items tracked in release audit. - -### 13.4 Security/Panic Pass - -- [x] `panic-attack` run and triaged. -- [x] Critical findings cleared (Idris unsoundness markers removed). -- [x] Current baseline: 0 weak points (Critical 0, High 0, Medium 0, Low 0). -- [x] High/Medium backlog fully eliminated. - -### 13.5 Language Validation - -- [x] Final `just quality-gate` pass completed (docs, fmt, lint, unit, conformance, integration, p2p, e2e, bench). -- [x] Additional targeted reruns completed (`just test-conformance`, `just panic-attack`, `just docs-check`). - -### 13.6 Adaptive/Perfective/Docs - -- [x] README/wiki/docs structure and indexing restored. -- [x] Root tidy/relegation pass executed. -- [x] Roadmap/status honesty update performed with current date and evidence links. -- [x] Release audit created with corrective/adaptive/perfective + Must/Should/Could. -- [x] Full quality-gate rerun passed after hardening updates. -- [x] ABI/FFI extension lane added without breaking stable symbols (`ecl_abi_get_info`, `ecl_tracker_create_ex`, `ecl_tracker_snapshot`). -- [x] CI quality workflow now validates sibling `proven` repo presence and critical binding files. -- [x] Proven roadmap now includes explicit "critical core, not full rewrite" adoption guidance and flowchart. - -### 13.7 Outstanding Items (Explicit) - -- [x] Stable `v1.0.0` technical gate readiness met (quality + panic scan clean). -- [x] Parser/codegen/runtime panic-path hardening completed for scanner-flagged paths. -- [x] Non-eclexia `proven` library checked: already Idris2-first with Zig ABI bridge; no additional integration changes required in this run. -- [ ] Remote push blocked by token scope: GitHub rejected branch updates (`release-prep`, `release-prep-pushable`) due missing `workflow` OAuth scope. - -### 13.8 Artifacts - -- Release audit: `docs/reports/V1-READINESS-AUDIT-2026-02-24.md` -- Panic report: `/tmp/eclexia-panic-attack.KZ1jpC.json` (0 weak points) -- Final quality gate log: `/tmp/eclexia-quality-gate-final2.log` (plus post-change reruns via terminal sessions) -- Local commits: `88fa2af` (`release-prep`), `baa3d1c` (`release-prep-pushable`) + pending new commit from this pass - -## 12) LLM Operator Instructions - -Use this prompt with an LLM agent when you want the process run end-to-end: - -```text -Run the maintenance workflow for this repo using MAINTENANCE-CHECKLIST.md. - -Required behavior: -1. Run ~/Desktop/run-maintenance.sh first and collect the JSON report. -2. Triage report results by severity: fail > warn > pass. -3. Execute corrective maintenance first (fix regressions, panics, broken tests/commands). -4. Run TODO/FIXME/stub scan and address relevant items. -5. Run panic-attacker and fix findings in priority order; rerun to confirm. -6. Run language-specific checks (Rust/Python/Elixir) relevant to this repo. -7. Run benchmark/regression checks for touched hot paths. -8. Enforce permission policy: - - no group/world writable source files unless justified - - executable bit only where intended - - use .maintenance-perms-ignore for justified exceptions -9. Update docs/roadmap/checklist entries to reflect actual state. -10. Produce a final report using the template in MAINTENANCE-CHECKLIST.md. - -Constraints: -- Do not revert unrelated existing dirty changes. -- Stage and commit only scoped intended files. -- If blocked, state exactly what is blocked and why. -``` - -## 13) AI Execution Integrity Contract (Mandatory) - -Use this when delegating maintenance to any AI (Gemini/Claude/ChatGPT/etc.). - -```text -You must execute this maintenance run with strict integrity. - -Non-negotiable rules: -1. Do not claim any step is complete unless you actually ran it. -2. Do not silently skip checklist items. If skipped, state SKIPPED + exact reason. -3. For every check, provide evidence: - - command executed - - pass/fail/warn - - key output summary - - artifact/log path -4. If a command fails, stop claiming success and report the failure clearly. -5. After each fix, re-run the relevant failing check and report the rerun result. -6. Do not hide uncertainty. If unsure, say so and run additional verification. -7. Never mark “all done” while any fail/warn remains unexplained. -8. Do not make destructive or broad permission changes by default. - - permission changes must be audit-first - - use --fix-perms only with explicit intent -9. Final output must include: - - checklist coverage matrix (each item: PASS/FAIL/WARN/SKIPPED) - - unresolved risks - - exact next actions -10. Prioritize user safety and reputation: no “looks fine” claims without evidence. -``` - -Recommended enforcement line for AI prompts: - -```text -Fail closed: if evidence is missing for any checklist item, treat that item as NOT DONE. -``` - -## 14) Fleet Enrollment Automation (Gitbot + Hypatia) - -For centralized coverage across existing and new repos: - -```bash -cd "$REPOS_DIR/gitbot-fleet" -just enroll-repos -``` - -Optional directive write-back to repos that already have `.machine_readable/`: - -```bash -cd "$REPOS_DIR/gitbot-fleet" -just enroll-repos "$REPOS_DIR" true -``` - -Release hard gate from fleet: - -```bash -cd "$REPOS_DIR/gitbot-fleet" -just maintenance-hard-pass /absolute/path/to/repo -``` diff --git a/a2ml/editors/vscode/docs/governance/README.adoc b/a2ml/editors/vscode/docs/governance/README.adoc deleted file mode 100644 index 114ee94b2..000000000 --- a/a2ml/editors/vscode/docs/governance/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Governance Pillar (TSDM) diff --git a/a2ml/editors/vscode/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.a2ml b/a2ml/editors/vscode/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.a2ml deleted file mode 100644 index 093573a07..000000000 --- a/a2ml/editors/vscode/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.a2ml +++ /dev/null @@ -1,53 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# General software development approach (machine-readable) - -[metadata] -version = "1.0.0" -last-updated = "2026-02-24" -scope = "cross-repo" -source-human = "docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc" - -[execution] -order = ["axis-1", "axis-2", "axis-3"] - -[axis-1] -name = "scope" -priority = "must > intend > like" -inputs = [ - "README", - "roadmap", - "status-docs", - "ci-and-security-docs", -] -marker-scan = ["TODO", "FIXME", "XXX", "HACK", "STUB", "PARTIAL"] -idris-unsound-scan = ["believe_me", "assert_total"] -output = "scoped-work-assembly" - -[axis-2] -name = "maintenance" -priority = "corrective > adaptive > perfective" -corrective = "defect/regression/safety/security fixes" -adaptive = "scope reconciliation, stale-reference removal, obsolete-work culling" -perfective = "quality improvements derived from axis-1 honest state" - -[axis-3] -name = "audit" -priority = "systems > compliance > effects" -systems = "required systems present and operating" -compliance = "exceptions explicit, bounded, and drift-resistant" -effects = "benchmark/operational impact evidence captured and reviewed" -compliance-tooling = "panic-attack" -effects-tooling = "ecological checking with sustainabot guidance" - -[cleanup-finish-off] -root-cleanup = true -stale-work-cull = true -docs-sync-human-machine = true -compliance-audit = true -effects-audit = true -release-summary = ["must", "should", "could"] -next-actions = ["corrective", "adaptive", "perfective"] - -[collaboration] -maintainer-dialogue-required = true -dialogue-topics = ["what changed", "why", "remaining risks"] diff --git a/a2ml/editors/vscode/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.adoc b/a2ml/editors/vscode/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.adoc deleted file mode 100644 index e8805c684..000000000 --- a/a2ml/editors/vscode/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.adoc +++ /dev/null @@ -1,63 +0,0 @@ -= Software Development Approach (General) -:toc: left -:toclevels: 2 - -This is the general operating policy for software development across repositories. - -== Core Sequence - -Always run work in this order: - -1. Scope first (Axis 1) -2. Maintenance second (Axis 2) -3. Audit third (Axis 3) - -== Axis Definitions - -=== Axis 1: Scope - -Priority order: `must > intend > like` - -Axis 1 output is a scoped assembly of work based on: - -* README, roadmap, status, CI/security docs -* marker scans (`TODO`, `FIXME`, `XXX`, `HACK`, `STUB`, `PARTIAL`) -* Idris unsoundness scan when Idris exists (`believe_me`, `assert_total`) -* docs honesty check (intent vs actual implementation) - -=== Axis 2: Maintenance - -Priority order: `corrective > adaptive > perfective` - -* Corrective: fix defects, regressions, breakage, security/safety failures -* Adaptive: reconcile scope changes, remove stale references, cull obsolete work -* Perfective: improve quality/clarity/performance only from the honest Axis 1 state - -=== Axis 3: Audit - -Priority order: `systems > compliance > effects` - -* Systems: required mechanisms exist and are operating -* Compliance: seams/compromises/exceptions are explicit, bounded, and do not drift -* Effects: benchmark and operational impact evidence is captured and reviewed - -Compliance scanner baseline: `panic-attack` + -Effects/ecological baseline: sustainabot-guided ecological checking - -== Generic Cleanup And Finish-Off - -At cycle end: - -* reduce root clutter to required control/entry files -* archive/remove stale or superseded work -* synchronize human and machine docs -* run compliance and effects audits with evidence capture -* produce Must/Should/Could summary and immediate next-actions list - -== Collaboration Rule - -Effects review must include explicit maintainer dialogue: - -* what changed -* why it changed -* what risks remain diff --git a/a2ml/editors/vscode/docs/governance/TSDM.a2ml b/a2ml/editors/vscode/docs/governance/TSDM.a2ml deleted file mode 100644 index f27036cc7..000000000 --- a/a2ml/editors/vscode/docs/governance/TSDM.a2ml +++ /dev/null @@ -1,22 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [TSDM_SPEC] -id: "tsdm-standard" -version: "1.0.0" - -axes: - axis_1: - name: "Planning" - levels: ["must", "should", "could"] - axis_2: - name: "Maintenance" - levels: ["corrective", "adaptive", "perfective"] - axis_3: - name: "Audit" - levels: ["systems", "compliance", "effects"] - -invariants: - - "Every task MUST map to at least one TSDM coordinate" - - "Axis 1 priority governs resource allocation" - - "Axis 2 type governs commit categorisation" - - "Axis 3 focus governs audit depth" diff --git a/a2ml/editors/vscode/docs/governance/TSDM.adoc b/a2ml/editors/vscode/docs/governance/TSDM.adoc deleted file mode 100644 index cbd582c0e..000000000 --- a/a2ml/editors/vscode/docs/governance/TSDM.adoc +++ /dev/null @@ -1,26 +0,0 @@ -= Triaxial Software Development Methodology (TSDM) -:toc: preamble -:icons: font - -TSDM is a three-dimensional governance framework designed for high-assurance, long-lived software systems. It ensures that every project decision is mapped across three critical axes: Planning, Maintenance, and Audit. - -== The Three Axes - -=== Axis 1: Planning (Scope Priority) -* **Must:** Non-negotiable core invariants and safety requirements. -* **Should:** Essential features and planned improvements. -* **Could:** Desired enhancements and future-proofing. - -=== Axis 2: Maintenance (Execution Type) -* **Corrective:** Fixing bugs, vulnerabilities, and failures. -* **Adaptive:** Responding to environment or dependency changes. -* **Perfective:** Improving performance, refactoring, and documentation. - -=== Axis 3: Audit (Verification Focus) -* **Systems:** Integrity of tools, infrastructure, and automation. -* **Compliance:** Adherence to standards, licenses, and verified seams. -* **Effects:** Real-world impact, ecological footprint, and user feedback. - -== Integration - -TSDM is the operational core of the Rhodium Standard. Every task in the `Justfile` and every state change in `STATE.a2ml` should be justifiable within this framework. diff --git a/a2ml/editors/vscode/docs/governance/audit/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/governance/audit/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 472248699..000000000 --- a/a2ml/editors/vscode/docs/governance/audit/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-axis-audit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM Audit track. diff --git a/a2ml/editors/vscode/docs/governance/audit/README.adoc b/a2ml/editors/vscode/docs/governance/audit/README.adoc deleted file mode 100644 index fac374040..000000000 --- a/a2ml/editors/vscode/docs/governance/audit/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Audit Axis diff --git a/a2ml/editors/vscode/docs/governance/audit/compliance/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/governance/audit/compliance/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index b13ec695f..000000000 --- a/a2ml/editors/vscode/docs/governance/audit/compliance/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-compliance" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM compliance unit within the Audit axis. diff --git a/a2ml/editors/vscode/docs/governance/audit/compliance/README.adoc b/a2ml/editors/vscode/docs/governance/audit/compliance/README.adoc deleted file mode 100644 index 876954fd9..000000000 --- a/a2ml/editors/vscode/docs/governance/audit/compliance/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Compliance Unit diff --git a/a2ml/editors/vscode/docs/governance/audit/effects/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/governance/audit/effects/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 0bccae0d0..000000000 --- a/a2ml/editors/vscode/docs/governance/audit/effects/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-effects" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM effects unit within the Audit axis. diff --git a/a2ml/editors/vscode/docs/governance/audit/effects/README.adoc b/a2ml/editors/vscode/docs/governance/audit/effects/README.adoc deleted file mode 100644 index 363479943..000000000 --- a/a2ml/editors/vscode/docs/governance/audit/effects/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Effects Unit diff --git a/a2ml/editors/vscode/docs/governance/audit/systems/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/governance/audit/systems/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index f97bc9ccb..000000000 --- a/a2ml/editors/vscode/docs/governance/audit/systems/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-systems" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM systems unit within the Audit axis. diff --git a/a2ml/editors/vscode/docs/governance/audit/systems/README.adoc b/a2ml/editors/vscode/docs/governance/audit/systems/README.adoc deleted file mode 100644 index 8d179b4aa..000000000 --- a/a2ml/editors/vscode/docs/governance/audit/systems/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Systems Unit diff --git a/a2ml/editors/vscode/docs/governance/maintenance/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/governance/maintenance/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 8e0dff5ec..000000000 --- a/a2ml/editors/vscode/docs/governance/maintenance/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-axis-maintenance" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM Maintenance track. diff --git a/a2ml/editors/vscode/docs/governance/maintenance/README.adoc b/a2ml/editors/vscode/docs/governance/maintenance/README.adoc deleted file mode 100644 index 0ed2f1b50..000000000 --- a/a2ml/editors/vscode/docs/governance/maintenance/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Maintenance Axis diff --git a/a2ml/editors/vscode/docs/governance/maintenance/adaptive/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/governance/maintenance/adaptive/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 63d1a9992..000000000 --- a/a2ml/editors/vscode/docs/governance/maintenance/adaptive/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-adaptive" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM adaptive unit within the Maintenance axis. diff --git a/a2ml/editors/vscode/docs/governance/maintenance/adaptive/README.adoc b/a2ml/editors/vscode/docs/governance/maintenance/adaptive/README.adoc deleted file mode 100644 index 7b60992af..000000000 --- a/a2ml/editors/vscode/docs/governance/maintenance/adaptive/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Adaptive Unit diff --git a/a2ml/editors/vscode/docs/governance/maintenance/corrective/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/governance/maintenance/corrective/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 05cb89da1..000000000 --- a/a2ml/editors/vscode/docs/governance/maintenance/corrective/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-corrective" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM corrective unit within the Maintenance axis. diff --git a/a2ml/editors/vscode/docs/governance/maintenance/corrective/README.adoc b/a2ml/editors/vscode/docs/governance/maintenance/corrective/README.adoc deleted file mode 100644 index ed904a81f..000000000 --- a/a2ml/editors/vscode/docs/governance/maintenance/corrective/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Corrective Unit diff --git a/a2ml/editors/vscode/docs/governance/maintenance/perfective/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/governance/maintenance/perfective/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 832762feb..000000000 --- a/a2ml/editors/vscode/docs/governance/maintenance/perfective/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-perfective" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM perfective unit within the Maintenance axis. diff --git a/a2ml/editors/vscode/docs/governance/maintenance/perfective/README.adoc b/a2ml/editors/vscode/docs/governance/maintenance/perfective/README.adoc deleted file mode 100644 index 8759d74d9..000000000 --- a/a2ml/editors/vscode/docs/governance/maintenance/perfective/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Perfective Unit diff --git a/a2ml/editors/vscode/docs/governance/planning/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/governance/planning/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 80339e77c..000000000 --- a/a2ml/editors/vscode/docs/governance/planning/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-axis-planning" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM Planning track. diff --git a/a2ml/editors/vscode/docs/governance/planning/README.adoc b/a2ml/editors/vscode/docs/governance/planning/README.adoc deleted file mode 100644 index 62aa375f2..000000000 --- a/a2ml/editors/vscode/docs/governance/planning/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Planning Axis diff --git a/a2ml/editors/vscode/docs/governance/planning/could/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/governance/planning/could/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index fc17a27d0..000000000 --- a/a2ml/editors/vscode/docs/governance/planning/could/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-could" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM could unit within the Planning axis. diff --git a/a2ml/editors/vscode/docs/governance/planning/could/README.adoc b/a2ml/editors/vscode/docs/governance/planning/could/README.adoc deleted file mode 100644 index ad5a6b82f..000000000 --- a/a2ml/editors/vscode/docs/governance/planning/could/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Could Unit diff --git a/a2ml/editors/vscode/docs/governance/planning/must/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/governance/planning/must/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 0987daeed..000000000 --- a/a2ml/editors/vscode/docs/governance/planning/must/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-must" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM must unit within the Planning axis. diff --git a/a2ml/editors/vscode/docs/governance/planning/must/README.adoc b/a2ml/editors/vscode/docs/governance/planning/must/README.adoc deleted file mode 100644 index 47eb46dc4..000000000 --- a/a2ml/editors/vscode/docs/governance/planning/must/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Must Unit diff --git a/a2ml/editors/vscode/docs/governance/planning/should/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/governance/planning/should/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index f492289a3..000000000 --- a/a2ml/editors/vscode/docs/governance/planning/should/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-should" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM should unit within the Planning axis. diff --git a/a2ml/editors/vscode/docs/governance/planning/should/README.adoc b/a2ml/editors/vscode/docs/governance/planning/should/README.adoc deleted file mode 100644 index 605489c8c..000000000 --- a/a2ml/editors/vscode/docs/governance/planning/should/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Should Unit diff --git a/a2ml/editors/vscode/docs/legal/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/legal/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index e54779833..000000000 --- a/a2ml/editors/vscode/docs/legal/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,16 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "legal-track" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-unit for legal and licensing documentation. Contains framework - exhibits and archival license texts. - -canonical_locations: - exhibits: "exhibits/" - texts: "texts/" diff --git a/a2ml/editors/vscode/docs/legal/EXHIBIT-A-ETHICAL-USE.txt b/a2ml/editors/vscode/docs/legal/EXHIBIT-A-ETHICAL-USE.txt deleted file mode 100644 index 0b20fca23..000000000 --- a/a2ml/editors/vscode/docs/legal/EXHIBIT-A-ETHICAL-USE.txt +++ /dev/null @@ -1,68 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 - -================================================================================ -EXHIBIT A — ETHICAL USE GUIDELINES -Palimpsest-MPL License Version 1.0 -================================================================================ - -1. PURPOSE - - These guidelines define ethical use expectations for software distributed - under the Palimpsest-MPL License. They are not legally binding restrictions - but represent the community's shared values and expectations. - -2. PRINCIPLES - - 2.1. Respect for Emotional Lineage - Users and distributors should acknowledge and preserve the cultural, - narrative, and symbolic meaning embedded in Covered Software. This - includes protest traditions, cultural heritage, trauma narratives, - and community stories where documented. - - 2.2. Transparency in Automated Processing - When Covered Software is processed by Non-Interpretive Systems - (AI training, content aggregation, automated summarization), such - use should be documented publicly and not misrepresent the - provenance of outputs. - - 2.3. Good Faith Attribution - Contributors should be credited accurately. Derivative works should - maintain the attribution chain and not obscure the origins of - contributions. - - 2.4. Community Benefit - Commercial use of Covered Software should contribute to the broader - community through bug fixes, documentation, or other improvements - where feasible. - -3. SPECIFIC GUIDANCE - - 3.1. AI and Machine Learning - - Training on Covered Software requires disclosure - - Generated outputs must not claim Emotional Lineage of the original - - Model cards should reference source materials - - 3.2. Content Aggregation - - Aggregators must link back to original sources - - Context must not be stripped in ways that distort meaning - - Cultural and narrative context should be preserved - - 3.3. Commercial Products - - Products built on Covered Software should acknowledge it - - Pricing should not exploit communities that created the work - - Support and improvements should flow back to the community - -4. ENFORCEMENT - - These guidelines are enforced through community norms, not legal action. - Disputes should be raised with the Palimpsest Stewardship Council for - non-binding guidance. - -5. AMENDMENTS - - These guidelines may be updated by the Palimpsest Stewardship Council. - Updates apply to new distributions, not retroactively. - -================================================================================ -END OF EXHIBIT A -================================================================================ diff --git a/a2ml/editors/vscode/docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt b/a2ml/editors/vscode/docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt deleted file mode 100644 index 7fba8c94b..000000000 --- a/a2ml/editors/vscode/docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt +++ /dev/null @@ -1,102 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 - -================================================================================ -EXHIBIT B — QUANTUM-SAFE PROVENANCE SPECIFICATION -Palimpsest-MPL License Version 1.0 -================================================================================ - -1. PURPOSE - - This exhibit specifies the cryptographic algorithms and procedures for - quantum-safe provenance in software distributed under the Palimpsest-MPL - License. - -2. APPROVED ALGORITHMS - - The following post-quantum cryptographic algorithms are approved for - signing Provenance Metadata: - - 2.1. Digital Signatures - - ML-DSA (FIPS 204, formerly CRYSTALS-Dilithium) - Recommended: ML-DSA-65 (security level 3) or ML-DSA-87 (level 5) - - SLH-DSA (FIPS 205, formerly SPHINCS+) - Recommended: SLH-DSA-SHA2-256f or SLH-DSA-SHAKE-256f - - FALCON (NIST Round 3 finalist) - Recommended: FALCON-1024 - - 2.2. Key Encapsulation (for encrypted provenance) - - ML-KEM (FIPS 203, formerly CRYSTALS-Kyber) - Recommended: ML-KEM-1024 - - 2.3. Hash Functions - - SHA-3 (FIPS 202) - Recommended: SHA3-256 or SHA3-512 - - SHAKE (FIPS 202 extendable output) - Recommended: SHAKE-256 - - 2.4. Key Derivation - - Argon2id (RFC 9106) - Parameters: t=3, m=65536, p=4 (minimum) - -3. PROVENANCE METADATA FORMAT - - Provenance Metadata should include: - - 3.1. Required Fields - - author-identity: Contributor name and contact - - timestamp: ISO 8601 with timezone - - content-hash: SHA3-256 hash of the contribution - - signature: Quantum-safe signature over all fields - - 3.2. Optional Fields - - parent-hash: Hash of the previous contribution in the chain - - emotional-lineage: Narrative context markers - - platform: Build/development environment - - witnesses: Third-party attestation signatures - -4. SIGNATURE PROCEDURE - - 4.1. Signing - a. Compute SHA3-256 hash of the contribution content - b. Construct metadata record with all required fields - c. Serialize metadata in canonical JSON form - d. Sign with ML-DSA-65 (or approved alternative) - e. Attach signature to distribution - - 4.2. Verification - a. Extract metadata and signature from distribution - b. Verify signature against contributor's public key - c. Verify content hash matches actual content - d. Verify timestamp is within acceptable range - e. Verify parent-hash chain if present - -5. KEY MANAGEMENT - - 5.1. Contributors should publish quantum-safe public keys via: - - OpenPGP keyservers (with PQ algorithm support) - - Repository .well-known/keys/ directory - - Contributor's personal website - - 5.2. Key rotation should occur: - - At least annually - - When algorithm recommendations change - - When key compromise is suspected - -6. TRANSITION PERIOD - - During the transition to quantum-safe cryptography: - - 6.1. Classical signatures (Ed25519, RSA) remain valid - 6.2. Hybrid signatures (classical + PQ) are encouraged - 6.3. Pure PQ signatures are preferred for new contributions - 6.4. Classical-only signatures will be deprecated in a future version - -7. COMPLIANCE - - Quantum-safe provenance is OPTIONAL under PMPL-1.0. When present, - it must follow this specification. Stripping quantum-safe signatures - from distributions is prohibited per Section 4.1 of the License. - -================================================================================ -END OF EXHIBIT B -================================================================================ diff --git a/a2ml/editors/vscode/docs/practice/.gitkeep b/a2ml/editors/vscode/docs/practice/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/a2ml/editors/vscode/docs/practice/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/practice/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 257f3a4f4..000000000 --- a/a2ml/editors/vscode/docs/practice/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "practice-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-unit of the docs pillar focusing on practice. diff --git a/a2ml/editors/vscode/docs/practice/AI-CONVENTIONS.adoc b/a2ml/editors/vscode/docs/practice/AI-CONVENTIONS.adoc deleted file mode 100644 index 3d9aa304f..000000000 --- a/a2ml/editors/vscode/docs/practice/AI-CONVENTIONS.adoc +++ /dev/null @@ -1,85 +0,0 @@ -= AI Conventions - - - -# AI Conventions (Authoritative Source) - -All AI coding agents working in this repository MUST follow these rules. -Per-tool config files (.cursorrules, .clinerules, etc.) reference this document. - -## Session Startup - -1. Read `0-AI-MANIFEST.a2ml` FIRST (mandatory gatekeeper). -2. Read `.machine_readable/STATE.a2ml` for current status and blockers. -3. Read `.machine_readable/anchors/ANCHOR.a2ml` for canonical authority boundaries. -4. Read `.machine_readable/policies/MAINTENANCE-AXES.a2ml` for maintenance/audit sequencing. -5. Read `.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml` for baseline controls. -6. Read `.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml` for execution order. -7. Read `.machine_readable/AGENTIC.a2ml` for agent constraints. - -## License - -- All original code: **MPL-2.0** -- Fallback (platform-required only): MPL-2.0 with comment explaining why. -- NEVER use AGPL-3.0. -- Preserve third-party licenses verbatim. -- Every source file needs `# SPDX-License-Identifier: MPL-2.0`. - -## Author Attribution - -- Name: **{{AUTHOR}}** -- Email: **{{AUTHOR_EMAIL}}** -- Copyright: `Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>` - -## State Files - -State/metadata files, anchors, and policies (.a2ml) belong in `.machine_readable/` ONLY. -NEVER create STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml, AGENTIC.a2ml, -NEUROSYM.a2ml, PLAYBOOK.a2ml, ANCHOR.a2ml, MAINTENANCE-AXES.a2ml, -MAINTENANCE-CHECKLIST.a2ml, or SOFTWARE-DEVELOPMENT-APPROACH.a2ml in the repository root. - -## Banned Patterns - -| Language | Banned | Reason | -|----------|-------------------------------------|---------------------------| -| Idris2 | `believe_me`, `assert_total` | Unsound escape hatches | -| Haskell | `unsafeCoerce`, `unsafePerformIO` | Breaks type safety | -| OCaml | `Obj.magic`, `Obj.repr`, `Obj.obj` | Unsafe casting | -| Coq | `Admitted` | Unproven assumption | -| Lean | `sorry` | Unproven assumption | -| Rust | `transmute` (unless FFI + SAFETY:) | Unsound reinterpret | - -## Banned Languages - -| Banned | Use Instead | -|---------------------|--------------------| -| TypeScript | ReScript | -| Node.js / npm / bun | Deno | -| Go | Rust | -| Python | Julia / Rust | - -## Container Standard - -- Runtime: **Podman** (never Docker). -- File: **Containerfile** (never Dockerfile). -- Base images: `cgr.dev/chainguard/wolfi-base:latest` or `cgr.dev/chainguard/static:latest`. - -## ABI/FFI Standard - -- ABI definitions: **Idris2** with dependent types (`src/abi/`). -- FFI implementation: **Zig** with C ABI compatibility (`ffi/zig/`). -- Generated C headers: `generated/abi/`. - -## Build System - -Use `just` (Justfile) for all build, test, lint, and format tasks. - -## References - -- `0-AI-MANIFEST.a2ml` -- universal AI entry point -- `.machine_readable/AGENTIC.a2ml` -- agent permissions and constraints -- `.machine_readable/STATE.a2ml` -- current project state -- `.machine_readable/anchors/ANCHOR.a2ml` -- canonical authority and policy boundary -- `.machine_readable/policies/MAINTENANCE-AXES.a2ml` -- canonical axis sequencing and audit requirements -- `.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml` -- baseline maintenance checklist policy -- `.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml` -- axis execution approach policy diff --git a/a2ml/editors/vscode/docs/practice/README.adoc b/a2ml/editors/vscode/docs/practice/README.adoc deleted file mode 100644 index ae3326b9f..000000000 --- a/a2ml/editors/vscode/docs/practice/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= practice Unit diff --git a/a2ml/editors/vscode/docs/practice/STATE-VISUALIZER-GUIDE.adoc b/a2ml/editors/vscode/docs/practice/STATE-VISUALIZER-GUIDE.adoc deleted file mode 100644 index b355b468b..000000000 --- a/a2ml/editors/vscode/docs/practice/STATE-VISUALIZER-GUIDE.adoc +++ /dev/null @@ -1,155 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= TOPOLOGY.md — Generation Guide -{{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -:toc: -:sectnums: - -== What Is TOPOLOGY.md? - -A single-file visual map of any project's architecture and completion status. -It lives in the repo root and contains: - -1. **ASCII architecture diagram** — the full system as it will look when complete -2. **Completion dashboard** — every component with a progress bar and status note -3. **Dependency graph** — what blocks what (the critical path) -4. **Update protocol** — how to keep it current - -It is designed to be readable by humans, AI agents, and rendered cleanly on any -forge (GitHub, GitLab, Codeberg, Bitbucket). - -== Why - -- Gives any contributor (human or AI) an instant picture of the whole project -- Replaces "read 20 files to understand the architecture" with one glance -- The completion dashboard makes project health visible without running anything -- Works offline, no tooling required, just a text file - -== How To Generate One - -=== Option 1: Ask an AI agent - -Use this prompt (works with Claude, Gemini, ChatGPT, or any LLM with repo access): - -[source,text] ----- -Read the entire repository and produce a TOPOLOGY.md file for the repo root. - -The file must contain exactly three sections: - -1. **System Architecture** — An ASCII box diagram showing the complete system - as it will look when finished. Use Unicode box-drawing characters - (┌ ┐ └ ┘ │ ─ ├ ┤ ┬ ┴ ┼), arrows (▲ ▼ ◄ ► → ←), and double lines - (═ ║) for boundaries. Show: - - All external services (DNS, CDN, gateways) at the top - - Application components in the middle - - Data layer (databases, caches, queues) below - - Repo infrastructure (CI, contractiles, SCM files) at the bottom - - Every box labelled, every connection labelled or obvious from context - - The diagram should be BESPOKE to this project, not generic - -2. **Completion Dashboard** — A table in a code block listing every component - from the diagram. For each component show: - - Name (left-aligned, padded to 35 chars) - - Progress bar: 10 characters using █ (done) and ░ (remaining) - - Percentage (0% to 100% in 10% increments) - - A short note explaining the status - Group components by layer/concern. End with an OVERALL summary line. - -3. **Key Dependencies** — An ASCII arrow diagram showing the critical path. - What must finish before what else can start. - -Add a header comment with SPDX-License-Identifier and Last updated date. -End with an "Update Protocol" section explaining how to maintain the file. - -Use the template at TOPOLOGY.md in rsr-template-repo as a structural reference, -but make the content completely specific to THIS project. ----- - -=== Option 2: Copy the template and fill it in - -[source,bash] ----- -cp /path/to/rsr-template-repo/TOPOLOGY.md ./TOPOLOGY.md -# Then edit: replace placeholders, draw the real architecture, fill the dashboard ----- - -=== Option 3: Batch generation across all repos - -[source,bash] ----- -# From the repos root, generate for every repo that lacks one -for repo in /path/to/your/repos/*/; do - if [ ! -f "$repo/TOPOLOGY.md" ]; then - echo "NEEDS TOPOLOGY: $(basename $repo)" - fi -done ----- - -Then feed each repo to an AI agent with the prompt above. Claude Code can do -this with a session per repo, or you can batch it. - -== Conventions - -=== Box-drawing characters - -Use Unicode, not ASCII art. This renders correctly everywhere. - -[cols="1,1", options="header"] -|=== -| Character | Use -| `┌ ┐ └ ┘` | Box corners -| `│ ─` | Vertical / horizontal lines -| `├ ┤ ┬ ┴ ┼` | T-junctions and crosses -| `═ ║` | Double lines for major boundaries -| `▲ ▼ ◄ ►` | Directional arrows -| `→ ← ↑ ↓` | Thin arrows (alternative) -|=== - -=== Progress bars - -Always 10 characters wide. Use full blocks only (no half-blocks). - -[source,text] ----- -░░░░░░░░░░ 0% Not started -█░░░░░░░░░ 10% Stub/skeleton exists -██░░░░░░░░ 20% Early work -███░░░░░░░ 30% Foundation laid -████░░░░░░ 40% Core logic started -█████░░░░░ 50% Half done -██████░░░░ 60% Most logic complete -███████░░░ 70% Working but rough -████████░░ 80% Needs polish/docs -█████████░ 90% Nearly done -██████████ 100% Complete and tested ----- - -=== Component naming - -- Use the actual names from the codebase (file names, service names, tool names) -- Group by architectural layer, not alphabetically -- Include repo infrastructure (CI, contractiles, SCM files) as a layer - -=== When to update - -- After completing a component → change bar + percentage -- After adding a component → add row -- After architectural change → redraw diagram -- After major milestone → update overall percentage -- Always update the `Last updated` date - -== Integration With Other RSR Files - -TOPOLOGY.md complements but does not replace: - -- **STATE.a2ml** — machine-readable state (tasks, blockers, next actions) -- **ECOSYSTEM.a2ml** — position in the wider project ecosystem -- **META.a2ml** — architecture decisions and design rationale -- **0-AI-MANIFEST.a2ml** — AI agent entry point and invariants - -TOPOLOGY.md is the _visual summary_ for humans; the a2ml files are the -_structured data_ for tooling. Both should agree. - -== Copyright - -Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> diff --git a/a2ml/editors/vscode/docs/reports/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/reports/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 5eb265dce..000000000 --- a/a2ml/editors/vscode/docs/reports/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,19 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "reports-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Documentation unit for all automated and manual audit reports. Classified - by domain. - -canonical_locations: - maintenance: "maintenance/" - security: "security/" - performance: "performance/" - compliance: "compliance/" - quality: "quality/" diff --git a/a2ml/editors/vscode/docs/reports/README.adoc b/a2ml/editors/vscode/docs/reports/README.adoc deleted file mode 100644 index 0c06c31da..000000000 --- a/a2ml/editors/vscode/docs/reports/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= reports Unit diff --git a/a2ml/editors/vscode/docs/reports/compliance/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/reports/compliance/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 6b3975282..000000000 --- a/a2ml/editors/vscode/docs/reports/compliance/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "report-unit-compliance" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Specialised repository for compliance findings and evidence. diff --git a/a2ml/editors/vscode/docs/reports/compliance/README.adoc b/a2ml/editors/vscode/docs/reports/compliance/README.adoc deleted file mode 100644 index c38c66a46..000000000 --- a/a2ml/editors/vscode/docs/reports/compliance/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Compliance Reports diff --git a/a2ml/editors/vscode/docs/reports/maintenance/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/reports/maintenance/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 43eefe29a..000000000 --- a/a2ml/editors/vscode/docs/reports/maintenance/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "report-unit-maintenance" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Maintenance reports. diff --git a/a2ml/editors/vscode/docs/reports/maintenance/README.adoc b/a2ml/editors/vscode/docs/reports/maintenance/README.adoc deleted file mode 100644 index f13abf79e..000000000 --- a/a2ml/editors/vscode/docs/reports/maintenance/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Maintenance Reports diff --git a/a2ml/editors/vscode/docs/reports/performance/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/reports/performance/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 40c09540c..000000000 --- a/a2ml/editors/vscode/docs/reports/performance/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "report-unit-performance" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Specialised repository for performance findings and evidence. diff --git a/a2ml/editors/vscode/docs/reports/performance/README.adoc b/a2ml/editors/vscode/docs/reports/performance/README.adoc deleted file mode 100644 index 037767d3c..000000000 --- a/a2ml/editors/vscode/docs/reports/performance/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Performance Reports diff --git a/a2ml/editors/vscode/docs/reports/quality/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/reports/quality/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index d460edcfa..000000000 --- a/a2ml/editors/vscode/docs/reports/quality/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "report-unit-quality" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Specialised repository for quality findings and evidence. diff --git a/a2ml/editors/vscode/docs/reports/quality/README.adoc b/a2ml/editors/vscode/docs/reports/quality/README.adoc deleted file mode 100644 index d1be84848..000000000 --- a/a2ml/editors/vscode/docs/reports/quality/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Quality Reports diff --git a/a2ml/editors/vscode/docs/reports/security/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/reports/security/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 696ab590c..000000000 --- a/a2ml/editors/vscode/docs/reports/security/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "report-unit-security" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Specialised repository for security findings and evidence. diff --git a/a2ml/editors/vscode/docs/reports/security/README.adoc b/a2ml/editors/vscode/docs/reports/security/README.adoc deleted file mode 100644 index 9a78a8bc2..000000000 --- a/a2ml/editors/vscode/docs/reports/security/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Security Reports diff --git a/a2ml/editors/vscode/docs/standards/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/standards/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index c147c6f8b..000000000 --- a/a2ml/editors/vscode/docs/standards/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "standards-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Standards unit for high-rigor verification. diff --git a/a2ml/editors/vscode/docs/standards/README.adoc b/a2ml/editors/vscode/docs/standards/README.adoc deleted file mode 100644 index 34a94c4fc..000000000 --- a/a2ml/editors/vscode/docs/standards/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Standards Unit diff --git a/a2ml/editors/vscode/docs/templates/contractiles/README.adoc b/a2ml/editors/vscode/docs/templates/contractiles/README.adoc deleted file mode 100644 index 4eeac6b80..000000000 --- a/a2ml/editors/vscode/docs/templates/contractiles/README.adoc +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Contractile Templates - -Blank templates for projects that want to replace the hyperpolymath -defaults with their own contractile definitions. - -Copy the relevant file to `.machine_readable/contractiles//` -and fill in your project-specific checks. - -The working examples in `.machine_readable/contractiles/` show the -full hyperpolymath setup — use those as reference. diff --git a/a2ml/editors/vscode/docs/templates/contractiles/dust/Dustfile.a2ml b/a2ml/editors/vscode/docs/templates/contractiles/dust/Dustfile.a2ml deleted file mode 100644 index 903af2c3f..000000000 --- a/a2ml/editors/vscode/docs/templates/contractiles/dust/Dustfile.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Dustfile.a2ml — BLANK TEMPLATE -# Replace this with your project's contractile. -# See .machine_readable/contractiles/ for a working example. -# -# Copy this file to .machine_readable/contractiles/dust/Dustfile.a2ml -# and fill in your project-specific checks. - -@abstract: -[Your project's DUST contract goes here] -@end diff --git a/a2ml/editors/vscode/docs/templates/contractiles/intend/Intentfile.a2ml b/a2ml/editors/vscode/docs/templates/contractiles/intend/Intentfile.a2ml deleted file mode 100644 index c54c79a87..000000000 --- a/a2ml/editors/vscode/docs/templates/contractiles/intend/Intentfile.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Intentfile.a2ml — BLANK TEMPLATE -# Replace this with your project's contractile. -# See .machine_readable/contractiles/ for a working example. -# -# Copy this file to .machine_readable/contractiles/intend/Intentfile.a2ml -# and fill in your project-specific checks. - -@abstract: -[Your project's INTEND contract goes here] -@end diff --git a/a2ml/editors/vscode/docs/templates/contractiles/must/Mustfile.a2ml b/a2ml/editors/vscode/docs/templates/contractiles/must/Mustfile.a2ml deleted file mode 100644 index d08796f92..000000000 --- a/a2ml/editors/vscode/docs/templates/contractiles/must/Mustfile.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Mustfile.a2ml — BLANK TEMPLATE -# Replace this with your project's contractile. -# See .machine_readable/contractiles/ for a working example. -# -# Copy this file to .machine_readable/contractiles/must/Mustfile.a2ml -# and fill in your project-specific checks. - -@abstract: -[Your project's MUST contract goes here] -@end diff --git a/a2ml/editors/vscode/docs/templates/contractiles/trust/Trustfile.a2ml b/a2ml/editors/vscode/docs/templates/contractiles/trust/Trustfile.a2ml deleted file mode 100644 index 842c6b06a..000000000 --- a/a2ml/editors/vscode/docs/templates/contractiles/trust/Trustfile.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Trustfile.a2ml — BLANK TEMPLATE -# Replace this with your project's contractile. -# See .machine_readable/contractiles/ for a working example. -# -# Copy this file to .machine_readable/contractiles/trust/Trustfile.a2ml -# and fill in your project-specific checks. - -@abstract: -[Your project's TRUST contract goes here] -@end diff --git a/a2ml/editors/vscode/docs/theory/.gitkeep b/a2ml/editors/vscode/docs/theory/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/a2ml/editors/vscode/docs/theory/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/theory/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 93df18706..000000000 --- a/a2ml/editors/vscode/docs/theory/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,23 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "theory-track" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Documentation track for domain-specific theory and research foundations. - Categorised by discipline. - -canonical_locations: - ontologies: "ontologies/" - mathematics: "mathematics/" - computing: "computing/" - socio_technical: "socio-technical/" - formalisms: "formalisms/" - other: "other/" - -invariants: - - "Theoretical claims MUST reference established academic or technical formalisms" diff --git a/a2ml/editors/vscode/docs/theory/README.adoc b/a2ml/editors/vscode/docs/theory/README.adoc deleted file mode 100644 index c0ddf280b..000000000 --- a/a2ml/editors/vscode/docs/theory/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= theory Unit diff --git a/a2ml/editors/vscode/docs/theory/computing/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/theory/computing/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index f387d08e9..000000000 --- a/a2ml/editors/vscode/docs/theory/computing/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "theory-unit-computing" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Theoretical foundation for computing. diff --git a/a2ml/editors/vscode/docs/theory/computing/README.adoc b/a2ml/editors/vscode/docs/theory/computing/README.adoc deleted file mode 100644 index 4d0db25d5..000000000 --- a/a2ml/editors/vscode/docs/theory/computing/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Computing Theory diff --git a/a2ml/editors/vscode/docs/theory/formalisms/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/theory/formalisms/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index cdc2baa14..000000000 --- a/a2ml/editors/vscode/docs/theory/formalisms/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "theory-unit-formalisms" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Theoretical foundation for formalisms. diff --git a/a2ml/editors/vscode/docs/theory/formalisms/README.adoc b/a2ml/editors/vscode/docs/theory/formalisms/README.adoc deleted file mode 100644 index 5d064c391..000000000 --- a/a2ml/editors/vscode/docs/theory/formalisms/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Formalisms Theory diff --git a/a2ml/editors/vscode/docs/theory/mathematics/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/theory/mathematics/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 677a4dacb..000000000 --- a/a2ml/editors/vscode/docs/theory/mathematics/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "theory-unit-mathematics" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Theoretical foundation for mathematics. diff --git a/a2ml/editors/vscode/docs/theory/mathematics/README.adoc b/a2ml/editors/vscode/docs/theory/mathematics/README.adoc deleted file mode 100644 index 356236f4b..000000000 --- a/a2ml/editors/vscode/docs/theory/mathematics/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Mathematics Theory diff --git a/a2ml/editors/vscode/docs/theory/ontologies/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/theory/ontologies/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index d888cee56..000000000 --- a/a2ml/editors/vscode/docs/theory/ontologies/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "theory-unit-ontologies" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Theoretical foundation for ontologies. diff --git a/a2ml/editors/vscode/docs/theory/ontologies/README.adoc b/a2ml/editors/vscode/docs/theory/ontologies/README.adoc deleted file mode 100644 index 6d16ecf96..000000000 --- a/a2ml/editors/vscode/docs/theory/ontologies/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Ontologies Theory diff --git a/a2ml/editors/vscode/docs/theory/other/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/theory/other/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 166ed9e8b..000000000 --- a/a2ml/editors/vscode/docs/theory/other/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "theory-unit-other" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Theoretical foundation for other. diff --git a/a2ml/editors/vscode/docs/theory/other/README.adoc b/a2ml/editors/vscode/docs/theory/other/README.adoc deleted file mode 100644 index 1861d6d56..000000000 --- a/a2ml/editors/vscode/docs/theory/other/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Other Theory diff --git a/a2ml/editors/vscode/docs/theory/socio-technical/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/theory/socio-technical/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 891952224..000000000 --- a/a2ml/editors/vscode/docs/theory/socio-technical/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "theory-unit-socio-technical" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Theoretical foundation for socio technical. diff --git a/a2ml/editors/vscode/docs/theory/socio-technical/README.adoc b/a2ml/editors/vscode/docs/theory/socio-technical/README.adoc deleted file mode 100644 index 9ab4ee075..000000000 --- a/a2ml/editors/vscode/docs/theory/socio-technical/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Socio technical Theory diff --git a/a2ml/editors/vscode/docs/whitepapers/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/whitepapers/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index c936101d8..000000000 --- a/a2ml/editors/vscode/docs/whitepapers/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,20 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "whitepapers-track" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Unit for strategic publications and whitepapers. Categorised by target - audience: Academic, Industry, and Outreach. - -canonical_locations: - academic: "academic/" - industry: "industry/" - outreach: "outreach/" - -invariants: - - "Each sub-track MUST have a clear audience definition in its README" diff --git a/a2ml/editors/vscode/docs/whitepapers/README.adoc b/a2ml/editors/vscode/docs/whitepapers/README.adoc deleted file mode 100644 index 88e83c5e0..000000000 --- a/a2ml/editors/vscode/docs/whitepapers/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= whitepapers Unit diff --git a/a2ml/editors/vscode/docs/whitepapers/academic/.gitkeep b/a2ml/editors/vscode/docs/whitepapers/academic/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/a2ml/editors/vscode/docs/whitepapers/academic/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/whitepapers/academic/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index ceb8a1e71..000000000 --- a/a2ml/editors/vscode/docs/whitepapers/academic/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "academic-unit" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Academic logic at level 3. diff --git a/a2ml/editors/vscode/docs/whitepapers/academic/README.adoc b/a2ml/editors/vscode/docs/whitepapers/academic/README.adoc deleted file mode 100644 index 16c3f4538..000000000 --- a/a2ml/editors/vscode/docs/whitepapers/academic/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Academic Logic diff --git a/a2ml/editors/vscode/docs/whitepapers/industry/.gitkeep b/a2ml/editors/vscode/docs/whitepapers/industry/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/a2ml/editors/vscode/docs/whitepapers/industry/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/whitepapers/industry/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 20156dd51..000000000 --- a/a2ml/editors/vscode/docs/whitepapers/industry/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "industry-unit" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Industry logic at level 3. diff --git a/a2ml/editors/vscode/docs/whitepapers/industry/README.adoc b/a2ml/editors/vscode/docs/whitepapers/industry/README.adoc deleted file mode 100644 index 7bc7fcd6d..000000000 --- a/a2ml/editors/vscode/docs/whitepapers/industry/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Industry Logic diff --git a/a2ml/editors/vscode/docs/whitepapers/outreach/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/whitepapers/outreach/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index ed7e1529f..000000000 --- a/a2ml/editors/vscode/docs/whitepapers/outreach/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,16 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "whitepapers-track-outreach" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Documentation track for outreach, education, and general-audience - engagement. Focuses on accessibility and high-level conceptual clarity. - -invariants: - - "Language MUST be accessible to non-technical audiences" - - "Avoid deep technical jargon without providing clear definitions" diff --git a/a2ml/editors/vscode/docs/whitepapers/outreach/README.adoc b/a2ml/editors/vscode/docs/whitepapers/outreach/README.adoc deleted file mode 100644 index 8141463f4..000000000 --- a/a2ml/editors/vscode/docs/whitepapers/outreach/README.adoc +++ /dev/null @@ -1,17 +0,0 @@ -= Outreach & Education -:toc: preamble -:icons: font - -This directory contains whitepapers, guides, and presentations tailored for a general audience, including schools, corporate partners, and special interest groups. - -== Target Audiences - -* **Schools & Education:** Introductory material on formal verification and sovereign systems. -* **Corporate:** High-level business value and compliance summaries. -* **Special Interest Groups:** Community-specific impact and ethical use cases. - -== Goals - -* De-mystify high-rigor engineering. -* Promote the adoption of the Rhodium Standard. -* Provide accessible entry points for non-technical stakeholders. diff --git a/a2ml/editors/vscode/docs/wikis/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/docs/wikis/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index f071ca8a9..000000000 --- a/a2ml/editors/vscode/docs/wikis/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "wikis-track" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Long-form collaborative documentation and project knowledge base. - This directory mirrors the content structure of the project wiki. - -invariants: - - "Primary wiki format MUST be AsciiDoc (.adoc)" diff --git a/a2ml/editors/vscode/docs/wikis/README.adoc b/a2ml/editors/vscode/docs/wikis/README.adoc deleted file mode 100644 index 71b60d1ba..000000000 --- a/a2ml/editors/vscode/docs/wikis/README.adoc +++ /dev/null @@ -1,15 +0,0 @@ -= Project Wikis -:toc: preamble -:icons: font - -This directory contains the source files for the project wiki. It is intended for long-form documentation, deep-dives, and community-maintained knowledge. - -== Structure - -* **Core Concepts:** Fundamental architectural ideas. -* **Workflows:** Step-by-step guides for contributors. -* **Glossary:** Definitions of project-specific terminology. - -== Wiki Synchronization - -Changes made here should be synchronised with the forge-hosted wiki (GitHub/GitLab) using the project's sync scripts. diff --git a/a2ml/editors/vscode/examples/0.1-AI-MANIFEST.a2ml b/a2ml/editors/vscode/examples/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index 0d69c9050..000000000 --- a/a2ml/editors/vscode/examples/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1 +0,0 @@ -# AI Manifest - Level 1: examples diff --git a/a2ml/editors/vscode/examples/README.adoc b/a2ml/editors/vscode/examples/README.adoc deleted file mode 100644 index b9cdb4879..000000000 --- a/a2ml/editors/vscode/examples/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= examples Pillar diff --git a/a2ml/editors/vscode/examples/web-project-deno.json b/a2ml/editors/vscode/examples/web-project-deno.json deleted file mode 100644 index 028e4f1ad..000000000 --- a/a2ml/editors/vscode/examples/web-project-deno.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "// NOTE": "Example deno.json for ReScript web projects", - "tasks": { - "build": "deno run -A npm:rescript", - "clean": "deno run -A npm:rescript clean", - "watch": "deno run -A npm:rescript -w", - "serve": "deno run -A jsr:@std/http/file-server .", - "test": "deno test --allow-all" - }, - "imports": { - "rescript": "^12.0.0", - "@rescript/core": "npm:@rescript/core@^1.6.0", - "safe-dom/": "https://raw.githubusercontent.com/{{OWNER}}/rescript-dom-mounter/main/src/", - "proven/": "../proven/bindings/rescript/src/" - }, - "compilerOptions": { - "allowJs": true, - "checkJs": false - } -} diff --git a/a2ml/editors/vscode/features/0.1-AI-MANIFEST.a2ml b/a2ml/editors/vscode/features/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index dc3e4ee3a..000000000 --- a/a2ml/editors/vscode/features/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "features-pillar" -level: 1 -parent: "../0-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Optional project features and ecosystem integrations. Provides bootstrap - guides for high-rigor tools (Panic-Attacker, BoJ-Server, SSGs). - -canonical_locations: - panic_attacker: "panic-attacker/" - boj_server: "boj-server/" - ssg: "ssg/" diff --git a/a2ml/editors/vscode/features/README.adoc b/a2ml/editors/vscode/features/README.adoc deleted file mode 100644 index 3899280c2..000000000 --- a/a2ml/editors/vscode/features/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Project Features diff --git a/a2ml/editors/vscode/features/boj-server/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/features/boj-server/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index c77798cdf..000000000 --- a/a2ml/editors/vscode/features/boj-server/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "feature-unit-boj-server" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Bootstrap and integration logic for the boj-server ecosystem component. diff --git a/a2ml/editors/vscode/features/boj-server/README.adoc b/a2ml/editors/vscode/features/boj-server/README.adoc deleted file mode 100644 index 0039c37dc..000000000 --- a/a2ml/editors/vscode/features/boj-server/README.adoc +++ /dev/null @@ -1,14 +0,0 @@ -= BoJ Server Integration -:icons: font - -This unit provides a "starting hand" for integrating with the **BoJ-Server** (Box of Justice) ecosystem — a high-rigor, verified server infrastructure. - -== Integration Options - -* **Core:** Use BoJ-Server as the primary verified backend for this project. -* **Bridge:** Utilize the BoJ-Server IPC bridge for cross-boundary communication. - -== Related Repository - -For the full specification and source, visit: -https://github.com/hyperpolymath/boj-server diff --git a/a2ml/editors/vscode/features/panic-attacker/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/features/panic-attacker/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index e61ad2440..000000000 --- a/a2ml/editors/vscode/features/panic-attacker/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "feature-unit-panic-attacker" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Bootstrap and integration logic for the panic-attacker ecosystem component. diff --git a/a2ml/editors/vscode/features/panic-attacker/README.adoc b/a2ml/editors/vscode/features/panic-attacker/README.adoc deleted file mode 100644 index 72d56a429..000000000 --- a/a2ml/editors/vscode/features/panic-attacker/README.adoc +++ /dev/null @@ -1,25 +0,0 @@ -= Panic Attacker Feature -:icons: font - -This unit integrates the **Panic-Attacker** high-rigor stress testing tool into the project lifecycle. - -== Value Proposition - -Panic-Attacker goes beyond unit testing by applying: -* **Static Analysis (Assail):** Detecting logic-based bug signatures. -* **Multi-Axis Dynamic Attacks (Assault):** Stressing CPU, Memory, Disk, and Network boundaries. - -== Usage in this Template - -This template includes a pre-configured maintenance trigger: - -[source,bash] ----- -just maint-assault ----- - -This runs a medium-intensity assault on the project binary and emits a report to `docs/reports/security/`. - -== Related Repository - -https://github.com/hyperpolymath/panic-attacker diff --git a/a2ml/editors/vscode/features/ssg/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/features/ssg/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 121c5ae27..000000000 --- a/a2ml/editors/vscode/features/ssg/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "feature-unit-ssg" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Bootstrap and integration logic for the ssg ecosystem component. diff --git a/a2ml/editors/vscode/features/ssg/README.adoc b/a2ml/editors/vscode/features/ssg/README.adoc deleted file mode 100644 index e15687bf1..000000000 --- a/a2ml/editors/vscode/features/ssg/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Ssg Feature diff --git a/a2ml/editors/vscode/features/ssg/ssg-bootstrap.sh b/a2ml/editors/vscode/features/ssg/ssg-bootstrap.sh deleted file mode 100755 index 89c6fa5ff..000000000 --- a/a2ml/editors/vscode/features/ssg/ssg-bootstrap.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: MPL-2.0 -# -# ssg-bootstrap.sh — Universal SSG Initialisation Helper -# -# Provides a starting hand for creating a documentation site or blog -# using hyperpolymath-approved formal or pretty-formal SSGs. - -set -euo pipefail - -echo "═══════════════════════════════════════════════════" -echo " SSG BOOTSTRAP HELPER" -echo "═══════════════════════════════════════════════════" -echo "" -echo "Select an SSG to initialize in this project:" -echo " [1] Casket-SSG (Haskell) — Pretty-formal, high-rigor default" -echo " [2] Ddraig-SSG (Idris2) — Super-formal, dependent-type proofed" -echo " [3] Serum-SSG (Elixir) — Concurrent, robust, BEAM-based" -echo " [4] Zola (Rust) — Fast, standalone, standard" -echo "" - -read -rp "Enter choice [1-4]: " choice - -case "$choice" in - 1) - echo "Selected: Casket-SSG" - echo "Integration: git clone https://github.com/hyperpolymath/casket-ssg docs/site" - ;; - 2) - echo "Selected: Ddraig-SSG" - echo "Integration: git clone https://github.com/hyperpolymath/ddraig-ssg docs/site" - ;; - 3) - echo "Selected: Serum-SSG" - echo "Integration: mix serum.new docs/site" - ;; - 4) - echo "Selected: Zola" - echo "Integration: zola init docs/site" - ;; - *) - echo "Invalid selection. Aborting." - exit 1 - ;; -esac - -echo "" -echo "Note: For more advanced polystack options, visit: https://github.com/hyperpolymath/polystack" diff --git a/a2ml/editors/vscode/icons/a2ml-icon.svg b/a2ml/editors/vscode/icons/a2ml-icon.svg deleted file mode 100644 index 05fbb5a89..000000000 --- a/a2ml/editors/vscode/icons/a2ml-icon.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - A2 - ML - - diff --git a/a2ml/editors/vscode/language-configuration.json b/a2ml/editors/vscode/language-configuration.json deleted file mode 100644 index af2475f9b..000000000 --- a/a2ml/editors/vscode/language-configuration.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "comments": { - "lineComment": "#" - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - { "open": "{", "close": "}" }, - { "open": "[", "close": "]" }, - { "open": "(", "close": ")" }, - { "open": "\"", "close": "\"", "notIn": ["string"] }, - { "open": "'", "close": "'", "notIn": ["string"] } - ], - "surroundingPairs": [ - { "open": "{", "close": "}" }, - { "open": "[", "close": "]" }, - { "open": "(", "close": ")" }, - { "open": "\"", "close": "\"" }, - { "open": "'", "close": "'" } - ], - "folding": { - "markers": { - "start": "^---", - "end": "^---" - } - }, - "wordPattern": "[\\w][\\w\\-]*" -} diff --git a/a2ml/editors/vscode/package.json b/a2ml/editors/vscode/package.json deleted file mode 100644 index 25a36c14a..000000000 --- a/a2ml/editors/vscode/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "a2ml", - "displayName": "A2ML (Attested Markup Language)", - "description": "Syntax highlighting for A2ML — a lightweight markup format with a typed, formally verified core.", - "version": "0.1.0", - "license": "SEE LICENSE IN LICENSE", - "publisher": "hyperpolymath", - "author": { - "name": "Jonathan D.A. Jewell", - "email": "j.d.a.jewell@open.ac.uk" - }, - "repository": { - "type": "git", - "url": "https://github.com/hyperpolymath/standards.git", - "directory": "a2ml/editors/vscode" - }, - "engines": { - "vscode": "^1.75.0" - }, - "categories": [ - "Programming Languages" - ], - "contributes": { - "languages": [ - { - "id": "a2ml", - "aliases": [ - "A2ML", - "Attested Markup Language" - ], - "extensions": [ - ".a2ml" - ], - "configuration": "./language-configuration.json" - } - ], - "grammars": [ - { - "language": "a2ml", - "scopeName": "source.a2ml", - "path": "../a2ml.tmLanguage.json" - } - ] - } -} diff --git a/a2ml/editors/vscode/snippets/a2ml.json b/a2ml/editors/vscode/snippets/a2ml.json deleted file mode 100644 index 580388948..000000000 --- a/a2ml/editors/vscode/snippets/a2ml.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "A2ML SPDX Header": { - "prefix": "spdx", - "body": [ - "# SPDX-License-Identifier: ${1:PMPL-1.0-or-later}", - "# Copyright (c) ${2:2026} ${3:Jonathan D.A. Jewell} (${4:hyperpolymath})", - "" - ], - "description": "Insert SPDX license identifier and copyright header" - }, - "A2ML Manifest": { - "prefix": "manifest", - "body": [ - "# SPDX-License-Identifier: AGPL-3.0-or-later", - "# AI Manifest for ${1:project-name}", - "---", - "format: a2ml", - "version: ${2:0.1}", - "---", - "", - "canonical-locations:", - " scm-files: .machine_readable/", - " source: src/", - "", - "critical-invariants:", - " - ${3:description of invariant}", - "", - "lifecycle-hook:", - " on-enter:", - " - read: 0-AI-MANIFEST.a2ml", - " - read: .machine_readable/STATE.scm", - " on-exit:", - " - update: .machine_readable/STATE.scm", - "" - ], - "description": "Insert a complete A2ML AI manifest template" - }, - "A2ML Attestation Block": { - "prefix": "attest", - "body": [ - "---", - "attestation:", - " attested-by: ${1:agent-name}", - " trust-level: ${2|high,medium,low|}", - " signature: ${3:signature-hash}", - " timestamp: ${4:$CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE}", - " provenance: ${5:source}", - "---" - ], - "description": "Insert an attestation block" - }, - "A2ML Gatekeeper Section": { - "prefix": "gatekeeper", - "body": [ - "gatekeeper:", - " protocol: ${1:0-ai-gatekeeper-protocol}", - " enforcement: ${2|hard,soft,advisory|}", - " agents:", - " - ${3:claude}", - " - ${4:gemini}", - "" - ], - "description": "Insert a gatekeeper configuration section" - }, - "A2ML Section Delimiter": { - "prefix": "---", - "body": [ - "---", - "${1:section-name}:", - " ${0}" - ], - "description": "Insert a section delimiter with key" - }, - "A2ML Key-Value Pair": { - "prefix": "kv", - "body": [ - "${1:key}: ${2:value}" - ], - "description": "Insert a key-value pair" - }, - "A2ML Checkpoint": { - "prefix": "checkpoint", - "body": [ - "checkpoint:", - " id: ${1:cp-001}", - " status: ${2|pending,complete,blocked|}", - " description: ${3:checkpoint description}", - " verified: ${4|false,true|}", - "" - ], - "description": "Insert a checkpoint entry" - } -} diff --git a/a2ml/editors/vscode/src/0.1-AI-MANIFEST.a2ml b/a2ml/editors/vscode/src/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index c92e124d1..000000000 --- a/a2ml/editors/vscode/src/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "source-pillar" -level: 1 -parent: "../0-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Primary source code directory. Organized by role and architectural - aspect. - -canonical_locations: - core: "core/" - interface: "interface/" - bridges: "bridges/" - contracts: "contracts/" - errors: "errors/" - definitions: "definitions/" - aspects: "aspects/" - -invariants: - - "Core logic MUST reside in core/" - - "Verified seams MUST reside in interface/" - - "Safety constraints MUST reside in contracts/" - - "Failure dictionaries MUST reside in errors/" diff --git a/a2ml/editors/vscode/src/README.adoc b/a2ml/editors/vscode/src/README.adoc deleted file mode 100644 index 5529f66f3..000000000 --- a/a2ml/editors/vscode/src/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= src Pillar diff --git a/a2ml/editors/vscode/src/aspects/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/src/aspects/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 3d5b209e2..000000000 --- a/a2ml/editors/vscode/src/aspects/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "source-unit-aspects" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Cross-cutting concerns and domain-specific aspects (Security, - Observability, Integrity). - -canonical_locations: - security: "security/" - observability: "observability/" - integrity: "integrity/" diff --git a/a2ml/editors/vscode/src/aspects/README.adoc b/a2ml/editors/vscode/src/aspects/README.adoc deleted file mode 100644 index 6456f962f..000000000 --- a/a2ml/editors/vscode/src/aspects/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Aspects Pillar diff --git a/a2ml/editors/vscode/src/aspects/integrity/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/src/aspects/integrity/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index f114cbd24..000000000 --- a/a2ml/editors/vscode/src/aspects/integrity/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "aspect-unit-integrity" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Implementation logic for the integrity aspect. diff --git a/a2ml/editors/vscode/src/aspects/integrity/README.adoc b/a2ml/editors/vscode/src/aspects/integrity/README.adoc deleted file mode 100644 index f15d829db..000000000 --- a/a2ml/editors/vscode/src/aspects/integrity/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Integrity Aspect diff --git a/a2ml/editors/vscode/src/aspects/observability/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/src/aspects/observability/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index e16cbdf9d..000000000 --- a/a2ml/editors/vscode/src/aspects/observability/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "aspect-unit-observability" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Implementation logic for the observability aspect. diff --git a/a2ml/editors/vscode/src/aspects/observability/README.adoc b/a2ml/editors/vscode/src/aspects/observability/README.adoc deleted file mode 100644 index 7852ee64d..000000000 --- a/a2ml/editors/vscode/src/aspects/observability/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Observability Aspect diff --git a/a2ml/editors/vscode/src/aspects/security/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/src/aspects/security/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 099653636..000000000 --- a/a2ml/editors/vscode/src/aspects/security/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "aspect-unit-security" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Implementation logic for the security aspect. diff --git a/a2ml/editors/vscode/src/aspects/security/README.adoc b/a2ml/editors/vscode/src/aspects/security/README.adoc deleted file mode 100644 index 3c3536ec8..000000000 --- a/a2ml/editors/vscode/src/aspects/security/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Security Aspect diff --git a/a2ml/editors/vscode/src/bridges/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/src/bridges/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 3d3e27a07..000000000 --- a/a2ml/editors/vscode/src/bridges/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "source-unit-bridges" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Integration logic for external systems (API, Database, RPC, etc.). diff --git a/a2ml/editors/vscode/src/contracts/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/src/contracts/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 0bd9198f8..000000000 --- a/a2ml/editors/vscode/src/contracts/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "source-unit-contracts" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Contracts unit for high-rigor source code. diff --git a/a2ml/editors/vscode/src/contracts/README.adoc b/a2ml/editors/vscode/src/contracts/README.adoc deleted file mode 100644 index 9cfa20983..000000000 --- a/a2ml/editors/vscode/src/contracts/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Contracts Unit diff --git a/a2ml/editors/vscode/src/core/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/src/core/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 22846c785..000000000 --- a/a2ml/editors/vscode/src/core/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "source-unit-core" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Primary application logic and core domain models. diff --git a/a2ml/editors/vscode/src/definitions/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/src/definitions/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index e54f4dabb..000000000 --- a/a2ml/editors/vscode/src/definitions/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "source-unit-definitions" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Definitions unit for high-rigor source code. diff --git a/a2ml/editors/vscode/src/definitions/README.adoc b/a2ml/editors/vscode/src/definitions/README.adoc deleted file mode 100644 index 954834977..000000000 --- a/a2ml/editors/vscode/src/definitions/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Definitions Unit diff --git a/a2ml/editors/vscode/src/errors/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/src/errors/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index dddcc6c43..000000000 --- a/a2ml/editors/vscode/src/errors/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "source-unit-errors" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Errors unit for high-rigor source code. diff --git a/a2ml/editors/vscode/src/errors/README.adoc b/a2ml/editors/vscode/src/errors/README.adoc deleted file mode 100644 index 460fc1e93..000000000 --- a/a2ml/editors/vscode/src/errors/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Errors Unit diff --git a/a2ml/editors/vscode/src/interface/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/src/interface/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 7f0f471b3..000000000 --- a/a2ml/editors/vscode/src/interface/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,24 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "interface-seams-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Consolidated "Verified Interface Seams" unit. This directory unifies the - formal specification (ABI), the bridge implementation (FFI), and the - resulting artifacts (Generated). - -canonical_locations: - abi: "abi/" - ffi: "ffi/" - generated: "generated/" - -invariants: - - "ABI MUST be Idris2 (.idr)" - - "FFI MUST be Zig (.zig)" - - "Generated artifacts MUST be C-compatible" - - "The 'Truth' lives in abi/; the 'Implementation' lives in ffi/" diff --git a/a2ml/editors/vscode/src/interface/README.adoc b/a2ml/editors/vscode/src/interface/README.adoc deleted file mode 100644 index 8faf0aad2..000000000 --- a/a2ml/editors/vscode/src/interface/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= interface Unit diff --git a/a2ml/editors/vscode/src/interface/abi/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/src/interface/abi/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 91cafa014..000000000 --- a/a2ml/editors/vscode/src/interface/abi/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "abi-logic" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Specialised Level 3 logic for abi. diff --git a/a2ml/editors/vscode/src/interface/abi/README.adoc b/a2ml/editors/vscode/src/interface/abi/README.adoc deleted file mode 100644 index 2330304d0..000000000 --- a/a2ml/editors/vscode/src/interface/abi/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= abi Logic diff --git a/a2ml/editors/vscode/src/interface/ffi/0.3-AI-MANIFEST.a2ml b/a2ml/editors/vscode/src/interface/ffi/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index bf456ae24..000000000 --- a/a2ml/editors/vscode/src/interface/ffi/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "ffi-logic" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Specialised Level 3 logic for ffi. diff --git a/a2ml/editors/vscode/src/interface/ffi/README.adoc b/a2ml/editors/vscode/src/interface/ffi/README.adoc deleted file mode 100644 index 8fe57d34c..000000000 --- a/a2ml/editors/vscode/src/interface/ffi/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= ffi Logic diff --git a/a2ml/editors/vscode/src/interface/ffi/build.zig b/a2ml/editors/vscode/src/interface/ffi/build.zig deleted file mode 100644 index 4a2e049a4..000000000 --- a/a2ml/editors/vscode/src/interface/ffi/build.zig +++ /dev/null @@ -1,94 +0,0 @@ -// {{PROJECT}} FFI Build Configuration -// SPDX-License-Identifier: MPL-2.0 - -const std = @import("std"); - -pub fn build(b: *std.Build) void { - const target = b.standardTargetOptions(.{}); - const optimize = b.standardOptimizeOption(.{}); - - // Shared library (.so, .dylib, .dll) - const lib = b.addSharedLibrary(.{ - .name = "{{project}}", - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - }); - - // Set version - lib.version = .{ .major = 0, .minor = 1, .patch = 0 }; - - // Static library (.a) - const lib_static = b.addStaticLibrary(.{ - .name = "{{project}}", - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - }); - - // Install artifacts - b.installArtifact(lib); - b.installArtifact(lib_static); - - // Generate header file for C compatibility - const header = b.addInstallHeader( - b.path("include/{{project}}.h"), - "{{project}}.h", - ); - b.getInstallStep().dependOn(&header.step); - - // Unit tests - const lib_tests = b.addTest(.{ - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - }); - - const run_lib_tests = b.addRunArtifact(lib_tests); - - const test_step = b.step("test", "Run library tests"); - test_step.dependOn(&run_lib_tests.step); - - // Integration tests - const integration_tests = b.addTest(.{ - .root_source_file = b.path("test/integration_test.zig"), - .target = target, - .optimize = optimize, - }); - - integration_tests.linkLibrary(lib); - - const run_integration_tests = b.addRunArtifact(integration_tests); - - const integration_test_step = b.step("test-integration", "Run integration tests"); - integration_test_step.dependOn(&run_integration_tests.step); - - // Documentation - const docs = b.addTest(.{ - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = .Debug, - }); - - const docs_step = b.step("docs", "Generate documentation"); - docs_step.dependOn(&b.addInstallDirectory(.{ - .source_dir = docs.getEmittedDocs(), - .install_dir = .prefix, - .install_subdir = "docs", - }).step); - - // Benchmark (if needed) - const bench = b.addExecutable(.{ - .name = "{{project}}-bench", - .root_source_file = b.path("bench/bench.zig"), - .target = target, - .optimize = .ReleaseFast, - }); - - bench.linkLibrary(lib); - - const run_bench = b.addRunArtifact(bench); - - const bench_step = b.step("bench", "Run benchmarks"); - bench_step.dependOn(&run_bench.step); -} diff --git a/a2ml/editors/vscode/src/interface/ffi/src/0.4-AI-MANIFEST.a2ml b/a2ml/editors/vscode/src/interface/ffi/src/0.4-AI-MANIFEST.a2ml deleted file mode 100644 index 5b5f1b1e5..000000000 --- a/a2ml/editors/vscode/src/interface/ffi/src/0.4-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "src-unit" -level: 4 -parent: "../0.3-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Src logic at level 4. diff --git a/a2ml/editors/vscode/src/interface/ffi/src/README.adoc b/a2ml/editors/vscode/src/interface/ffi/src/README.adoc deleted file mode 100644 index a5c0c6d57..000000000 --- a/a2ml/editors/vscode/src/interface/ffi/src/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Src Logic diff --git a/a2ml/editors/vscode/src/interface/ffi/src/main.zig b/a2ml/editors/vscode/src/interface/ffi/src/main.zig deleted file mode 100644 index 6b233bc79..000000000 --- a/a2ml/editors/vscode/src/interface/ffi/src/main.zig +++ /dev/null @@ -1,274 +0,0 @@ -// {{PROJECT}} FFI Implementation -// -// This module implements the C-compatible FFI declared in src/abi/Foreign.idr -// All types and layouts must match the Idris2 ABI definitions. -// -// SPDX-License-Identifier: MPL-2.0 - -const std = @import("std"); - -// Version information (keep in sync with project) -const VERSION = "0.1.0"; -const BUILD_INFO = "{{PROJECT}} built with Zig " ++ @import("builtin").zig_version_string; - -/// Thread-local error storage -threadlocal var last_error: ?[]const u8 = null; - -/// Set the last error message -fn setError(msg: []const u8) void { - last_error = msg; -} - -/// Clear the last error -fn clearError() void { - last_error = null; -} - -//============================================================================== -// Core Types (must match src/abi/Types.idr) -//============================================================================== - -/// Result codes (must match Idris2 Result type) -pub const Result = enum(c_int) { - ok = 0, - @"error" = 1, - invalid_param = 2, - out_of_memory = 3, - null_pointer = 4, -}; - -/// Library handle (opaque to prevent direct access) -pub const Handle = opaque { - // Internal state hidden from C - allocator: std.mem.Allocator, - initialized: bool, - // Add your fields here -}; - -//============================================================================== -// Library Lifecycle -//============================================================================== - -/// Initialize the library -/// Returns a handle, or null on failure -export fn {{project}}_init() ?*Handle { - const allocator = std.heap.c_allocator; - - const handle = allocator.create(Handle) catch { - setError("Failed to allocate handle"); - return null; - }; - - // Initialize handle - handle.* = .{ - .allocator = allocator, - .initialized = true, - }; - - clearError(); - return handle; -} - -/// Free the library handle -export fn {{project}}_free(handle: ?*Handle) void { - const h = handle orelse return; - const allocator = h.allocator; - - // Clean up resources - h.initialized = false; - - allocator.destroy(h); - clearError(); -} - -//============================================================================== -// Core Operations -//============================================================================== - -/// Process data (example operation) -export fn {{project}}_process(handle: ?*Handle, input: u32) Result { - const h = handle orelse { - setError("Null handle"); - return .null_pointer; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return .@"error"; - } - - // Example processing logic - _ = input; - - clearError(); - return .ok; -} - -//============================================================================== -// String Operations -//============================================================================== - -/// Get a string result (example) -/// Caller must free the returned string -export fn {{project}}_get_string(handle: ?*Handle) ?[*:0]const u8 { - const h = handle orelse { - setError("Null handle"); - return null; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return null; - } - - // Example: allocate and return a string - const result = h.allocator.dupeZ(u8, "Example result") catch { - setError("Failed to allocate string"); - return null; - }; - - clearError(); - return result.ptr; -} - -/// Free a string allocated by the library -export fn {{project}}_free_string(str: ?[*:0]const u8) void { - const s = str orelse return; - const allocator = std.heap.c_allocator; - - const slice = std.mem.span(s); - allocator.free(slice); -} - -//============================================================================== -// Array/Buffer Operations -//============================================================================== - -/// Process an array of data -export fn {{project}}_process_array( - handle: ?*Handle, - buffer: ?[*]const u8, - len: u32, -) Result { - const h = handle orelse { - setError("Null handle"); - return .null_pointer; - }; - - const buf = buffer orelse { - setError("Null buffer"); - return .null_pointer; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return .@"error"; - } - - // Access the buffer - const data = buf[0..len]; - _ = data; - - // Process data here - - clearError(); - return .ok; -} - -//============================================================================== -// Error Handling -//============================================================================== - -/// Get the last error message -/// Returns null if no error -export fn {{project}}_last_error() ?[*:0]const u8 { - const err = last_error orelse return null; - - // Return C string (static storage, no need to free) - const allocator = std.heap.c_allocator; - const c_str = allocator.dupeZ(u8, err) catch return null; - return c_str.ptr; -} - -//============================================================================== -// Version Information -//============================================================================== - -/// Get the library version -export fn {{project}}_version() [*:0]const u8 { - return VERSION.ptr; -} - -/// Get build information -export fn {{project}}_build_info() [*:0]const u8 { - return BUILD_INFO.ptr; -} - -//============================================================================== -// Callback Support -//============================================================================== - -/// Callback function type (C ABI) -pub const Callback = *const fn (u64, u32) callconv(.C) u32; - -/// Register a callback -export fn {{project}}_register_callback( - handle: ?*Handle, - callback: ?Callback, -) Result { - const h = handle orelse { - setError("Null handle"); - return .null_pointer; - }; - - const cb = callback orelse { - setError("Null callback"); - return .null_pointer; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return .@"error"; - } - - // Store callback for later use - _ = cb; - - clearError(); - return .ok; -} - -//============================================================================== -// Utility Functions -//============================================================================== - -/// Check if handle is initialized -export fn {{project}}_is_initialized(handle: ?*Handle) u32 { - const h = handle orelse return 0; - return if (h.initialized) 1 else 0; -} - -//============================================================================== -// Tests -//============================================================================== - -test "lifecycle" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - try std.testing.expect({{project}}_is_initialized(handle) == 1); -} - -test "error handling" { - const result = {{project}}_process(null, 0); - try std.testing.expectEqual(Result.null_pointer, result); - - const err = {{project}}_last_error(); - try std.testing.expect(err != null); -} - -test "version" { - const ver = {{project}}_version(); - const ver_str = std.mem.span(ver); - try std.testing.expectEqualStrings(VERSION, ver_str); -} diff --git a/a2ml/editors/vscode/src/interface/ffi/test/0.4-AI-MANIFEST.a2ml b/a2ml/editors/vscode/src/interface/ffi/test/0.4-AI-MANIFEST.a2ml deleted file mode 100644 index e02427f84..000000000 --- a/a2ml/editors/vscode/src/interface/ffi/test/0.4-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "test-unit" -level: 4 -parent: "../0.3-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Test logic at level 4. diff --git a/a2ml/editors/vscode/src/interface/ffi/test/README.adoc b/a2ml/editors/vscode/src/interface/ffi/test/README.adoc deleted file mode 100644 index f6f38bf6e..000000000 --- a/a2ml/editors/vscode/src/interface/ffi/test/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Test Logic diff --git a/a2ml/editors/vscode/src/interface/ffi/test/integration_test.zig b/a2ml/editors/vscode/src/interface/ffi/test/integration_test.zig deleted file mode 100644 index 034199499..000000000 --- a/a2ml/editors/vscode/src/interface/ffi/test/integration_test.zig +++ /dev/null @@ -1,182 +0,0 @@ -// {{PROJECT}} Integration Tests -// SPDX-License-Identifier: MPL-2.0 -// -// These tests verify that the Zig FFI correctly implements the Idris2 ABI - -const std = @import("std"); -const testing = std.testing; - -// Import FFI functions -extern fn {{project}}_init() ?*opaque {}; -extern fn {{project}}_free(?*opaque {}) void; -extern fn {{project}}_process(?*opaque {}, u32) c_int; -extern fn {{project}}_get_string(?*opaque {}) ?[*:0]const u8; -extern fn {{project}}_free_string(?[*:0]const u8) void; -extern fn {{project}}_last_error() ?[*:0]const u8; -extern fn {{project}}_version() [*:0]const u8; -extern fn {{project}}_is_initialized(?*opaque {}) u32; - -//============================================================================== -// Lifecycle Tests -//============================================================================== - -test "create and destroy handle" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - try testing.expect(handle != null); -} - -test "handle is initialized" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const initialized = {{project}}_is_initialized(handle); - try testing.expectEqual(@as(u32, 1), initialized); -} - -test "null handle is not initialized" { - const initialized = {{project}}_is_initialized(null); - try testing.expectEqual(@as(u32, 0), initialized); -} - -//============================================================================== -// Operation Tests -//============================================================================== - -test "process with valid handle" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const result = {{project}}_process(handle, 42); - try testing.expectEqual(@as(c_int, 0), result); // 0 = ok -} - -test "process with null handle returns error" { - const result = {{project}}_process(null, 42); - try testing.expectEqual(@as(c_int, 4), result); // 4 = null_pointer -} - -//============================================================================== -// String Tests -//============================================================================== - -test "get string result" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const str = {{project}}_get_string(handle); - defer if (str) |s| {{project}}_free_string(s); - - try testing.expect(str != null); -} - -test "get string with null handle" { - const str = {{project}}_get_string(null); - try testing.expect(str == null); -} - -//============================================================================== -// Error Handling Tests -//============================================================================== - -test "last error after null handle operation" { - _ = {{project}}_process(null, 0); - - const err = {{project}}_last_error(); - try testing.expect(err != null); - - if (err) |e| { - const err_str = std.mem.span(e); - try testing.expect(err_str.len > 0); - } -} - -test "no error after successful operation" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - _ = {{project}}_process(handle, 0); - - // Error should be cleared after successful operation - // (This depends on implementation) -} - -//============================================================================== -// Version Tests -//============================================================================== - -test "version string is not empty" { - const ver = {{project}}_version(); - const ver_str = std.mem.span(ver); - - try testing.expect(ver_str.len > 0); -} - -test "version string is semantic version format" { - const ver = {{project}}_version(); - const ver_str = std.mem.span(ver); - - // Should be in format X.Y.Z - try testing.expect(std.mem.count(u8, ver_str, ".") >= 1); -} - -//============================================================================== -// Memory Safety Tests -//============================================================================== - -test "multiple handles are independent" { - const h1 = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(h1); - - const h2 = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(h2); - - try testing.expect(h1 != h2); - - // Operations on h1 should not affect h2 - _ = {{project}}_process(h1, 1); - _ = {{project}}_process(h2, 2); -} - -test "double free is safe" { - const handle = {{project}}_init() orelse return error.InitFailed; - - {{project}}_free(handle); - {{project}}_free(handle); // Should not crash -} - -test "free null is safe" { - {{project}}_free(null); // Should not crash -} - -//============================================================================== -// Thread Safety Tests (if applicable) -//============================================================================== - -test "concurrent operations" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const ThreadContext = struct { - h: *opaque {}, - id: u32, - }; - - const thread_fn = struct { - fn run(ctx: ThreadContext) void { - _ = {{project}}_process(ctx.h, ctx.id); - } - }.run; - - var threads: [4]std.Thread = undefined; - for (&threads, 0..) |*thread, i| { - thread.* = try std.Thread.spawn(.{}, thread_fn, .{ - ThreadContext{ .h = handle, .id = @intCast(i) }, - }); - } - - for (threads) |thread| { - thread.join(); - } -} diff --git a/a2ml/editors/vscode/syntaxes/a2ml.tmLanguage.json b/a2ml/editors/vscode/syntaxes/a2ml.tmLanguage.json deleted file mode 100644 index 74ca246df..000000000 --- a/a2ml/editors/vscode/syntaxes/a2ml.tmLanguage.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "A2ML", - "scopeName": "source.a2ml", - "fileTypes": ["a2ml"], - "patterns": [ - { "include": "#comment" }, - { "include": "#spdx-header" }, - { "include": "#section-delimiter" }, - { "include": "#attestation-keywords" }, - { "include": "#date" }, - { "include": "#url" }, - { "include": "#key-value" }, - { "include": "#string-double" }, - { "include": "#string-single" }, - { "include": "#boolean" }, - { "include": "#number" } - ], - "repository": { - "comment": { - "name": "comment.line.number-sign.a2ml", - "match": "#.*$" - }, - "spdx-header": { - "name": "meta.spdx.a2ml", - "match": "^(#\\s*SPDX-License-Identifier)(:)\\s*(.+)$", - "captures": { - "1": { "name": "keyword.other.spdx.a2ml" }, - "2": { "name": "punctuation.separator.key-value.a2ml" }, - "3": { "name": "string.unquoted.spdx-value.a2ml" } - } - }, - "section-delimiter": { - "name": "markup.heading.section-delimiter.a2ml", - "match": "^---+\\s*$" - }, - "attestation-keywords": { - "name": "keyword.other.attestation.a2ml", - "match": "\\b(attested-by|trust-level|signature|attestation|verified|integrity|provenance|chain-of-custody|compliance|audit-trail|authority|credential|endorsement|certification|validation|manifest|checkpoint|gatekeeper|lifecycle-hook|on-enter|on-exit|canonical-locations|critical-invariants)\\b" - }, - "date": { - "name": "constant.other.date.a2ml", - "match": "\\b\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(Z|[+-]\\d{2}:?\\d{2})?)?\\b" - }, - "url": { - "name": "markup.underline.link.a2ml", - "match": "https?://[^\\s\"'>)\\]]+" - }, - "key-value": { - "name": "meta.key-value.a2ml", - "match": "^(\\s*[\\w][\\w\\-.]*)(:)\\s*(.*)", - "captures": { - "1": { "name": "entity.name.tag.key.a2ml" }, - "2": { "name": "punctuation.separator.key-value.a2ml" }, - "3": { - "patterns": [ - { "include": "#url" }, - { "include": "#date" }, - { "include": "#string-double" }, - { "include": "#string-single" }, - { "include": "#boolean" }, - { "include": "#number" }, - { - "name": "string.unquoted.value.a2ml", - "match": ".+" - } - ] - } - } - }, - "string-double": { - "name": "string.quoted.double.a2ml", - "begin": "\"", - "end": "\"", - "patterns": [ - { - "name": "constant.character.escape.a2ml", - "match": "\\\\." - } - ] - }, - "string-single": { - "name": "string.quoted.single.a2ml", - "begin": "'", - "end": "'", - "patterns": [ - { - "name": "constant.character.escape.a2ml", - "match": "\\\\." - } - ] - }, - "boolean": { - "name": "constant.language.boolean.a2ml", - "match": "\\b(true|false|yes|no)\\b" - }, - "number": { - "name": "constant.numeric.a2ml", - "match": "\\b\\d+(\\.\\d+)?\\b" - } - } -} diff --git a/a2ml/editors/vscode/verification/0.1-AI-MANIFEST.a2ml b/a2ml/editors/vscode/verification/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index 3435bdb41..000000000 --- a/a2ml/editors/vscode/verification/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "verification-pillar" -level: 1 -parent: "../0-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Primary verification pillar. Contains evidence for correctness, - performance, formal proofs, randomized testing, and aerospace-grade - high-assurance metrics (MC/DC coverage, traceability, safety cases). - -canonical_locations: - tests: "tests/" - benchmarks: "benchmarks/" - proofs: "proofs/" - fuzzing: "fuzzing/" - simulations: "simulations/" - coverage: "coverage/" - traceability: "traceability/" - safety_case: "safety_case/" - -invariants: - - "Evidence MUST be reproducible and documented" - - "High-assurance deployments MUST satisfy traceability and safety_case requirements" diff --git a/a2ml/editors/vscode/verification/README.adoc b/a2ml/editors/vscode/verification/README.adoc deleted file mode 100644 index f07e7f34b..000000000 --- a/a2ml/editors/vscode/verification/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Verification Pillar diff --git a/a2ml/editors/vscode/verification/benchmarks/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/verification/benchmarks/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index d922a4c74..000000000 --- a/a2ml/editors/vscode/verification/benchmarks/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "benches-pillar" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Benches pillar. diff --git a/a2ml/editors/vscode/verification/benchmarks/README.adoc b/a2ml/editors/vscode/verification/benchmarks/README.adoc deleted file mode 100644 index 5db764868..000000000 --- a/a2ml/editors/vscode/verification/benchmarks/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Benchmarks Unit diff --git a/a2ml/editors/vscode/verification/coverage/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/verification/coverage/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 32b819e4e..000000000 --- a/a2ml/editors/vscode/verification/coverage/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,12 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "verification-unit-coverage" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - High-assurance verification unit for coverage. - Critical for safety-of-life and aerospace-grade deployment standards. diff --git a/a2ml/editors/vscode/verification/coverage/README.adoc b/a2ml/editors/vscode/verification/coverage/README.adoc deleted file mode 100644 index 256695694..000000000 --- a/a2ml/editors/vscode/verification/coverage/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Coverage Unit diff --git a/a2ml/editors/vscode/verification/fuzzing/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/verification/fuzzing/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 5178d400e..000000000 --- a/a2ml/editors/vscode/verification/fuzzing/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "fuzzing-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Fuzzing unit for high-rigor verification. diff --git a/a2ml/editors/vscode/verification/fuzzing/README.adoc b/a2ml/editors/vscode/verification/fuzzing/README.adoc deleted file mode 100644 index edeb17929..000000000 --- a/a2ml/editors/vscode/verification/fuzzing/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Fuzzing Unit diff --git a/a2ml/editors/vscode/verification/proofs/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/verification/proofs/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 135e181bd..000000000 --- a/a2ml/editors/vscode/verification/proofs/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "verification-unit-proofs" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-unit focusing on proofs. diff --git a/a2ml/editors/vscode/verification/proofs/README.adoc b/a2ml/editors/vscode/verification/proofs/README.adoc deleted file mode 100644 index 1ae324d07..000000000 --- a/a2ml/editors/vscode/verification/proofs/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Proofs Unit diff --git a/a2ml/editors/vscode/verification/safety_case/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/verification/safety_case/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index d461915b8..000000000 --- a/a2ml/editors/vscode/verification/safety_case/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,12 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "verification-unit-safety_case" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - High-assurance verification unit for safety case. - Critical for safety-of-life and aerospace-grade deployment standards. diff --git a/a2ml/editors/vscode/verification/safety_case/README.adoc b/a2ml/editors/vscode/verification/safety_case/README.adoc deleted file mode 100644 index 47c8e3687..000000000 --- a/a2ml/editors/vscode/verification/safety_case/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Safety case Unit diff --git a/a2ml/editors/vscode/verification/simulations/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/verification/simulations/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index f890ecace..000000000 --- a/a2ml/editors/vscode/verification/simulations/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "simulations-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Simulations unit for high-rigor verification. diff --git a/a2ml/editors/vscode/verification/simulations/README.adoc b/a2ml/editors/vscode/verification/simulations/README.adoc deleted file mode 100644 index 8e1b13aa9..000000000 --- a/a2ml/editors/vscode/verification/simulations/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Simulations Unit diff --git a/a2ml/editors/vscode/verification/tests/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/verification/tests/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 0008fcfaf..000000000 --- a/a2ml/editors/vscode/verification/tests/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1 +0,0 @@ -# AI Manifest - Level 1: tests diff --git a/a2ml/editors/vscode/verification/tests/README.adoc b/a2ml/editors/vscode/verification/tests/README.adoc deleted file mode 100644 index 344bf862b..000000000 --- a/a2ml/editors/vscode/verification/tests/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Tests Unit diff --git a/a2ml/editors/vscode/verification/traceability/0.2-AI-MANIFEST.a2ml b/a2ml/editors/vscode/verification/traceability/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 966776651..000000000 --- a/a2ml/editors/vscode/verification/traceability/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,12 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "verification-unit-traceability" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - High-assurance verification unit for traceability. - Critical for safety-of-life and aerospace-grade deployment standards. diff --git a/a2ml/editors/vscode/verification/traceability/README.adoc b/a2ml/editors/vscode/verification/traceability/README.adoc deleted file mode 100644 index ff23dd759..000000000 --- a/a2ml/editors/vscode/verification/traceability/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Traceability Unit diff --git a/a2ml/examples/web-project-deno.json b/a2ml/examples/web-project-deno.json deleted file mode 100644 index 5ddd3bd7f..000000000 --- a/a2ml/examples/web-project-deno.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "// NOTE": "Example deno.json for ReScript web projects", - "tasks": { - "build": "deno run -A npm:rescript", - "clean": "deno run -A npm:rescript clean", - "watch": "deno run -A npm:rescript -w", - "serve": "deno run -A jsr:@std/http/file-server .", - "test": "deno test --allow-all" - }, - "imports": { - "rescript": "^12.0.0", - "@rescript/core": "npm:@rescript/core@^1.6.0", - "safe-dom/": "https://raw.githubusercontent.com/hyperpolymath/rescript-dom-mounter/main/src/", - "proven/": "../proven/bindings/rescript/src/" - }, - "compilerOptions": { - "allowJs": true, - "checkJs": false - } -} diff --git a/a2ml/ffi/zig/build.zig b/a2ml/ffi/zig/build.zig deleted file mode 100644 index 4a2e049a4..000000000 --- a/a2ml/ffi/zig/build.zig +++ /dev/null @@ -1,94 +0,0 @@ -// {{PROJECT}} FFI Build Configuration -// SPDX-License-Identifier: MPL-2.0 - -const std = @import("std"); - -pub fn build(b: *std.Build) void { - const target = b.standardTargetOptions(.{}); - const optimize = b.standardOptimizeOption(.{}); - - // Shared library (.so, .dylib, .dll) - const lib = b.addSharedLibrary(.{ - .name = "{{project}}", - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - }); - - // Set version - lib.version = .{ .major = 0, .minor = 1, .patch = 0 }; - - // Static library (.a) - const lib_static = b.addStaticLibrary(.{ - .name = "{{project}}", - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - }); - - // Install artifacts - b.installArtifact(lib); - b.installArtifact(lib_static); - - // Generate header file for C compatibility - const header = b.addInstallHeader( - b.path("include/{{project}}.h"), - "{{project}}.h", - ); - b.getInstallStep().dependOn(&header.step); - - // Unit tests - const lib_tests = b.addTest(.{ - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - }); - - const run_lib_tests = b.addRunArtifact(lib_tests); - - const test_step = b.step("test", "Run library tests"); - test_step.dependOn(&run_lib_tests.step); - - // Integration tests - const integration_tests = b.addTest(.{ - .root_source_file = b.path("test/integration_test.zig"), - .target = target, - .optimize = optimize, - }); - - integration_tests.linkLibrary(lib); - - const run_integration_tests = b.addRunArtifact(integration_tests); - - const integration_test_step = b.step("test-integration", "Run integration tests"); - integration_test_step.dependOn(&run_integration_tests.step); - - // Documentation - const docs = b.addTest(.{ - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = .Debug, - }); - - const docs_step = b.step("docs", "Generate documentation"); - docs_step.dependOn(&b.addInstallDirectory(.{ - .source_dir = docs.getEmittedDocs(), - .install_dir = .prefix, - .install_subdir = "docs", - }).step); - - // Benchmark (if needed) - const bench = b.addExecutable(.{ - .name = "{{project}}-bench", - .root_source_file = b.path("bench/bench.zig"), - .target = target, - .optimize = .ReleaseFast, - }); - - bench.linkLibrary(lib); - - const run_bench = b.addRunArtifact(bench); - - const bench_step = b.step("bench", "Run benchmarks"); - bench_step.dependOn(&run_bench.step); -} diff --git a/a2ml/ffi/zig/src/main.zig b/a2ml/ffi/zig/src/main.zig deleted file mode 100644 index 6b233bc79..000000000 --- a/a2ml/ffi/zig/src/main.zig +++ /dev/null @@ -1,274 +0,0 @@ -// {{PROJECT}} FFI Implementation -// -// This module implements the C-compatible FFI declared in src/abi/Foreign.idr -// All types and layouts must match the Idris2 ABI definitions. -// -// SPDX-License-Identifier: MPL-2.0 - -const std = @import("std"); - -// Version information (keep in sync with project) -const VERSION = "0.1.0"; -const BUILD_INFO = "{{PROJECT}} built with Zig " ++ @import("builtin").zig_version_string; - -/// Thread-local error storage -threadlocal var last_error: ?[]const u8 = null; - -/// Set the last error message -fn setError(msg: []const u8) void { - last_error = msg; -} - -/// Clear the last error -fn clearError() void { - last_error = null; -} - -//============================================================================== -// Core Types (must match src/abi/Types.idr) -//============================================================================== - -/// Result codes (must match Idris2 Result type) -pub const Result = enum(c_int) { - ok = 0, - @"error" = 1, - invalid_param = 2, - out_of_memory = 3, - null_pointer = 4, -}; - -/// Library handle (opaque to prevent direct access) -pub const Handle = opaque { - // Internal state hidden from C - allocator: std.mem.Allocator, - initialized: bool, - // Add your fields here -}; - -//============================================================================== -// Library Lifecycle -//============================================================================== - -/// Initialize the library -/// Returns a handle, or null on failure -export fn {{project}}_init() ?*Handle { - const allocator = std.heap.c_allocator; - - const handle = allocator.create(Handle) catch { - setError("Failed to allocate handle"); - return null; - }; - - // Initialize handle - handle.* = .{ - .allocator = allocator, - .initialized = true, - }; - - clearError(); - return handle; -} - -/// Free the library handle -export fn {{project}}_free(handle: ?*Handle) void { - const h = handle orelse return; - const allocator = h.allocator; - - // Clean up resources - h.initialized = false; - - allocator.destroy(h); - clearError(); -} - -//============================================================================== -// Core Operations -//============================================================================== - -/// Process data (example operation) -export fn {{project}}_process(handle: ?*Handle, input: u32) Result { - const h = handle orelse { - setError("Null handle"); - return .null_pointer; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return .@"error"; - } - - // Example processing logic - _ = input; - - clearError(); - return .ok; -} - -//============================================================================== -// String Operations -//============================================================================== - -/// Get a string result (example) -/// Caller must free the returned string -export fn {{project}}_get_string(handle: ?*Handle) ?[*:0]const u8 { - const h = handle orelse { - setError("Null handle"); - return null; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return null; - } - - // Example: allocate and return a string - const result = h.allocator.dupeZ(u8, "Example result") catch { - setError("Failed to allocate string"); - return null; - }; - - clearError(); - return result.ptr; -} - -/// Free a string allocated by the library -export fn {{project}}_free_string(str: ?[*:0]const u8) void { - const s = str orelse return; - const allocator = std.heap.c_allocator; - - const slice = std.mem.span(s); - allocator.free(slice); -} - -//============================================================================== -// Array/Buffer Operations -//============================================================================== - -/// Process an array of data -export fn {{project}}_process_array( - handle: ?*Handle, - buffer: ?[*]const u8, - len: u32, -) Result { - const h = handle orelse { - setError("Null handle"); - return .null_pointer; - }; - - const buf = buffer orelse { - setError("Null buffer"); - return .null_pointer; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return .@"error"; - } - - // Access the buffer - const data = buf[0..len]; - _ = data; - - // Process data here - - clearError(); - return .ok; -} - -//============================================================================== -// Error Handling -//============================================================================== - -/// Get the last error message -/// Returns null if no error -export fn {{project}}_last_error() ?[*:0]const u8 { - const err = last_error orelse return null; - - // Return C string (static storage, no need to free) - const allocator = std.heap.c_allocator; - const c_str = allocator.dupeZ(u8, err) catch return null; - return c_str.ptr; -} - -//============================================================================== -// Version Information -//============================================================================== - -/// Get the library version -export fn {{project}}_version() [*:0]const u8 { - return VERSION.ptr; -} - -/// Get build information -export fn {{project}}_build_info() [*:0]const u8 { - return BUILD_INFO.ptr; -} - -//============================================================================== -// Callback Support -//============================================================================== - -/// Callback function type (C ABI) -pub const Callback = *const fn (u64, u32) callconv(.C) u32; - -/// Register a callback -export fn {{project}}_register_callback( - handle: ?*Handle, - callback: ?Callback, -) Result { - const h = handle orelse { - setError("Null handle"); - return .null_pointer; - }; - - const cb = callback orelse { - setError("Null callback"); - return .null_pointer; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return .@"error"; - } - - // Store callback for later use - _ = cb; - - clearError(); - return .ok; -} - -//============================================================================== -// Utility Functions -//============================================================================== - -/// Check if handle is initialized -export fn {{project}}_is_initialized(handle: ?*Handle) u32 { - const h = handle orelse return 0; - return if (h.initialized) 1 else 0; -} - -//============================================================================== -// Tests -//============================================================================== - -test "lifecycle" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - try std.testing.expect({{project}}_is_initialized(handle) == 1); -} - -test "error handling" { - const result = {{project}}_process(null, 0); - try std.testing.expectEqual(Result.null_pointer, result); - - const err = {{project}}_last_error(); - try std.testing.expect(err != null); -} - -test "version" { - const ver = {{project}}_version(); - const ver_str = std.mem.span(ver); - try std.testing.expectEqualStrings(VERSION, ver_str); -} diff --git a/a2ml/ffi/zig/test/integration_test.zig b/a2ml/ffi/zig/test/integration_test.zig deleted file mode 100644 index 034199499..000000000 --- a/a2ml/ffi/zig/test/integration_test.zig +++ /dev/null @@ -1,182 +0,0 @@ -// {{PROJECT}} Integration Tests -// SPDX-License-Identifier: MPL-2.0 -// -// These tests verify that the Zig FFI correctly implements the Idris2 ABI - -const std = @import("std"); -const testing = std.testing; - -// Import FFI functions -extern fn {{project}}_init() ?*opaque {}; -extern fn {{project}}_free(?*opaque {}) void; -extern fn {{project}}_process(?*opaque {}, u32) c_int; -extern fn {{project}}_get_string(?*opaque {}) ?[*:0]const u8; -extern fn {{project}}_free_string(?[*:0]const u8) void; -extern fn {{project}}_last_error() ?[*:0]const u8; -extern fn {{project}}_version() [*:0]const u8; -extern fn {{project}}_is_initialized(?*opaque {}) u32; - -//============================================================================== -// Lifecycle Tests -//============================================================================== - -test "create and destroy handle" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - try testing.expect(handle != null); -} - -test "handle is initialized" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const initialized = {{project}}_is_initialized(handle); - try testing.expectEqual(@as(u32, 1), initialized); -} - -test "null handle is not initialized" { - const initialized = {{project}}_is_initialized(null); - try testing.expectEqual(@as(u32, 0), initialized); -} - -//============================================================================== -// Operation Tests -//============================================================================== - -test "process with valid handle" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const result = {{project}}_process(handle, 42); - try testing.expectEqual(@as(c_int, 0), result); // 0 = ok -} - -test "process with null handle returns error" { - const result = {{project}}_process(null, 42); - try testing.expectEqual(@as(c_int, 4), result); // 4 = null_pointer -} - -//============================================================================== -// String Tests -//============================================================================== - -test "get string result" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const str = {{project}}_get_string(handle); - defer if (str) |s| {{project}}_free_string(s); - - try testing.expect(str != null); -} - -test "get string with null handle" { - const str = {{project}}_get_string(null); - try testing.expect(str == null); -} - -//============================================================================== -// Error Handling Tests -//============================================================================== - -test "last error after null handle operation" { - _ = {{project}}_process(null, 0); - - const err = {{project}}_last_error(); - try testing.expect(err != null); - - if (err) |e| { - const err_str = std.mem.span(e); - try testing.expect(err_str.len > 0); - } -} - -test "no error after successful operation" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - _ = {{project}}_process(handle, 0); - - // Error should be cleared after successful operation - // (This depends on implementation) -} - -//============================================================================== -// Version Tests -//============================================================================== - -test "version string is not empty" { - const ver = {{project}}_version(); - const ver_str = std.mem.span(ver); - - try testing.expect(ver_str.len > 0); -} - -test "version string is semantic version format" { - const ver = {{project}}_version(); - const ver_str = std.mem.span(ver); - - // Should be in format X.Y.Z - try testing.expect(std.mem.count(u8, ver_str, ".") >= 1); -} - -//============================================================================== -// Memory Safety Tests -//============================================================================== - -test "multiple handles are independent" { - const h1 = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(h1); - - const h2 = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(h2); - - try testing.expect(h1 != h2); - - // Operations on h1 should not affect h2 - _ = {{project}}_process(h1, 1); - _ = {{project}}_process(h2, 2); -} - -test "double free is safe" { - const handle = {{project}}_init() orelse return error.InitFailed; - - {{project}}_free(handle); - {{project}}_free(handle); // Should not crash -} - -test "free null is safe" { - {{project}}_free(null); // Should not crash -} - -//============================================================================== -// Thread Safety Tests (if applicable) -//============================================================================== - -test "concurrent operations" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const ThreadContext = struct { - h: *opaque {}, - id: u32, - }; - - const thread_fn = struct { - fn run(ctx: ThreadContext) void { - _ = {{project}}_process(ctx.h, ctx.id); - } - }.run; - - var threads: [4]std.Thread = undefined; - for (&threads, 0..) |*thread, i| { - thread.* = try std.Thread.spawn(.{}, thread_fn, .{ - ThreadContext{ .h = handle, .id = @intCast(i) }, - }); - } - - for (threads) |thread| { - thread.join(); - } -} diff --git a/a2ml/humans.txt b/a2ml/humans.txt deleted file mode 100644 index 488b16cc3..000000000 --- a/a2ml/humans.txt +++ /dev/null @@ -1,40 +0,0 @@ -/* TEAM */ - -Developer: Jonathan D.A. Jewell -Site: https://jonathanjewell.dev -Location: United Kingdom -Email: j.d.a.jewell@open.ac.uk -GitHub: https://github.com/hyperpolymath -Keybase: https://keybase.io/hyperpolymath (coming soon) - -/* THANKS */ - -Claude Code (Anthropic) - Development assistance -GitHub - Hosting -Cloudflare - CDN & Security -Let's Encrypt - TLS Certificates - -/* SITE */ - -Last update: 2026/01/31 -Standards: HTML5, CSS3, JavaScript ES2024 -Components: ReScript, Deno, Rust -Security: TLS 1.3, HSTS, Consent-Aware HTTP -Languages: English -Doctype: HTML5 -IDE: Zed, Helix, VSCode - -/* REPOSITORY */ - -Repository: https://github.com/hyperpolymath/standards/tree/main/a2ml -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) -Documentation: CC-BY-SA-4.0 -Issues: https://github.com/hyperpolymath/standards/tree/main/a2ml/issues -Security: https://github.com/hyperpolymath/standards/tree/main/a2ml/security - -/* CONTACT */ - -General: info@a2ml.net -Security: security@a2ml.net -Privacy: privacy@a2ml.net -Support: support@a2ml.net diff --git a/a2ml/lsp/A2ML-LSP.adoc b/a2ml/lsp/A2ML-LSP.adoc deleted file mode 100644 index ddb344314..000000000 --- a/a2ml/lsp/A2ML-LSP.adoc +++ /dev/null @@ -1,569 +0,0 @@ -= A2ML Language Server Protocol (LSP) Implementation -:toc: preamble -:toclevels: 2 -:icons: font - -LSP server for A2ML editor integration with VS Code, Neovim, Emacs, and other LSP-compatible editors. - -== Overview - -The A2ML LSP server provides: - -- **Syntax highlighting** - A2ML-specific token types -- **Diagnostics** - Real-time validation errors -- **Auto-completion** - Directive and ID completion -- **Go-to-definition** - Jump to ID definitions -- **Find references** - Find all uses of an ID -- **Hover information** - Show ID/reference details -- **Document symbols** - Outline view -- **Code actions** - Quick fixes for common issues - -== Architecture - -[source] ----- -┌─────────────────┐ -│ Editor Client │ (VS Code, Neovim, etc.) -│ (JavaScript) │ -└────────┬────────┘ - │ LSP Protocol (JSON-RPC) - │ -┌────────▼────────┐ -│ A2ML LSP │ -│ Server │ -│ (Idris2) │ -└────────┬────────┘ - │ -┌────────▼────────┐ -│ A2ML Parser │ (A2ML.Parser) -│ + Validator │ (A2ML.Proofs) -└─────────────────┘ ----- - -== LSP Server Implementation - -=== Server Capabilities - -[source,json] ----- -{ - "capabilities": { - "textDocumentSync": { - "openClose": true, - "change": 2, // Incremental - "save": true - }, - "completionProvider": { - "resolveProvider": false, - "triggerCharacters": ["@", "#"] - }, - "hoverProvider": true, - "definitionProvider": true, - "referencesProvider": true, - "documentSymbolProvider": true, - "codeActionProvider": true, - "diagnosticProvider": { - "interFileDependencies": false, - "workspaceDiagnostics": false - } - } -} ----- - -=== Message Handlers - -==== textDocument/didOpen - -When a document is opened: - -1. Parse the document -2. Run validation -3. Send diagnostics - -[source,idris] ----- -handleDidOpen : TextDocumentItem -> IO () -handleDidOpen item = do - let content = item.text - case parseAndValidate content of - Right _ => - sendDiagnostics item.uri [] -- No errors - Left errors => - sendDiagnostics item.uri (map errorToDiagnostic errors) ----- - -==== textDocument/didChange - -When a document changes: - -1. Apply incremental changes -2. Reparse affected sections -3. Update diagnostics - -[source,idris] ----- -handleDidChange : VersionedTextDocumentIdentifier -> - List TextDocumentContentChangeEvent -> - IO () -handleDidChange docId changes = do - content <- applyChanges docId changes - -- Validate and send diagnostics - validateAndDiagnose docId.uri content ----- - -==== textDocument/completion - -Provide completions at cursor position: - -[source,idris] ----- -handleCompletion : TextDocumentPositionParams -> - IO (List CompletionItem) -handleCompletion params = do - let doc = getDocument params.textDocument.uri - let pos = params.position - - -- Check context - if isAfter "@" pos then - -- Directive completion - pure directiveCompletions - else if isAfter "#" pos then - -- Section ID completion (from document) - ids <- extractIds doc - pure (map idToCompletion ids) - else - pure [] - -directiveCompletions : List CompletionItem -directiveCompletions = [ - { label = "@abstract:", kind = Snippet }, - { label = "@refs:", kind = Snippet }, - { label = "@figure:", kind = Snippet }, - { label = "@table:", kind = Snippet }, - { label = "@opaque:", kind = Snippet }, - { label = "@end", kind = Keyword } -] ----- - -==== textDocument/hover - -Show information on hover: - -[source,idris] ----- -handleHover : TextDocumentPositionParams -> IO (Maybe Hover) -handleHover params = do - let doc = getDocument params.textDocument.uri - let word = getWordAtPosition doc params.position - - -- Check if word is an ID - ids <- extractIds doc - case find (\id => id.raw == word) ids of - Just id => do - refs <- findReferences doc id - let info = "ID: " ++ id.raw ++ "\n" ++ - "References: " ++ show (length refs) - pure (Just (Hover info)) - Nothing => pure Nothing ----- - -==== textDocument/definition - -Go to ID definition: - -[source,idris] ----- -handleDefinition : TextDocumentPositionParams -> - IO (Maybe Location) -handleDefinition params = do - let doc = getDocument params.textDocument.uri - let word = getWordAtPosition doc params.position - - -- Find definition location - case findIdDefinition doc word of - Just location => pure (Just location) - Nothing => pure Nothing ----- - -==== textDocument/references - -Find all references to an ID: - -[source,idris] ----- -handleReferences : ReferenceParams -> IO (List Location) -handleReferences params = do - let doc = getDocument params.textDocument.uri - let word = getWordAtPosition doc params.position - - -- Find all references - findAllReferences doc word ----- - -==== textDocument/codeAction - -Provide quick fixes: - -[source,idris] ----- -handleCodeAction : CodeActionParams -> IO (List CodeAction) -handleCodeAction params = do - let diagnostics = params.context.diagnostics - - concatMap diagnosticToAction diagnostics - where - diagnosticToAction : Diagnostic -> List CodeAction - diagnosticToAction diag = - case diag.code of - "unresolved-ref" => - [{ title = "Create missing section", - kind = QuickFix, - edit = createSectionEdit diag }] - "duplicate-id" => - [{ title = "Rename duplicate ID", - kind = QuickFix, - edit = renameIdEdit diag }] - _ => [] ----- - -=== Diagnostic Conversion - -Convert validation errors to LSP diagnostics: - -[source,idris] ----- -errorToDiagnostic : ValidationError -> Diagnostic -errorToDiagnostic (DuplicateId id) = - { range = findIdRange id, - severity = Error, - code = "duplicate-id", - source = "a2ml", - message = "Duplicate ID: " ++ id.raw } - -errorToDiagnostic (UnresolvedRef id) = - { range = findRefRange id, - severity = Error, - code = "unresolved-ref", - source = "a2ml", - message = "Unresolved reference: " ++ id.raw } - -errorToDiagnostic (MissingRequired msg) = - { range = defaultRange, - severity = Warning, - code = "missing-required", - source = "a2ml", - message = msg } ----- - -== Client Configuration - -=== VS Code Extension - -**package.json:** - -[source,json] ----- -{ - "name": "a2ml-vscode", - "displayName": "A2ML Language Support", - "version": "0.7.0", - "engines": { "vscode": "^1.70.0" }, - "categories": ["Programming Languages"], - "activationEvents": ["onLanguage:a2ml"], - "main": "./out/extension.js", - "contributes": { - "languages": [{ - "id": "a2ml", - "extensions": [".a2ml"], - "aliases": ["A2ML", "a2ml"], - "configuration": "./language-configuration.json" - }], - "grammars": [{ - "language": "a2ml", - "scopeName": "source.a2ml", - "path": "./syntaxes/a2ml.tmLanguage.json" - }], - "configuration": { - "type": "object", - "title": "A2ML", - "properties": { - "a2ml.server.path": { - "type": "string", - "default": "a2ml-lsp", - "description": "Path to A2ML LSP server" - }, - "a2ml.validation.strictMode": { - "type": "boolean", - "default": false, - "description": "Enable strict validation mode" - } - } - } - } -} ----- - -**extension.ts:** - -[source,typescript] ----- -import * as vscode from 'vscode'; -import { - LanguageClient, - LanguageClientOptions, - ServerOptions -} from 'vscode-languageclient/node'; - -let client: LanguageClient; - -export function activate(context: vscode.ExtensionContext) { - const serverPath = vscode.workspace - .getConfiguration('a2ml') - .get('server.path', 'a2ml-lsp'); - - const serverOptions: ServerOptions = { - command: serverPath, - args: ['--stdio'] - }; - - const clientOptions: LanguageClientOptions = { - documentSelector: [{ scheme: 'file', language: 'a2ml' }], - synchronize: { - fileEvents: vscode.workspace.createFileSystemWatcher('**/*.a2ml') - } - }; - - client = new LanguageClient( - 'a2ml', - 'A2ML Language Server', - serverOptions, - clientOptions - ); - - client.start(); -} - -export function deactivate(): Thenable | undefined { - return client ? client.stop() : undefined; -} ----- - -=== Neovim Configuration - -**init.lua:** - -[source,lua] ----- --- A2ML LSP configuration for Neovim - -local lspconfig = require('lspconfig') -local configs = require('lspconfig.configs') - --- Register A2ML LSP -if not configs.a2ml_lsp then - configs.a2ml_lsp = { - default_config = { - cmd = {'a2ml-lsp', '--stdio'}, - filetypes = {'a2ml'}, - root_dir = lspconfig.util.root_pattern('.git', '.a2ml-root'), - settings = { - a2ml = { - validation = { - strictMode = false - } - } - } - } - } -end - --- Enable A2ML LSP -lspconfig.a2ml_lsp.setup{ - on_attach = function(client, bufnr) - -- Keybindings - local opts = { noremap=true, silent=true, buffer=bufnr } - vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) - vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) - vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) - vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, opts) - end -} - --- Filetype detection -vim.filetype.add({ - extension = { - a2ml = 'a2ml' - } -}) ----- - -=== Emacs Configuration - -**a2ml-mode.el:** - -[source,elisp] ----- -;;; a2ml-mode.el --- Major mode for A2ML files - -(require 'lsp-mode) - -(defgroup a2ml nil - "A2ML language support." - :group 'languages) - -(defcustom a2ml-lsp-server-command '("a2ml-lsp" "--stdio") - "Command to start A2ML LSP server." - :type '(repeat string) - :group 'a2ml) - -(defvar a2ml-mode-syntax-table - (let ((table (make-syntax-table))) - (modify-syntax-entry ?# "<" table) - (modify-syntax-entry ?\n ">" table) - (modify-syntax-entry ?@ "'" table) - table)) - -(define-derived-mode a2ml-mode text-mode "A2ML" - "Major mode for editing A2ML files." - :syntax-table a2ml-mode-syntax-table - (setq-local comment-start "#") - (setq-local comment-end "")) - -;; LSP integration -(with-eval-after-load 'lsp-mode - (lsp-register-client - (make-lsp-client - :new-connection (lsp-stdio-connection a2ml-lsp-server-command) - :major-modes '(a2ml-mode) - :server-id 'a2ml-lsp))) - -(add-to-list 'auto-mode-alist '("\\.a2ml\\'" . a2ml-mode)) - -(provide 'a2ml-mode) ----- - -== Build and Deployment - -=== Building the LSP Server - -[source,bash] ----- -cd a2ml/lsp -idris2 --build a2ml-lsp.ipkg - -# Install -sudo cp build/exec/a2ml-lsp /usr/local/bin/ ----- - -=== Package Distribution - -**NPM (VS Code):** - -[source,bash] ----- -cd a2ml-vscode -npm install -npm run compile -vsce package ----- - -**GitHub Releases:** - -[source,bash] ----- -# Create release with binaries -gh release create v0.7.0 \ - --title "A2ML v0.7.0" \ - --notes "LSP server + CLI tools" \ - a2ml-lsp-linux-x64 \ - a2ml-lsp-macos-x64 \ - a2ml-lsp-windows-x64.exe ----- - -== Testing - -=== LSP Protocol Test - -[source,bash] ----- -# Test initialization -echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"capabilities":{}}}' | a2ml-lsp --stdio - -# Test document validation -echo '{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///test.a2ml","text":"# Test"}}}' | a2ml-lsp --stdio ----- - -=== Integration Test - -[source,typescript] ----- -import { suite, test } from 'mocha'; -import * as assert from 'assert'; -import { LanguageClient } from 'vscode-languageclient/node'; - -suite('A2ML LSP Tests', () => { - let client: LanguageClient; - - setup(async () => { - // Start LSP server - client = startLSPServer(); - await client.onReady(); - }); - - test('Validation errors', async () => { - const doc = '# Test\n@ref:missing'; - const diagnostics = await validate(client, doc); - assert.strictEqual(diagnostics.length, 1); - assert.strictEqual(diagnostics[0].code, 'unresolved-ref'); - }); - - test('Auto-completion', async () => { - const completions = await getCompletions(client, '@'); - assert.ok(completions.some(c => c.label === '@abstract:')); - }); -}); ----- - -== Status - -[cols="2,1,3"] -|=== -|Feature |Status |Notes - -|Diagnostics -|🟡 Partial -|Basic validation works - -|Auto-completion -|⏳ Planned -|Directive + ID completion - -|Go-to-definition -|⏳ Planned -|Jump to ID definitions - -|Find references -|⏳ Planned -|Find all ID uses - -|Hover info -|⏳ Planned -|Show ID details - -|Code actions -|⏳ Planned -|Quick fixes -|=== - -== Future Work - -1. **Incremental parsing** - Only reparse changed sections -2. **Workspace support** - Multi-file validation -3. **Refactoring** - Rename ID across references -4. **Snippets** - Common A2ML patterns -5. **Semantic tokens** - Better syntax highlighting - ---- - -**Created:** 2026-01-30 -**Author:** Jonathan D.A. Jewell diff --git a/a2ml/lsp/Cargo.lock b/a2ml/lsp/Cargo.lock deleted file mode 100644 index b7b897b94..000000000 --- a/a2ml/lsp/Cargo.lock +++ /dev/null @@ -1,920 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "a2ml-lsp" -version = "0.1.0" -dependencies = [ - "dashmap 6.1.0", - "regex", - "ropey", - "serde", - "serde_json", - "tokio", - "tower-lsp", -] - -[[package]] -name = "aho-corasick" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" -dependencies = [ - "memchr", -] - -[[package]] -name = "async-trait" -version = "0.1.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "auto_impl" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" - -[[package]] -name = "bytes" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" - -[[package]] -name = "cfg-if" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "dashmap" -version = "5.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" -dependencies = [ - "cfg-if", - "hashbrown", - "lock_api", - "once_cell", - "parking_lot_core", -] - -[[package]] -name = "dashmap" -version = "6.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" -dependencies = [ - "cfg-if", - "crossbeam-utils", - "hashbrown", - "lock_api", - "once_cell", - "parking_lot_core", -] - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "errno" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" -dependencies = [ - "libc", - "windows-sys", -] - -[[package]] -name = "form_urlencoded" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" - -[[package]] -name = "futures-io" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" - -[[package]] -name = "futures-macro" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-sink" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" - -[[package]] -name = "futures-task" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" - -[[package]] -name = "futures-util" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "slab", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" - -[[package]] -name = "httparse" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" - -[[package]] -name = "icu_collections" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" -dependencies = [ - "displaydoc", - "potential_utf", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locale_core" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_normalizer" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" -dependencies = [ - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" - -[[package]] -name = "icu_properties" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" -dependencies = [ - "icu_collections", - "icu_locale_core", - "icu_properties_data", - "icu_provider", - "zerotrie", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" - -[[package]] -name = "icu_provider" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" -dependencies = [ - "displaydoc", - "icu_locale_core", - "writeable", - "yoke", - "zerofrom", - "zerotrie", - "zerovec", -] - -[[package]] -name = "idna" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "itoa" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" - -[[package]] -name = "libc" -version = "0.2.183" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" - -[[package]] -name = "litemap" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" - -[[package]] -name = "lock_api" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "lsp-types" -version = "0.94.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66bfd44a06ae10647fe3f8214762e9369fd4248df1350924b4ef9e770a85ea1" -dependencies = [ - "bitflags 1.3.2", - "serde", - "serde_json", - "serde_repr", - "url", -] - -[[package]] -name = "memchr" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" - -[[package]] -name = "mio" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" -dependencies = [ - "libc", - "wasi", - "windows-sys", -] - -[[package]] -name = "once_cell" -version = "1.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" - -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-link", -] - -[[package]] -name = "percent-encoding" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" - -[[package]] -name = "pin-project" -version = "1.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" - -[[package]] -name = "potential_utf" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" -dependencies = [ - "zerovec", -] - -[[package]] -name = "proc-macro2" -version = "1.0.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags 2.11.0", -] - -[[package]] -name = "regex" -version = "1.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" - -[[package]] -name = "ropey" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93411e420bcd1a75ddd1dc3caf18c23155eda2c090631a85af21ba19e97093b5" -dependencies = [ - "smallvec", - "str_indices", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "serde" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" -dependencies = [ - "serde_core", - "serde_derive", -] - -[[package]] -name = "serde_core" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.149" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" -dependencies = [ - "itoa", - "memchr", - "serde", - "serde_core", - "zmij", -] - -[[package]] -name = "serde_repr" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" -dependencies = [ - "errno", - "libc", -] - -[[package]] -name = "slab" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" - -[[package]] -name = "smallvec" -version = "1.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" - -[[package]] -name = "socket2" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" -dependencies = [ - "libc", - "windows-sys", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" - -[[package]] -name = "str_indices" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d08889ec5408683408db66ad89e0e1f93dff55c73a4ccc71c427d5b277ee47e6" - -[[package]] -name = "syn" -version = "2.0.117" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tinystr" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" -dependencies = [ - "bytes", - "libc", - "mio", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "windows-sys", -] - -[[package]] -name = "tokio-macros" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tokio-util" -version = "0.7.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-lsp" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4ba052b54a6627628d9b3c34c176e7eda8359b7da9acd497b9f20998d118508" -dependencies = [ - "async-trait", - "auto_impl", - "bytes", - "dashmap 5.5.3", - "futures", - "httparse", - "lsp-types", - "memchr", - "serde", - "serde_json", - "tokio", - "tokio-util", - "tower", - "tower-lsp-macros", - "tracing", -] - -[[package]] -name = "tower-lsp-macros" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84fd902d4e0b9a4b27f2f440108dc034e1758628a9b702f8ec61ad66355422fa" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" -dependencies = [ - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tracing-core" -version = "0.1.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" -dependencies = [ - "once_cell", -] - -[[package]] -name = "unicode-ident" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" - -[[package]] -name = "url" -version = "2.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", - "serde_derive", -] - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" - -[[package]] -name = "windows-link" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" - -[[package]] -name = "windows-sys" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" -dependencies = [ - "windows-link", -] - -[[package]] -name = "writeable" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" - -[[package]] -name = "yoke" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" -dependencies = [ - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerotrie" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - -[[package]] -name = "zerovec" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "zmij" -version = "1.0.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/a2ml/lsp/Cargo.toml b/a2ml/lsp/Cargo.toml deleted file mode 100644 index 1eb1474ad..000000000 --- a/a2ml/lsp/Cargo.toml +++ /dev/null @@ -1,30 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# -# A2ML Language Server — LSP server for A2ML (Attested Markup Language). -# Provides diagnostics, completions, and hover for .a2ml files. - -[package] -name = "a2ml-lsp" -version = "0.1.0" -edition = "2021" -authors = ["Jonathan D.A. Jewell "] -license = "AGPL-3.0-or-later" -description = "Language Server Protocol implementation for A2ML" -repository = "https://github.com/hyperpolymath/standards" -homepage = "https://github.com/hyperpolymath/standards/tree/main/a2ml/lsp" -readme = "README.adoc" -keywords = ["a2ml", "lsp", "language-server"] -categories = ["development-tools", "text-editors"] - -[[bin]] -name = "a2ml-lsp" -path = "src/main.rs" - -[dependencies] -tower-lsp = "0.20" -tokio = { version = "1", features = ["full"] } -serde = { version = "1", features = ["derive"] } -serde_json = "1" -regex = "1" -dashmap = "6" -ropey = "1" diff --git a/a2ml/lsp/README.adoc b/a2ml/lsp/README.adoc deleted file mode 100644 index 3e2b9eea6..000000000 --- a/a2ml/lsp/README.adoc +++ /dev/null @@ -1,159 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML LSP Server -:toc: preamble -:toclevels: 2 -:icons: font - -Language Server Protocol implementation for A2ML (Attested Markup Language), -written in Rust using the `tower-lsp` framework. - -== Features - -=== Diagnostics (linting) - -[cols="1,1,3"] -|=== -|Code |Severity |Description - -|`missing-spdx` -|Warning -|Missing `SPDX-License-Identifier:` header in the first 5 lines - -|`unclosed-directive` -|Error -|`@directive:` block without a matching `@end` - -|`mismatched-end` -|Error -|`@end` without a matching `@directive:` opener - -|`unresolved-ref` -|Warning -|`@ref(target)` where `target` has no `id="target"` in the document - -|`missing-metadata-field` -|Info -|`[metadata]` section missing a required field (`project`, `version`, `status`) - -|`duplicate-heading` -|Warning -|Two headings with the same level and text - -|`malformed-kv` -|Error -|Line inside a `[section]` without a `key = value` structure - -|`unclosed-quote` -|Error -|Unclosed `"` or `'` in a key-value line - -|`unknown-section` -|Info -|`[section]` header not in the known section catalogue -|=== - -=== Completions - -Triggered by `@` and `[`: - -* **Directive names** — after `@`: `@abstract`, `@opaque`, `@fig`, `@ref`, etc. - with snippet insert text and documentation. -* **Section headers** — after `[`: `[metadata]`, `[project-context]`, etc. -* **Key names** — on a new line inside a `[section]` block (e.g. `project`, - `version`, `status` inside `[metadata]`). -* **`@ref()` targets** — inside `@ref(`: completes from declared `id="…"` - attributes in the current document. - -=== Hover - -* **Directive documentation** — hover over `@abstract`, `@opaque`, etc. to see - spec-derived docs with examples. -* **Section schema** — hover over `[metadata]`, `[dependencies]`, etc. to see - required/optional fields. - -== Building - -Requires Rust 1.70+ (stable). - -[source,bash] ----- -cd a2ml/lsp -cargo build --release ----- - -The binary is produced at `target/release/a2ml-lsp`. - -== Running - -The server communicates over stdio (JSON-RPC): - -[source,bash] ----- -a2ml-lsp --stdio ----- - -Or simply launch it — the server reads from stdin and writes to stdout by -default. - -== Editor Integration - -=== VS Code - -See the VS Code extension at link:../editors/vscode/[editors/vscode/]. Point -the `a2ml.server.path` setting to the `a2ml-lsp` binary. - -=== Neovim (nvim-lspconfig) - -[source,lua] ----- -local lspconfig = require('lspconfig') -local configs = require('lspconfig.configs') - -if not configs.a2ml_lsp then - configs.a2ml_lsp = { - default_config = { - cmd = {'a2ml-lsp'}, - filetypes = {'a2ml'}, - root_dir = lspconfig.util.root_pattern('.git'), - } - } -end - -lspconfig.a2ml_lsp.setup{} ----- - -=== Emacs (lsp-mode / eglot) - -[source,elisp] ----- -(with-eval-after-load 'lsp-mode - (lsp-register-client - (make-lsp-client - :new-connection (lsp-stdio-connection '("a2ml-lsp")) - :major-modes '(a2ml-mode) - :server-id 'a2ml-lsp))) ----- - -== Related Resources - -* **A2ML Specification (draft):** link:../SPEC.a2ml[SPEC.a2ml] -* **A2ML Specification v1.0:** link:../SPEC-v1.0.adoc[SPEC-v1.0.adoc] -* **AsciiDoc spec:** link:../SPEC.adoc[SPEC.adoc] -* **Pandoc adapters:** link:../pandoc/README.adoc[pandoc/README.adoc] -* **TextMate grammar:** link:../editors/a2ml.tmLanguage.json[editors/a2ml.tmLanguage.json] -* **VS Code extension:** link:../editors/vscode/[editors/vscode/] -* **Design document:** link:A2ML-LSP.adoc[A2ML-LSP.adoc] (original Idris2 design) - -== Testing - -[source,bash] ----- -cd a2ml/lsp -cargo test ----- - -== License - -PMPL-1.0-or-later - -Author: Jonathan D.A. Jewell diff --git a/a2ml/lsp/src/completions.rs b/a2ml/lsp/src/completions.rs deleted file mode 100644 index d7197e087..000000000 --- a/a2ml/lsp/src/completions.rs +++ /dev/null @@ -1,313 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// -// a2ml-lsp — Completion provider for A2ML documents. -// -// Provides context-aware completions: -// 1. Directive names after `@` -// 2. Section headers after `[` -// 3. Known key names inside a [section] -// 4. `@ref()` targets from declared IDs in the document -// -// Author: Jonathan D.A. Jewell - -use std::sync::LazyLock; -use regex::Regex; -use tower_lsp::lsp_types::*; - -// Literal patterns, compiled once. -// -// These were built by calling Regex::new on a literal and unwrapping the -// result, inside the functions below. -// An LSP recompiles those on EVERY request — every keystroke, for -// completions and diagnostics — and `unwrap` panics the handler task if a -// literal is ever malformed. `LazyLock` compiles each pattern once, and -// `expect` states the invariant: the pattern is a compile-time constant, so -// a failure is a programming error rather than a runtime condition. -static REF_RE: LazyLock = - LazyLock::new(|| Regex::new(r"@ref\(([^)]*)$").expect("REF_RE is a valid literal pattern")); - -static ID_RE: LazyLock = - LazyLock::new(|| Regex::new(r#"id\s*=\s*"([^"]+)""#).expect("ID_RE is a valid literal pattern")); - -static SECTION_RE: LazyLock = - LazyLock::new(|| Regex::new(r"^\[([A-Za-z][A-Za-z0-9_-]*)\]\s*$").expect("SECTION_RE is a valid literal pattern")); - - -// ── Directive catalogue ────────────────────────────────────────────── - -/// A2ML directive with its name, brief description, and snippet insert text. -struct DirectiveInfo { - name: &'static str, - detail: &'static str, - snippet: &'static str, -} - -/// All core directives from the A2ML v0/v1 spec. -const DIRECTIVES: &[DirectiveInfo] = &[ - DirectiveInfo { - name: "abstract", - detail: "Declares the abstract / summary section", - snippet: "abstract:\n$0\n@end", - }, - DirectiveInfo { - name: "opaque", - detail: "Byte-for-byte preserved payload block", - snippet: "opaque(lang=\"${1:text}\", id=\"${2:id}\"):\n$0\n@end", - }, - DirectiveInfo { - name: "fig", - detail: "Figure block with caption and optional ID", - snippet: "fig(id=\"${1:fig-id}\"):\n$0\n@end", - }, - DirectiveInfo { - name: "table", - detail: "Table block with caption and optional ID", - snippet: "table(id=\"${1:table-id}\"):\n$0\n@end", - }, - DirectiveInfo { - name: "refs", - detail: "References / bibliography section", - snippet: "refs:\n$0\n@end", - }, - DirectiveInfo { - name: "requires", - detail: "Declares structural dependencies for attested mode", - snippet: "requires:\n$0\n@end", - }, - DirectiveInfo { - name: "include", - detail: "Include content from another A2ML file", - snippet: "include(\"${1:path.a2ml}\")", - }, - DirectiveInfo { - name: "ref", - detail: "Inline reference to a declared ID", - snippet: "ref(${1:target-id})", - }, - DirectiveInfo { - name: "meta", - detail: "Metadata directive block", - snippet: "meta:\n$0\n@end", - }, - DirectiveInfo { - name: "note", - detail: "Admonition: informational note", - snippet: "note:\n$0\n@end", - }, - DirectiveInfo { - name: "warning", - detail: "Admonition: warning callout", - snippet: "warning:\n$0\n@end", - }, - DirectiveInfo { - name: "example", - detail: "Example block", - snippet: "example:\n$0\n@end", - }, - DirectiveInfo { - name: "quote", - detail: "Block quotation", - snippet: "quote:\n$0\n@end", - }, - DirectiveInfo { - name: "end", - detail: "Closes the current directive block", - snippet: "end", - }, -]; - -// ── Section catalogue ──────────────────────────────────────────────── - -/// Section name and its purpose (for checkpoint / metadata files). -struct SectionInfo { - name: &'static str, - detail: &'static str, -} - -/// Known [section] header names used in A2ML checkpoint files. -const SECTIONS: &[SectionInfo] = &[ - SectionInfo { name: "metadata", detail: "Document metadata (project, version, status)" }, - SectionInfo { name: "project-context", detail: "Project background and goals" }, - SectionInfo { name: "dependencies", detail: "External and internal dependencies" }, - SectionInfo { name: "current-position", detail: "Where the project is right now" }, - SectionInfo { name: "route-to-mvp", detail: "Steps remaining to reach MVP" }, - SectionInfo { name: "blockers-and-issues", detail: "Active blockers and known issues" }, - SectionInfo { name: "critical-next-actions", detail: "Immediate action items" }, - SectionInfo { name: "session-history", detail: "Timestamped log of work sessions" }, - SectionInfo { name: "architecture-decisions", detail: "Architecture Decision Records (ADRs)" }, - SectionInfo { name: "development-practices", detail: "Coding standards and workflow conventions" }, - SectionInfo { name: "design-rationale", detail: "Why decisions were made the way they were" }, - SectionInfo { name: "ecosystem", detail: "Ecosystem position and relationships" }, - SectionInfo { name: "related-projects", detail: "Sibling / upstream / downstream projects" }, - SectionInfo { name: "position-in-ecosystem", detail: "Where this project fits in the larger picture" }, - SectionInfo { name: "agentic", detail: "AI agent interaction patterns" }, - SectionInfo { name: "neurosym", detail: "Neurosymbolic integration configuration" }, - SectionInfo { name: "playbook", detail: "Operational runbook and procedures" }, -]; - -/// Known keys inside a [metadata] section. -const METADATA_KEYS: &[(&str, &str)] = &[ - ("project", "Project name"), - ("version", "Semantic version string"), - ("status", "Project status (active, paused, archived, …)"), - ("author", "Primary author"), - ("license", "SPDX license identifier"), - ("created", "Creation date (ISO 8601)"), - ("updated", "Last update date (ISO 8601)"), - ("description", "One-line description"), -]; - -// ── Public entry point ─────────────────────────────────────────────── - -/// Produce completion items given the full document `text` and the cursor -/// `position`. -/// -/// Dispatches to the appropriate sub-provider based on what the cursor line -/// looks like at the given column. -pub fn provide_completions(text: &str, position: Position) -> Vec { - let lines: Vec<&str> = text.lines().collect(); - let line_idx = position.line as usize; - - // Guard: cursor beyond document range. - if line_idx >= lines.len() { - return vec![]; - } - - let line = lines[line_idx]; - let col = position.character as usize; - let prefix = if col <= line.len() { &line[..col] } else { line }; - - // 1. After `@` → directive completions. - if let Some(at_pos) = prefix.rfind('@') { - let after_at = &prefix[at_pos + 1..]; - // Only trigger when the text after @ looks like the start of a name. - if after_at.chars().all(|c| c.is_alphanumeric() || c == '_' || c == '-') { - return directive_completions(after_at); - } - } - - // 2. After `[` at the start of a line → section header completions. - let trimmed = prefix.trim_start(); - if trimmed.starts_with('[') && !trimmed.contains(']') { - let after_bracket = &trimmed[1..]; - return section_completions(after_bracket); - } - - // 3. Inside a [section], beginning of a new line → key completions. - if trimmed.is_empty() || (!trimmed.contains('=') && !trimmed.starts_with('#') && !trimmed.starts_with('@')) { - if let Some(section) = find_enclosing_section(&lines, line_idx) { - return key_completions(§ion, trimmed); - } - } - - // 4. Inside `@ref(` → ID completions. - if prefix.contains("@ref(") { - let ref_re = &*REF_RE; - if let Some(caps) = ref_re.captures(prefix) { - let Some(partial) = caps.get(1).map(|m| m.as_str()) else { - return Vec::new(); - }; - return ref_target_completions(text, partial); - } - } - - vec![] -} - -// ── Sub-providers ──────────────────────────────────────────────────── - -/// Directive name completions filtered by the partial text after `@`. -fn directive_completions(partial: &str) -> Vec { - DIRECTIVES - .iter() - .filter(|d| d.name.starts_with(partial)) - .map(|d| CompletionItem { - label: format!("@{}", d.name), - kind: Some(CompletionItemKind::KEYWORD), - detail: Some(d.detail.to_string()), - insert_text: Some(d.snippet.to_string()), - insert_text_format: Some(InsertTextFormat::SNIPPET), - ..Default::default() - }) - .collect() -} - -/// Section header completions filtered by the partial text after `[`. -fn section_completions(partial: &str) -> Vec { - SECTIONS - .iter() - .filter(|s| s.name.starts_with(partial)) - .map(|s| CompletionItem { - label: format!("[{}]", s.name), - kind: Some(CompletionItemKind::MODULE), - detail: Some(s.detail.to_string()), - insert_text: Some(format!("{}]", s.name)), - insert_text_format: Some(InsertTextFormat::PLAIN_TEXT), - ..Default::default() - }) - .collect() -} - -/// Key name completions inside a section block. -fn key_completions(section_name: &str, partial: &str) -> Vec { - let keys: &[(&str, &str)] = match section_name { - "metadata" => METADATA_KEYS, - // Other sections could have their own key catalogues in future. - _ => return vec![], - }; - - keys.iter() - .filter(|(k, _)| k.starts_with(partial)) - .map(|(k, desc)| CompletionItem { - label: k.to_string(), - kind: Some(CompletionItemKind::PROPERTY), - detail: Some(desc.to_string()), - insert_text: Some(format!("{} = \"$1\"", k)), - insert_text_format: Some(InsertTextFormat::SNIPPET), - ..Default::default() - }) - .collect() -} - -/// `@ref()` target completions from IDs declared in the document. -fn ref_target_completions(text: &str, partial: &str) -> Vec { - let id_re = &*ID_RE; - id_re - .captures_iter(text) - // filter_map, not map: a capture that did not participate is skipped - // rather than panicking the completion handler. - .filter_map(|cap| cap.get(1).map(|m| m.as_str().to_string())) - .filter(|id| id.starts_with(partial)) - .map(|id| CompletionItem { - label: id.clone(), - kind: Some(CompletionItemKind::REFERENCE), - detail: Some("Document ID".to_string()), - insert_text: Some(id), - insert_text_format: Some(InsertTextFormat::PLAIN_TEXT), - ..Default::default() - }) - .collect() -} - -// ── Helpers ────────────────────────────────────────────────────────── - -/// Walk backwards from `line_idx` to find the nearest `[section]` header. -/// -/// Returns `None` if the cursor is not inside a section block. -fn find_enclosing_section(lines: &[&str], line_idx: usize) -> Option { - let section_re = &*SECTION_RE; - for i in (0..line_idx).rev() { - let trimmed = lines[i].trim(); - - // Stop if we hit a heading or directive — we've left any section scope. - if trimmed.starts_with('#') || trimmed.starts_with('@') { - return None; - } - - if let Some(caps) = section_re.captures(trimmed) { - return caps.get(1).map(|m| m.as_str().to_string()); - } - } - - None -} diff --git a/a2ml/lsp/src/diagnostics.rs b/a2ml/lsp/src/diagnostics.rs deleted file mode 100644 index d03dd348f..000000000 --- a/a2ml/lsp/src/diagnostics.rs +++ /dev/null @@ -1,567 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// -// a2ml-lsp — Diagnostic checks for A2ML documents. -// -// Each public function in this module inspects the document text and returns a -// Vec. `run_all_checks` composes them into a single pass. -// -// Checks implemented: -// 1. Missing SPDX header → Warning -// 2. Unclosed @directive…@end blocks → Error -// 3. Mismatched directive nesting → Error -// 4. Invalid @ref() targets → Warning -// 5. Missing required metadata fields → Info -// 6. Duplicate section headers → Warning -// 7. Malformed key = "value" lines → Error -// 8. TOML-like [section] validation → Info -// -// Author: Jonathan D.A. Jewell - -use std::sync::LazyLock; -use regex::Regex; -use tower_lsp::lsp_types::*; - -// Literal patterns, compiled once. -// -// These were built by calling Regex::new on a literal and unwrapping the -// result, inside the functions below. -// An LSP recompiles those on EVERY request — every keystroke, for -// completions and diagnostics — and `unwrap` panics the handler task if a -// literal is ever malformed. `LazyLock` compiles each pattern once, and -// `expect` states the invariant: the pattern is a compile-time constant, so -// a failure is a programming error rather than a runtime condition. -static OPEN_RE: LazyLock = - LazyLock::new(|| Regex::new(r"^@([A-Za-z][A-Za-z0-9_-]*)(?:\([^)]*\))?:\s*$").expect("OPEN_RE is a valid literal pattern")); - -static CLOSE_RE: LazyLock = - LazyLock::new(|| Regex::new(r"^@end\s*$").expect("CLOSE_RE is a valid literal pattern")); - -static ID_RE: LazyLock = - LazyLock::new(|| Regex::new(r#"id\s*=\s*"([^"]+)""#).expect("ID_RE is a valid literal pattern")); - -static REF_RE: LazyLock = - LazyLock::new(|| Regex::new(r"@ref\(([^)]+)\)").expect("REF_RE is a valid literal pattern")); - -static HEADING_RE: LazyLock = - LazyLock::new(|| Regex::new(r"^(#{1,5})\s+(.+)$").expect("HEADING_RE is a valid literal pattern")); - -static SECTION_RE: LazyLock = - LazyLock::new(|| Regex::new(r"^\[([A-Za-z][A-Za-z0-9_-]*)\]\s*$").expect("SECTION_RE is a valid literal pattern")); - - -// ── Known values ───────────────────────────────────────────────────── - -/// Core A2ML directive names recognised by the spec (v0 + v1). -/// -/// Used by `check_unclosed_directives` to distinguish known directives from -/// user-defined ones (future: emit a hint for unrecognised directive names). -#[allow(dead_code)] -const KNOWN_DIRECTIVES: &[&str] = &[ - "abstract", "opaque", "fig", "table", "refs", "requires", "include", - "ref", "meta", "note", "warning", "example", "quote", -]; - -/// Section header names commonly found in A2ML checkpoint / metadata files. -const KNOWN_SECTIONS: &[&str] = &[ - "metadata", "project-context", "dependencies", "current-position", - "route-to-mvp", "blockers-and-issues", "critical-next-actions", - "session-history", "architecture-decisions", "development-practices", - "design-rationale", "ecosystem", "related-projects", "position-in-ecosystem", - "agentic", "neurosym", "playbook", -]; - -/// Required metadata keys for checkpoint-style A2ML files. -const REQUIRED_METADATA_KEYS: &[&str] = &["project", "version", "status"]; - -// ── Public entry point ─────────────────────────────────────────────── - -/// Run every diagnostic check against `text` and return a merged list. -/// -/// Each check is independent; we concatenate their results so the editor -/// receives them all at once. -pub fn run_all_checks(text: &str) -> Vec { - let mut diags = Vec::new(); - - diags.extend(check_spdx_header(text)); - diags.extend(check_unclosed_directives(text)); - diags.extend(check_invalid_refs(text)); - diags.extend(check_required_metadata(text)); - diags.extend(check_duplicate_sections(text)); - diags.extend(check_malformed_kv_lines(text)); - diags.extend(check_toml_sections(text)); - - diags -} - -// ── Individual checks ──────────────────────────────────────────────── - -/// 1. Missing SPDX header. -/// -/// Warns when the first non-blank, non-comment line of the document does not -/// contain an `SPDX-License-Identifier:` string. -fn check_spdx_header(text: &str) -> Vec { - // Look for SPDX anywhere in the first 5 lines (comments, blank lines OK). - let has_spdx = text - .lines() - .take(5) - .any(|line| line.contains("SPDX-License-Identifier:")); - - if has_spdx { - return vec![]; - } - - vec![Diagnostic { - range: Range::new(Position::new(0, 0), Position::new(0, 1)), - severity: Some(DiagnosticSeverity::WARNING), - code: Some(NumberOrString::String("missing-spdx".into())), - source: Some("a2ml".into()), - message: "Missing SPDX-License-Identifier header in the first 5 lines".into(), - ..Default::default() - }] -} - -/// 2 + 3. Unclosed and mis-nested `@directive:` … `@end` blocks. -/// -/// We maintain a simple stack of open directives. An `@end` pops the stack; -/// reaching EOF with a non-empty stack means unclosed directives. -fn check_unclosed_directives(text: &str) -> Vec { - let mut diags = Vec::new(); - - // Regex for `@name:` or `@name(…):` at the start of a line. - let open_re = &*OPEN_RE; - let close_re = &*CLOSE_RE; - /// A directive that we opened but haven't yet closed. - struct OpenDirective { - name: String, - line: u32, - } - - let mut stack: Vec = Vec::new(); - - for (line_idx, line) in text.lines().enumerate() { - let trimmed = line.trim(); - - if let Some(caps) = open_re.captures(trimmed) { - let Some(name) = caps.get(1).map(|m| m.as_str().to_string()) else { - continue; - }; - stack.push(OpenDirective { - name, - line: line_idx as u32, - }); - } else if close_re.is_match(trimmed) { - if stack.is_empty() { - // @end without a matching opener → mismatch error. - diags.push(Diagnostic { - range: line_range(line_idx as u32, line), - severity: Some(DiagnosticSeverity::ERROR), - code: Some(NumberOrString::String("mismatched-end".into())), - source: Some("a2ml".into()), - message: "@end without a matching @directive: opener".into(), - ..Default::default() - }); - } else { - stack.pop(); - } - } - } - - // Anything left on the stack is unclosed. - for open in &stack { - diags.push(Diagnostic { - range: Range::new( - Position::new(open.line, 0), - Position::new(open.line, open.name.len() as u32 + 2), - ), - severity: Some(DiagnosticSeverity::ERROR), - code: Some(NumberOrString::String("unclosed-directive".into())), - source: Some("a2ml".into()), - message: format!("Unclosed directive @{}: — missing @end", open.name), - ..Default::default() - }); - } - - diags -} - -/// 4. Invalid `@ref()` targets. -/// -/// Collects every ID declared via `id="…"` attributes or headings, then checks -/// that every `@ref(target)` points to a known ID. -fn check_invalid_refs(text: &str) -> Vec { - let mut diags = Vec::new(); - - // Collect declared IDs. - // - Directive attributes: id="some-id" - // - Heading-derived slugs are out of scope for now; we only check explicit - // `id=` attributes and opaque(id="…") forms. - let id_re = &*ID_RE; - let declared_ids: Vec = id_re - .captures_iter(text) - // filter_map, not map: a capture that did not participate is skipped - // rather than panicking the diagnostics pass. - .filter_map(|cap| cap.get(1).map(|m| m.as_str().to_string())) - .collect(); - - // Find all @ref(…) invocations. - let ref_re = &*REF_RE; - for (line_idx, line) in text.lines().enumerate() { - for cap in ref_re.captures_iter(line) { - let (Some(t), Some(whole)) = (cap.get(1), cap.get(0)) else { - continue; - }; - let target = t.as_str(); - let start_col = whole.start() as u32; - let end_col = whole.end() as u32; - - if !declared_ids.iter().any(|id| id == target) { - diags.push(Diagnostic { - range: Range::new( - Position::new(line_idx as u32, start_col), - Position::new(line_idx as u32, end_col), - ), - severity: Some(DiagnosticSeverity::WARNING), - code: Some(NumberOrString::String("unresolved-ref".into())), - source: Some("a2ml".into()), - message: format!( - "Unresolved reference @ref({}) — no id=\"{}\" found in document", - target, target - ), - ..Default::default() - }); - } - } - } - - diags -} - -/// 5. Missing required metadata fields in checkpoint-style files. -/// -/// If the document contains a `[metadata]` section, we expect to find -/// `project`, `version`, and `status` keys within it. -fn check_required_metadata(text: &str) -> Vec { - let mut diags = Vec::new(); - - // Find the [metadata] section. - let mut in_metadata = false; - let mut metadata_line: u32 = 0; - let mut found_keys: Vec = Vec::new(); - - for (line_idx, line) in text.lines().enumerate() { - let trimmed = line.trim(); - - if trimmed == "[metadata]" { - in_metadata = true; - metadata_line = line_idx as u32; - continue; - } - - // Another section header ends [metadata]. - if in_metadata && trimmed.starts_with('[') && trimmed.ends_with(']') { - break; - } - - if in_metadata { - // Extract key from `key = …` lines. - if let Some(eq_pos) = trimmed.find('=') { - let key = trimmed[..eq_pos].trim().to_string(); - if !key.is_empty() { - found_keys.push(key); - } - } - } - } - - // Only emit diagnostics if [metadata] was found at all. - if in_metadata { - for &required in REQUIRED_METADATA_KEYS { - if !found_keys.iter().any(|k| k == required) { - diags.push(Diagnostic { - range: Range::new( - Position::new(metadata_line, 0), - Position::new(metadata_line, "[metadata]".len() as u32), - ), - severity: Some(DiagnosticSeverity::INFORMATION), - code: Some(NumberOrString::String("missing-metadata-field".into())), - source: Some("a2ml".into()), - message: format!( - "Missing required metadata field '{}' in [metadata] section", - required - ), - ..Default::default() - }); - } - } - } - - diags -} - -/// 6. Duplicate section headers. -/// -/// Detects repeated `## Heading` lines at the same level and text. Only exact -/// duplicates (case-sensitive) are flagged. -fn check_duplicate_sections(text: &str) -> Vec { - let mut diags = Vec::new(); - - /// Location and content of a heading we have already seen. - struct SeenHeading { - text: String, - line: u32, - } - - let mut seen: Vec = Vec::new(); - - let heading_re = &*HEADING_RE; - for (line_idx, line) in text.lines().enumerate() { - if let Some(caps) = heading_re.captures(line) { - let (Some(lvl), Some(ttl)) = (caps.get(1), caps.get(2)) else { - continue; - }; - let level = lvl.as_str(); - let title = ttl.as_str().trim(); - let key = format!("{}:{}", level.len(), title); - - if let Some(prev) = seen.iter().find(|s| s.text == key) { - diags.push(Diagnostic { - range: line_range(line_idx as u32, line), - severity: Some(DiagnosticSeverity::WARNING), - code: Some(NumberOrString::String("duplicate-heading".into())), - source: Some("a2ml".into()), - message: format!( - "Duplicate heading '{}' (first defined on line {})", - title, - prev.line + 1, - ), - ..Default::default() - }); - } else { - seen.push(SeenHeading { - text: key, - line: line_idx as u32, - }); - } - } - } - - diags -} - -/// 7. Malformed `key = "value"` lines. -/// -/// Inside `[section]` blocks we expect either blank lines, comments, or -/// `key = value` pairs. This check catches unclosed quotes and missing `=`. -fn check_malformed_kv_lines(text: &str) -> Vec { - let mut diags = Vec::new(); - let mut in_section = false; - - let section_re = &*SECTION_RE; - for (line_idx, line) in text.lines().enumerate() { - let trimmed = line.trim(); - - // Track whether we are inside a [section]. - if section_re.is_match(trimmed) { - in_section = true; - continue; - } - - // A heading or directive leaves the section context. - if trimmed.starts_with('#') || trimmed.starts_with('@') { - in_section = false; - continue; - } - - if !in_section || trimmed.is_empty() || trimmed.starts_with("//") { - continue; - } - - // Inside a section: expect `key = value`. - if !trimmed.contains('=') { - diags.push(Diagnostic { - range: line_range(line_idx as u32, line), - severity: Some(DiagnosticSeverity::ERROR), - code: Some(NumberOrString::String("malformed-kv".into())), - source: Some("a2ml".into()), - message: "Expected key = value pair inside [section] block".into(), - ..Default::default() - }); - continue; - } - - // Check for unclosed quotes in the value part. - if let Some(eq_pos) = trimmed.find('=') { - let value_part = trimmed[eq_pos + 1..].trim(); - if value_part.starts_with('"') && !value_part.ends_with('"') { - diags.push(Diagnostic { - range: line_range(line_idx as u32, line), - severity: Some(DiagnosticSeverity::ERROR), - code: Some(NumberOrString::String("unclosed-quote".into())), - source: Some("a2ml".into()), - message: "Unclosed double quote in value".into(), - ..Default::default() - }); - } else if value_part.starts_with('\'') && !value_part.ends_with('\'') { - diags.push(Diagnostic { - range: line_range(line_idx as u32, line), - severity: Some(DiagnosticSeverity::ERROR), - code: Some(NumberOrString::String("unclosed-quote".into())), - source: Some("a2ml".into()), - message: "Unclosed single quote in value".into(), - ..Default::default() - }); - } - } - } - - diags -} - -/// 8. TOML-like `[section]` validation. -/// -/// Emits an info diagnostic when a `[section]` header uses a name not in the -/// known list. This helps authors discover typos early. -fn check_toml_sections(text: &str) -> Vec { - let mut diags = Vec::new(); - let section_re = &*SECTION_RE; - for (line_idx, line) in text.lines().enumerate() { - let trimmed = line.trim(); - if let Some(caps) = section_re.captures(trimmed) { - // `continue`, not unwrap: a panic aborts diagnostics for the - // whole document, so one odd line would blank the editor's problem - // list instead of producing one fewer entry. - let Some(name) = caps.get(1).map(|m| m.as_str()) else { - continue; - }; - if !KNOWN_SECTIONS.contains(&name) { - diags.push(Diagnostic { - range: line_range(line_idx as u32, line), - severity: Some(DiagnosticSeverity::INFORMATION), - code: Some(NumberOrString::String("unknown-section".into())), - source: Some("a2ml".into()), - message: format!( - "Unknown section [{}] — known sections: {}", - name, - KNOWN_SECTIONS.join(", "), - ), - ..Default::default() - }); - } - } - } - - diags -} - -// ── Helpers ────────────────────────────────────────────────────────── - -/// Build a `Range` spanning an entire line. -fn line_range(line: u32, text: &str) -> Range { - Range::new( - Position::new(line, 0), - Position::new(line, text.len() as u32), - ) -} - -// ── Tests ──────────────────────────────────────────────────────────── - -#[cfg(test)] -mod tests { - use super::*; - - /// Helper: count diagnostics with a given code. - fn count_with_code(diags: &[Diagnostic], code: &str) -> usize { - diags - .iter() - .filter(|d| { - matches!(&d.code, Some(NumberOrString::String(c)) if c == code) - }) - .count() - } - - #[test] - fn spdx_present_no_warning() { - let text = "// SPDX-License-Identifier: AGPL-3.0-or-later\n# Title\n"; - let diags = run_all_checks(text); - assert_eq!(count_with_code(&diags, "missing-spdx"), 0); - } - - #[test] - fn spdx_missing_warns() { - let text = "# Title\nSome content\n"; - let diags = run_all_checks(text); - assert_eq!(count_with_code(&diags, "missing-spdx"), 1); - } - - #[test] - fn unclosed_directive_errors() { - let text = "@abstract:\nSome text\n"; - let diags = run_all_checks(text); - assert_eq!(count_with_code(&diags, "unclosed-directive"), 1); - } - - #[test] - fn matched_directive_no_error() { - let text = "@abstract:\nSome text\n@end\n"; - let diags = run_all_checks(text); - assert_eq!(count_with_code(&diags, "unclosed-directive"), 0); - assert_eq!(count_with_code(&diags, "mismatched-end"), 0); - } - - #[test] - fn orphan_end_errors() { - let text = "Some text\n@end\n"; - let diags = run_all_checks(text); - assert_eq!(count_with_code(&diags, "mismatched-end"), 1); - } - - #[test] - fn unresolved_ref_warns() { - let text = "See @ref(missing-id) for details.\n"; - let diags = run_all_checks(text); - assert_eq!(count_with_code(&diags, "unresolved-ref"), 1); - } - - #[test] - fn resolved_ref_no_warning() { - let text = "@opaque(id=\"my-id\"):\ncode\n@end\nSee @ref(my-id).\n"; - let diags = run_all_checks(text); - assert_eq!(count_with_code(&diags, "unresolved-ref"), 0); - } - - #[test] - fn duplicate_heading_warns() { - let text = "## Overview\nText\n## Overview\nMore text\n"; - let diags = run_all_checks(text); - assert_eq!(count_with_code(&diags, "duplicate-heading"), 1); - } - - #[test] - fn missing_metadata_fields() { - let text = "[metadata]\nproject = \"test\"\n"; - let diags = run_all_checks(text); - // version and status are missing. - assert_eq!(count_with_code(&diags, "missing-metadata-field"), 2); - } - - #[test] - fn unknown_section_info() { - let text = "[banana]\nkey = \"val\"\n"; - let diags = run_all_checks(text); - assert_eq!(count_with_code(&diags, "unknown-section"), 1); - } - - #[test] - fn malformed_kv_missing_equals() { - let text = "[metadata]\nthis is not a key-value\n"; - let diags = run_all_checks(text); - assert_eq!(count_with_code(&diags, "malformed-kv"), 1); - } - - #[test] - fn unclosed_quote_errors() { - let text = "[metadata]\nproject = \"unterminated\n"; - let diags = run_all_checks(text); - assert_eq!(count_with_code(&diags, "unclosed-quote"), 1); - } -} diff --git a/a2ml/lsp/src/hover.rs b/a2ml/lsp/src/hover.rs deleted file mode 100644 index 0c342c959..000000000 --- a/a2ml/lsp/src/hover.rs +++ /dev/null @@ -1,367 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// -// a2ml-lsp — Hover provider for A2ML documents. -// -// Returns Markdown documentation when the cursor hovers over: -// 1. Directive names (`@abstract`, `@opaque`, …) -// 2. Section headers (`[metadata]`, `[dependencies]`, …) -// -// Author: Jonathan D.A. Jewell - -use std::sync::LazyLock; -use regex::Regex; -use tower_lsp::lsp_types::*; - -// ── Directive documentation ────────────────────────────────────────── - -/// Documentation entry for a single A2ML directive. -struct DirectiveDoc { - /// Directive name without the leading `@`. - name: &'static str, - /// Markdown documentation shown on hover. - markdown: &'static str, -} - -/// Full directive catalogue with documentation drawn from the A2ML spec. -const DIRECTIVE_DOCS: &[DirectiveDoc] = &[ - DirectiveDoc { - name: "abstract", - markdown: "## @abstract\n\n\ - Declares the **abstract / summary section** of the document.\n\n\ - ```a2ml\n@abstract:\nYour summary text here.\n@end\n```\n\n\ - The abstract is typically rendered as a preamble by output formatters.\n\n\ - *A2ML v0 core directive*", - }, - DirectiveDoc { - name: "opaque", - markdown: "## @opaque\n\n\ - **Byte-for-byte preserved payload block.**\n\n\ - Content inside `@opaque` MUST be preserved verbatim through every \ - processing stage. Renderers MAY transform only when the target format \ - requires it, and must report transformations.\n\n\ - ```a2ml\n@opaque(lang=\"ebnf\", id=\"grammar\"):\n... raw content ...\n@end\n```\n\n\ - **Attributes:**\n\ - - `lang` — language hint for syntax highlighting\n\ - - `id` — referenceable identifier for `@ref()`\n\n\ - *A2ML v0 core directive — non-negotiable preservation guarantee*", - }, - DirectiveDoc { - name: "fig", - markdown: "## @fig\n\n\ - **Figure block** with caption and optional ID.\n\n\ - ```a2ml\n@fig(id=\"fig-arch\"):\nArchitecture diagram description.\n@end\n```\n\n\ - **Attributes:**\n\ - - `id` — referenceable identifier\n\ - - `caption` — figure caption text\n\n\ - *A2ML v0 core directive*", - }, - DirectiveDoc { - name: "table", - markdown: "## @table\n\n\ - **Table block** with caption and optional ID.\n\n\ - ```a2ml\n@table(id=\"tbl-results\"):\n| Col A | Col B |\n| 1 | 2 |\n@end\n```\n\n\ - **Attributes:**\n\ - - `id` — referenceable identifier\n\ - - `caption` — table caption text\n\n\ - *A2ML v0 core directive*", - }, - DirectiveDoc { - name: "refs", - markdown: "## @refs\n\n\ - **References / bibliography section.**\n\n\ - ```a2ml\n@refs:\n[1] First reference\n[2] Second reference\n@end\n```\n\n\ - Each non-blank line is treated as a single reference entry.\n\n\ - *A2ML v0 core directive*", - }, - DirectiveDoc { - name: "requires", - markdown: "## @requires\n\n\ - **Structural dependencies** for attested mode.\n\n\ - Declares what sections or IDs this block depends on. Used by the \ - Idris2 typed core to build the dependency graph and enforce proof \ - obligations.\n\n\ - ```a2ml\n@requires:\nsection-a\nsection-b\n@end\n```\n\n\ - *A2ML v0 core directive*", - }, - DirectiveDoc { - name: "include", - markdown: "## @include\n\n\ - **Include content from another A2ML file.**\n\n\ - ```a2ml\n@include(\"path/to/other.a2ml\")\n```\n\n\ - The included file is parsed and its blocks are spliced into the \ - current document at the inclusion point.\n\n\ - *A2ML v1 directive*", - }, - DirectiveDoc { - name: "ref", - markdown: "## @ref()\n\n\ - **Inline reference** to a declared ID.\n\n\ - ```a2ml\nSee @ref(my-id) for details.\n```\n\n\ - In checked and attested modes, the target ID **must** exist in the \ - document; in lax mode, unresolved references produce warnings.\n\n\ - *A2ML v0 inline directive*", - }, - DirectiveDoc { - name: "meta", - markdown: "## @meta\n\n\ - **Metadata directive block.**\n\n\ - ```a2ml\n@meta:\nkey = \"value\"\n@end\n```\n\n\ - *A2ML v1 directive*", - }, - DirectiveDoc { - name: "note", - markdown: "## @note\n\n\ - **Admonition: informational note.**\n\n\ - ```a2ml\n@note:\nImportant information here.\n@end\n```\n\n\ - *A2ML v1 directive*", - }, - DirectiveDoc { - name: "warning", - markdown: "## @warning\n\n\ - **Admonition: warning callout.**\n\n\ - ```a2ml\n@warning:\nCritical caveat here.\n@end\n```\n\n\ - *A2ML v1 directive*", - }, - DirectiveDoc { - name: "example", - markdown: "## @example\n\n\ - **Example block.**\n\n\ - ```a2ml\n@example:\nDemonstration content.\n@end\n```\n\n\ - *A2ML v1 directive*", - }, - DirectiveDoc { - name: "quote", - markdown: "## @quote\n\n\ - **Block quotation.**\n\n\ - ```a2ml\n@quote:\nQuoted passage.\n@end\n```\n\n\ - *A2ML v1 directive*", - }, - DirectiveDoc { - name: "end", - markdown: "## @end\n\n\ - **Closes the current directive block.**\n\n\ - Every `@directive:` that opens a block must be closed by a matching \ - `@end` on its own line.\n\n\ - *A2ML v0 core keyword*", - }, -]; - -// ── Section documentation ──────────────────────────────────────────── - -/// Documentation entry for a known [section] header. -struct SectionDoc { - name: &'static str, - markdown: &'static str, -} - -/// Known section headers and their schema documentation. -const SECTION_DOCS: &[SectionDoc] = &[ - SectionDoc { - name: "metadata", - markdown: "## [metadata]\n\n\ - **Document metadata block.**\n\n\ - Required fields:\n\ - - `project` — project name\n\ - - `version` — semantic version\n\ - - `status` — active | paused | archived | …\n\n\ - Optional fields:\n\ - - `author`, `license`, `created`, `updated`, `description`", - }, - SectionDoc { - name: "project-context", - markdown: "## [project-context]\n\n\ - **Project background and goals.**\n\n\ - Free-form text describing what this project is, why it exists, \ - and what success looks like.", - }, - SectionDoc { - name: "dependencies", - markdown: "## [dependencies]\n\n\ - **External and internal dependency list.**\n\n\ - Each dependency is a key = value pair:\n\ - ```\nsome-lib = \">=1.2.0\"\n```", - }, - SectionDoc { - name: "current-position", - markdown: "## [current-position]\n\n\ - **Snapshot of where the project is right now.**\n\n\ - Fields: `completion`, `milestone`, `last-session-date`", - }, - SectionDoc { - name: "route-to-mvp", - markdown: "## [route-to-mvp]\n\n\ - **Steps remaining to reach Minimum Viable Product.**\n\n\ - Ordered list of milestones with estimated effort.", - }, - SectionDoc { - name: "blockers-and-issues", - markdown: "## [blockers-and-issues]\n\n\ - **Active blockers and known issues.**\n\n\ - Each blocker should have a severity and description.", - }, - SectionDoc { - name: "critical-next-actions", - markdown: "## [critical-next-actions]\n\n\ - **Immediate action items.**\n\n\ - The most important things to do in the next work session.", - }, - SectionDoc { - name: "session-history", - markdown: "## [session-history]\n\n\ - **Timestamped log of work sessions.**\n\n\ - Each entry should include date, what was done, and outcomes.", - }, - SectionDoc { - name: "architecture-decisions", - markdown: "## [architecture-decisions]\n\n\ - **Architecture Decision Records (ADRs).**\n\n\ - Status values: proposed, accepted, deprecated, superseded, rejected.", - }, - SectionDoc { - name: "development-practices", - markdown: "## [development-practices]\n\n\ - **Coding standards, workflow conventions, and team norms.**", - }, - SectionDoc { - name: "design-rationale", - markdown: "## [design-rationale]\n\n\ - **Why decisions were made the way they were.**\n\n\ - Links design choices to requirements and constraints.", - }, - SectionDoc { - name: "ecosystem", - markdown: "## [ecosystem]\n\n\ - **Ecosystem position and relationships.**\n\n\ - Fields: `type`, `purpose`, `position-in-ecosystem`.", - }, - SectionDoc { - name: "related-projects", - markdown: "## [related-projects]\n\n\ - **Sibling, upstream, and downstream projects.**\n\n\ - Relationship types: sibling-standard, potential-consumer, inspiration.", - }, - SectionDoc { - name: "position-in-ecosystem", - markdown: "## [position-in-ecosystem]\n\n\ - **Where this project fits in the larger picture.**", - }, - SectionDoc { - name: "agentic", - markdown: "## [agentic]\n\n\ - **AI agent interaction patterns.**\n\n\ - Defines how AI assistants should interact with this project.", - }, - SectionDoc { - name: "neurosym", - markdown: "## [neurosym]\n\n\ - **Neurosymbolic integration configuration.**\n\n\ - Settings for Hypatia and related neurosymbolic CI/CD tools.", - }, - SectionDoc { - name: "playbook", - markdown: "## [playbook]\n\n\ - **Operational runbook and procedures.**\n\n\ - Step-by-step guides for common operations.", - }, -]; - -// ── Public entry point ─────────────────────────────────────────────── - -/// Produce a hover result for the token under the cursor. -/// -/// Returns `Some(Hover)` with Markdown content when the cursor is on a -/// recognised directive or section header, `None` otherwise. -pub fn provide_hover(text: &str, position: Position) -> Option { - let lines: Vec<&str> = text.lines().collect(); - let line_idx = position.line as usize; - - if line_idx >= lines.len() { - return None; - } - - let line = lines[line_idx]; - - // Try directive hover first, then section hover. - if let Some(hover) = directive_hover(line, position) { - return Some(hover); - } - - section_hover(line, position) -} - -// ── Sub-providers ──────────────────────────────────────────────────── - -// Literal patterns, compiled once. -// -// These were built by calling Regex::new on a literal and unwrapping the -// result, inside the functions below, -// which recompiled the pattern on every hover request and panicked the LSP -// task if the literal were ever malformed. Hoisting to a `LazyLock` compiles -// each pattern once, and `expect` states the invariant being relied on: the -// pattern is a compile-time constant, so a failure here is a programming -// error, not a runtime condition. -static DIRECTIVE_RE: LazyLock = LazyLock::new(|| { - Regex::new(r"@([A-Za-z][A-Za-z0-9_-]*)").expect("DIRECTIVE_RE is a valid literal pattern") -}); - -static SECTION_RE: LazyLock = LazyLock::new(|| { - Regex::new(r"^\[([A-Za-z][A-Za-z0-9_-]*)\]\s*$") - .expect("SECTION_RE is a valid literal pattern") -}); - -/// Check whether the cursor is on an `@directive` name and return its docs. -fn directive_hover(line: &str, position: Position) -> Option { - // Match `@name` anywhere on the line. We check whether the cursor column - // falls within the match span. - let re = &*DIRECTIVE_RE; - let col = position.character as usize; - - for mat in re.find_iter(line) { - if col >= mat.start() && col <= mat.end() { - // Extract just the name part (skip the `@`). - let name = &mat.as_str()[1..]; - - if let Some(doc) = DIRECTIVE_DOCS.iter().find(|d| d.name == name) { - return Some(Hover { - contents: HoverContents::Markup(MarkupContent { - kind: MarkupKind::Markdown, - value: doc.markdown.to_string(), - }), - range: Some(Range::new( - Position::new(position.line, mat.start() as u32), - Position::new(position.line, mat.end() as u32), - )), - }); - } - } - } - - None -} - -/// Check whether the cursor is on a `[section]` header and return its docs. -fn section_hover(line: &str, position: Position) -> Option { - let re = &*SECTION_RE; - let trimmed = line.trim(); - - if let Some(caps) = re.captures(trimmed) { - // `?`, not unwrap: a panicking hover handler takes the editor's - // language features down for the rest of the session. - let name = caps.get(1)?.as_str(); - - if let Some(doc) = SECTION_DOCS.iter().find(|s| s.name == name) { - return Some(Hover { - contents: HoverContents::Markup(MarkupContent { - kind: MarkupKind::Markdown, - value: doc.markdown.to_string(), - }), - range: Some(Range::new( - Position::new(position.line, 0), - Position::new(position.line, line.len() as u32), - )), - }); - } - } - - None -} diff --git a/a2ml/lsp/src/main.rs b/a2ml/lsp/src/main.rs deleted file mode 100644 index b1cd72b8a..000000000 --- a/a2ml/lsp/src/main.rs +++ /dev/null @@ -1,183 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// -// a2ml-lsp — Language Server Protocol server for A2ML (Attested Markup Language). -// -// Entry point: configures stdio transport and initialises the LSP backend. -// The server provides diagnostics, completions, and hover for .a2ml files. -// -// Author: Jonathan D.A. Jewell - -#![forbid(unsafe_code)] -mod completions; -mod diagnostics; -mod hover; - -use dashmap::DashMap; -use tower_lsp::jsonrpc::Result; -use tower_lsp::lsp_types::*; -use tower_lsp::{Client, LanguageServer, LspService, Server}; - -/// Per-document state held by the backend. -/// -/// `documents` maps a URI to its current full text so that every notification -/// (didOpen / didChange / didSave) can re-run diagnostics without asking the -/// editor for the file contents. -#[derive(Debug)] -pub struct Backend { - /// The LSP client handle used to push diagnostics and other notifications. - client: Client, - /// Thread-safe map of open document URIs to their latest full text. - documents: DashMap, -} - -impl Backend { - /// Create a new backend bound to the given LSP client. - fn new(client: Client) -> Self { - Self { - client, - documents: DashMap::new(), - } - } - - /// Run all diagnostic checks on a document and publish the results. - /// - /// Called after every content-changing event (open, change, save). - async fn publish_diagnostics(&self, uri: Url, text: &str) { - let diags = diagnostics::run_all_checks(text); - self.client - .publish_diagnostics(uri, diags, None) - .await; - } -} - -#[tower_lsp::async_trait] -impl LanguageServer for Backend { - /// Handle the `initialize` request. - /// - /// Advertises our capabilities: full-document sync, completion (triggered - /// by `@` and `[`), and hover. - async fn initialize(&self, _: InitializeParams) -> Result { - Ok(InitializeResult { - capabilities: ServerCapabilities { - text_document_sync: Some(TextDocumentSyncCapability::Kind( - TextDocumentSyncKind::FULL, - )), - completion_provider: Some(CompletionOptions { - trigger_characters: Some(vec!["@".into(), "[".into()]), - resolve_provider: Some(false), - ..Default::default() - }), - hover_provider: Some(HoverProviderCapability::Simple(true)), - ..Default::default() - }, - server_info: Some(ServerInfo { - name: "a2ml-lsp".into(), - version: Some(env!("CARGO_PKG_VERSION").into()), - }), - }) - } - - /// Handle the `initialized` notification. - /// - /// Logs a startup message so the editor knows the server is ready. - async fn initialized(&self, _: InitializedParams) { - self.client - .log_message(MessageType::INFO, "A2ML LSP server initialised") - .await; - } - - /// Handle the `shutdown` request (no-op; cleanup happens on drop). - async fn shutdown(&self) -> Result<()> { - Ok(()) - } - - // ── Document synchronisation ───────────────────────────────────── - - /// A document was opened — store its text and publish initial diagnostics. - async fn did_open(&self, params: DidOpenTextDocumentParams) { - let uri = params.text_document.uri.clone(); - let text = params.text_document.text.clone(); - self.documents - .insert(uri.to_string(), text.clone()); - self.publish_diagnostics(uri, &text).await; - } - - /// A document changed — update stored text and re-publish diagnostics. - /// - /// We use FULL sync so the first (and only) content change contains the - /// entire new text. - async fn did_change(&self, params: DidChangeTextDocumentParams) { - let uri = params.text_document.uri.clone(); - if let Some(change) = params.content_changes.into_iter().next() { - let text = change.text; - self.documents - .insert(uri.to_string(), text.clone()); - self.publish_diagnostics(uri, &text).await; - } - } - - /// A document was saved — re-publish diagnostics (may catch save-time-only - /// checks in future). - async fn did_save(&self, params: DidSaveTextDocumentParams) { - let uri = params.text_document.uri.clone(); - if let Some(ref entry) = self.documents.get(&uri.to_string()) { - let text = entry.value().clone(); - self.publish_diagnostics(uri, &text).await; - } - } - - /// A document was closed — remove it from our cache. - async fn did_close(&self, params: DidCloseTextDocumentParams) { - self.documents - .remove(¶ms.text_document.uri.to_string()); - } - - // ── Completions ────────────────────────────────────────────────── - - /// Provide context-aware completions for directives, sections, keys, and - /// `@ref()` targets. - async fn completion(&self, params: CompletionParams) -> Result> { - let uri = params.text_document_position.text_document.uri.to_string(); - let position = params.text_document_position.position; - - let text = match self.documents.get(&uri) { - Some(entry) => entry.value().clone(), - None => return Ok(None), - }; - - let items = completions::provide_completions(&text, position); - Ok(Some(CompletionResponse::Array(items))) - } - - // ── Hover ──────────────────────────────────────────────────────── - - /// Show documentation when hovering over directives or section headers. - async fn hover(&self, params: HoverParams) -> Result> { - let uri = params - .text_document_position_params - .text_document - .uri - .to_string(); - let position = params.text_document_position_params.position; - - let text = match self.documents.get(&uri) { - Some(entry) => entry.value().clone(), - None => return Ok(None), - }; - - Ok(hover::provide_hover(&text, position)) - } -} - -/// Application entry point. -/// -/// Constructs the tower-lsp service and connects it to stdin/stdout so that -/// any LSP-capable editor can launch `a2ml-lsp --stdio` as a child process. -#[tokio::main] -async fn main() { - let stdin = tokio::io::stdin(); - let stdout = tokio::io::stdout(); - - let (service, socket) = LspService::new(Backend::new); - Server::new(stdin, stdout, socket).serve(service).await; -} diff --git a/a2ml/manifest.scm b/a2ml/manifest.scm deleted file mode 100644 index dd942c7fa..000000000 --- a/a2ml/manifest.scm +++ /dev/null @@ -1,24 +0,0 @@ -;;; SPDX-License-Identifier: MPL-2.0 -;;; manifest.scm — Generic Guix manifest for RSR-compliant projects -;;; -;;; Usage: -;;; guix shell -m manifest.scm -;;; - -(specifications->manifest - '(;; Core development tools - "git" - "just" - "nickel" - "curl" - "bash" - "coreutils" - - ;; Documentation - "asciidoctor" - "pandoc" - - ;; Common build dependencies - "openssl" - "zlib" - "pkg-config")) diff --git a/a2ml/pandoc/.devcontainer/Containerfile b/a2ml/pandoc/.devcontainer/Containerfile deleted file mode 100644 index b0a6fd1bf..000000000 --- a/a2ml/pandoc/.devcontainer/Containerfile +++ /dev/null @@ -1,32 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# -# Dev Container image for {{PROJECT_NAME}} -# Base: Chainguard Wolfi (minimal, supply-chain-secure) -# Build: podman build -t {{PROJECT_NAME}}-dev -f .devcontainer/Containerfile . - -FROM cgr.dev/chainguard/wolfi-base:latest - -# Install common development tools -RUN apk update && apk add --no-cache \ - bash \ - curl \ - git \ - openssh-client \ - ca-certificates \ - build-base \ - posix-libc-utils \ - shadow \ - && rm -rf /var/cache/apk/* - -# Create non-root dev user (matches devcontainer.json remoteUser) -RUN groupadd -g 1000 nonroot || true \ - && useradd -m -u 1000 -g 1000 -s /bin/bash nonroot || true - -# Set workspace directory -WORKDIR /workspaces/{{PROJECT_NAME}} - -# Default shell -ENV SHELL=/bin/bash - -USER nonroot diff --git a/a2ml/pandoc/.devcontainer/README.adoc b/a2ml/pandoc/.devcontainer/README.adoc deleted file mode 100644 index 3bfb50e5c..000000000 --- a/a2ml/pandoc/.devcontainer/README.adoc +++ /dev/null @@ -1,27 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Dev Container Usage -:author: {{AUTHOR}} <{{AUTHOR_EMAIL}}> - -== Overview - -This dev container uses `cgr.dev/chainguard/wolfi-base` with git, curl, bash, and just pre-installed. Dev container features add git, just, and nickel automatically. - -== VS Code (Local) - -. Install the *Dev Containers* extension (`ms-vscode-remote.remote-containers`). -. Set `dev.containers.dockerPath` to `podman` in VS Code settings. -. Open the repo folder, then choose **Reopen in Container** from the command palette. - -== GitHub Codespaces - -. From the repository on GitHub, click **Code > Codespaces > New codespace**. -. The container builds automatically from this configuration. - -== Gitpod - -. Prefix the repo URL with `https://gitpod.io/#` to launch a workspace. -. Gitpod reads `devcontainer.json` and builds the environment. - -== Customization - -Replace `{{PROJECT_NAME}}` placeholders in both `devcontainer.json` and `Containerfile` with your actual project name. Run `just deps` to verify the environment after first launch. diff --git a/a2ml/pandoc/.devcontainer/devcontainer.json b/a2ml/pandoc/.devcontainer/devcontainer.json deleted file mode 100644 index a4b33e0ae..000000000 --- a/a2ml/pandoc/.devcontainer/devcontainer.json +++ /dev/null @@ -1,69 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -// -// Dev Container configuration for {{PROJECT_NAME}} -// Works with: VS Code Dev Containers, GitHub Codespaces, Gitpod -// Container runtime: Podman (recommended) or any OCI-compliant runtime -{ - "name": "{{PROJECT_NAME}}", - - "build": { - "dockerfile": "Containerfile", - "context": ".." - }, - - "features": { - "ghcr.io/devcontainers/features/git:1": { - "ppa": false, - "version": "latest" - }, - "ghcr.io/jdx/devcontainer-features/just:1": {}, - "ghcr.io/nickel-lang/devcontainer-feature:0": {} - }, - - "postCreateCommand": "just deps", - - "remoteUser": "nonroot", - - "containerEnv": { - "EDITOR": "code --wait", - "LANG": "C.UTF-8" - }, - - "customizations": { - "vscode": { - "extensions": [ - "EditorConfig.EditorConfig", - "eamodio.gitlens", - "streetsidesoftware.code-spell-checker", - "timonwong.shellcheck", - "tamasfe.even-better-toml", - "skellock.just", - "redhat.vscode-yaml", - "DavidAnson.vscode-markdownlint", - "asciidoctor.asciidoctor-vscode", - "usernamehw.errorlens" - ], - "settings": { - "editor.formatOnSave": true, - "editor.insertSpaces": true, - "editor.tabSize": 2, - "files.trimTrailingWhitespace": true, - "files.insertFinalNewline": true, - "files.trimFinalNewlines": true, - "[makefile]": { - "editor.insertSpaces": false - } - } - }, - "codespaces": { - "openFiles": [ - "README.adoc" - ] - } - }, - - "forwardPorts": [], - - "shutdownAction": "stopContainer" -} diff --git a/a2ml/pandoc/.editorconfig b/a2ml/pandoc/.editorconfig deleted file mode 100644 index bcdbb4de3..000000000 --- a/a2ml/pandoc/.editorconfig +++ /dev/null @@ -1,65 +0,0 @@ -# RSR-template-repo - Editor Configuration -# https://editorconfig.org - -root = true - -[*] -charset = utf-8 -end_of_line = lf -indent_size = 2 -indent_style = space -insert_final_newline = true -trim_trailing_whitespace = true - -[*.md] -trim_trailing_whitespace = false - -[*.adoc] -trim_trailing_whitespace = false - -[*.rs] -indent_size = 4 - -[*.ex] -indent_size = 2 - -[*.exs] -indent_size = 2 - -[*.zig] -indent_size = 4 - -[*.ada] -indent_size = 3 - -[*.adb] -indent_size = 3 - -[*.ads] -indent_size = 3 - -[*.hs] -indent_size = 2 - -[*.res] -indent_size = 2 - -[*.resi] -indent_size = 2 - -[*.ncl] -indent_size = 2 - -[*.rkt] -indent_size = 2 - -[*.scm] -indent_size = 2 - -[*.nix] -indent_size = 2 - -[Justfile] -indent_style = space -indent_size = 4 - diff --git a/a2ml/pandoc/.envrc b/a2ml/pandoc/.envrc deleted file mode 100644 index ec874ea14..000000000 --- a/a2ml/pandoc/.envrc +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Activate development environment -# Install direnv: https://direnv.net/ - -# Load .tool-versions if asdf is available -if has asdf; then - use asdf -fi - -# Load Guix shell if guix.scm exists -if has guix && [ -f guix.scm ]; then - use guix -fi - -# Load Nix flake if flake.nix exists -if has nix && [ -f flake.nix ]; then - use flake -fi - -# Project environment variables -export PROJECT_NAME="pandoc-a2ml" -export RSR_TIER="infrastructure" -# export DATABASE_URL= -# export API_KEY= - -# Source .env if it exists (gitignored) -dotenv_if_exists diff --git a/a2ml/pandoc/.gitattributes b/a2ml/pandoc/.gitattributes deleted file mode 100644 index c95d5ebd9..000000000 --- a/a2ml/pandoc/.gitattributes +++ /dev/null @@ -1,55 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# RSR-compliant .gitattributes - -* text=auto eol=lf - -# Source -*.rs text eol=lf diff=rust -*.ex text eol=lf diff=elixir -*.exs text eol=lf diff=elixir -*.jl text eol=lf -*.res text eol=lf -*.resi text eol=lf -*.ada text eol=lf diff=ada -*.adb text eol=lf diff=ada -*.ads text eol=lf diff=ada -*.hs text eol=lf -*.chpl text eol=lf -*.scm text eol=lf -*.a2ml text eol=lf linguist-language=TOML -*.ncl text eol=lf -*.nix text eol=lf - -# Docs -*.md text eol=lf diff=markdown -*.adoc text eol=lf -*.txt text eol=lf - -# Data -*.json text eol=lf -*.yaml text eol=lf -*.yml text eol=lf -*.toml text eol=lf - -# Config -.gitignore text eol=lf -.gitattributes text eol=lf -Justfile text eol=lf -Makefile text eol=lf -Containerfile text eol=lf - -# Scripts -*.sh text eol=lf - -# Binary -*.png binary -*.jpg binary -*.gif binary -*.pdf binary -*.woff2 binary -*.zip binary -*.gz binary - -# Lock files -Cargo.lock text eol=lf -diff -flake.lock text eol=lf -diff diff --git a/a2ml/pandoc/.github/.mailmap b/a2ml/pandoc/.github/.mailmap deleted file mode 100644 index 0ada9de5b..000000000 --- a/a2ml/pandoc/.github/.mailmap +++ /dev/null @@ -1 +0,0 @@ -{{AUTHOR}} <{{AUTHOR_EMAIL}}> <{{AUTHOR_EMAIL_ALT}}> diff --git a/a2ml/pandoc/.github/.nojekyll b/a2ml/pandoc/.github/.nojekyll deleted file mode 100644 index e69de29bb..000000000 diff --git a/a2ml/pandoc/.github/0.1-AI-MANIFEST.a2ml b/a2ml/pandoc/.github/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index 85b2f0f0a..000000000 --- a/a2ml/pandoc/.github/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1 +0,0 @@ -# AI Manifest - Level 1: .github diff --git a/a2ml/pandoc/.github/CODEOWNERS b/a2ml/pandoc/.github/CODEOWNERS deleted file mode 100644 index 611b5a845..000000000 --- a/a2ml/pandoc/.github/CODEOWNERS +++ /dev/null @@ -1,14 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# CODEOWNERS - Define code review assignments -# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners -# -# Replace {{OWNER}} with your GitHub username or team - -# Default owners for everything -* @{{OWNER}} - -# Security-sensitive files require explicit review -SECURITY.md @{{OWNER}} -.github/workflows/ @{{OWNER}} -Trustfile.a2ml @{{OWNER}} -.machine_readable/ @{{OWNER}} diff --git a/a2ml/pandoc/.github/CODE_OF_CONDUCT.md b/a2ml/pandoc/.github/CODE_OF_CONDUCT.md deleted file mode 100644 index 2777a724e..000000000 --- a/a2ml/pandoc/.github/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,327 +0,0 @@ -# Code of Conduct - - - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in {{PROJECT_NAME}} a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, colour, religion, or sexual identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. - -We recognise that a thriving open source community requires **psychological safety** — an environment where people can contribute, ask questions, make mistakes, and learn without fear of ridicule or retaliation. - ---- - -## Our Standards - -### Expected Behaviour - -The following behaviours contribute to a positive environment: - -**Communication** -- Using welcoming and inclusive language -- Being respectful of differing viewpoints and experiences -- Giving and gracefully accepting constructive feedback -- Assuming good intent while addressing impact -- Communicating clearly and patiently, especially with newcomers - -**Collaboration** -- Focusing on what is best for the community -- Showing empathy and kindness toward other community members -- Being collaborative rather than competitive -- Mentoring and supporting less experienced contributors -- Celebrating others' contributions and successes - -**Professionalism** -- Accepting responsibility and apologising to those affected by our mistakes -- Learning from the experience and avoiding repetition -- Respecting others' time and attention -- Staying on topic in project spaces -- Following project guidelines and conventions - -**Accessibility** -- Using plain language and avoiding unnecessary jargon -- Providing alt text for images and transcripts for audio/video -- Being patient with those using assistive technologies -- Accommodating different communication styles and needs -- Recognising that not everyone communicates the same way - -### Unacceptable Behaviour - -The following behaviours are considered harassment and are unacceptable: - -**Harassment** -- The use of sexualised language or imagery, and sexual attention or advances of any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Deliberate intimidation, stalking, or following (online or in-person) -- Unwelcome physical contact or simulated physical contact (e.g., emoji) -- Sustained disruption of talks, events, or online discussions - -**Discrimination** -- Discriminatory jokes and language -- Posting or threatening to post others' personally identifying information ("doxing") -- Advocating for, or encouraging, any of the above behaviour -- Microaggressions — subtle, often unintentional, discriminatory comments or actions - -**Professional Misconduct** -- Publishing others' private information without explicit permission -- Misrepresenting affiliation or contributions -- Plagiarism or claiming credit for others' work -- Retaliating against anyone who reports a Code of Conduct violation -- Other conduct which could reasonably be considered inappropriate in a professional setting - -### Grey Areas - -Some situations require judgement. When uncertain: - -- **Intent vs Impact**: Good intentions do not excuse harmful impact. Focus on making things right. -- **Power Dynamics**: Those with more power (maintainers, employers, experienced contributors) must be especially mindful of their impact. -- **Cultural Differences**: What's acceptable varies by culture. When in doubt, err on the side of caution and ask. -- **Humour**: Jokes at others' expense are rarely funny to everyone. Punch up, not down. - ---- - -## Scope - -This Code of Conduct applies within all community spaces, including: - -**Online Spaces** -- Repository discussions, issues, and pull/merge requests -- Project chat channels (Matrix, Discord, Slack, IRC) -- Mailing lists and forums -- Social media when representing the project -- Video calls and virtual meetings - -**In-Person Spaces** -- Conferences, meetups, and events -- Workshops and training sessions -- Any gathering where you represent the project - -**Representation** -This Code of Conduct also applies when an individual is officially representing the community in public spaces. Examples include: - -- Using an official project email address -- Posting via an official social media account -- Acting as an appointed representative at an event -- Speaking on behalf of the project - ---- - -## Enforcement - -### Reporting - -If you experience or witness unacceptable behaviour, or have any other concerns, please report it as soon as possible. - -**How to Report** - -| Method | Details | Best For | -|--------|---------|----------| -| **Email** | {{CONDUCT_EMAIL}} | Detailed reports, sensitive matters | -| **Private Message** | Contact any maintainer directly | Quick questions, minor issues | -| **Anonymous Form** | [Link to form if available] | When you need anonymity | - -**What to Include** - -- Your contact information (unless anonymous) -- Names/usernames of those involved -- Description of what happened -- When and where it occurred -- Any witnesses -- Any supporting evidence (screenshots, links) -- How you would like us to respond (if you have a preference) - -**What Happens Next** - -1. You will receive acknowledgment within **{{RESPONSE_TIME}}** -2. The {{CONDUCT_TEAM}} will review the report -3. We may ask for additional information -4. We will determine appropriate action -5. We will inform you of the outcome (respecting others' privacy) - -### Confidentiality - -All reports will be handled with discretion: - -- Reporter identity is protected by default -- Details are shared only with those who need to know -- We will ask before naming you in any communication -- Anonymous reports are accepted and investigated - -### Conflicts of Interest - -If a {{CONDUCT_TEAM}} member is involved in an incident: - -- They will recuse themselves from the process -- Another maintainer or external party will handle the report -- We will disclose any potential conflicts - ---- - -## Enforcement Guidelines - -The {{CONDUCT_TEAM}} will follow these guidelines in determining consequences: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behaviour deemed unprofessional or unwelcome. - -**Consequence**: A private, written warning providing clarity around the nature of the violation and an explanation of why the behaviour was inappropriate. A public apology may be requested. - -**Duration**: Immediate - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of actions. - -**Consequence**: A warning with consequences for continued behaviour. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. - -**Duration**: 1-4 weeks - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including sustained inappropriate behaviour. - -**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. - -**Duration**: 1-6 months - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behaviour, harassment of an individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the community. - -**Duration**: Permanent (with appeal rights after 12 months) - -### Enforcement Across Perimeters - -For contributors with elevated access (Perimeter 2 or 1): - -| Level | Additional Consequence | -|-------|----------------------| -| Correction | Noted in contributor record | -| Warning | Access privileges may be temporarily reduced | -| Temporary Ban | Access reduced to Perimeter 3 for ban duration | -| Permanent Ban | All access revoked | - ---- - -## Appeals - -If you believe an enforcement decision was made in error: - -1. **Wait 7 days** after the decision (cooling-off period) -2. **Email** {{CONDUCT_EMAIL}} with subject line "Appeal: [Original Report ID]" -3. **Explain** why you believe the decision should be reconsidered -4. **Provide** any new information not previously available - -**Appeals Process** - -- Appeals are reviewed by a different {{CONDUCT_TEAM}} member than the original -- You will receive a response within 14 days -- The appeals decision is final -- You may only appeal once per incident - -**Grounds for Appeal** - -- Procedural errors in the original investigation -- New evidence not previously available -- Disproportionate response to the violation -- Misunderstanding of facts - ---- - -## Supporting Those Who Report - -We are committed to supporting those who report violations: - -**We Will** -- Believe and take all reports seriously -- Respect your privacy and confidentiality preferences -- Keep you informed of progress (if you wish) -- Take steps to protect you from retaliation -- Provide resources if you need support - -**We Will Not** -- Require you to confront the person directly -- Dismiss reports without investigation -- Reveal your identity without consent -- Tolerate retaliation against reporters -- Rush you to make decisions - ---- - -## Prevention - -Beyond enforcement, we actively work to prevent issues: - -**Onboarding** -- All contributors are expected to read this Code of Conduct -- Perimeter 2 applicants must confirm they've read and understood it -- Maintainers receive additional training on enforcement - -**Culture** -- We model the behaviour we expect -- We intervene early when we see potential issues -- We thank people for positive contributions -- We create opportunities for diverse voices - -**Review** -- This Code of Conduct is reviewed annually -- Community feedback is welcomed -- Changes are communicated clearly - ---- - -## Acknowledgments - -This Code of Conduct is adapted from: - -- [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1 -- [Django Code of Conduct](https://www.djangoproject.com/conduct/) -- [Rust Code of Conduct](https://www.rust-lang.org/policies/code-of-conduct) -- [Python Community Code of Conduct](https://www.python.org/psf/conduct/) - -We thank these communities for their leadership in creating welcoming spaces. - ---- - -## Questions? - -If you have questions about this Code of Conduct: - -- Open a [Discussion](https://{{FORGE}}/{{OWNER}}/{{REPO}}/discussions) (for general questions) -- Email {{CONDUCT_EMAIL}} (for private questions) -- Contact any maintainer directly - ---- - -## Summary - -**Be kind. Be respectful. Be collaborative.** - -We're all here because we care about this project. Let's make it a place where everyone can do their best work. - ---- - -Last updated: {{CURRENT_YEAR}} · Based on Contributor Covenant 2.1 diff --git a/a2ml/pandoc/.github/CONTRIBUTING.md b/a2ml/pandoc/.github/CONTRIBUTING.md deleted file mode 100644 index 02758c676..000000000 --- a/a2ml/pandoc/.github/CONTRIBUTING.md +++ /dev/null @@ -1,121 +0,0 @@ -# Clone the repository -git clone https://{{FORGE}}/{{OWNER}}/{{REPO}}.git -cd {{REPO}} - -# Using Nix (recommended for reproducibility) -nix develop - -# Or using toolbox/distrobox -toolbox create {{REPO}}-dev -toolbox enter {{REPO}}-dev -# Install dependencies manually - -# Verify setup -just check # or: cargo check / mix compile / etc. -just test # Run test suite -``` - -### Repository Structure -``` -{{REPO}}/ -├── src/ # Source code (Perimeter 1-2) -├── lib/ # Library code (Perimeter 1-2) -├── extensions/ # Extensions (Perimeter 2) -├── plugins/ # Plugins (Perimeter 2) -├── tools/ # Tooling (Perimeter 2) -├── docs/ # Documentation (Perimeter 3) -│ ├── architecture/ # ADRs, specs (Perimeter 2) -│ └── proposals/ # RFCs (Perimeter 3) -├── examples/ # Examples (Perimeter 3) -├── spec/ # Spec tests (Perimeter 3) -├── tests/ # Test suite (Perimeter 2-3) -├── .machine_readable/ # ALL machine-readable content (Perimeter 1) -│ ├── *.a2ml # State files (STATE, META, ECOSYSTEM, etc.) -│ ├── bot_directives/ # Bot configs -│ └── contractiles/ # Policy contracts (k9, dust, lust, must, trust) -├── .well-known/ # Protocol files (Perimeter 1-3) -├── .github/ # GitHub config (Perimeter 1) -│ ├── ISSUE_TEMPLATE/ -│ └── workflows/ -├── CHANGELOG.md -├── CODE_OF_CONDUCT.md -├── CONTRIBUTING.md # This file -├── GOVERNANCE.md -├── LICENSE -├── MAINTAINERS.md -├── README.adoc -├── SECURITY.md -├── flake.nix # Nix flake — fallback (Perimeter 1) -├── guix.scm # Guix package — primary (Perimeter 1) -└── Justfile # Task runner (Perimeter 1) -``` - ---- - -## How to Contribute - -### Reporting Bugs - -**Before reporting**: -1. Search existing issues -2. Check if it's already fixed in `{{MAIN_BRANCH}}` -3. Determine which perimeter the bug affects - -**When reporting**: - -Use the [bug report template](.github/ISSUE_TEMPLATE/bug_report.md) and include: - -- Clear, descriptive title -- Environment details (OS, versions, toolchain) -- Steps to reproduce -- Expected vs actual behaviour -- Logs, screenshots, or minimal reproduction - -### Suggesting Features - -**Before suggesting**: -1. Check the [roadmap](ROADMAP.md) if available -2. Search existing issues and discussions -3. Consider which perimeter the feature belongs to - -**When suggesting**: - -Use the [feature request template](.github/ISSUE_TEMPLATE/feature_request.md) and include: - -- Problem statement (what pain point does this solve?) -- Proposed solution -- Alternatives considered -- Which perimeter this affects - -### Your First Contribution - -Look for issues labelled: - -- [`good first issue`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/good%20first%20issue) — Simple Perimeter 3 tasks -- [`help wanted`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/help%20wanted) — Community help needed -- [`documentation`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/documentation) — Docs improvements -- [`perimeter-3`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/perimeter-3) — Community sandbox scope - ---- - -## Development Workflow - -### Branch Naming -``` -docs/short-description # Documentation (P3) -test/what-added # Test additions (P3) -feat/short-description # New features (P2) -fix/issue-number-description # Bug fixes (P2) -refactor/what-changed # Code improvements (P2) -security/what-fixed # Security fixes (P1-2) -``` - -### Commit Messages - -We follow [Conventional Commits](https://www.conventionalcommits.org/): -``` -(): - -[optional body] - -[optional footer] diff --git a/a2ml/pandoc/.github/DISCUSSION_TEMPLATE/ideas.yml b/a2ml/pandoc/.github/DISCUSSION_TEMPLATE/ideas.yml deleted file mode 100644 index ef912f85f..000000000 --- a/a2ml/pandoc/.github/DISCUSSION_TEMPLATE/ideas.yml +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -labels: [enhancement] -body: - - type: textarea - attributes: - label: Idea - description: Describe your idea - validations: - required: true - - type: textarea - attributes: - label: Motivation - description: Why would this be useful? diff --git a/a2ml/pandoc/.github/DISCUSSION_TEMPLATE/q-and-a.yml b/a2ml/pandoc/.github/DISCUSSION_TEMPLATE/q-and-a.yml deleted file mode 100644 index df4ec2003..000000000 --- a/a2ml/pandoc/.github/DISCUSSION_TEMPLATE/q-and-a.yml +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -labels: [question] -body: - - type: textarea - attributes: - label: Question - description: What would you like to know? - validations: - required: true - - type: textarea - attributes: - label: Context - description: Any relevant background diff --git a/a2ml/pandoc/.github/FUNDING.yml b/a2ml/pandoc/.github/FUNDING.yml deleted file mode 100644 index c078261e4..000000000 --- a/a2ml/pandoc/.github/FUNDING.yml +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Funding platforms for {{OWNER}} projects -# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository - -github: {{OWNER}} -ko_fi: {{OWNER}} -liberapay: {{OWNER}} diff --git a/a2ml/pandoc/.github/GOVERNANCE.md b/a2ml/pandoc/.github/GOVERNANCE.md deleted file mode 100644 index fcbcec0cb..000000000 --- a/a2ml/pandoc/.github/GOVERNANCE.md +++ /dev/null @@ -1,158 +0,0 @@ - - -# Project Governance - -This document describes the governance model for **{{PROJECT_NAME}}**. - ---- - -## Project Governance Model - -{{PROJECT_NAME}} follows a **Benevolent Dictator For Life (BDFL)** governance model. -This model is well-suited for solo maintainers and small project teams where rapid, -consistent decision-making is more valuable than formal consensus processes. - -The BDFL has final authority on all project decisions, including technical direction, -release schedules, contributor access, and community standards. - -> **Transition clause:** When the core team exceeds three active maintainers, this -> project should transition to a **consensus-based governance model** with documented -> voting procedures. That transition should itself be recorded as an Architecture -> Decision Record (ADR) in `docs/decisions/`. - ---- - -## Decision Making - -### Day-to-day decisions - -- The BDFL makes final decisions on all matters. -- Routine decisions (bug fixes, dependency updates, minor improvements) may be made - by any maintainer with commit access. -- Maintainers are expected to use good judgement and seek input on non-trivial changes. - -### Proposing changes - -- Contributors can propose changes by opening issues or pull requests. -- Significant changes (new features, breaking changes, architectural shifts) should - be discussed in an issue before implementation begins. -- The BDFL will provide a clear accept/reject decision with reasoning. - -### Architecture Decision Records (ADRs) - -- Significant technical decisions are documented as ADRs in `docs/decisions/`. -- ADR statuses: `proposed`, `accepted`, `deprecated`, `superseded`, `rejected`. -- ADRs provide a historical record of why decisions were made and what alternatives - were considered. -- See `.machine_readable/META.a2ml` for the machine-readable ADR index. - ---- - -## Roles - -### BDFL (Benevolent Dictator For Life) - -- The project creator and ultimate decision-maker. -- Sets the project's technical direction and long-term vision. -- Has final say on all matters, including maintainer appointments and removals. -- Responsible for ensuring the project adheres to RSR standards. - -### Maintainer - -- Has commit access to the repository. -- Reviews and merges pull requests. -- Triages issues and manages releases. -- Upholds code quality, security standards, and the Code of Conduct. -- Listed in [MAINTAINERS.md](MAINTAINERS.md). - -### Contributor - -- Anyone who submits pull requests, opens issues, or participates in discussions. -- Does not have direct commit access. -- Contributions are reviewed by maintainers before merging. -- All contributors must follow the [Code of Conduct](CODE_OF_CONDUCT.md). - -### Bot - -- Automated agents managed via your bot orchestration system. -- Perform automated code review, security scanning, dependency updates, and - standards enforcement. -- Bot actions are subject to the same quality and review standards as human - contributions. -- Configure your bots in `.machine_readable/bot_directives/`. - ---- - -## Becoming a Maintainer - -A contributor may be nominated to become a maintainer when they demonstrate: - -1. **Sustained quality contributions** -- a track record of well-crafted pull requests - that follow project conventions and require minimal revision. -2. **Understanding of RSR standards** -- familiarity with the Repository Structure - Requirements, security policies, and CI/CD workflows used across the project. -3. **Constructive participation** -- helpful issue triage, thoughtful code review - comments, and mentoring of other contributors. -4. **Reliability** -- consistent engagement over a meaningful period (typically 3+ - months of active contribution). - -### Process - -1. An existing maintainer nominates the candidate by opening a private discussion - with the BDFL. -2. The BDFL reviews the candidate's contribution history and community interactions. -3. The BDFL approves or declines the nomination, with reasoning provided to the - nominator. -4. If approved, the new maintainer is added to [MAINTAINERS.md](MAINTAINERS.md) and - granted appropriate repository access. - ---- - -## Removing a Maintainer - -A maintainer may be removed under the following circumstances: - -- **Inactivity**: No meaningful contributions or reviews for 12 or more consecutive - months. The maintainer will be contacted before removal and offered the option to - move to emeritus status voluntarily. -- **Code of Conduct violation**: Behaviour that violates the - [Code of Conduct](CODE_OF_CONDUCT.md), as determined through the enforcement - process described therein. -- **BDFL discretion**: The BDFL may remove a maintainer for other reasons (e.g., - repeated disregard for project standards, loss of trust). Reasoning will be - documented privately. - -Removed maintainers are moved to the Emeritus section of -[MAINTAINERS.md](MAINTAINERS.md) unless removal was due to a serious Code of Conduct -violation. - ---- - -## Code of Conduct - -All participants in this project are expected to follow the -[Code of Conduct](CODE_OF_CONDUCT.md). The Code of Conduct applies to all project -spaces, including issues, pull requests, discussions, and any forum where the project -is represented. - -Enforcement of the Code of Conduct is described in that document. The BDFL serves as -the final arbiter in conduct disputes. - ---- - -## Amendments - -This governance document may be amended by the BDFL at any time. All amendments will -be: - -1. Documented as an ADR in `docs/decisions/` explaining the rationale for the change. -2. Committed to the repository with a clear commit message. -3. Communicated to existing maintainers and contributors via the project's usual - channels. - -Substantive changes (e.g., changing the governance model itself) should be discussed -with the community before adoption, even though the BDFL retains final authority. - ---- - -Copyright (c) {{CURRENT_YEAR}} {{OWNER}}. Licensed under PMPL-1.0-or-later. diff --git a/a2ml/pandoc/.github/ISSUE_TEMPLATE/bug_report.yml b/a2ml/pandoc/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index ec2aa2835..000000000 --- a/a2ml/pandoc/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,127 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Bug report issue template for {{OWNER}}/{{REPO}} -name: Bug Report -description: Create a report to help us improve -title: "[Bug]: " -labels: ["bug", "priority: unset", "triage"] -assignees: [] -body: - - type: markdown - attributes: - value: | - Thank you for taking the time to report a bug. Please fill out the sections below - so we can reproduce and fix the issue. - - - type: textarea - id: description - attributes: - label: Describe the bug - description: A clear and concise description of what the bug is. - placeholder: When I do X, Y happens instead of Z. - validations: - required: true - - - type: textarea - id: reproduction - attributes: - label: Steps to reproduce - description: Detailed steps to reproduce the behavior. - placeholder: | - 1. Go to '...' - 2. Run command '...' - 3. See error - value: | - 1. - 2. - 3. - validations: - required: true - - - type: textarea - id: expected - attributes: - label: Expected behavior - description: A clear and concise description of what you expected to happen. - placeholder: I expected X to happen. - validations: - required: true - - - type: textarea - id: actual - attributes: - label: Actual behavior - description: What actually happened instead. - placeholder: Instead, Y happened. - validations: - required: true - - - type: textarea - id: screenshots - attributes: - label: Screenshots or logs - description: If applicable, add screenshots or paste error logs to help explain the problem. - placeholder: Paste screenshots or error output here. - render: text - validations: - required: false - - - type: dropdown - id: severity - attributes: - label: Severity - description: How severe is this bug? - options: - - Low (cosmetic, minor inconvenience) - - Medium (functionality impaired but workaround exists) - - High (major functionality broken) - - Critical (data loss, security issue, complete failure) - validations: - required: true - - - type: input - id: os - attributes: - label: Operating system - description: What OS are you using? - placeholder: "e.g. Fedora 43, macOS 15.3, Windows 11" - validations: - required: false - - - type: input - id: version - attributes: - label: Version - description: What version of this project are you using? - placeholder: "e.g. 1.2.3, commit abc1234, main branch" - validations: - required: false - - - type: input - id: runtime - attributes: - label: Runtime / toolchain - description: Relevant runtime or toolchain version, if applicable. - placeholder: "e.g. Deno 2.1, Rust nightly 2026-02-10, Gleam 1.8" - validations: - required: false - - - type: textarea - id: additional - attributes: - label: Additional context - description: Add any other context about the problem here. - placeholder: Any other relevant information. - validations: - required: false - - - type: checkboxes - id: checklist - attributes: - label: Pre-submission checklist - options: - - label: I have searched existing issues to ensure this is not a duplicate - required: true - - label: I am using a supported version of this project - required: false - - label: I would be willing to submit a PR to fix this - required: false diff --git a/a2ml/pandoc/.github/ISSUE_TEMPLATE/config.yml b/a2ml/pandoc/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index cb7a33cb0..000000000 --- a/a2ml/pandoc/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Issue template chooser configuration for {{OWNER}}/{{REPO}} -blank_issues_enabled: true -contact_links: - - name: Discussions - url: https://github.com/{{OWNER}}/{{REPO}}/discussions - about: Ask questions, share ideas, or start a conversation in Discussions. - - name: Security Vulnerabilities - url: https://github.com/{{OWNER}}/{{REPO}}/security/advisories/new - about: Report security vulnerabilities privately via GitHub Security Advisories. diff --git a/a2ml/pandoc/.github/ISSUE_TEMPLATE/custom.yml b/a2ml/pandoc/.github/ISSUE_TEMPLATE/custom.yml deleted file mode 100644 index 6aa9e6315..000000000 --- a/a2ml/pandoc/.github/ISSUE_TEMPLATE/custom.yml +++ /dev/null @@ -1,76 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Custom issue template for {{OWNER}}/{{REPO}} -name: Other -description: Report an issue that does not fit the other categories -title: "" -labels: ["triage"] -assignees: [] -body: - - type: markdown - attributes: - value: | - Use this template for issues that do not fit into bug reports, feature requests, - documentation, or questions. Please provide as much detail as possible. - - - type: dropdown - id: category - attributes: - label: Issue category - description: What best describes this issue? - options: - - Refactoring - - Technical debt - - Build / CI issue - - Dependency update - - Security concern - - Licensing question - - Ecosystem integration - - Other - validations: - required: true - - - type: textarea - id: description - attributes: - label: Description - description: Clearly describe what this issue is about. - placeholder: Provide a detailed description of the issue. - validations: - required: true - - - type: textarea - id: rationale - attributes: - label: Rationale - description: Why is this important? What is the impact of not addressing it? - placeholder: "This matters because..." - validations: - required: false - - - type: textarea - id: proposal - attributes: - label: Proposed approach - description: If you have a plan or approach in mind, describe it here. - placeholder: "I suggest we..." - validations: - required: false - - - type: textarea - id: additional - attributes: - label: Additional context - description: Add any other context, links, or references. - placeholder: Any supplementary information. - validations: - required: false - - - type: checkboxes - id: checklist - attributes: - label: Pre-submission checklist - options: - - label: I have searched existing issues to ensure this is not a duplicate - required: true - - label: I would be willing to submit a PR to address this - required: false diff --git a/a2ml/pandoc/.github/ISSUE_TEMPLATE/documentation.yml b/a2ml/pandoc/.github/ISSUE_TEMPLATE/documentation.yml deleted file mode 100644 index 88e072058..000000000 --- a/a2ml/pandoc/.github/ISSUE_TEMPLATE/documentation.yml +++ /dev/null @@ -1,64 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Documentation issue template for {{OWNER}}/{{REPO}} -name: Documentation -description: Report unclear, missing, or incorrect documentation -title: "[Docs]: " -labels: ["documentation", "priority: unset", "triage"] -assignees: [] -body: - - type: markdown - attributes: - value: | - Help us improve our documentation by reporting issues or gaps. - - - type: dropdown - id: type - attributes: - label: Documentation issue type - description: What kind of documentation problem is this? - options: - - Missing (documentation doesn't exist) - - Incorrect (information is wrong) - - Unclear (confusing or hard to follow) - - Outdated (no longer accurate) - - Incomplete (partially documented) - - Typo or grammar - validations: - required: true - - - type: input - id: location - attributes: - label: Location - description: Where is this documentation? (URL, file path, or section name) - placeholder: "README.adoc, section \"Installation\"" - validations: - required: true - - - type: textarea - id: description - attributes: - label: Description - description: What is the problem with the current documentation? - placeholder: Describe what is wrong or missing. - validations: - required: true - - - type: textarea - id: suggestion - attributes: - label: Suggested improvement - description: How should the documentation be fixed or improved? - placeholder: "The documentation should say..." - validations: - required: false - - - type: checkboxes - id: contribution - attributes: - label: Contribution - options: - - label: I have searched existing issues to ensure this is not a duplicate - required: true - - label: I would be willing to submit a PR to fix this - required: false diff --git a/a2ml/pandoc/.github/ISSUE_TEMPLATE/feature_request.yml b/a2ml/pandoc/.github/ISSUE_TEMPLATE/feature_request.yml deleted file mode 100644 index 6d88090c9..000000000 --- a/a2ml/pandoc/.github/ISSUE_TEMPLATE/feature_request.yml +++ /dev/null @@ -1,87 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Feature request issue template for {{OWNER}}/{{REPO}} -name: Feature Request -description: Suggest an idea or enhancement for this project -title: "[Feature]: " -labels: ["enhancement", "priority: unset", "triage"] -assignees: [] -body: - - type: markdown - attributes: - value: | - Thank you for suggesting a feature. Please describe your idea clearly so we can - evaluate and prioritize it. - - - type: textarea - id: problem - attributes: - label: Problem statement - description: Is your feature request related to a problem? Describe the pain point. - placeholder: "I'm always frustrated when [...]. Currently there is no way to [...]." - validations: - required: true - - - type: textarea - id: solution - attributes: - label: Proposed solution - description: A clear and concise description of what you want to happen. - placeholder: "I'd like a command/option/feature that [...]." - validations: - required: true - - - type: textarea - id: alternatives - attributes: - label: Alternatives considered - description: Any alternative solutions or features you have considered. - placeholder: "I considered using X, but it doesn't work because [...]." - validations: - required: false - - - type: dropdown - id: category - attributes: - label: Category - description: What area does this feature relate to? - options: - - Core functionality - - Developer experience - - Performance - - Documentation - - CI/CD / Tooling - - Integration / Interop - - Security - - Accessibility - - Other - validations: - required: true - - - type: dropdown - id: priority - attributes: - label: Importance to you - description: How important is this feature for your use case? - options: - - Nice to have - - Important (would improve my workflow) - - Critical (blocking my use case) - validations: - required: true - - - type: textarea - id: additional - attributes: - label: Additional context - description: Add any other context, screenshots, mockups, or references about the feature request. - placeholder: Links, screenshots, related projects, etc. - validations: - required: false - - - type: checkboxes - id: contribution - attributes: - label: Contribution - options: - - label: I would be willing to submit a PR to implement this feature - required: false diff --git a/a2ml/pandoc/.github/ISSUE_TEMPLATE/question.yml b/a2ml/pandoc/.github/ISSUE_TEMPLATE/question.yml deleted file mode 100644 index 48bb574e9..000000000 --- a/a2ml/pandoc/.github/ISSUE_TEMPLATE/question.yml +++ /dev/null @@ -1,60 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Question issue template for {{OWNER}}/{{REPO}} -name: Question -description: Ask a question about usage or behaviour -title: "[Question]: " -labels: ["question", "triage"] -assignees: [] -body: - - type: markdown - attributes: - value: | - Have a question? You can also ask in - [Discussions](https://github.com/{{OWNER}}/{{REPO}}/discussions) - for broader conversations. - - - type: textarea - id: question - attributes: - label: Your question - description: What would you like to know? - placeholder: "How do I...?" - validations: - required: true - - - type: textarea - id: context - attributes: - label: Context - description: Any relevant context that helps us answer your question. - placeholder: "I'm trying to achieve X and I've tried Y..." - validations: - required: false - - - type: textarea - id: research - attributes: - label: What I have already tried - description: What have you already looked at or attempted? - placeholder: "I've read the README and searched issues but..." - validations: - required: false - - - type: input - id: version - attributes: - label: Version - description: What version of this project are you using? - placeholder: "e.g. 1.2.3, commit abc1234, main branch" - validations: - required: false - - - type: checkboxes - id: checklist - attributes: - label: Pre-submission checklist - options: - - label: I have searched existing issues and discussions - required: true - - label: I have read the available documentation - required: true diff --git a/a2ml/pandoc/.github/MAINTAINERS b/a2ml/pandoc/.github/MAINTAINERS deleted file mode 100644 index 145c4e962..000000000 --- a/a2ml/pandoc/.github/MAINTAINERS +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# MAINTAINERS - Project maintainers and contact information -# -# Format: Name (role) -# Replace placeholders with actual maintainer information. - -{{AUTHOR}} <{{AUTHOR_EMAIL}}> (Lead Maintainer) - -# Additional maintainers: -# Name (role) diff --git a/a2ml/pandoc/.github/README.adoc b/a2ml/pandoc/.github/README.adoc deleted file mode 100644 index a97d22022..000000000 --- a/a2ml/pandoc/.github/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= .github Pillar diff --git a/a2ml/pandoc/.github/SECURITY.md b/a2ml/pandoc/.github/SECURITY.md deleted file mode 100644 index 7dd7b29e7..000000000 --- a/a2ml/pandoc/.github/SECURITY.md +++ /dev/null @@ -1,406 +0,0 @@ -# Security Policy - - - -We take security seriously. We appreciate your efforts to responsibly disclose vulnerabilities and will make every effort to acknowledge your contributions. - -## Table of Contents - -- [Reporting a Vulnerability](#reporting-a-vulnerability) -- [What to Include](#what-to-include) -- [Response Timeline](#response-timeline) -- [Disclosure Policy](#disclosure-policy) -- [Scope](#scope) -- [Safe Harbour](#safe-harbour) -- [Recognition](#recognition) -- [Security Updates](#security-updates) -- [Security Best Practices](#security-best-practices) - ---- - -## Reporting a Vulnerability - -### Preferred Method: GitHub Security Advisories - -The preferred method for reporting security vulnerabilities is through GitHub's Security Advisory feature: - -1. Navigate to [Report a Vulnerability](https://github.com/{{OWNER}}/{{REPO}}/security/advisories/new) -2. Click **"Report a vulnerability"** -3. Complete the form with as much detail as possible -4. Submit — we'll receive a private notification - -This method ensures: - -- End-to-end encryption of your report -- Private discussion space for collaboration -- Coordinated disclosure tooling -- Automatic credit when the advisory is published - -### Alternative: Encrypted Email - -If you cannot use GitHub Security Advisories, you may email us directly: - -| | | -|---|---| -| **Email** | {{SECURITY_EMAIL}} | -| **PGP Key** | [Download Public Key]({{PGP_KEY_URL}}) | -| **Fingerprint** | `{{PGP_FINGERPRINT}}` | - -```bash -# Import our PGP key -curl -sSL {{PGP_KEY_URL}} | gpg --import - -# Verify fingerprint -gpg --fingerprint {{SECURITY_EMAIL}} - -# Encrypt your report -gpg --armor --encrypt --recipient {{SECURITY_EMAIL}} report.txt -``` - -> **⚠️ Important:** Do not report security vulnerabilities through public GitHub issues, pull requests, discussions, or social media. - ---- - -## What to Include - -A good vulnerability report helps us understand and reproduce the issue quickly. - -### Required Information - -- **Description**: Clear explanation of the vulnerability -- **Impact**: What an attacker could achieve (confidentiality, integrity, availability) -- **Affected versions**: Which versions/commits are affected -- **Reproduction steps**: Detailed steps to reproduce the issue - -### Helpful Additional Information - -- **Proof of concept**: Code, scripts, or screenshots demonstrating the vulnerability -- **Attack scenario**: Realistic attack scenario showing exploitability -- **CVSS score**: Your assessment of severity (use [CVSS 3.1 Calculator](https://www.first.org/cvss/calculator/3.1)) -- **CWE ID**: Common Weakness Enumeration identifier if known -- **Suggested fix**: If you have ideas for remediation -- **References**: Links to related vulnerabilities, research, or advisories - -### Example Report Structure - -```markdown -## Summary -[One-sentence description of the vulnerability] - -## Vulnerability Type -[e.g., SQL Injection, XSS, SSRF, Path Traversal, etc.] - -## Affected Component -[File path, function name, API endpoint, etc.] - -## Affected Versions -[Version range or specific commits] - -## Severity Assessment -- CVSS 3.1 Score: [X.X] -- CVSS Vector: [CVSS:3.1/AV:X/AC:X/PR:X/UI:X/S:X/C:X/I:X/A:X] - -## Description -[Detailed technical description] - -## Steps to Reproduce -1. [First step] -2. [Second step] -3. [...] - -## Proof of Concept -[Code, curl commands, screenshots, etc.] - -## Impact -[What can an attacker achieve?] - -## Suggested Remediation -[Optional: your ideas for fixing] - -## References -[Links to related issues, CVEs, research] -``` - ---- - -## Response Timeline - -We commit to the following response times: - -| Stage | Timeframe | Description | -|-------|-----------|-------------| -| **Initial Response** | 48 hours | We acknowledge receipt and confirm we're investigating | -| **Triage** | 7 days | We assess severity, confirm the vulnerability, and estimate timeline | -| **Status Update** | Every 7 days | Regular updates on remediation progress | -| **Resolution** | 90 days | Target for fix development and release (complex issues may take longer) | -| **Disclosure** | 90 days | Public disclosure after fix is available (coordinated with you) | - -> **Note:** These are targets, not guarantees. Complex vulnerabilities may require more time. We'll communicate openly about any delays. - ---- - -## Disclosure Policy - -We follow **coordinated disclosure** (also known as responsible disclosure): - -1. **You report** the vulnerability privately -2. **We acknowledge** and begin investigation -3. **We develop** a fix and prepare a release -4. **We coordinate** disclosure timing with you -5. **We publish** security advisory and fix simultaneously -6. **You may publish** your research after disclosure - -### Our Commitments - -- We will not take legal action against researchers who follow this policy -- We will work with you to understand and resolve the issue -- We will credit you in the security advisory (unless you prefer anonymity) -- We will notify you before public disclosure -- We will publish advisories with sufficient detail for users to assess risk - -### Your Commitments - -- Report vulnerabilities promptly after discovery -- Give us reasonable time to address the issue before disclosure -- Do not access, modify, or delete data beyond what's necessary to demonstrate the vulnerability -- Do not degrade service availability (no DoS testing on production) -- Do not share vulnerability details with others until coordinated disclosure - -### Disclosure Timeline - -``` -Day 0 You report vulnerability -Day 1-2 We acknowledge receipt -Day 7 We confirm vulnerability and share initial assessment -Day 7-90 We develop and test fix -Day 90 Coordinated public disclosure - (earlier if fix is ready; later by mutual agreement) -``` - -If we cannot reach agreement on disclosure timing, we default to 90 days from your initial report. - ---- - -## Scope - -### In Scope ✅ - -The following are within scope for security research: - -- This repository (`{{OWNER}}/{{REPO}}`) and all its code -- Official releases and packages published from this repository -- Documentation that could lead to security issues -- Build and deployment configurations in this repository -- Dependencies (report here, we'll coordinate with upstream) - -### Out of Scope ❌ - -The following are **not** in scope: - -- Third-party services we integrate with (report directly to them) -- Social engineering attacks against maintainers -- Physical security -- Denial of service attacks against production infrastructure -- Spam, phishing, or other non-technical attacks -- Issues already reported or publicly known -- Theoretical vulnerabilities without proof of concept - -### Qualifying Vulnerabilities - -We're particularly interested in: - -- Remote code execution -- SQL injection, command injection, code injection -- Authentication/authorisation bypass -- Cross-site scripting (XSS) and cross-site request forgery (CSRF) -- Server-side request forgery (SSRF) -- Path traversal / local file inclusion -- Information disclosure (credentials, PII, secrets) -- Cryptographic weaknesses -- Deserialisation vulnerabilities -- Memory safety issues (buffer overflows, use-after-free, etc.) -- Supply chain vulnerabilities (dependency confusion, etc.) -- Significant logic flaws - -### Non-Qualifying Issues - -The following generally do not qualify as security vulnerabilities: - -- Missing security headers on non-sensitive pages -- Clickjacking on pages without sensitive actions -- Self-XSS (requires victim to paste code) -- Missing rate limiting (unless it enables a specific attack) -- Username/email enumeration (unless high-risk context) -- Missing cookie flags on non-sensitive cookies -- Software version disclosure -- Verbose error messages (unless exposing secrets) -- Best practice deviations without demonstrable impact - ---- - -## Safe Harbour - -We support security research conducted in good faith. - -### Our Promise - -If you conduct security research in accordance with this policy: - -- ✅ We will not initiate legal action against you -- ✅ We will not report your activity to law enforcement -- ✅ We will work with you in good faith to resolve issues -- ✅ We consider your research authorised under the Computer Fraud and Abuse Act (CFAA), UK Computer Misuse Act, and similar laws -- ✅ We waive any potential claim against you for circumvention of security controls - -### Good Faith Requirements - -To qualify for safe harbour, you must: - -- Comply with this security policy -- Report vulnerabilities promptly -- Avoid privacy violations (do not access others' data) -- Avoid service degradation (no destructive testing) -- Not exploit vulnerabilities beyond proof-of-concept -- Not use vulnerabilities for profit (beyond bug bounties where offered) - -> **⚠️ Important:** This safe harbour does not extend to third-party systems. Always check their policies before testing. - ---- - -## Recognition - -We believe in recognising security researchers who help us improve. - -### Hall of Fame - -Researchers who report valid vulnerabilities will be acknowledged in our [Security Acknowledgments](SECURITY-ACKNOWLEDGMENTS.md) (unless they prefer anonymity). - -Recognition includes: - -- Your name (or chosen alias) -- Link to your website/profile (optional) -- Brief description of the vulnerability class -- Date of report - -### What We Offer - -- ✅ Public credit in security advisories -- ✅ Acknowledgment in release notes -- ✅ Entry in our Hall of Fame -- ✅ Reference/recommendation letter upon request (for significant findings) - -### What We Don't Currently Offer - -- ❌ Monetary bug bounties -- ❌ Hardware or swag -- ❌ Paid security research contracts - -> **Note:** We're a community project with limited resources. Your contributions help everyone who uses this software. - ---- - -## Security Updates - -### Receiving Updates - -To stay informed about security updates: - -- **Watch this repository**: Click "Watch" → "Custom" → Select "Security alerts" -- **GitHub Security Advisories**: Published at [Security Advisories](https://github.com/{{OWNER}}/{{REPO}}/security/advisories) -- **Release notes**: Security fixes noted in [CHANGELOG](CHANGELOG.md) - -### Update Policy - -| Severity | Response | -|----------|----------| -| **Critical/High** | Patch release as soon as fix is ready | -| **Medium** | Included in next scheduled release (or earlier) | -| **Low** | Included in next scheduled release | - -### Supported Versions - - - -| Version | Supported | Notes | -|---------|-----------|-------| -| `main` branch | ✅ Yes | Latest development | -| Latest release | ✅ Yes | Current stable | -| Previous minor release | ✅ Yes | Security fixes backported | -| Older versions | ❌ No | Please upgrade | - ---- - -## Security Best Practices - -When using {{PROJECT_NAME}}, we recommend: - -### General - -- Keep dependencies up to date -- Use the latest stable release -- Subscribe to security notifications -- Review configuration against security documentation -- Follow principle of least privilege - -### For Contributors - -- Never commit secrets, credentials, or API keys -- Use signed commits (`git config commit.gpgsign true`) -- Review dependencies before adding them -- Run security linters locally before pushing -- Report any concerns about existing code - ---- - -## Additional Resources - -- [Our PGP Public Key]({{PGP_KEY_URL}}) -- [Security Advisories](https://github.com/{{OWNER}}/{{REPO}}/security/advisories) -- [Changelog](CHANGELOG.md) -- [Contributing Guidelines](CONTRIBUTING.md) -- [CVE Database](https://cve.mitre.org/) -- [CVSS Calculator](https://www.first.org/cvss/calculator/3.1) - ---- - -## Contact - -| Purpose | Contact | -|---------|---------| -| **Security issues** | [Report via GitHub](https://github.com/{{OWNER}}/{{REPO}}/security/advisories/new) or {{SECURITY_EMAIL}} | -| **General questions** | [GitHub Discussions](https://github.com/{{OWNER}}/{{REPO}}/discussions) | -| **Other enquiries** | See [README](README.md) for contact information | - ---- - -## Policy Changes - -This security policy may be updated from time to time. Significant changes will be: - -- Committed to this repository with a clear commit message -- Noted in the changelog -- Announced via GitHub Discussions (for major changes) - ---- - -*Thank you for helping keep {{PROJECT_NAME}} and its users safe.* 🛡️ - ---- - -Last updated: {{CURRENT_YEAR}} · Policy version: 1.0.0 diff --git a/a2ml/pandoc/.github/SUPPORT b/a2ml/pandoc/.github/SUPPORT deleted file mode 100644 index b06c59a37..000000000 --- a/a2ml/pandoc/.github/SUPPORT +++ /dev/null @@ -1,7 +0,0 @@ -# Support - -For questions, help, and community discussion: - -- GitHub Discussions: https://github.com/{{OWNER}}/{{REPO}}/discussions -- GitHub Issues: https://github.com/{{OWNER}}/{{REPO}}/issues -- Documentation: See README.adoc in the root directory. diff --git a/a2ml/pandoc/.github/copilot-instructions.md b/a2ml/pandoc/.github/copilot-instructions.md deleted file mode 100644 index 6b44aec84..000000000 --- a/a2ml/pandoc/.github/copilot-instructions.md +++ /dev/null @@ -1,57 +0,0 @@ - - - - -# Copilot Instructions - -## Before Writing Code - -- Read `0-AI-MANIFEST.a2ml` in the repo root for canonical file locations. -- State files (.a2ml) live in `.machine_readable/` ONLY, never the root. - -## License - -- SPDX: `PMPL-1.0-or-later` on all new files. -- Never use AGPL-3.0. -- Copyright: `{{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>` - -## Code Style - -- Use descriptive variable names. -- Annotate and document all files. -- Add SPDX header to every source file. -- Use `just` for build/test/lint commands. - -## Banned Patterns - -- Idris2: no `believe_me`, no `assert_total` -- Haskell: no `unsafeCoerce`, no `unsafePerformIO` -- OCaml: no `Obj.magic` -- Coq: no `Admitted` -- Lean: no `sorry` -- Rust: no `transmute` unless FFI with `// SAFETY:` comment - -## Banned Languages - -- No TypeScript (use ReScript) -- No Node.js / npm / bun (use Deno) -- No Go (use Rust) -- No Python (use Julia or Rust) - -## Containers - -- Use Podman, never Docker. -- Name the file `Containerfile`, never `Dockerfile`. -- Base image: `cgr.dev/chainguard/wolfi-base:latest`. - -## ABI/FFI - -- ABI definitions in Idris2 (`src/interface/abi/`). -- FFI implementations in Zig (`src/interface/ffi/`). -- Generated C headers in `src/interface/generated/`. - -## State Files - -Never create these in the repo root: -STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml, AGENTIC.a2ml, NEUROSYM.a2ml, PLAYBOOK.a2ml. -They belong in `.machine_readable/` only. diff --git a/a2ml/pandoc/.github/dependabot.yml b/a2ml/pandoc/.github/dependabot.yml deleted file mode 100644 index d5cd4e996..000000000 --- a/a2ml/pandoc/.github/dependabot.yml +++ /dev/null @@ -1,48 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Dependabot configuration for RSR-compliant repositories -# Covers common ecosystems - remove unused ones for your project - -version: 2 -updates: - # GitHub Actions - always include - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "weekly" - groups: - actions: - patterns: - - "*" - - # Rust/Cargo - - package-ecosystem: "cargo" - directory: "/" - schedule: - interval: "weekly" - ignore: - - dependency-name: "*" - update-types: ["version-update:semver-patch"] - - # Elixir/Mix - - package-ecosystem: "mix" - directory: "/" - schedule: - interval: "weekly" - - # Node.js/npm - - package-ecosystem: "npm" - directory: "/" - schedule: - interval: "weekly" - - # Python/pip - - package-ecosystem: "pip" - directory: "/" - schedule: - interval: "weekly" - - # Nix flakes - - package-ecosystem: "nix" - directory: "/" - schedule: - interval: "weekly" diff --git a/a2ml/pandoc/.github/pull_request_template.md b/a2ml/pandoc/.github/pull_request_template.md deleted file mode 100644 index 7e07d1768..000000000 --- a/a2ml/pandoc/.github/pull_request_template.md +++ /dev/null @@ -1,44 +0,0 @@ - -## Summary - - - -## Changes - - - -- - -## RSR Quality Checklist - - - -### Required - -- [ ] Tests pass (`just test` or equivalent) -- [ ] Code is formatted (`just fmt` or equivalent) -- [ ] Linter is clean (no new warnings or errors) -- [ ] No banned language patterns (no TypeScript, no npm/bun, no Go/Python) -- [ ] No `unsafe` blocks without `// SAFETY:` comments -- [ ] No banned functions (`believe_me`, `unsafeCoerce`, `Obj.magic`, `Admitted`, `sorry`) -- [ ] SPDX license headers present on all new/modified source files -- [ ] No secrets, credentials, or `.env` files included - -### As Applicable - -- [ ] `.machine_readable/STATE.a2ml` updated (if project state changed) -- [ ] `.machine_readable/ECOSYSTEM.a2ml` updated (if integrations changed) -- [ ] `.machine_readable/META.a2ml` updated (if architectural decisions changed) -- [ ] Documentation updated for user-facing changes -- [ ] `TOPOLOGY.md` updated (if architecture changed) -- [ ] `CHANGELOG` or release notes updated -- [ ] New dependencies reviewed for license compatibility (PMPL-1.0-or-later / MPL-2.0) -- [ ] ABI/FFI changes validated (`src/interface/abi/` and `src/interface/ffi/` consistent) - -## Testing - - - -## Screenshots - - diff --git a/a2ml/pandoc/.github/workflows/codeql.yml b/a2ml/pandoc/.github/workflows/codeql.yml deleted file mode 100644 index de07c8f32..000000000 --- a/a2ml/pandoc/.github/workflows/codeql.yml +++ /dev/null @@ -1,23 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: CodeQL Security Analysis - -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] - schedule: - - cron: '0 6 * * 1' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: false - -permissions: - contents: read - -jobs: - analyze-js: - uses: ../../../.github/workflows/codeql-reusable.yml - with: - language: javascript-typescript diff --git a/a2ml/pandoc/.github/workflows/governance.yml b/a2ml/pandoc/.github/workflows/governance.yml deleted file mode 100644 index f5f282ccc..000000000 --- a/a2ml/pandoc/.github/workflows/governance.yml +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# governance.yml — single wrapper calling the shared estate governance bundle -# in hyperpolymath/standards instead of carrying per-repo copies. -# -# Replaces the per-repo governance scaffolding removed in the same commit: -# quality.yml, guix-nix-policy.yml, npm-bun-blocker.yml, ts-blocker.yml, -# security-policy.yml, rsr-antipattern.yml, wellknown-enforcement.yml, -# workflow-linter.yml -# -# Load-bearing build/security workflows stay standalone in the repo -# (rust-ci, codeql, dependabot, release, scan/mirror/pages plumbing). - -name: Governance - -on: - push: - branches: [main, master] - pull_request: - workflow_dispatch: - -permissions: - actions: read - contents: read - -jobs: - governance: - uses: ../../../.github/workflows/governance-reusable.yml diff --git a/a2ml/pandoc/.github/workflows/hypatia-scan.yml b/a2ml/pandoc/.github/workflows/hypatia-scan.yml deleted file mode 100644 index f120579d4..000000000 --- a/a2ml/pandoc/.github/workflows/hypatia-scan.yml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Hypatia Security Scan - -on: - push: - branches: [main, master, develop] - pull_request: - branches: [main, master] - schedule: - - cron: '0 0 * * 0' - workflow_dispatch: - -permissions: - actions: read - contents: read - security-events: write - -jobs: - scan: - uses: ../../../.github/workflows/hypatia-scan-reusable.yml - secrets: inherit diff --git a/a2ml/pandoc/.github/workflows/jekyll.yml b/a2ml/pandoc/.github/workflows/jekyll.yml deleted file mode 100644 index 32e00a9f9..000000000 --- a/a2ml/pandoc/.github/workflows/jekyll.yml +++ /dev/null @@ -1,68 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -# Sample workflow for building and deploying a Jekyll site to GitHub Pages -name: Deploy Jekyll site to Pages - -on: - # Runs on pushes targeting the default branch - push: - branches: ["main"] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - # Build job - build: - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Setup Ruby - # https://github.com/ruby/setup-ruby/releases/tag/v1.207.0 - uses: ruby/setup-ruby@09a7688d3b55cf0e976497ff046b70949eeaccfd # v1.207.0 - with: - ruby-version: '3.1' # Not needed with a .ruby-version file - bundler-cache: true # runs 'bundle install' and caches installed gems automatically - cache-version: 0 # Increment this number if you need to re-download cached gems - - name: Setup Pages - id: pages - uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5 - - name: Build with Jekyll - # Outputs to the './_site' directory by default - run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" - env: - JEKYLL_ENV: production - - name: Upload artifact - # Automatically uploads an artifact from the './_site' directory by default - uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4 - - # Deployment job - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - timeout-minutes: 30 - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4 diff --git a/a2ml/pandoc/.github/workflows/mirror.yml b/a2ml/pandoc/.github/workflows/mirror.yml deleted file mode 100644 index a20ae7da7..000000000 --- a/a2ml/pandoc/.github/workflows/mirror.yml +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Mirror to Git Forges - -on: - push: - branches: [main] - workflow_dispatch: - -permissions: - contents: read - -jobs: - mirror: - uses: ../../../.github/workflows/mirror-reusable.yml - secrets: inherit diff --git a/a2ml/pandoc/.github/workflows/release.yml b/a2ml/pandoc/.github/workflows/release.yml deleted file mode 100644 index df3992277..000000000 --- a/a2ml/pandoc/.github/workflows/release.yml +++ /dev/null @@ -1,131 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# Release workflow — triggered by version tags (v*). -# Builds artifacts, generates changelog via git-cliff, creates a GitHub Release, -# and produces SLSA provenance attestations. -name: Release - -on: - push: - tags: - - 'v*' - -permissions: read-all - -jobs: - build: - name: Build Artifacts - runs-on: ubuntu-latest - timeout-minutes: 30 - permissions: - contents: read - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - - name: Build - run: | - echo "Build your artifacts here" - # TODO: Replace with your build commands - # Examples: - # cargo build --release - # zig build -Doptimize=ReleaseFast - # gleam build - # mix release - - # TODO: Upload build artifacts if needed - # - uses: actions/upload-artifact@v4 - # with: - # name: release-artifacts - # path: target/release/ - - changelog: - name: Generate Changelog - runs-on: ubuntu-latest - timeout-minutes: 20 - permissions: - contents: read - outputs: - changelog: ${{ steps.cliff.outputs.content }} - version: ${{ steps.version.outputs.version }} - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - fetch-depth: 0 - - - name: Extract version from tag - id: version - run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT" - - - name: Install git-cliff - run: | - curl -sSfL https://github.com/orhun/git-cliff/releases/latest/download/git-cliff-$(uname -m)-unknown-linux-gnu.tar.gz \ - | tar -xz --strip-components=1 -C /usr/local/bin/ git-cliff-*/git-cliff - - - name: Generate changelog for this release - id: cliff - run: | - # Generate changelog for the current tag only - CHANGELOG=$(git cliff --latest --strip header) - # Write to output using delimiter to handle multiline - { - echo "content<> "$GITHUB_OUTPUT" - - - name: Update full CHANGELOG.md - run: | - git cliff --output CHANGELOG.md - - - name: Upload updated CHANGELOG.md - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - with: - name: changelog - path: CHANGELOG.md - retention-days: 5 - - release: - name: Create GitHub Release - needs: [build, changelog] - runs-on: ubuntu-latest - timeout-minutes: 30 - permissions: - contents: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - # TODO: Download build artifacts if uploading to the release - # - uses: actions/download-artifact@v4 - # with: - # name: release-artifacts - # path: artifacts/ - - - name: Create GitHub Release - uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2 - with: - body: ${{ needs.changelog.outputs.changelog }} - draft: false - prerelease: ${{ contains(github.ref_name, '-rc') || contains(github.ref_name, '-beta') || contains(github.ref_name, '-alpha') }} - generate_release_notes: false - # TODO: Add artifact files to the release - # files: | - # artifacts/* - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - provenance: - name: SLSA Provenance - needs: [build] - permissions: - actions: read - id-token: write - contents: write - # SLSA generator must run in a separate, isolated workflow - # See: https://slsa.dev/spec/v1.0/requirements#build-l3 - uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@f7dd8c54c2067bafc12ca7a55595d5ee9b75204a # v2.1.0 - with: - base64-subjects: "" - # TODO: Replace with actual artifact hashes - # Generate with: sha256sum artifact | base64 -w0 - # base64-subjects: "${{ needs.build.outputs.hashes }}" diff --git a/a2ml/pandoc/.github/workflows/rhodibot.yml b/a2ml/pandoc/.github/workflows/rhodibot.yml deleted file mode 100644 index 87dcad859..000000000 --- a/a2ml/pandoc/.github/workflows/rhodibot.yml +++ /dev/null @@ -1,235 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# rhodibot.yml — Automated RSR compliance enforcement -# -# Reads root-hygiene rules and auto-fixes what it can: -# - Delete banned files (AI.djot, duplicate CONTRIBUTING.adoc, stale snapshots) -# - Rename misnamed files (AI.a2ml → 0-AI-MANIFEST.a2ml) -# - Fix SPDX headers (AGPL → PMPL in dotfiles) -# - Create missing required files (SECURITY.md, CONTRIBUTING.md) -# - Report unfixable issues as PR comments -# -# Runs weekly and on Hypatia scan completion. - -name: "🤖 Rhodibot — RSR Auto-Fix" - -on: - schedule: - - cron: '0 6 * * 1' # Every Monday at 06:00 UTC - workflow_dispatch: # Manual trigger - workflow_run: - workflows: ["Hypatia Neurosymbolic Analysis"] - types: [completed] - -permissions: - contents: write - pull-requests: write - -jobs: - rhodibot: - runs-on: ubuntu-latest - timeout-minutes: 20 - steps: - - name: Checkout - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - with: - fetch-depth: 1 - - - name: Rhodibot — Scan and Fix - id: fix - run: | - set -euo pipefail - FIXES="" - ISSUES="" - CHANGED=false - - # --- 1. Delete banned files --- - for pattern in "AI.djot" "NEXT_STEPS.md" "TODO.md" "NOTES.md" "TASKS.md"; do - if [ -f "$pattern" ]; then - rm "$pattern" - FIXES="$FIXES\n- Deleted \`$pattern\` (superseded)" - CHANGED=true - fi - done - - # Delete stale snapshot files - for f in *-STATUS-*.md *-COMPLETION-*.md *-COMPLETE.md *-VERIFIED-*.md; do - if [ -f "$f" ]; then - rm "$f" - FIXES="$FIXES\n- Deleted stale snapshot \`$f\`" - CHANGED=true - fi - done - - # --- 2. Rename misnamed files --- - if [ -f "AI.a2ml" ] && [ ! -f "0-AI-MANIFEST.a2ml" ]; then - mv AI.a2ml 0-AI-MANIFEST.a2ml - FIXES="$FIXES\n- Renamed \`AI.a2ml\` → \`0-AI-MANIFEST.a2ml\`" - CHANGED=true - fi - - # --- 3. Delete duplicate format files --- - if [ -f "CONTRIBUTING.md" ] && [ -f "CONTRIBUTING.adoc" ]; then - rm CONTRIBUTING.adoc - FIXES="$FIXES\n- Deleted duplicate \`CONTRIBUTING.adoc\` (keeping .md for GitHub)" - CHANGED=true - fi - - if [ -f "README.md" ] && [ -f "README.adoc" ]; then - # Only delete README.md if it's a stub (<5 lines) - lines=$(wc -l < README.md) - if [ "$lines" -lt 5 ]; then - rm README.md - FIXES="$FIXES\n- Deleted stub \`README.md\` (keeping .adoc)" - CHANGED=true - fi - fi - - # --- 4. Fix SPDX headers in dotfiles --- - for dotfile in .gitignore .gitattributes .editorconfig; do - if [ -f "$dotfile" ] && grep -q "AGPL-3.0" "$dotfile" 2>/dev/null; then - sed -i 's/AGPL-3.0-or-later/PMPL-1.0-or-later/g; s/AGPL-3.0/PMPL-1.0-or-later/g' "$dotfile" - FIXES="$FIXES\n- Fixed SPDX header in \`$dotfile\` (AGPL → PMPL)" - CHANGED=true - fi - done - - # --- 5. Create missing required files --- - if [ ! -f "SECURITY.md" ]; then - cat > SECURITY.md << 'SECEOF' - - # Security Policy - - ## Reporting a Vulnerability - - **Email:** j.d.a.jewell@open.ac.uk - - **Response timeline:** - - Acknowledgement within 48 hours - - Initial assessment within 7 days - - Fix or mitigation within 90 days - - **Safe harbour:** We will not pursue legal action against security researchers who follow responsible disclosure. - SECEOF - FIXES="$FIXES\n- Created missing \`SECURITY.md\`" - CHANGED=true - fi - - if [ ! -f "CONTRIBUTING.md" ]; then - cat > CONTRIBUTING.md << 'CONTEOF' - - # Contributing - - 1. Fork the repository - 2. Create a feature branch - 3. Ensure SPDX headers on all files - 4. Submit a pull request - - **Author:** Jonathan D.A. Jewell - CONTEOF - FIXES="$FIXES\n- Created missing \`CONTRIBUTING.md\`" - CHANGED=true - fi - - # --- 6. Check for issues we can't auto-fix --- - if [ ! -f "0-AI-MANIFEST.a2ml" ] && [ ! -f "AI.a2ml" ]; then - ISSUES="$ISSUES\n- Missing AI manifest (0-AI-MANIFEST.a2ml)" - fi - - if [ ! -f "LICENSE" ] && [ ! -f "LICENSE.md" ] && [ ! -f "LICENSE.txt" ]; then - ISSUES="$ISSUES\n- Missing LICENSE file" - fi - - if [ ! -f "README.adoc" ] && [ ! -f "README.md" ]; then - ISSUES="$ISSUES\n- Missing README" - fi - - # Check for third-party fork (skip SPDX enforcement) - if [ -f "LICENSE" ] && grep -q "multiple licenses\|LGPL\|Apache" LICENSE 2>/dev/null; then - echo "FORK=true" >> $GITHUB_OUTPUT - fi - - # --- 7. Check dangerous patterns --- - DANGEROUS="" - for pattern in "believe_me" "assert_total" "Admitted" "sorry" "unsafeCoerce" "Obj.magic"; do - count=$(grep -r "$pattern" --include='*.idr' --include='*.v' --include='*.lean' --include='*.hs' --include='*.ml' --include='*.res' . 2>/dev/null | grep -v node_modules | wc -l || echo 0) - if [ "$count" -gt 0 ]; then - DANGEROUS="$DANGEROUS\n- \`$pattern\`: $count occurrences" - fi - done - - # Output results - echo "CHANGED=$CHANGED" >> $GITHUB_OUTPUT - { - echo "FIXES<> $GITHUB_OUTPUT - { - echo "ISSUES<> $GITHUB_OUTPUT - { - echo "DANGEROUS<> $GITHUB_OUTPUT - - - name: Create PR with fixes - if: steps.fix.outputs.CHANGED == 'true' - run: | - git config user.name "rhodibot" - git config user.email "rhodibot@hyperpolymath.dev" - BRANCH="rhodibot/rsr-compliance-$(date +%Y%m%d)" - git checkout -b "$BRANCH" - git add -A - git commit -m "fix(rhodibot): automated RSR compliance fixes - - ${{ steps.fix.outputs.FIXES }} - - Co-Authored-By: rhodibot " - - git push origin "$BRANCH" - - BODY="## 🤖 Rhodibot — RSR Compliance Fixes - - ### Changes Made - ${{ steps.fix.outputs.FIXES }} - " - - if [ -n "${{ steps.fix.outputs.ISSUES }}" ]; then - BODY="$BODY - ### Issues Found (manual fix needed) - ${{ steps.fix.outputs.ISSUES }} - " - fi - - if [ -n "${{ steps.fix.outputs.DANGEROUS }}" ]; then - BODY="$BODY - ### ⚠️ Dangerous Patterns Detected - ${{ steps.fix.outputs.DANGEROUS }} - - _These bypass formal verification. See \`proven\` repo for alternatives._ - " - fi - - gh pr create \ - --title "🤖 Rhodibot: RSR compliance fixes" \ - --body "$BODY" \ - --base main \ - --head "$BRANCH" - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Report (no changes needed) - if: steps.fix.outputs.CHANGED != 'true' - run: | - echo "✅ Repository is RSR-compliant. No fixes needed." - if [ -n "${{ steps.fix.outputs.ISSUES }}" ]; then - echo "⚠️ Issues found (manual fix needed):" - echo -e "${{ steps.fix.outputs.ISSUES }}" - fi - if [ -n "${{ steps.fix.outputs.DANGEROUS }}" ]; then - echo "⚠️ Dangerous patterns:" - echo -e "${{ steps.fix.outputs.DANGEROUS }}" - fi diff --git a/a2ml/pandoc/.github/workflows/scorecard-enforcer.yml b/a2ml/pandoc/.github/workflows/scorecard-enforcer.yml deleted file mode 100644 index bbba795b7..000000000 --- a/a2ml/pandoc/.github/workflows/scorecard-enforcer.yml +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Prevention workflow - runs OpenSSF Scorecard and fails on low scores -name: OpenSSF Scorecard Enforcer - -on: - push: - branches: [main] - schedule: - - cron: '0 6 * * 1' - workflow_dispatch: - -permissions: - contents: read - -jobs: - scorecard: - uses: ../../../.github/workflows/scorecard-reusable.yml diff --git a/a2ml/pandoc/.github/workflows/scorecard.yml b/a2ml/pandoc/.github/workflows/scorecard.yml deleted file mode 100644 index d665a836d..000000000 --- a/a2ml/pandoc/.github/workflows/scorecard.yml +++ /dev/null @@ -1,24 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: OSSF Scorecard - -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] - schedule: - - cron: '0 4 * * *' - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - actions: read - contents: read - -jobs: - scorecard: - uses: ../../../.github/workflows/scorecard-reusable.yml - secrets: inherit diff --git a/a2ml/pandoc/.github/workflows/secret-scanner.yml b/a2ml/pandoc/.github/workflows/secret-scanner.yml deleted file mode 100644 index 82b3c70ed..000000000 --- a/a2ml/pandoc/.github/workflows/secret-scanner.yml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Secret Scanner - -on: - pull_request: - push: - branches: [main] - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - scan: - permissions: - contents: read - uses: ../../../.github/workflows/secret-scanner-reusable.yml - secrets: inherit diff --git a/a2ml/pandoc/.github/workflows/static-analysis-gate.yml b/a2ml/pandoc/.github/workflows/static-analysis-gate.yml deleted file mode 100644 index 235af7f72..000000000 --- a/a2ml/pandoc/.github/workflows/static-analysis-gate.yml +++ /dev/null @@ -1,331 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Static Analysis Gate — Required by branch protection rules. -# Runs panic-attack and hypatia, deposits findings for gitbot-fleet learning. -name: Static Analysis Gate - -on: - pull_request: - branches: ['**'] - push: - branches: [main, master] - -permissions: read-all - -jobs: - # --------------------------------------------------------------------------- - # Job 1: panic-attack assail - # --------------------------------------------------------------------------- - panic-attack-assail: - name: panic-attack assail - runs-on: ubuntu-latest - timeout-minutes: 20 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - fetch-depth: 0 - - - name: Install panic-attack (if available) - id: install - run: | - # Try to fetch the latest release binary from the org - PA_URL="https://github.com/hyperpolymath/panic-attack/releases/latest/download/panic-attack-linux-x86_64" - if curl -fsSL --head "$PA_URL" >/dev/null 2>&1; then - curl -fsSL -o /usr/local/bin/panic-attack "$PA_URL" - chmod +x /usr/local/bin/panic-attack - echo "installed=true" >> "$GITHUB_OUTPUT" - else - echo "::notice::panic-attack binary not available — skipping assail" - echo "installed=false" >> "$GITHUB_OUTPUT" - fi - - - name: Run panic-attack assail - id: assail - if: steps.install.outputs.installed == 'true' - run: | - set +e - panic-attack assail --format json . > panic-attack-findings.json 2>&1 - PA_EXIT=$? - set -e - - if [ ! -s panic-attack-findings.json ]; then - echo "[]" > panic-attack-findings.json - fi - - # Parse finding counts - TOTAL=$(jq '. | length' panic-attack-findings.json 2>/dev/null || echo 0) - CRITICAL=$(jq '[.[] | select(.severity == "critical")] | length' panic-attack-findings.json 2>/dev/null || echo 0) - HIGH=$(jq '[.[] | select(.severity == "high")] | length' panic-attack-findings.json 2>/dev/null || echo 0) - MEDIUM=$(jq '[.[] | select(.severity == "medium")] | length' panic-attack-findings.json 2>/dev/null || echo 0) - LOW=$(jq '[.[] | select(.severity == "low")] | length' panic-attack-findings.json 2>/dev/null || echo 0) - - echo "total=$TOTAL" >> "$GITHUB_OUTPUT" - echo "critical=$CRITICAL" >> "$GITHUB_OUTPUT" - echo "high=$HIGH" >> "$GITHUB_OUTPUT" - echo "medium=$MEDIUM" >> "$GITHUB_OUTPUT" - echo "low=$LOW" >> "$GITHUB_OUTPUT" - echo "exit_code=$PA_EXIT" >> "$GITHUB_OUTPUT" - - - name: Emit check annotations - if: steps.install.outputs.installed == 'true' - run: | - # Convert JSON findings into GitHub Actions annotations - jq -r '.[] | select(.file != null) | - if .severity == "critical" then - "::error file=\(.file),line=\(.line // 1)::[panic-attack] \(.message)" - elif .severity == "high" then - "::error file=\(.file),line=\(.line // 1)::[panic-attack] \(.message)" - else - "::warning file=\(.file),line=\(.line // 1)::[panic-attack] \(.message)" - end - ' panic-attack-findings.json || true - - - name: Write step summary - if: steps.install.outputs.installed == 'true' - run: | - cat <> "$GITHUB_STEP_SUMMARY" - ## panic-attack assail Results - - | Severity | Count | - |----------|-------| - | Critical | ${{ steps.assail.outputs.critical }} | - | High | ${{ steps.assail.outputs.high }} | - | Medium | ${{ steps.assail.outputs.medium }} | - | Low | ${{ steps.assail.outputs.low }} | - | **Total**| ${{ steps.assail.outputs.total }} | - EOF - - - name: Create stub findings (when panic-attack unavailable) - if: steps.install.outputs.installed != 'true' - run: | - echo "[]" > panic-attack-findings.json - echo "## panic-attack assail" >> "$GITHUB_STEP_SUMMARY" - echo "" >> "$GITHUB_STEP_SUMMARY" - echo "Skipped: panic-attack not available in this environment." >> "$GITHUB_STEP_SUMMARY" - - - name: Upload panic-attack findings - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 - with: - name: panic-attack-findings - path: panic-attack-findings.json - retention-days: 90 - - - name: Fail on critical findings - if: steps.install.outputs.installed == 'true' && steps.assail.outputs.critical > 0 - run: | - echo "::error::panic-attack found ${{ steps.assail.outputs.critical }} critical issue(s) — blocking merge" - exit 1 - - # --------------------------------------------------------------------------- - # Job 2: hypatia-scan - # --------------------------------------------------------------------------- - hypatia-scan: - name: Hypatia neurosymbolic scan - runs-on: ubuntu-latest - timeout-minutes: 20 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - fetch-depth: 0 - - - name: Setup Elixir for Hypatia scanner - id: beam - continue-on-error: true - uses: erlef/setup-beam@e6d7c94229049569db56a7ad5a540c051a010af9 # v1.18.2 - with: - elixir-version: '1.19.4' - otp-version: '28.3' - - - name: Clone and build Hypatia - id: build - continue-on-error: true - run: | - git clone https://github.com/hyperpolymath/hypatia.git "$HOME/hypatia" 2>/dev/null || true - if [ -d "$HOME/hypatia/scanner" ]; then - cd "$HOME/hypatia" - if [ ! -f hypatia-v2 ]; then - mix deps.get - mix escript.build - mv hypatia ../hypatia-v2 - fi - echo "ready=true" >> "$GITHUB_OUTPUT" - else - echo "::notice::Hypatia scanner not available — skipping scan" - echo "ready=false" >> "$GITHUB_OUTPUT" - fi - - - name: Run Hypatia scan - id: scan - if: steps.build.outputs.ready == 'true' - run: | - set +e - HYPATIA_FORMAT=json "$HOME/hypatia/hypatia-cli.sh" scan . > hypatia-findings.json 2>&1 - HYP_EXIT=$? - set -e - - if [ ! -s hypatia-findings.json ] || ! jq empty hypatia-findings.json 2>/dev/null; then - echo "[]" > hypatia-findings.json - fi - - TOTAL=$(jq '. | length' hypatia-findings.json 2>/dev/null || echo 0) - CRITICAL=$(jq '[.[] | select(.severity == "critical")] | length' hypatia-findings.json 2>/dev/null || echo 0) - HIGH=$(jq '[.[] | select(.severity == "high")] | length' hypatia-findings.json 2>/dev/null || echo 0) - MEDIUM=$(jq '[.[] | select(.severity == "medium")] | length' hypatia-findings.json 2>/dev/null || echo 0) - LOW=$(jq '[.[] | select(.severity == "low")] | length' hypatia-findings.json 2>/dev/null || echo 0) - - echo "total=$TOTAL" >> "$GITHUB_OUTPUT" - echo "critical=$CRITICAL" >> "$GITHUB_OUTPUT" - echo "high=$HIGH" >> "$GITHUB_OUTPUT" - echo "medium=$MEDIUM" >> "$GITHUB_OUTPUT" - echo "low=$LOW" >> "$GITHUB_OUTPUT" - - - name: Emit check annotations - if: steps.build.outputs.ready == 'true' - run: | - jq -r '.[] | select(.file != null) | - if .severity == "critical" then - "::error file=\(.file),line=\(.line // 1)::[hypatia] \(.message)" - elif .severity == "high" then - "::error file=\(.file),line=\(.line // 1)::[hypatia] \(.message)" - else - "::warning file=\(.file),line=\(.line // 1)::[hypatia] \(.message)" - end - ' hypatia-findings.json || true - - - name: Write step summary - if: steps.build.outputs.ready == 'true' - run: | - cat <> "$GITHUB_STEP_SUMMARY" - ## Hypatia Scan Results - - | Severity | Count | - |----------|-------| - | Critical | ${{ steps.scan.outputs.critical }} | - | High | ${{ steps.scan.outputs.high }} | - | Medium | ${{ steps.scan.outputs.medium }} | - | Low | ${{ steps.scan.outputs.low }} | - | **Total**| ${{ steps.scan.outputs.total }} | - EOF - - - name: Create stub findings (when Hypatia unavailable) - if: steps.build.outputs.ready != 'true' - run: | - echo "[]" > hypatia-findings.json - echo "## Hypatia Scan" >> "$GITHUB_STEP_SUMMARY" - echo "" >> "$GITHUB_STEP_SUMMARY" - echo "Skipped: Hypatia scanner not available in this environment." >> "$GITHUB_STEP_SUMMARY" - - - name: Upload hypatia findings - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 - with: - name: hypatia-findings - path: hypatia-findings.json - retention-days: 90 - - - name: Fail on critical security findings - if: steps.build.outputs.ready == 'true' && steps.scan.outputs.critical > 0 - run: | - echo "::error::Hypatia found ${{ steps.scan.outputs.critical }} critical security issue(s) — blocking merge" - exit 1 - - # --------------------------------------------------------------------------- - # Job 3: deposit-findings (combines + archives for gitbot-fleet) - # --------------------------------------------------------------------------- - deposit-findings: - name: Deposit findings for gitbot-fleet - runs-on: ubuntu-latest - timeout-minutes: 20 - needs: [panic-attack-assail, hypatia-scan] - if: always() - - steps: - - name: Download panic-attack findings - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 - with: - name: panic-attack-findings - path: findings/ - - - name: Download hypatia findings - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 - with: - name: hypatia-findings - path: findings/ - - - name: Combine findings into unified report - id: combine - run: | - PA_FILE="findings/panic-attack-findings.json" - HYP_FILE="findings/hypatia-findings.json" - - # Ensure both files exist and are valid JSON arrays - for f in "$PA_FILE" "$HYP_FILE"; do - if [ ! -s "$f" ] || ! jq empty "$f" 2>/dev/null; then - echo "[]" > "$f" - fi - done - - # Tag each finding with its source scanner - jq '[.[] | . + {"scanner": "panic-attack"}]' "$PA_FILE" > /tmp/pa-tagged.json - jq '[.[] | . + {"scanner": "hypatia"}]' "$HYP_FILE" > /tmp/hyp-tagged.json - - # Build unified report envelope - jq -n \ - --arg repo "${{ github.repository }}" \ - --arg sha "${{ github.sha }}" \ - --arg ref "${{ github.ref }}" \ - --arg run_id "${{ github.run_id }}" \ - --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \ - --slurpfile pa /tmp/pa-tagged.json \ - --slurpfile hyp /tmp/hyp-tagged.json \ - '{ - schema_version: "1.0.0", - repository: $repo, - commit_sha: $sha, - ref: $ref, - run_id: $run_id, - timestamp: $ts, - findings: ($pa[0] + $hyp[0]) - }' > findings/unified-findings.json - - TOTAL=$(jq '.findings | length' findings/unified-findings.json) - CRITICAL=$(jq '[.findings[] | select(.severity == "critical")] | length' findings/unified-findings.json) - HIGH=$(jq '[.findings[] | select(.severity == "high")] | length' findings/unified-findings.json) - MEDIUM=$(jq '[.findings[] | select(.severity == "medium")] | length' findings/unified-findings.json) - LOW=$(jq '[.findings[] | select(.severity == "low")] | length' findings/unified-findings.json) - - echo "total=$TOTAL" >> "$GITHUB_OUTPUT" - echo "critical=$CRITICAL" >> "$GITHUB_OUTPUT" - echo "high=$HIGH" >> "$GITHUB_OUTPUT" - echo "medium=$MEDIUM" >> "$GITHUB_OUTPUT" - echo "low=$LOW" >> "$GITHUB_OUTPUT" - - - name: Upload unified findings (fleet scanner picks these up) - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 - with: - name: unified-findings - path: findings/unified-findings.json - retention-days: 90 - - - name: Write deposit summary - run: | - cat <> "$GITHUB_STEP_SUMMARY" - ## Unified Findings Deposit - - **Repository:** ${{ github.repository }} - **Commit:** \`${{ github.sha }}\` - **Deposited at:** $(date -u +"%Y-%m-%d %H:%M:%S UTC") - - | Severity | Count | - |----------|-------| - | Critical | ${{ steps.combine.outputs.critical }} | - | High | ${{ steps.combine.outputs.high }} | - | Medium | ${{ steps.combine.outputs.medium }} | - | Low | ${{ steps.combine.outputs.low }} | - | **Total**| ${{ steps.combine.outputs.total }} | - - Findings saved as \`unified-findings\` artifact. - The gitbot-fleet scanner will ingest these on its next pass. - EOF \ No newline at end of file diff --git a/a2ml/pandoc/.gitignore b/a2ml/pandoc/.gitignore deleted file mode 100644 index 678e947e3..000000000 --- a/a2ml/pandoc/.gitignore +++ /dev/null @@ -1,109 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# RSR-compliant .gitignore - -# OS & Editor -.DS_Store -Thumbs.db -*.swp -*.swo -*~ -.idea/ -.vscode/ -.direnv/ - -# Build -/target/ -/_build/ -/build/ -/dist/ -/out/ - -# Dependencies -/node_modules/ -/vendor/ -/deps/ -/.elixir_ls/ - -# Rust -# Cargo.lock # Keep for binaries - -# Elixir -/cover/ -/doc/ -*.ez -erl_crash.dump - -# Julia -*.jl.cov -*.jl.mem -/Manifest.toml - -# ReScript -/lib/bs/ -/.bsb.lock - -# Python (SaltStack only) -__pycache__/ -*.py[cod] -.venv/ - -# Ada/SPARK -*.ali -/obj/ -/bin/ - -# Nix -# flake.lock is ignored in the template repo because each project should -# generate its own lock file on first use. In derived projects, REMOVE this -# line and track flake.lock for reproducible builds. -flake.lock - -# Haskell -/.stack-work/ -/dist-newstyle/ - -# Chapel -*.chpl.tmp.* - -# Secrets -.env -.env.* -*.pem -*.key -secrets/ - -# Test/Coverage -/coverage/ -htmlcov/ - -# Logs -*.log -/logs/ - -# Maintenance local artifacts -.maintenance-perms-state.tsv -docs/reports/maintenance/*.json - -# Temp -/tmp/ -*.tmp -*.bak - -# Crash recovery artifacts -ai-cli-crash-capture/ - -# KDE metadata -.directory - -# Sync artifacts -sync_report*.txt - -# Lua -*.luac -.luarocks/ - -# Machine-readable locks -.machine_readable/.locks/ - -# Hypatia scan cache (local-only) -.hypatia/ diff --git a/a2ml/pandoc/.gitlab-ci.yml b/a2ml/pandoc/.gitlab-ci.yml deleted file mode 100644 index 7309fa900..000000000 --- a/a2ml/pandoc/.gitlab-ci.yml +++ /dev/null @@ -1,175 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Primary CI/CD - GitLab is the source of truth - -stages: - - security - - lint - - test - - build - -variables: - CARGO_HOME: ${CI_PROJECT_DIR}/.cargo - -cache: - key: ${CI_COMMIT_REF_SLUG} - paths: - - .cargo/ - - target/ - -# ================== -# Security Scanning -# ================== - -trivy: - stage: security - image: aquasec/trivy:latest - script: - - trivy fs --exit-code 0 --severity HIGH,CRITICAL --format table . - - trivy fs --exit-code 1 --severity CRITICAL . - allow_failure: false - -gitleaks: - stage: security - image: zricethezav/gitleaks:latest - script: - - gitleaks detect --source . --verbose --redact - allow_failure: false - -semgrep: - stage: security - image: returntocorp/semgrep - script: - - semgrep --config auto --error . - allow_failure: true - -cargo-audit: - stage: security - image: rust:latest - script: - - cargo install cargo-audit - - cargo audit - rules: - - exists: - - Cargo.toml - -cargo-deny: - stage: security - image: rust:latest - script: - - cargo install cargo-deny - - cargo deny check - rules: - - exists: - - Cargo.toml - allow_failure: true - -mix-audit: - stage: security - image: elixir:latest - script: - - mix local.hex --force - - mix archive.install hex mix_audit --force - - mix deps.get - - mix deps.audit - rules: - - exists: - - mix.exs - allow_failure: true - -# ================== -# Linting -# ================== - -rustfmt: - stage: lint - image: rust:latest - script: - - rustup component add rustfmt - - cargo fmt -- --check - rules: - - exists: - - Cargo.toml - -clippy: - stage: lint - image: rust:latest - script: - - rustup component add clippy - - cargo clippy -- -D warnings - rules: - - exists: - - Cargo.toml - allow_failure: true - -mix-format: - stage: lint - image: elixir:latest - script: - - mix format --check-formatted - rules: - - exists: - - mix.exs - -credo: - stage: lint - image: elixir:latest - script: - - mix local.hex --force - - mix deps.get - - mix credo --strict - rules: - - exists: - - mix.exs - allow_failure: true - -# ================== -# Testing -# ================== - -cargo-test: - stage: test - image: rust:latest - script: - - cargo test --all-features - rules: - - exists: - - Cargo.toml - -mix-test: - stage: test - image: elixir:latest - script: - - mix local.hex --force - - mix deps.get - - mix test - rules: - - exists: - - mix.exs - -# ================== -# Build -# ================== - -cargo-build: - stage: build - image: rust:latest - script: - - cargo build --release - artifacts: - paths: - - target/release/ - expire_in: 1 week - rules: - - exists: - - Cargo.toml - -mix-build: - stage: build - image: elixir:latest - script: - - mix local.hex --force - - mix deps.get - - MIX_ENV=prod mix compile - rules: - - exists: - - mix.exs diff --git a/a2ml/pandoc/.guix-channel b/a2ml/pandoc/.guix-channel deleted file mode 100644 index f9bdf68fa..000000000 --- a/a2ml/pandoc/.guix-channel +++ /dev/null @@ -1,22 +0,0 @@ -;; SPDX-License-Identifier: MPL-2.0 -;; Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -;; -;; Guix channel definition for {{PROJECT_NAME}} -;; -;; To use this channel, add to ~/.config/guix/channels.scm: -;; -;; (channel -;; (name '{{PROJECT_NAME}}) -;; (url "https://github.com/{{OWNER}}/{{PROJECT_NAME}}") -;; (branch "main")) -;; -;; Then: guix pull - -(channel - (version 0) - (url "https://github.com/{{OWNER}}/{{PROJECT_NAME}}") - (dependencies - (channel - (name 'guix) - (url "https://git.savannah.gnu.org/git/guix.git") - (branch "master")))) diff --git a/a2ml/pandoc/.machine_readable/0.1-AI-MANIFEST.a2ml b/a2ml/pandoc/.machine_readable/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index 9d2bc7a07..000000000 --- a/a2ml/pandoc/.machine_readable/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1,29 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "machine-readable-pillar" -level: 1 -parent: "../0-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Registry for all machine-readable metadata, policies, and internal - automation scripts. - -canonical_locations: - state: "STATE.a2ml" - meta: "META.a2ml" - ecosystem: "ECOSYSTEM.a2ml" - agentic: "AGENTIC.a2ml" - neurosym: "NEUROSYM.a2ml" - playbook: "PLAYBOOK.a2ml" - anchors: "anchors/" - policies: "policies/" - ai_configs: "ai/" - compliance: "compliance/" - scripts: "scripts/" - -invariants: - - "Metadata files MUST follow a2ml format" - - "Internal automation MUST live in scripts/ subfolder" diff --git a/a2ml/pandoc/.machine_readable/CLADE.a2ml b/a2ml/pandoc/.machine_readable/CLADE.a2ml deleted file mode 100644 index b84bcc122..000000000 --- a/a2ml/pandoc/.machine_readable/CLADE.a2ml +++ /dev/null @@ -1,26 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Clade declaration — part of the gv-clade-index registry -# See: https://github.com/hyperpolymath/gv-clade-index - -[identity] -uuid = "525eba99-adb8-5c61-af1b-90cbb1e83ec5" -primary-forge = "github" -primary-owner = "hyperpolymath" -canonical-name = "pandoc-a2ml" -prefixed-name = "gv-pandoc-a2ml" - -[clade] -primary = "gv" -secondary = ["dx"] -assigned = "2026-03-16" -rationale = "" - -[forges] -github = "hyperpolymath/pandoc-a2ml" -gitlab = "hyperpolymath/pandoc-a2ml" -bitbucket = "hyperpolymath/pandoc-a2ml" - -[lineage] -type = "standalone" -parent = "Pandoc readers/writers for A2ML and K9 formats" -born = "2026-03-16" diff --git a/a2ml/pandoc/.machine_readable/ENSAID_CONFIG.a2ml b/a2ml/pandoc/.machine_readable/ENSAID_CONFIG.a2ml deleted file mode 100644 index 1384822c4..000000000 --- a/a2ml/pandoc/.machine_readable/ENSAID_CONFIG.a2ml +++ /dev/null @@ -1,96 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# -# ENSAID_CONFIG.a2ml — eNSAID Environment Configuration -# Per-repo configuration for PanLL and eNSAID-compatible tools. -# -# Canonical location: .machine_readable/ENSAID_CONFIG.a2ml -# Spec: https://github.com/hyperpolymath/standards/tree/main/ensaid-config -# -# Naming convention: -# - UPPERCASE + underscore = non-executable machine-readable file -# - Lives in .machine_readable/ alongside STATE.a2ml, META.a2ml, etc. - -# ───────────────────────────────────────────────────────────────── -# [ensaid] — Core eNSAID identity and version -# ───────────────────────────────────────────────────────────────── -[ensaid] -version = "1.0.0" -tool = "panll" - -# ───────────────────────────────────────────────────────────────── -# [workspace] — Workspace mode, protection, and execution policy -# ───────────────────────────────────────────────────────────────── -[workspace] -mode = "rhodium" # rhodium | gold | silver | bronze -protection = "open" # open | guarded | locked -execution = "live" # live | dry-run | approval-required - -# ───────────────────────────────────────────────────────────────── -# [preferences] — User/repo-level display and behaviour preferences -# ───────────────────────────────────────────────────────────────── -[preferences] -humidity = "medium" # high | medium | low (drift aura intensity) -default-arrangement = "default-3-panel" # workspace arrangement ID -auto-connect = true # auto-connect panels to backends on load - -# ───────────────────────────────────────────────────────────────── -# [panels] — Panel visibility, enablement, and isolation overrides -# ───────────────────────────────────────────────────────────────── -[panels] -version = "1.0.0" - -# By default, all panels are available. Uncomment to restrict: -# [[panels.enabled]] -# id = "valence-shell" -# isolation = "native" -# auto-connect = true -# -# [[panels.enabled]] -# id = "editor-bridge" -# isolation = "native" -# auto-connect = true - -# Panels to hide for this repo context: -# [panels.disabled] -# ids = [] - -# ───────────────────────────────────────────────────────────────── -# [workflows] — Automation Router event-driven cross-panel rules -# ───────────────────────────────────────────────────────────────── -[workflows] -version = "1.0.0" - -# Example: rebuild on file save -# [[workflows.rule]] -# name = "build-on-save" -# trigger = { event = "file-changed", pattern = "src/**/*.res" } -# condition = { panel = "build-dashboard", field = "watchMode", equals = true } -# action = { panel = "build-dashboard", message = "TriggerBuild", args = { target = "game" } } -# approval = "auto-fire" # auto-fire | require-approval | approve-once | dry-run-first - -# ───────────────────────────────────────────────────────────────── -# [clades] — Panel clade trait and capability overrides -# ───────────────────────────────────────────────────────────────── -[clades] -version = "1.0.0" - -# Example: add a custom capability to a panel clade -# [[clades.override]] -# id = "build-dashboard" -# traits = { has-work-items = true } -# capabilities-add = ["CustomCheck"] - -# ───────────────────────────────────────────────────────────────── -# [portfolios] — Custom panel bundles for this repo's workflow -# ───────────────────────────────────────────────────────────────── -[portfolios] -version = "1.0.0" - -# Example: a custom portfolio for this project -# [[portfolios.custom]] -# id = "{{project}}-dev" -# name = "{{PROJECT_NAME}} Development" -# description = "Panels for {{PROJECT_NAME}} development" -# panels = ["valence-shell", "editor-bridge", "build-dashboard"] -# default-isolation = "native" diff --git a/a2ml/pandoc/.machine_readable/README.adoc b/a2ml/pandoc/.machine_readable/README.adoc deleted file mode 100644 index 471d6c72a..000000000 --- a/a2ml/pandoc/.machine_readable/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= .machine_readable Pillar diff --git a/a2ml/pandoc/.machine_readable/ai/.clinerules b/a2ml/pandoc/.machine_readable/ai/.clinerules deleted file mode 100644 index 854d2ee3d..000000000 --- a/a2ml/pandoc/.machine_readable/ai/.clinerules +++ /dev/null @@ -1,43 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# Authoritative source: docs/AI-CONVENTIONS.md - -# STARTUP: Read 0-AI-MANIFEST.a2ml first, then .machine_readable/STATE.a2ml. - -# LICENSE -# All original code: PMPL-1.0-or-later. -# Never AGPL-3.0. MPL-2.0 only as platform-required fallback. -# SPDX header required on every source file. -# Copyright: {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> - -# STATE FILES (.machine_readable/ ONLY) -# Never create in repo root: STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml, -# AGENTIC.a2ml, NEUROSYM.a2ml, PLAYBOOK.a2ml. -# The .machine_readable/ directory is the single source of truth. - -# BANNED PATTERNS -# Idris2: believe_me, assert_total, assert_smaller, unsafePerformIO -# Haskell: unsafeCoerce, unsafePerformIO, undefined, error -# OCaml: Obj.magic, Obj.repr, Obj.obj -# Coq: Admitted -# Lean: sorry -# Rust: transmute (unless FFI with // SAFETY: comment) - -# BANNED LANGUAGES -# TypeScript -> ReScript -# Node.js / npm / bun -> Deno -# Go -> Rust -# Python -> Julia or Rust - -# CONTAINERS -# Runtime: Podman (never Docker). -# File: Containerfile (never Dockerfile). -# Base: cgr.dev/chainguard/wolfi-base:latest or cgr.dev/chainguard/static:latest. - -# ABI/FFI -# ABI: Idris2 with dependent types (src/interface/abi/). -# FFI: Zig with C ABI (src/interface/ffi/). -# Headers: src/interface/generated/. - -# BUILD: Use just (justfile) for all tasks. -# STYLE: Descriptive names. Document all files. SPDX headers everywhere. diff --git a/a2ml/pandoc/.machine_readable/ai/.cursorrules b/a2ml/pandoc/.machine_readable/ai/.cursorrules deleted file mode 100644 index d3b9cee01..000000000 --- a/a2ml/pandoc/.machine_readable/ai/.cursorrules +++ /dev/null @@ -1,47 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# Authoritative source: docs/AI-CONVENTIONS.md - -# Read 0-AI-MANIFEST.a2ml in the repo root FIRST for canonical file locations. - -# LICENSE -# All original code: PMPL-1.0-or-later (SPDX header required on every file). -# Never use AGPL-3.0. Fallback to MPL-2.0 only when platform requires it. -# Copyright: {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> - -# STATE FILES -# .a2ml metadata files go in .machine_readable/ ONLY. -# Never create STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml, AGENTIC.a2ml, -# NEUROSYM.a2ml, or PLAYBOOK.a2ml in the repository root. - -# BANNED PATTERNS -# Idris2: believe_me, assert_total, assert_smaller, unsafePerformIO -# Haskell: unsafeCoerce, unsafePerformIO, undefined, error -# OCaml: Obj.magic, Obj.repr, Obj.obj -# Coq: Admitted -# Lean: sorry -# Rust: transmute (unless FFI with // SAFETY: comment) - -# BANNED LANGUAGES -# TypeScript -> use ReScript -# Node.js / npm / bun -> use Deno -# Go -> use Rust -# Python -> use Julia or Rust - -# CONTAINERS -# Runtime: Podman (never Docker) -# File: Containerfile (never Dockerfile) -# Base: cgr.dev/chainguard/wolfi-base:latest - -# ABI/FFI STANDARD -# ABI definitions: Idris2 with dependent types (src/interface/abi/) -# FFI implementation: Zig with C ABI (src/interface/ffi/) -# Generated C headers: src/interface/generated/ - -# BUILD SYSTEM -# Use just (justfile) for all build, test, lint, and format tasks. - -# CODE STYLE -# Use descriptive variable names. -# Annotate and document all files. -# Add SPDX-License-Identifier header to every source file. diff --git a/a2ml/pandoc/.machine_readable/ai/.windsurfrules b/a2ml/pandoc/.machine_readable/ai/.windsurfrules deleted file mode 100644 index 854d2ee3d..000000000 --- a/a2ml/pandoc/.machine_readable/ai/.windsurfrules +++ /dev/null @@ -1,43 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# Authoritative source: docs/AI-CONVENTIONS.md - -# STARTUP: Read 0-AI-MANIFEST.a2ml first, then .machine_readable/STATE.a2ml. - -# LICENSE -# All original code: PMPL-1.0-or-later. -# Never AGPL-3.0. MPL-2.0 only as platform-required fallback. -# SPDX header required on every source file. -# Copyright: {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> - -# STATE FILES (.machine_readable/ ONLY) -# Never create in repo root: STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml, -# AGENTIC.a2ml, NEUROSYM.a2ml, PLAYBOOK.a2ml. -# The .machine_readable/ directory is the single source of truth. - -# BANNED PATTERNS -# Idris2: believe_me, assert_total, assert_smaller, unsafePerformIO -# Haskell: unsafeCoerce, unsafePerformIO, undefined, error -# OCaml: Obj.magic, Obj.repr, Obj.obj -# Coq: Admitted -# Lean: sorry -# Rust: transmute (unless FFI with // SAFETY: comment) - -# BANNED LANGUAGES -# TypeScript -> ReScript -# Node.js / npm / bun -> Deno -# Go -> Rust -# Python -> Julia or Rust - -# CONTAINERS -# Runtime: Podman (never Docker). -# File: Containerfile (never Dockerfile). -# Base: cgr.dev/chainguard/wolfi-base:latest or cgr.dev/chainguard/static:latest. - -# ABI/FFI -# ABI: Idris2 with dependent types (src/interface/abi/). -# FFI: Zig with C ABI (src/interface/ffi/). -# Headers: src/interface/generated/. - -# BUILD: Use just (justfile) for all tasks. -# STYLE: Descriptive names. Document all files. SPDX headers everywhere. diff --git a/a2ml/pandoc/.machine_readable/ai/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/.machine_readable/ai/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 869cbee61..000000000 --- a/a2ml/pandoc/.machine_readable/ai/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "ai-registry" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-registry for ai metadata. diff --git a/a2ml/pandoc/.machine_readable/ai/AI.a2ml b/a2ml/pandoc/.machine_readable/ai/AI.a2ml deleted file mode 100644 index c683d30f1..000000000 --- a/a2ml/pandoc/.machine_readable/ai/AI.a2ml +++ /dev/null @@ -1,16 +0,0 @@ - -# AI Assistant Instructions - -## Repository Focus -- `rsr-template-repo` is treated as a Rhodium Standard Repository; obey the Rhodium policies and keep `.machine_readable/` authoritative. -- All machine-readable content lives under `.machine_readable/` — state files (a2ml), bot directives, and contractiles. -- Prefer to keep generated files out of source control, and regenerate them with the documented commands before committing. - -## Workflow -1. Inspect `.machine_readable/STATE.a2ml` for blockers and next actions. -2. Respect any constraints listed inside `.machine_readable/AGENTIC.a2ml` when tooling changes are requested. -3. After finishing edits, update STATE with your outcomes and commit with a concise, imperative message. - -## Delivery Promises -- Mention in summaries whether STATE, `.machine_readable/contractiles/`, or `.machine_readable/bot_directives/` changed. -- Keep this file in sync with the repository's status; update it if the governance changes. diff --git a/a2ml/pandoc/.machine_readable/ai/PLACEHOLDERS.adoc b/a2ml/pandoc/.machine_readable/ai/PLACEHOLDERS.adoc deleted file mode 100644 index a1382f4ff..000000000 --- a/a2ml/pandoc/.machine_readable/ai/PLACEHOLDERS.adoc +++ /dev/null @@ -1,142 +0,0 @@ -= Template Placeholders -# Template Placeholders - -All placeholders in this template follow the `{{PLACEHOLDER}}` pattern. -After cloning, replace them with your project-specific values. - -## Recommended: Interactive Bootstrap - -```bash -just init -``` - -This interactively prompts for all values, replaces every placeholder, -validates the result, and runs k9-svc checks if available. - -## Manual Replace - -```bash -# If you prefer manual replacement (run from repo root) - -sed -i 's/{{AUTHOR}}/Jane Doe/g' $(grep -rl '{{AUTHOR}}' .) -sed -i 's/{{AUTHOR_EMAIL}}/jane@example.org/g' $(grep -rl '{{AUTHOR_EMAIL}}' .) -sed -i 's/{{OWNER}}/my-org/g' $(grep -rl '{{OWNER}}' .) -sed -i 's/{{PROJECT_NAME}}/my-project/g' $(grep -rl '{{PROJECT_NAME}}' .) -sed -i 's/{{PROJECT}}/MY_PROJECT/g' $(grep -rl '{{PROJECT}}' .) -sed -i 's/{{project}}/my_project/g' $(grep -rl '{{project}}' .) -sed -i 's/{{REPO}}/my-project/g' $(grep -rl '{{REPO}}' .) -sed -i 's/{{FORGE}}/github.com/g' $(grep -rl '{{FORGE}}' .) -sed -i "s/{{CURRENT_YEAR}}/$(date +%Y)/g" $(grep -rl '{{CURRENT_YEAR}}' .) -sed -i "s/{{CURRENT_DATE}}/$(date +%Y-%m-%d)/g" $(grep -rl '{{CURRENT_DATE}}' .) -``` - -## Placeholder Reference - -### Author & Copyright - -| Placeholder | Description | Example | Files | -|---|---|---|---| -| `{{AUTHOR}}` | Full legal name | `Jane Doe` | SPDX headers (all files), MAINTAINERS.md, .mailmap, .reuse/dep5, docs/AI-CONVENTIONS.md | -| `{{AUTHOR_EMAIL}}` | Primary contact email | `jane@example.org` | SPDX headers (all files), .mailmap, .reuse/dep5, .well-known/humans.txt | -| `{{AUTHOR_EMAIL_ALT}}` | Previous/secondary email (for .mailmap) | `old@example.com` | .mailmap | -| `{{AUTHOR_ORG}}` | Author's organization/affiliation | `Acme University` | project-metadata.k9.ncl | -| `{{AUTHOR_LAST}}` | Author surname (for citations) | `Doe` | docs/CITATIONS.adoc | -| `{{AUTHOR_FIRST}}` | Author first name (for citations) | `Jane` | docs/CITATIONS.adoc | -| `{{AUTHOR_INITIALS}}` | Author initials (for citations) | `J.` | docs/CITATIONS.adoc | - -### Project Identity - -| Placeholder | Description | Example | Files | -|---|---|---|---| -| `{{PROJECT_NAME}}` | Human-readable project name | `My Project` | SECURITY.md, CODE_OF_CONDUCT.md, TOPOLOGY.md, STATE.a2ml, Justfile, GOVERNANCE.md, MAINTAINERS.md, flake.nix, devcontainer.json | -| `{{PROJECT_DESCRIPTION}}` | One-line description | `A tool for X` | flake.nix | -| `{{PROJECT}}` | Uppercase identifier (for Idris2 modules, C macros) | `MY_PROJECT` | ABI-FFI-README.md, src/interface/abi/*.idr, src/interface/ffi/*.zig | -| `{{project}}` | Lowercase identifier (for C symbols, filenames) | `my_project` | ABI-FFI-README.md, src/interface/ffi/*.zig | -| `{{REPO}}` | Repository name (slug) | `my-project` | CONTRIBUTING.md, SECURITY.md, CODE_OF_CONDUCT.md, cliff.toml | -| `{{OWNER}}` | GitHub/GitLab org or username | `my-org` | SPDX headers, CONTRIBUTING.md, SECURITY.md, GOVERNANCE.md, MAINTAINERS.md, CODEOWNERS, mirror.yml, cliff.toml | -| `{{FORGE}}` | Git forge domain | `github.com` | CONTRIBUTING.md | - -### Dates - -| Placeholder | Description | Example | Files | -|---|---|---|---| -| `{{CURRENT_YEAR}}` | Current year | `2026` | SPDX headers (all files), GOVERNANCE.md, MAINTAINERS.md | -| `{{CURRENT_DATE}}` | Current date (ISO) | `2026-02-14` | STATE.a2ml, MAINTAINERS.md | -| `{{DATE}}` | Last updated date | `2026-02-14` | TOPOLOGY.md, THREAT-MODEL.md | - -### Contact & Security - -| Placeholder | Description | Example | Files | -|---|---|---|---| -| `{{SECURITY_EMAIL}}` | Security contact email | `security@example.org` | SECURITY.md | -| `{{PGP_FINGERPRINT}}` | 40-char PGP fingerprint | `ABCD 1234 ...` | SECURITY.md | -| `{{PGP_KEY_URL}}` | URL to public PGP key | `https://keys.openpgp.org/...` | SECURITY.md | -| `{{WEBSITE}}` | Project website | `https://example.org` | SECURITY.md | -| `{{CONDUCT_EMAIL}}` | Conduct reports email | `conduct@example.org` | CODE_OF_CONDUCT.md | -| `{{CONDUCT_TEAM}}` | Conduct committee name | `Code of Conduct Committee` | CODE_OF_CONDUCT.md | -| `{{RESPONSE_TIME}}` | SLA for initial response | `48 hours` | CODE_OF_CONDUCT.md | - -### Git - -| Placeholder | Description | Example | Files | -|---|---|---|---| -| `{{MAIN_BRANCH}}` | Main branch name | `main` | CONTRIBUTING.md | - -### Build - -| Placeholder | Description | Example | Files | -|---|---|---|---| -| `{{LICENSE}}` | License name | `PMPL-1.0-or-later` | ABI-FFI-README.md | -| `{{PROJECT_PURPOSE}}` | One-line project description | `FFI bridges between languages` | STATE.a2ml | - -### AI Manifest - -| Placeholder | Description | Example | Files | -|---|---|---|---| -| `[YOUR-REPO-NAME]` | Repository name | `my-project` | 0-AI-MANIFEST.a2ml | -| `[DATE]` | Creation date | `2026-02-14` | 0-AI-MANIFEST.a2ml | -| `[YOUR-NAME/ORG]` | Maintainer name | `hyperpolymath` | 0-AI-MANIFEST.a2ml | - -### AI Installation Guide - -| Marker | Description | Files | -|---|---|---| -| `[TODO-AI-INSTALL]` | Unfilled section in AI installation guide | `docs/AI_INSTALLATION_GUIDE.adoc`, `docs/AI-INSTALL-README-SECTION.adoc`, `README.adoc` | - -These are **not** standard `{{PLACEHOLDER}}` markers -- they are TODO markers -that must be replaced with project-specific content before release. They mark -sections where the developer (or AI) must fill in: - -- What questions the AI should ask the user -- Exact prerequisite check and install commands -- Privacy notice specific to this project -- Complete installation command block -- Credential setup instructions (URLs, scopes, env vars) -- Verification commands and expected output -- Error handling table -- Example conversation - -**finishbot checks:** `just validate-ai-install` verifies no `[TODO-AI-INSTALL]` markers remain. - -## Deletion Markers - -Some files contain deletion instructions: - -| Marker | Meaning | File | -|---|---|---| -| `{{~ ... ~}}` | Delete this entire line after reading | ABI-FFI-README.md (line 1) | - -## Verification - -After replacing all placeholders, verify none remain: - -```bash -grep -rn '{{' . --include='*.md' --include='*.adoc' --include='*.a2ml' \ - --include='*.scm' --include='*.idr' --include='*.zig' --include='*.res' \ - --include='Justfile' --include='*.nix' --include='*.toml' --include='*.yml' \ - --include='*.yaml' --include='*.hs' --include='*.ncl' --include='*.txt' \ - --include='*.json' --include='Containerfile' --include='dep5' \ - | grep -v 'PLACEHOLDERS.md' | grep -v 'node_modules' -``` - -If the above command produces no output, all placeholders have been replaced. diff --git a/a2ml/pandoc/.machine_readable/ai/README.adoc b/a2ml/pandoc/.machine_readable/ai/README.adoc deleted file mode 100644 index 121bbc8a5..000000000 --- a/a2ml/pandoc/.machine_readable/ai/README.adoc +++ /dev/null @@ -1,22 +0,0 @@ -= AI Guidance Directory - -Put AI-facing instructions in this folder. - -Examples: - -* `CLAUDE.md` -* `COPILOT.md` -* `GEMINI.md` -* `AI.a2ml` -* `AI.djot` - -Avoid scattering agent instruction files around the repo root. - -Recommended machine read order: - -* `.machine_readable/anchors/ANCHOR.a2ml` -* `.machine_readable/policies/MAINTENANCE-AXES.a2ml` -* `.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml` -* `.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml` -* `.machine_readable/STATE.a2ml` -* `.machine_readable/META.a2ml` diff --git a/a2ml/pandoc/.machine_readable/anchors/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/.machine_readable/anchors/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 45038e1eb..000000000 --- a/a2ml/pandoc/.machine_readable/anchors/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "anchors-registry" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-registry for anchors metadata. diff --git a/a2ml/pandoc/.machine_readable/anchors/ANCHOR.a2ml b/a2ml/pandoc/.machine_readable/anchors/ANCHOR.a2ml deleted file mode 100644 index 872389983..000000000 --- a/a2ml/pandoc/.machine_readable/anchors/ANCHOR.a2ml +++ /dev/null @@ -1,62 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# -# ANCHOR.a2ml - authoritative anchor for this repository - -[metadata] -version = "1.0.0" -last-updated = "{{CURRENT_DATE}}" - -[anchor] -schema = "hyperpolymath.anchor/1" -repo = "{{OWNER}}/{{REPO}}" -authority = "upstream-canonical" - -purpose = [ - "Define canonical semantics and policy boundaries for this repository.", - "Declare what downstream/satellite repos can extend but not redefine.", - "Provide a stable golden path and invariant contract for release readiness.", -] - -[identity] -project = "{{PROJECT_NAME}}" -kind = "{{PROJECT_KIND}}" # language | library | service | tool -one-sentence = "{{PROJECT_PURPOSE}}" -domain = "{{PROJECT_DOMAIN}}" - -[semantic-authority] -policy = "canonical" - -owns = [ - "Project semantics and specification", - "Invariant definitions and contractiles", - "Reference implementation behavior", -] - -[implementation-policy] -allowed = ["Rust", "Idris2", "Zig", "Scheme", "Shell", "Just", "AsciiDoc", "Markdown"] -forbidden = ["Node.js", "npm"] - -[golden-path] -smoke-test-command = [ - "just test", - "just quality", -] - -success-criteria = [ - "Core tests pass", - "Quality gates pass", - "No unresolved critical security findings", -] - -[satellite-policy] -must-pin-upstream = true -must-declare-authority = true -must-have-anchor = true -must-have-golden-path = true - -[semantic-authority-files] -language-spec = "SPECIFICATION.md" -formal-proofs = "docs/proofs/PROOFS.adoc" -type-theory = "docs/theory/THEORY.adoc" -algorithms = "docs/theory/ALGORITHMS.adoc" diff --git a/a2ml/pandoc/.machine_readable/anchors/README.adoc b/a2ml/pandoc/.machine_readable/anchors/README.adoc deleted file mode 100644 index 1b27c02d7..000000000 --- a/a2ml/pandoc/.machine_readable/anchors/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= anchors Registry diff --git a/a2ml/pandoc/.machine_readable/compliance/reuse/dep5 b/a2ml/pandoc/.machine_readable/compliance/reuse/dep5 deleted file mode 100644 index 3f5b2ef65..000000000 --- a/a2ml/pandoc/.machine_readable/compliance/reuse/dep5 +++ /dev/null @@ -1,54 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: {{PROJECT_NAME}} -Upstream-Contact: {{AUTHOR}} <{{AUTHOR_EMAIL}}> -Source: https://github.com/{{OWNER}}/{{REPO}} - -# Default: all files are PMPL-1.0-or-later -Files: * -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# Configuration files that cannot carry headers -Files: .editorconfig .gitignore .gitattributes .tool-versions .mailmap -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# Machine-readable state files -Files: .machine_readable/*.a2ml -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# Bot directives -Files: .machine_readable/bot_directives/* -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# Contractiles -Files: .machine_readable/contractiles/* -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# GitHub/CI configuration -Files: .github/* .github/**/* -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# Generated files -Files: generated/* -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# Lockfiles and auto-generated -Files: *.lock Cargo.lock flake.lock -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# Devcontainer config (JSON, no comments) -Files: .devcontainer/*.json -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) - -# Git-cliff config -Files: cliff.toml -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) diff --git a/a2ml/pandoc/.machine_readable/compliance/rust/deny.toml b/a2ml/pandoc/.machine_readable/compliance/rust/deny.toml deleted file mode 100644 index b096db889..000000000 --- a/a2ml/pandoc/.machine_readable/compliance/rust/deny.toml +++ /dev/null @@ -1,65 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# cargo-deny configuration for RSR-compliant repositories -# Run: cargo deny check -# Docs: https://embarkstudios.github.io/cargo-deny/ - -[graph] -targets = [] -all-features = true - -# --- Advisory database --------------------------------------------------- -[advisories] -db-path = "~/.cargo/advisory-db" -db-urls = ["https://github.com/rustsec/advisory-db"] -# Fail on any known vulnerability -vulnerability = "deny" -unmaintained = "warn" -yanked = "warn" -notice = "warn" - -# --- License policy ------------------------------------------------------- -[licenses] -unlicensed = "deny" -confidence-threshold = 0.8 - -allow = [ - "PMPL-1.0-or-later", - "MPL-2.0", - "MIT", - "Apache-2.0", - "BSD-2-Clause", - "BSD-3-Clause", - "ISC", - "Zlib", - "Unicode-3.0", - "Unicode-DFS-2016", -] - -deny = [ - "AGPL-3.0-only", - "AGPL-3.0-or-later", -] - -copyleft = "warn" - -[[licenses.exceptions]] -allow = ["OpenSSL"] -name = "ring" - -# --- Crate bans ------------------------------------------------------------ -[bans] -multiple-versions = "warn" -wildcards = "allow" -highlight = "all" - -deny = [ - # Known-bad crates - { name = "openssl", wrappers = ["openssl-sys"] }, -] - -# --- Source restrictions ---------------------------------------------------- -[sources] -unknown-registry = "deny" -unknown-git = "warn" -allow-registry = ["https://github.com/rust-lang/crates.io-index"] -allow-git = [] diff --git a/a2ml/pandoc/.machine_readable/configs/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/.machine_readable/configs/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 6e41e6c25..000000000 --- a/a2ml/pandoc/.machine_readable/configs/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "configs-registry" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-registry for configs metadata. diff --git a/a2ml/pandoc/.machine_readable/configs/README.adoc b/a2ml/pandoc/.machine_readable/configs/README.adoc deleted file mode 100644 index 616b9e763..000000000 --- a/a2ml/pandoc/.machine_readable/configs/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= configs Registry diff --git a/a2ml/pandoc/.machine_readable/configs/git-cliff/cliff.toml b/a2ml/pandoc/.machine_readable/configs/git-cliff/cliff.toml deleted file mode 100644 index 5c39b484d..000000000 --- a/a2ml/pandoc/.machine_readable/configs/git-cliff/cliff.toml +++ /dev/null @@ -1,119 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# -# git-cliff configuration for conventional commit changelog generation. -# https://git-cliff.org/docs/configuration -# -# Placeholders — replace before first use: -# {{OWNER}} — GitHub organization or username -# {{REPO}} — GitHub repository name - -[changelog] -# Changelog header -header = """ -# Changelog\n -All notable changes to this project will be documented in this file.\n -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n -\n -""" -# Template for the changelog body -# https://keats.github.io/tera/docs/#introduction -body = """ -{%- macro remote_url() -%} - https://github.com/{{OWNER}}/{{REPO}} -{%- endmacro -%} - -{% if version -%} - ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }} -{% else -%} - ## [Unreleased] -{% endif -%} - -{% for group, commits in commits | group_by(attribute="group") %} - ### {{ group | striptags | trim }} - {% for commit in commits %} - - {% if commit.scope %}**{{ commit.scope }}:** {% endif %}\ - {% if commit.breaking %}[**BREAKING**] {% endif %}\ - {{ commit.message | upper_first }}\ - {%- if commit.links %} \ - ({% for link in commit.links %}[{{ link.text }}]({{ link.href }}){% endfor %}){% endif -%} - {% endfor %} -{% endfor %} - -{%- if github -%} -{% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %} - ### New Contributors -{%- for contributor in github.contributors | filter(attribute="is_first_time", value=true) %} - * @{{ contributor.username }} made their first contribution - {%- if contributor.pr_number %} in \ - [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) - {%- endif %} -{%- endfor %} -{% endif -%} -{% endif -%} - -""" -# Template for the changelog footer -footer = """ -{%- macro remote_url() -%} - https://github.com/{{OWNER}}/{{REPO}} -{%- endmacro -%} - -{% for release in releases -%} - {% if release.version -%} - {% if release.previous.version -%} - [{{ release.version | trim_start_matches(pat="v") }}]: \ - {{ self::remote_url() }}/compare/{{ release.previous.version }}...{{ release.version }} - {% endif -%} - {% else -%} - {% if release.previous.version -%} - [Unreleased]: {{ self::remote_url() }}/compare/{{ release.previous.version }}...HEAD - {% endif -%} - {% endif -%} -{% endfor %} - -""" -# Remove leading and trailing whitespace from templates -trim = true - -[git] -# Parse conventional commits -# https://www.conventionalcommits.org -conventional_commits = true -# Filter out unconventional commits -filter_unconventional = true -# Process each line of a commit as an individual commit -split_commits = false -# Regex for commit preprocessing -commit_preprocessors = [ - # Remove issue numbers from commit messages - { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "" }, -] -# Regex for parsing and grouping commits -commit_parsers = [ - { message = "^feat", group = "Features" }, - { message = "^fix", group = "Bug Fixes" }, - { message = "^security", group = "Security" }, - { message = "^perf", group = "Performance" }, - { message = "^refactor", group = "Refactoring" }, - { message = "^docs", group = "Documentation" }, - { message = "^style", group = "Styling" }, - { message = "^test", group = "Testing" }, - { message = "^ci", group = "CI/CD" }, - { message = "^chore\\(release\\)", skip = true }, - { message = "^chore\\(deps.*\\)", skip = true }, - { message = "^chore\\(pr\\)", skip = true }, - { message = "^chore", group = "Miscellaneous" }, - { body = ".*security", group = "Security" }, -] -# Protect breaking changes from being skipped by a commit parser -protect_breaking_commits = false -# Filter out merge commits -filter_merge_commits = true -# Filter out commits by tag pattern (skip pre-releases) -# tag_pattern = "v[0-9].*" -# Regex for skipping tags -# skip_tags = "beta|alpha" -# Sort commits within each group by oldest first -sort_commits = "oldest" diff --git a/a2ml/pandoc/.machine_readable/contractiles/README.adoc b/a2ml/pandoc/.machine_readable/contractiles/README.adoc deleted file mode 100644 index d40fcd180..000000000 --- a/a2ml/pandoc/.machine_readable/contractiles/README.adoc +++ /dev/null @@ -1,19 +0,0 @@ -= Contractiles Template Set -:toc: -:sectnums: - -This directory contains the generalized contractiles templates. Copy the `.machine_readable/contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework. - -== Fill-In Instructions - -1. Update the Mustfile to reflect your real invariants (paths, schema versions, ports). -2. Replace Trustfile.hs placeholders with your actual key paths and verification commands. -3. Adjust Dustfile handlers to match your rollback and recovery tooling. -4. Update Intentfile to mirror the roadmap you want the system to evolve toward. - -== Contents - -* `must/Mustfile` - required invariants and validations. -* `trust/Trustfile.hs` - cryptographic verification steps. -* `dust/Dustfile` - rollback and recovery semantics. -* `lust/Intentfile` - future intent and roadmap direction. diff --git a/a2ml/pandoc/.machine_readable/contractiles/dust/Dustfile.a2ml b/a2ml/pandoc/.machine_readable/contractiles/dust/Dustfile.a2ml deleted file mode 100644 index be38a8ca7..000000000 --- a/a2ml/pandoc/.machine_readable/contractiles/dust/Dustfile.a2ml +++ /dev/null @@ -1,44 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Dustfile — Cleanup and hygiene contract -# Author: Jonathan D.A. Jewell - -@abstract: -What should be cleaned up or removed from this repository. -These are housekeeping items, not blockers. -@end - -## Stale Files - -### no-stale-snapshots -- description: No dated status/completion files in root -- run: "! ls *-STATUS-*.md *-COMPLETION-*.md *-COMPLETE.md *-VERIFIED-*.md 2>/dev/null | head -1 | grep -q ." -- severity: info - -### no-ai-djot -- description: AI.djot is superseded by 0-AI-MANIFEST.a2ml -- run: test ! -f AI.djot -- severity: warning - -### no-next-steps -- description: NEXT_STEPS.md superseded by ROADMAP -- run: test ! -f NEXT_STEPS.md -- severity: info - -## Build Artifacts - -### no-tracked-artifacts -- description: No build artifacts tracked in git -- run: "! git ls-files lib/bs/ lib/ocaml/ target/release/ _build/ 2>/dev/null | head -1 | grep -q ." -- severity: warning - -## Format Duplicates - -### no-duplicate-contributing -- description: Only one CONTRIBUTING format (keep .md) -- run: "! (test -f CONTRIBUTING.md && test -f CONTRIBUTING.adoc)" -- severity: warning - -### no-duplicate-readme -- description: Only one README format -- run: "! (test -f README.md && test -f README.adoc && [ $(wc -l < README.md) -gt 5 ])" -- severity: warning diff --git a/a2ml/pandoc/.machine_readable/contractiles/must/Mustfile.a2ml b/a2ml/pandoc/.machine_readable/contractiles/must/Mustfile.a2ml deleted file mode 100644 index 215c51062..000000000 --- a/a2ml/pandoc/.machine_readable/contractiles/must/Mustfile.a2ml +++ /dev/null @@ -1,69 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Mustfile — Physical state contract -# Author: Jonathan D.A. Jewell - -@abstract: -What MUST be true about this repository's files and configuration. -These are hard requirements — CI fails if any check fails. -@end - -## File Presence - -### license-present -- description: LICENSE file must exist -- run: test -f LICENSE -- severity: critical - -### readme-present -- description: README.adoc or README.md must exist -- run: test -f README.adoc || test -f README.md -- severity: critical - -### security-policy -- description: SECURITY.md must exist -- run: test -f SECURITY.md -- severity: critical - -### ai-manifest -- description: 0-AI-MANIFEST.a2ml must exist -- run: test -f 0-AI-MANIFEST.a2ml -- severity: critical - -### contributing -- description: CONTRIBUTING.md must exist (GitHub community health) -- run: test -f CONTRIBUTING.md -- severity: warning - -### editorconfig -- description: .editorconfig must exist -- run: test -f .editorconfig -- severity: warning - -## SPDX Compliance - -### spdx-headers -- description: All source files must have SPDX-License-Identifier -- run: "! find src/ -name '*.rs' -o -name '*.res' -o -name '*.idr' -o -name '*.zig' 2>/dev/null | head -20 | xargs grep -L 'SPDX-License-Identifier' 2>/dev/null | head -1 | grep -q ." -- severity: warning - -### no-agpl -- description: No AGPL-3.0 references in dotfiles -- run: "! grep -r 'AGPL-3.0' .gitignore .gitattributes .editorconfig 2>/dev/null | head -1 | grep -q ." -- severity: critical - -## Dangerous Patterns - -### no-believe-me -- description: No believe_me in Idris2 code -- run: "! grep -r 'believe_me' --include='*.idr' . 2>/dev/null | grep -v node_modules | head -1 | grep -q ." -- severity: critical - -### no-sorry -- description: No sorry in Lean code -- run: "! grep -r 'sorry' --include='*.lean' . 2>/dev/null | grep -v node_modules | head -1 | grep -q ." -- severity: critical - -### no-admitted -- description: No Admitted in Coq code -- run: "! grep -r 'Admitted' --include='*.v' . 2>/dev/null | grep -v node_modules | head -1 | grep -q ." -- severity: critical diff --git a/a2ml/pandoc/.machine_readable/contractiles/trust/Trustfile.a2ml b/a2ml/pandoc/.machine_readable/contractiles/trust/Trustfile.a2ml deleted file mode 100644 index f2a4f9592..000000000 --- a/a2ml/pandoc/.machine_readable/contractiles/trust/Trustfile.a2ml +++ /dev/null @@ -1,50 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Trustfile — Integrity and provenance verification -# Author: Jonathan D.A. Jewell - -@abstract: -Integrity invariants for this repository. These verify that the repo -has not been tampered with, secrets are not leaked, and provenance -is traceable. -@end - -## Secrets - -### no-secrets-committed -- description: No credential files in repo -- run: test ! -f .env && test ! -f credentials.json && test ! -f .env.local && test ! -f .env.production -- severity: critical - -### no-private-keys -- description: No private key files committed -- run: "! find . -name '*.pem' -o -name '*.key' -o -name 'id_rsa' -o -name 'id_ed25519' 2>/dev/null | grep -v node_modules | head -1 | grep -q ." -- severity: critical - -### no-tokens-in-source -- description: No hardcoded API tokens in source -- run: "! grep -rE '(api[_-]?key|secret|token|password)\s*[:=]\s*[\"'\\''][A-Za-z0-9]{16,}' --include='*.js' --include='*.ts' --include='*.res' --include='*.py' . 2>/dev/null | grep -v node_modules | head -1 | grep -q ." -- severity: critical - -## Provenance - -### author-correct -- description: Git author matches expected identity -- run: "git log -1 --format='%ae' | grep -qE '(hyperpolymath|j\\.d\\.a\\.jewell)'" -- severity: warning - -### license-content -- description: LICENSE contains expected identifier -- run: grep -q 'PMPL\|MPL\|MIT\|Apache\|LGPL' LICENSE -- severity: warning - -## Container Security - -### container-images-pinned -- description: Containerfile uses pinned base images -- run: test ! -f Containerfile || grep -q 'cgr.dev\|@sha256:' Containerfile -- severity: warning - -### no-dockerfile -- description: No Dockerfile (use Containerfile) -- run: test ! -f Dockerfile -- severity: warning diff --git a/a2ml/pandoc/.machine_readable/descriptiles/AGENTIC.a2ml b/a2ml/pandoc/.machine_readable/descriptiles/AGENTIC.a2ml deleted file mode 100644 index 4d5db884f..000000000 --- a/a2ml/pandoc/.machine_readable/descriptiles/AGENTIC.a2ml +++ /dev/null @@ -1,36 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# AGENTIC.a2ml — AI agent constraints and capabilities -# Defines what AI agents can and cannot do in this repository. - -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[agent-permissions] -can-edit-source = true -can-edit-tests = true -can-edit-docs = true -can-edit-config = true -can-create-files = true - -[agent-constraints] -# What AI agents must NOT do: -# - Never use banned language patterns (believe_me, unsafeCoerce, etc.) -# - Never commit secrets or credentials -# - Never use banned languages (TypeScript, Python, Go, etc.) -# - Never place state files in repository root (must be in .machine_readable/) -# - Never use AGPL license (use PMPL-1.0-or-later) - -[maintenance-integrity] -fail-closed = true -require-evidence-per-step = true -allow-silent-skip = false -require-rerun-after-fix = true -release-claim-requires-hard-pass = true - -[automation-hooks] -# on-enter: Read 0-AI-MANIFEST.a2ml, then STATE.a2ml -# on-exit: Update STATE.a2ml with session outcomes -# on-commit: Run just validate-rsr diff --git a/a2ml/pandoc/.machine_readable/descriptiles/ECOSYSTEM.a2ml b/a2ml/pandoc/.machine_readable/descriptiles/ECOSYSTEM.a2ml deleted file mode 100644 index 0f649d997..000000000 --- a/a2ml/pandoc/.machine_readable/descriptiles/ECOSYSTEM.a2ml +++ /dev/null @@ -1,26 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# ECOSYSTEM.a2ml — Project ecosystem position -# Relationships, dependencies, integration points. - -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[project] -name = "pandoc" -purpose = "" # TODO: describe project purpose -role = "" # TODO: describe project role # e.g. ffi-infrastructure, cli-tool, library, service - -[position-in-ecosystem] -tier = "infrastructure" # 1 | 2 | infrastructure - -[related-projects] -# relationship types: sibling-standard, dependency, dependent, inspiration, potential-consumer -# - { name = "language-bridges", relationship = "sibling-standard" } -# - { name = "hypatia", relationship = "potential-consumer" } - -[integration-points] -# External systems this project connects to -# - { system = "gitbot-fleet", direction = "outbound", protocol = "repository_dispatch" } diff --git a/a2ml/pandoc/.machine_readable/descriptiles/META.a2ml b/a2ml/pandoc/.machine_readable/descriptiles/META.a2ml deleted file mode 100644 index 6e5dda1ea..000000000 --- a/a2ml/pandoc/.machine_readable/descriptiles/META.a2ml +++ /dev/null @@ -1,53 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# META.a2ml — Project meta-level information -# Architecture decisions, design rationale, governance. - -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[project-info] -type = "library" # TODO: update type (library|binary|service|website|monorepo) # library | binary | monorepo | service | website -languages = [] # e.g. ["rust", "zig", "idris2"] -license = "PMPL-1.0-or-later" -author = "Jonathan D.A. Jewell (hyperpolymath)" - -[architecture-decisions] -# ADR format: status = proposed | accepted | deprecated | superseded | rejected -# - { id = "ADR-001", title = "Use Zig for FFI", status = "accepted", date = "2026-02-14" } - -[development-practices] -build-tool = "just" -container-runtime = "podman" -ci-platform = "github-actions" -package-manager = "guix" # guix | nix | cargo | mix - -[maintenance-axes] -scoping-first = true -execution-order = "axis-1 > axis-2 > axis-3" -axis-1 = "must > intend > like" -axis-2 = "corrective > adaptive > perfective" -axis-3 = "systems > compliance > effects" - -[scoping] -sources = "README, roadmap, status docs, maintenance checklist, CI/security docs" -marker-scan = "TODO/FIXME/XXX/HACK/STUB/PARTIAL" -idris-unsound-scan = "believe_me/assert_total" - -[axis-2-maintenance-rules] -corrective-first = true -adaptive-second = true -adaptive-focus = "scope-change reconciliation, stale-reference removal, obsolete-work culling" -perfective-third = true -perfective-source = "axis-1 honest state after corrective/adaptive updates" - -[axis-3-audit-rules] -audit-focus = "systems in place, documentation explains actual state, safety/security accounted for, observed effects reviewed" -compliance-focus = "seams/compromises/exception register, bounded exceptions, anti-drift checks" -drift-risk-example = "single exception broadening into policy violation (e.g. ReScript->TypeScript spread)" -effects-evidence = "benchmark execution/results and maintainer status dialogue/review" - -[design-rationale] -# Key design decisions and their reasoning diff --git a/a2ml/pandoc/.machine_readable/descriptiles/NEUROSYM.a2ml b/a2ml/pandoc/.machine_readable/descriptiles/NEUROSYM.a2ml deleted file mode 100644 index 1acf7a300..000000000 --- a/a2ml/pandoc/.machine_readable/descriptiles/NEUROSYM.a2ml +++ /dev/null @@ -1,23 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# NEUROSYM.a2ml — Neurosymbolic integration metadata -# Configuration for Hypatia scanning and symbolic reasoning. - -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[hypatia-config] -scan-enabled = true -scan-depth = "standard" # quick | standard | deep -report-format = "logtalk" - -[symbolic-rules] -# Custom symbolic rules for this project -# - { name = "no-unsafe-ffi", pattern = "believe_me|unsafeCoerce", severity = "critical" } - -[neural-config] -# Neural pattern detection settings -# confidence-threshold = 0.85 -# model = "hypatia-v2" diff --git a/a2ml/pandoc/.machine_readable/descriptiles/PLAYBOOK.a2ml b/a2ml/pandoc/.machine_readable/descriptiles/PLAYBOOK.a2ml deleted file mode 100644 index 6408e1c72..000000000 --- a/a2ml/pandoc/.machine_readable/descriptiles/PLAYBOOK.a2ml +++ /dev/null @@ -1,35 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# PLAYBOOK.a2ml — Operational playbook -# Runbooks, incident response, deployment procedures. - -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[deployment] -# method = "gitops" # gitops | manual | ci-triggered -# target = "container" # container | binary | library | wasm - -[incident-response] -# 1. Check .machine_readable/STATE.a2ml for current status -# 2. Review recent commits and CI results -# 3. Run `just validate` to check compliance -# 4. Run `just security` to audit for vulnerabilities - -[release-process] -# 1. Update version in STATE.a2ml, META.a2ml, Justfile -# 2. Run `just release-preflight` (validate + quality + security + maint-hard-pass) -# 3. Optional local permission hardening: `just perms-snapshot && just perms-lock` -# 4. Tag and push -# 5. Restore local permissions if needed: `just perms-restore` -# 6. Run `just container-push` if applicable - -[maintenance-operations] -# Baseline audit: -# just maint-audit -# Hard release gate: -# just maint-hard-pass -# Permission audit: -# just perms-audit diff --git a/a2ml/pandoc/.machine_readable/descriptiles/STATE.a2ml b/a2ml/pandoc/.machine_readable/descriptiles/STATE.a2ml deleted file mode 100644 index a76d8dd66..000000000 --- a/a2ml/pandoc/.machine_readable/descriptiles/STATE.a2ml +++ /dev/null @@ -1,64 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# STATE.a2ml — Project state checkpoint (META-TEMPLATE) -# -# This is the STATE file for rsr-template-repo itself. -# When consumed by a new project, replace {{PLACEHOLDER}} tokens -# and customize sections below for the target project. - -[metadata] -project = "rsr-template-repo" -version = "0.2.0" -last-updated = "2026-02-28" -status = "active" # active | paused | archived - -[project-context] -name = "rsr-template-repo" -purpose = "Canonical RSR-compliant repository template providing scaffolding for all hyperpolymath projects — including CI/CD, AI manifests, ABI/FFI standards, container ecosystem, and governance infrastructure." -completion-percentage = 95 - -[position] -phase = "maintenance" # design | implementation | testing | maintenance | archived -maturity = "production" # experimental | alpha | beta | production | lts - -[route-to-mvp] -milestones = [ - { name = "Phase 0: Core scaffolding (justfile, CI/CD, .machine_readable)", completion = 100 }, - { name = "Phase 1: ABI/FFI standard (Idris2/Zig templates)", completion = 100 }, - { name = "Phase 1b: AI Gatekeeper Protocol (0-AI-MANIFEST.a2ml)", completion = 100 }, - { name = "Phase 1c: TOPOLOGY.md standard and guide", completion = 100 }, - { name = "Phase 1d: Maintenance gate (axes, checklist, approach)", completion = 100 }, - { name = "Phase 1e: Trustfile / contractiles", completion = 100 }, - { name = "Phase 2: Container ecosystem templates (stapeln)", completion = 100 }, - { name = "Phase 3: Multi-forge sync hardening", completion = 0 }, - { name = "Phase 4: Nix/Guix reproducible shells", completion = 50 }, -] - -[blockers-and-issues] -# No active blockers - -[critical-next-actions] -actions = [ - "Container templates complete — test with `just container-init`", - "Validate container templates across wolfi-base and static Chainguard images", - "Harden multi-forge sync for GitLab/Bitbucket mirroring edge cases", - "Expand Nix/Guix development shell templates", -] - -[maintenance-status] -last-run-utc = "never" -last-report = "docs/reports/maintenance/latest.json" -last-result = "unknown" # unknown | pass | warn | fail -open-warnings = 0 -open-failures = 0 - -[ecosystem] -part-of = ["RSR Framework", "stapeln ecosystem"] -depends-on = ["stapeln", "selur-compose", "cerro-torre", "svalinn", "vordr", "k9-svc"] - -# --------------------------------------------------------------------------- -# NOTE FOR CONSUMERS: When using this template to create a new repo, reset -# the fields above to your project's values and replace all {{PLACEHOLDER}} -# tokens. The milestones above describe the TEMPLATE's evolution, not yours. -# --------------------------------------------------------------------------- diff --git a/a2ml/pandoc/.machine_readable/policies/.maintenance-perms-ignore b/a2ml/pandoc/.machine_readable/policies/.maintenance-perms-ignore deleted file mode 100644 index 2c8c4096a..000000000 --- a/a2ml/pandoc/.machine_readable/policies/.maintenance-perms-ignore +++ /dev/null @@ -1,5 +0,0 @@ -# Regex patterns for justified permission-policy exceptions. -# One pattern per line. -# Example: -# ^vendor/ -# ^third_party/ diff --git a/a2ml/pandoc/.machine_readable/policies/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/.machine_readable/policies/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 01a19140a..000000000 --- a/a2ml/pandoc/.machine_readable/policies/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "policies-registry" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-registry for policies metadata. diff --git a/a2ml/pandoc/.machine_readable/policies/MAINTENANCE-AXES.a2ml b/a2ml/pandoc/.machine_readable/policies/MAINTENANCE-AXES.a2ml deleted file mode 100644 index eeffd2781..000000000 --- a/a2ml/pandoc/.machine_readable/policies/MAINTENANCE-AXES.a2ml +++ /dev/null @@ -1,54 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# -# Canonical maintenance governance model - -[metadata] -version = "1.0.0" -last-updated = "{{CURRENT_DATE}}" -scope = "repo" - -[discovery] -human-entrypoints = [ - "README.adoc", - "docs/maintenance/MAINTENANCE-CHECKLIST.md", - "docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc", -] -machine-entrypoints = [ - ".machine_readable/policies/MAINTENANCE-AXES.a2ml", - ".machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml", - ".machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml", - ".machine_readable/META.a2ml", - ".machine_readable/ai/README.adoc", - ".machine_readable/bot_directives/README.scm", -] -bots = ["hypatia", "gitbot-fleet", "repo visitors"] - -[axes] -axis-1 = "must > intend > like" -axis-2 = "corrective > adaptive > perfective" -axis-3 = "systems > compliance > effects" -execution-order = "axis-1 > axis-2 > axis-3" - -[axis-1-scoping] -required = true -sources = "README, roadmap, status docs, maintenance checklist, CI/security docs" -markers = "TODO/FIXME/XXX/HACK/STUB/PARTIAL" -idris-unsound-markers = "believe_me/assert_total" -output = "scoped work assembly in must/intend/like buckets" - -[axis-2-maintenance] -corrective-first = true -adaptive-second = true -adaptive-focus = "scope changes, stale references, obsolete work culling" -perfective-third = true -perfective-source = "honest state from axis-1 after corrective/adaptive updates" - -[axis-3-audit] -systems-check = true -compliance-check = true -effects-check = true -compliance-focus = "seams/compromises/exception register and anti-drift" -compliance-tooling = "panic-attack" -effects-tooling = "ecological checking with sustainabot guidance" -effects-evidence = "benchmark evidence and maintainer dialogue/status review" diff --git a/a2ml/pandoc/.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml b/a2ml/pandoc/.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml deleted file mode 100644 index eaee72059..000000000 --- a/a2ml/pandoc/.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml +++ /dev/null @@ -1,159 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Cross-repo maintenance baseline (machine-readable canonical) - -[metadata] -version = "1.1.0" -last-updated = "2026-02-24" -scope = "cross-repo" -source-human = "docs/maintenance/MAINTENANCE-CHECKLIST.adoc" -companion-human = "docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc" -companion-machine = ".machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml" - -[policy] -single-source = true -notes = "Use this file as canonical machine policy and keep markdown synchronized." - -[maintenance-axes] -scoping-first = true -execution-order = ["scoping", "axis-1", "axis-2", "axis-3"] -axis-1 = "must > intend > like" -axis-2 = "corrective > adaptive > perfective" -axis-3 = "systems > compliance > effects" - -[scoping] -inputs_required = [ - "README", - "roadmap", - "status-docs", - "maintenance-checklist", - "ci-and-security-docs", -] - -marker_scan_required = [ - "TODO", - "FIXME", - "XXX", - "HACK", - "STUB", - "PARTIAL", -] - -idris_unsound_scan_required = [ - "believe_me", - "assert_total", -] - -scope_assembly_buckets = ["must", "intend", "like"] - -[axis-2-maintenance-rules] -corrective-first = true -adaptive-second = true -adaptive_examples = [ - "scope-change reconciliation", - "stale-reference removal", - "obsolete-work culling", -] -perfective-third = true -perfective_source = "axis-1 honest state after corrective/adaptive updates" - -[axis-3-audit-rules] -systems-check = true -documentation-honesty-check = true -safety-security-accounted-check = true -effects-review-check = true -benchmark-evidence-required = true -maintainer-dialogue-review-required = true -compliance-seams-check = true -exception-register-required = true -exception-bounded-scope-required = true -policy-drift-contamination-check = true -example-drift-risk = "single TypeScript exception causing broad ReScript->TypeScript migration" -compliance-tooling = "panic-attack" -effects-tooling = "ecological checking with sustainabot guidance" - -[generic-cleanup-finish-off] -root-cleanup-required = true -stale-work-cull-required = true -docs-parity-required = true -machine-human-sync-required = true -compliance-finish-off-required = true -effects-finish-off-required = true -release-prep-summary-required = true -next-actions-required = ["corrective", "adaptive", "perfective"] - -[must] -root_control_files = [ - ".gitignore", - ".gitattributes", - ".editorconfig", - ".tool-versions", - "Containerfile", - "Justfile", -] - -root_hosting_files = [ - "CNAME", - ".nojekyll", -] - -ownership_files = [ - "MAINTAINER", - ".github/CODEOWNERS", -] - -machine_readable_required = [ - ".machine_readable/anchors/ANCHOR.a2ml", - ".machine_readable/contractiles/", - ".machine_readable/ai/", - ".machine_readable/bot_directives/", -] - -contractiles_required = [ - "Mustfile", - "Trustfile", - "Intentfile", -] - -security_required = [ - ".well-known/security.txt", - "ci-security-scan", -] - -quality_gate_required = [ - "format", - "lint", - "unit-tests", - "integration-tests", - "p2p-tests", - "e2e-tests", - "bench-smoke", - "docs-check", - "security-scan", -] - -abi_ffi_policy = [ - "ABI Idris2 in src/interface/abi/*.idr", - "FFI Zig in ffi/**/*.zig", -] - -[should] -docs_primary_format = "adoc" -docs_structure = [ - "docs/theory", - "docs/practice", - "docs/whitepapers/academic", - "docs/whitepapers/industry", - "docs/proofs", - "docs/reports", -] - -root_minimization = true -well_known_metadata = true -roadmap_honesty_with_dates = true -ci_doc_format_policy = true - -[could] -generate_human_from_machine = true -mode_aware_bots = ["corrective", "adaptive", "perfective", "audit"] -topology_dashboard = true -exception_registry = true diff --git a/a2ml/pandoc/.machine_readable/policies/README.adoc b/a2ml/pandoc/.machine_readable/policies/README.adoc deleted file mode 100644 index b7e25f578..000000000 --- a/a2ml/pandoc/.machine_readable/policies/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= policies Registry diff --git a/a2ml/pandoc/.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml b/a2ml/pandoc/.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml deleted file mode 100644 index 093573a07..000000000 --- a/a2ml/pandoc/.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml +++ /dev/null @@ -1,53 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# General software development approach (machine-readable) - -[metadata] -version = "1.0.0" -last-updated = "2026-02-24" -scope = "cross-repo" -source-human = "docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc" - -[execution] -order = ["axis-1", "axis-2", "axis-3"] - -[axis-1] -name = "scope" -priority = "must > intend > like" -inputs = [ - "README", - "roadmap", - "status-docs", - "ci-and-security-docs", -] -marker-scan = ["TODO", "FIXME", "XXX", "HACK", "STUB", "PARTIAL"] -idris-unsound-scan = ["believe_me", "assert_total"] -output = "scoped-work-assembly" - -[axis-2] -name = "maintenance" -priority = "corrective > adaptive > perfective" -corrective = "defect/regression/safety/security fixes" -adaptive = "scope reconciliation, stale-reference removal, obsolete-work culling" -perfective = "quality improvements derived from axis-1 honest state" - -[axis-3] -name = "audit" -priority = "systems > compliance > effects" -systems = "required systems present and operating" -compliance = "exceptions explicit, bounded, and drift-resistant" -effects = "benchmark/operational impact evidence captured and reviewed" -compliance-tooling = "panic-attack" -effects-tooling = "ecological checking with sustainabot guidance" - -[cleanup-finish-off] -root-cleanup = true -stale-work-cull = true -docs-sync-human-machine = true -compliance-audit = true -effects-audit = true -release-summary = ["must", "should", "could"] -next-actions = ["corrective", "adaptive", "perfective"] - -[collaboration] -maintainer-dialogue-required = true -dialogue-topics = ["what changed", "why", "remaining risks"] diff --git a/a2ml/pandoc/.machine_readable/scripts/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/.machine_readable/scripts/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 615df84f0..000000000 --- a/a2ml/pandoc/.machine_readable/scripts/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,18 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "automation-scripts-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Internal automation logic for the project lifecycle, forge sync, - verification triggers, and maintenance. - -canonical_locations: - maintenance: "maintenance/" - lifecycle: "lifecycle/" - forge: "forge/" - verification: "verification/" diff --git a/a2ml/pandoc/.machine_readable/scripts/forge/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/.machine_readable/scripts/forge/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 4bbd6cf39..000000000 --- a/a2ml/pandoc/.machine_readable/scripts/forge/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "automation-unit-forge" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Internal automation logic for project forge. diff --git a/a2ml/pandoc/.machine_readable/scripts/forge/README.adoc b/a2ml/pandoc/.machine_readable/scripts/forge/README.adoc deleted file mode 100644 index 31adef651..000000000 --- a/a2ml/pandoc/.machine_readable/scripts/forge/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Forge Scripts diff --git a/a2ml/pandoc/.machine_readable/scripts/forge/forge-sync.sh b/a2ml/pandoc/.machine_readable/scripts/forge/forge-sync.sh deleted file mode 100755 index 330e54b3c..000000000 --- a/a2ml/pandoc/.machine_readable/scripts/forge/forge-sync.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: MPL-2.0 -# -# forge-sync.sh — Multi-forge mirroring script -# -# Synchronises the local repository with GitHub, GitLab, and Codeberg. -# Usage: ./forge-sync.sh - -set -euo pipefail - -REMOTES=("origin" "gitlab" "codeberg") - -echo "=== RSR Forge Synchronisation ===" - -for remote in "${REMOTES[@]}"; do - if git remote | grep -q "^$remote$"; then - echo "Pushing to $remote..." - git push "$remote" --all - git push "$remote" --tags - else - echo "Skip: Remote '$remote' not configured." - fi -done - -echo "Sync complete." diff --git a/a2ml/pandoc/.machine_readable/scripts/forge/git-cleanup.sh b/a2ml/pandoc/.machine_readable/scripts/forge/git-cleanup.sh deleted file mode 100755 index 4fec1a27c..000000000 --- a/a2ml/pandoc/.machine_readable/scripts/forge/git-cleanup.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash -# git-cleanup.sh — Repository hygiene script -set -euo pipefail -echo "Cleaning up merged branches..." -git fetch -p -git branch --merged | grep -v "\*" | grep -v "main" | xargs -n 1 git branch -d || echo "No branches to clean." -echo "Pruning remote tracking branches..." -git remote prune origin diff --git a/a2ml/pandoc/.machine_readable/scripts/lifecycle/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/.machine_readable/scripts/lifecycle/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 3182d1754..000000000 --- a/a2ml/pandoc/.machine_readable/scripts/lifecycle/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "automation-unit-lifecycle" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Internal automation logic for project lifecycle. diff --git a/a2ml/pandoc/.machine_readable/scripts/lifecycle/README.adoc b/a2ml/pandoc/.machine_readable/scripts/lifecycle/README.adoc deleted file mode 100644 index 8d262b147..000000000 --- a/a2ml/pandoc/.machine_readable/scripts/lifecycle/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Lifecycle Scripts diff --git a/a2ml/pandoc/.machine_readable/scripts/lifecycle/install-tools.sh b/a2ml/pandoc/.machine_readable/scripts/lifecycle/install-tools.sh deleted file mode 100755 index 408df6428..000000000 --- a/a2ml/pandoc/.machine_readable/scripts/lifecycle/install-tools.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: MPL-2.0 -# -# install-tools.sh — Developer toolchain installer -# -# Detects and installs the required project toolchain (asdf, nix, or guix). - -set -euo pipefail - -echo "=== RSR Toolchain Installer ===" - -if [ -f "flake.nix" ] && command -v nix &>/dev/null; then - echo "Nix detected. Setting up development shell..." - nix develop --command echo "Nix shell verified." -elif [ -f ".tool-versions" ] && command -v asdf &>/dev/null; then - echo "asdf detected. Installing plugins and tools..." - while read -r line; do - plugin=$(echo "$line" | awk '{print $1}') - asdf plugin add "$plugin" || true - done < .tool-versions - asdf install -else - echo "No standard toolchain (Nix/asdf) detected or installed." - echo "Please refer to README.adoc for manual setup instructions." -fi - -echo "Installer complete." diff --git a/a2ml/pandoc/.machine_readable/scripts/maintenance/maint-assault.sh b/a2ml/pandoc/.machine_readable/scripts/maintenance/maint-assault.sh deleted file mode 100644 index f170cabc8..000000000 --- a/a2ml/pandoc/.machine_readable/scripts/maintenance/maint-assault.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: MPL-2.0 -# -# maint-assault.sh — High-rigor stress testing using panic-attacker -# -# This script runs a full assault (static + dynamic) on the project binary -# to detect logic-based bug signatures and environmental vulnerabilities. - -set -euo pipefail - -BINARY_NAME="{{project}}" -REPORT_PATH="docs/reports/security/assault-latest.json" -PA_BIN="${PANIC_ATTACK_BIN:-panic-attack}" - -echo "=== High-Rigor Security Assault ===" - -# 1. Verify environment -if ! command -v "$PA_BIN" &>/dev/null; then - echo "Error: panic-attack tool not found." - echo "Please install it or set PANIC_ATTACK_BIN environment variable." - exit 1 -fi - -if [ ! -f "target/release/$BINARY_NAME" ]; then - echo "Warning: Release binary not found at target/release/$BINARY_NAME" - echo "Running build first..." - just build --release -fi - -# 2. Run Assault -echo "Initiating full assault on $BINARY_NAME..." -mkdir -p "$(dirname "$REPORT_PATH")" - -"$PA_BIN" assault "target/release/$BINARY_NAME" - --source . - --intensity medium - --duration 10 - --output "$REPORT_PATH" - -echo "" -echo "=== Assault Complete ===" -echo "Report generated: $REPORT_PATH" -echo "To review interactively, run:" -echo " $PA_BIN tui $REPORT_PATH" diff --git a/a2ml/pandoc/.machine_readable/scripts/verification/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/.machine_readable/scripts/verification/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 460e06940..000000000 --- a/a2ml/pandoc/.machine_readable/scripts/verification/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "automation-unit-verification" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Internal automation logic for project verification. diff --git a/a2ml/pandoc/.machine_readable/scripts/verification/README.adoc b/a2ml/pandoc/.machine_readable/scripts/verification/README.adoc deleted file mode 100644 index 277b4aa6a..000000000 --- a/a2ml/pandoc/.machine_readable/scripts/verification/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Verification Scripts diff --git a/a2ml/pandoc/.tool-versions b/a2ml/pandoc/.tool-versions deleted file mode 100644 index f8af37b27..000000000 --- a/a2ml/pandoc/.tool-versions +++ /dev/null @@ -1,9 +0,0 @@ -# Uncomment and customize for your project -# rust nightly -# just 1.40.0 -# nickel 1.10.0 -# gleam 1.8.0 -# elixir 1.18.0 -# erlang 27.2 -# zig 0.14.0 -# idris2 0.7.0 diff --git a/a2ml/pandoc/.well-known/ai.txt b/a2ml/pandoc/.well-known/ai.txt deleted file mode 100644 index cc7cbc351..000000000 --- a/a2ml/pandoc/.well-known/ai.txt +++ /dev/null @@ -1,18 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# ai.txt - AI interaction policy -# See: https://site.spawning.ai/spawning-ai-txt - -User-Agent: * -Disallow-Training: yes -Disallow-Summarization: no -Disallow-Generation: yes - -# This project's code is licensed under PMPL-1.0-or-later. -# AI agents may read and analyze this code for assisting contributors. -# AI agents must NOT use this code for model training without explicit consent. -# AI agents must preserve Emotional Lineage per PMPL Section 3. -# -# For AI agent integration instructions, see: -# 0-AI-MANIFEST.a2ml (universal AI entry point) -# AI.a2ml (Claude-specific instructions) -# .machine_readable/ (structured project state) diff --git a/a2ml/pandoc/.well-known/humans.txt b/a2ml/pandoc/.well-known/humans.txt deleted file mode 100644 index 8891981a3..000000000 --- a/a2ml/pandoc/.well-known/humans.txt +++ /dev/null @@ -1,14 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# humanstxt.org - -/* TEAM */ -Maintainer: {{AUTHOR}} ({{OWNER}}) -Contact: {{AUTHOR_EMAIL}} -From: United Kingdom - -/* SITE */ -Last update: {{CURRENT_DATE}} -Standards: RSR (Rhodium Standard Repository) -License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs) -Components: Idris2 ABI, Zig FFI -Tools: just, Podman, Guix diff --git a/a2ml/pandoc/.well-known/security.txt b/a2ml/pandoc/.well-known/security.txt deleted file mode 100644 index 5414d5084..000000000 --- a/a2ml/pandoc/.well-known/security.txt +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# RFC 9116 - security.txt -# https://securitytxt.org/ - -Contact: mailto:{{SECURITY_EMAIL}} -Expires: {{CURRENT_YEAR}}-12-31T23:59:59.000Z -Encryption: {{PGP_KEY_URL}} -Preferred-Languages: en -Canonical: https://{{FORGE}}/{{OWNER}}/{{REPO}}/.well-known/security.txt -Policy: https://{{FORGE}}/{{OWNER}}/{{REPO}}/blob/main/SECURITY.md -Hiring: https://{{WEBSITE}}/careers diff --git a/a2ml/pandoc/0-AI-MANIFEST.a2ml b/a2ml/pandoc/0-AI-MANIFEST.a2ml deleted file mode 100644 index dc12c5755..000000000 --- a/a2ml/pandoc/0-AI-MANIFEST.a2ml +++ /dev/null @@ -1,121 +0,0 @@ -# ⚠️ STOP - CRITICAL READING REQUIRED - -**THIS FILE MUST BE READ FIRST BY ALL AI AGENTS** - -## WHAT IS THIS? - -This is the AI manifest for **[YOUR-REPO-NAME]**. It declares: -- Canonical file locations (where things MUST be, and nowhere else) -- Critical invariants (rules that must NEVER be violated) -- Repository structure and organization - -## CANONICAL LOCATIONS (UNIVERSAL RULE) - -### Machine-Readable Metadata: `.machine_readable/` ONLY - -These 6 a2ml files MUST exist in `.machine_readable/` directory ONLY: -1. **STATE.a2ml** - Project state, progress, blockers -2. **META.a2ml** - Architecture decisions, governance -3. **ECOSYSTEM.a2ml** - Position in ecosystem, relationships -4. **AGENTIC.a2ml** - AI agent interaction patterns -5. **NEUROSYM.a2ml** - Neurosymbolic integration config -6. **PLAYBOOK.a2ml** - Operational runbook - -**CRITICAL:** If ANY of these files exist in the root directory, this is an ERROR. - -### Anchor File: `.machine_readable/anchors/ANCHOR.a2ml` ONLY - -Canonical authority and semantic-boundary declaration MUST exist at: - -` .machine_readable/anchors/ANCHOR.a2ml ` - -Do not place `ANCHOR.a2ml` at repository root. - -### Maintenance Policies: `.machine_readable/policies/` ONLY - -Canonical maintenance/governance files MUST exist under: - -` .machine_readable/policies/ ` - -Minimum required files: -- `MAINTENANCE-AXES.a2ml` -- `MAINTENANCE-CHECKLIST.a2ml` -- `SOFTWARE-DEVELOPMENT-APPROACH.a2ml` - -Do not place maintenance policy files in repository root. - -### Bot Directives: `.machine_readable/bot_directives/` ONLY - -Bot-specific instructions for your automated agents. - -### Contractiles: `.machine_readable/contractiles/` ONLY - -Policy enforcement contracts (k9, dust, lust, must, trust). - -### AI Configuration & Guides: `.machine_readable/ai/` ONLY - -- `AI.a2ml` - Language-specific or LLM-specific patterns -- `PLACEHOLDERS.md` - Bootstrap guide - -### Community & Forge Metadata: `.github/` ONLY - -- `CODEOWNERS` - Review assignments -- `MAINTAINERS` - Machine-readable contact list -- `SUPPORT` - Support channels -- `SECURITY.md` - Technical security policy -- `CONTRIBUTING.md` - Technical contribution manual -- `CODE_OF_CONDUCT.md` - Conduct rules - -### Agent Instructions - -- `0-AI-MANIFEST.a2ml` - THIS FILE (universal entry point) - -## CORE INVARIANTS - -1. **No state file duplication** - Root must NOT contain STATE.a2ml, META.a2ml, etc. -2. **Single source of truth** - `.machine_readable/` is authoritative -3. **No stale metadata** - If root state files exist, they are OUT OF DATE -4. **License consistency** - All code PMPL-1.0-or-later unless platform requires MPL-2.0 -5. **Author attribution** - Always "{{AUTHOR}} <{{AUTHOR_EMAIL}}>" -6. **Container images** - MUST use Chainguard base (`cgr.dev/chainguard/wolfi-base:latest` or `cgr.dev/chainguard/static:latest`) -7. **Container runtime** - Podman, never Docker. Files are `Containerfile`, never `Dockerfile` -8. **Container orchestration** - `selur-compose`, never `docker-compose` - -## REPOSITORY STRUCTURE - -This repo follows the **Dual-Track** architecture: - -``` -[YOUR-REPO-NAME]/ -├── 0-AI-MANIFEST.a2ml # THIS FILE (start here) -├── README.adoc # High-level orientation (Rich Human) -├── ROADMAP.adoc # Future direction -├── CONTRIBUTING.adoc # Human contribution guide -├── GOVERNANCE.adoc # Decision-making model -├── Justfile # Task runner -├── Containerfile # OCI build -├── LICENSE # Primary license -├── src/ # Source code -│ └── interface/ # Verified Interface Seams -│ ├── abi/ # Idris2 ABI (The Spec) -│ ├── ffi/ # Zig FFI (The Bridge) -│ └── generated/ # C Headers (The Result) -├── container/ # Stapeln container ecosystem -├── docs/ # Technical depths -│ ├── attribution/ # Citations, owners, maintainers (adoc) -│ ├── architecture/ # Topology, diagrams -│ ├── theory/ # Domain theory -│ └── practice/ # Manuals -├── docs/legal/ # Legal exhibits and full texts -└── .machine_readable/ # ALL machine-readable metadata -``` - -## SESSION STARTUP CHECKLIST - -✅ Read THIS file (0-AI-MANIFEST.a2ml) first -✅ Understand canonical location: `.machine_readable/` -✅ State understanding of canonical locations - -## ATTESTATION PROOF - -**"I have read the AI manifest. All machine-readable content (state files, anchors, policies, bot directives, contractiles, AI guides) is located in `.machine_readable/` ONLY, and community metadata is in `.github/`. I will not create duplicate files in the root directory."** diff --git a/a2ml/pandoc/CHANGELOG.adoc b/a2ml/pandoc/CHANGELOG.adoc deleted file mode 100644 index ca1c65289..000000000 --- a/a2ml/pandoc/CHANGELOG.adoc +++ /dev/null @@ -1,9 +0,0 @@ -== Changelog - -All notable changes to this project will be documented in this file. - -The format is based on https://keepachangelog.com/en/1.1.0/[Keep a -Changelog], and this project adheres to -https://semver.org/spec/v2.0.0.html[Semantic Versioning]. - -=== [Unreleased] diff --git a/a2ml/pandoc/CONTRIBUTING.adoc b/a2ml/pandoc/CONTRIBUTING.adoc deleted file mode 100644 index a7cf86117..000000000 --- a/a2ml/pandoc/CONTRIBUTING.adoc +++ /dev/null @@ -1,26 +0,0 @@ -= Contributing to {project-name} -:toc: preamble -:icons: font - -This document explains how to contribute to the project. We follow a "Dual-Track" architecture where human-readable documentation lives in the root and machine-readable policies live in `.machine_readable/`. - -== How to Contribute - -We welcome contributions in many forms: -* **Code:** Improving the core verified stack or extensions. -* **Documentation:** Enhancing AsciiDoc manuals or AI manifests. -* **Testing:** Adding property-based tests or formal proofs. - -== Getting Started - -1. **Read the AI Manifest:** Start with `0-AI-MANIFEST.a2ml` to understand the repository structure. -2. **Environment:** Use `nix develop` or `direnv allow` to set up your tools (Idris2, Zig, Rust). -3. **Task Runner:** Use `just` to see available commands (`just --list`). - -== Contribution Policies - -For detailed rules on branch naming, commit messages, and the PR process, please refer to the machine-readable manual at link:.github/CONTRIBUTING.md[CONTRIBUTING.adoc]. - -== Code of Conduct - -All contributors are expected to adhere to our ethical standards. See link:.github/CODE_OF_CONDUCT.md[CODE_OF_CONDUCT.adoc] for details. diff --git a/a2ml/pandoc/Containerfile b/a2ml/pandoc/Containerfile deleted file mode 100644 index d7266bc00..000000000 --- a/a2ml/pandoc/Containerfile +++ /dev/null @@ -1,41 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# -# Containerfile for {{PROJECT_NAME}} -# Build: podman build -t {{project}}:latest -f Containerfile . -# Run: podman run --rm -it {{project}}:latest -# Seal: selur seal {{project}}:latest - -# --- Build stage --- -FROM cgr.dev/chainguard/wolfi-base:latest AS build - -# TODO: Install build dependencies for your stack -# Examples: -# RUN apk add --no-cache rust cargo # Rust -# RUN apk add --no-cache elixir erlang # Elixir -# RUN apk add --no-cache zig # Zig - -WORKDIR /build -COPY . . - -# TODO: Replace with your build command -# Examples: -# RUN cargo build --release -# RUN mix deps.get && MIX_ENV=prod mix release -# RUN zig build -Doptimize=ReleaseSafe - -# --- Runtime stage --- -FROM cgr.dev/chainguard/static:latest - -# Copy built artifact from build stage -# TODO: Replace with your binary/artifact path -# Examples: -# COPY --from=build /build/target/release/{{project}} /usr/local/bin/ -# COPY --from=build /build/_build/prod/rel/{{project}} /app/ -# COPY --from=build /build/zig-out/bin/{{project}} /usr/local/bin/ - -# Non-root user (chainguard images default to nonroot) -USER nonroot - -# TODO: Replace with your entrypoint -# ENTRYPOINT ["/usr/local/bin/{{project}}"] diff --git a/a2ml/pandoc/Justfile b/a2ml/pandoc/Justfile deleted file mode 100644 index 9d7a5ff45..000000000 --- a/a2ml/pandoc/Justfile +++ /dev/null @@ -1,910 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -# -# RSR Standard Justfile Template -# https://just.systems/man/en/ -# -# Copy this file to new projects and customize the placeholder values. -# -# Run `just` to see all available recipes -# Run `just cookbook` to generate docs/just-cookbook.adoc -# Run `just combinations` to see matrix recipe options - -set shell := ["bash", "-uc"] -set dotenv-load := true -set positional-arguments := true - -# Import auto-generated contractile recipes (must-check, trust-verify, etc.) -# Re-generate with: contractile gen-just -import? "contractile.just" - -# Project metadata — customize these -project := "{{PROJECT_NAME}}" -version := "0.1.0" -tier := "infrastructure" # 1 | 2 | infrastructure - -# ═══════════════════════════════════════════════════════════════════════════════ -# DEFAULT & HELP -# ═══════════════════════════════════════════════════════════════════════════════ - -# Show all available recipes with descriptions -default: - @just --list --unsorted - -# Show detailed help for a specific recipe -help recipe="": - #!/usr/bin/env bash - if [ -z "{{recipe}}" ]; then - just --list --unsorted - echo "" - echo "Usage: just help " - echo " just cookbook # Generate full documentation" - echo " just combinations # Show matrix recipes" - else - just --show "{{recipe}}" 2>/dev/null || echo "Recipe '{{recipe}}' not found" - fi - -# Show this project's info -info: - @echo "Project: {{project}}" - @echo "Version: {{version}}" - @echo "RSR Tier: {{tier}}" - @echo "Recipes: $(just --summary | wc -w)" - @[ -f ".machine_readable/STATE.a2ml" ] && grep -oP 'phase\s*=\s*"\K[^"]+' .machine_readable/STATE.a2ml | head -1 | xargs -I{} echo "Phase: {}" || true - -# ═══════════════════════════════════════════════════════════════════════════════ -# INIT — Bootstrap a new project from this template -# ═══════════════════════════════════════════════════════════════════════════════ - -# Interactive project bootstrap — replaces all {{PLACEHOLDER}} tokens -init: - #!/usr/bin/env bash - set -euo pipefail - - echo "═══════════════════════════════════════════════════" - echo " RSR Project Bootstrap" - echo "═══════════════════════════════════════════════════" - echo "" - - # --- Load defaults from config (if exists) --- - # Create yours: ~/.config/rsr/defaults - # Format: OWNER=myorg AUTHOR="My Name" AUTHOR_EMAIL=me@example.org ... - DEFAULTS="${XDG_CONFIG_HOME:-$HOME/.config}/rsr/defaults" - if [ -f "$DEFAULTS" ]; then - echo "Loading defaults from $DEFAULTS" - # shellcheck source=/dev/null - source "$DEFAULTS" - echo "" - fi - - # --- Required values (pre-filled from defaults if available) --- - read -rp "Project name (human-readable, e.g. My Project): " PROJECT_NAME - [ -z "$PROJECT_NAME" ] && echo "Error: project name required" && exit 1 - - read -rp "Repository slug (e.g. my-project): " REPO - [ -z "$REPO" ] && echo "Error: repo slug required" && exit 1 - - read -rp "Owner [${OWNER:-}]: " _OWNER - OWNER="${_OWNER:-${OWNER:-}}" - [ -z "$OWNER" ] && echo "Error: owner required" && exit 1 - - read -rp "Author full name [${AUTHOR:-}]: " _AUTHOR - AUTHOR="${_AUTHOR:-${AUTHOR:-}}" - [ -z "$AUTHOR" ] && echo "Error: author name required" && exit 1 - - read -rp "Author email [${AUTHOR_EMAIL:-}]: " _AUTHOR_EMAIL - AUTHOR_EMAIL="${_AUTHOR_EMAIL:-${AUTHOR_EMAIL:-}}" - [ -z "$AUTHOR_EMAIL" ] && echo "Error: email required" && exit 1 - - # --- Optional values (pre-filled from defaults if available) --- - read -rp "Author organization [${AUTHOR_ORG:-none}]: " _AUTHOR_ORG - AUTHOR_ORG="${_AUTHOR_ORG:-${AUTHOR_ORG:-}}" - - read -rp "Previous/alt email [${AUTHOR_EMAIL_ALT:-none}]: " _AUTHOR_EMAIL_ALT - AUTHOR_EMAIL_ALT="${_AUTHOR_EMAIL_ALT:-${AUTHOR_EMAIL_ALT:-}}" - - read -rp "Project description []: " PROJECT_DESCRIPTION - - read -rp "Forge domain [${FORGE:-github.com}]: " _FORGE - FORGE="${_FORGE:-${FORGE:-github.com}}" - - read -rp "Security contact email [${SECURITY_EMAIL:-$AUTHOR_EMAIL}]: " _SECURITY_EMAIL - SECURITY_EMAIL="${_SECURITY_EMAIL:-${SECURITY_EMAIL:-$AUTHOR_EMAIL}}" - - read -rp "Conduct contact email [${CONDUCT_EMAIL:-$AUTHOR_EMAIL}]: " _CONDUCT_EMAIL - CONDUCT_EMAIL="${_CONDUCT_EMAIL:-${CONDUCT_EMAIL:-$AUTHOR_EMAIL}}" - - read -rp "Project type (library|binary|monorepo|service|website) [library]: " PROJECT_TYPE - PROJECT_TYPE="${PROJECT_TYPE:-library}" - - read -rp "Website URL [https://${FORGE}/${OWNER}/${REPO}]: " WEBSITE - WEBSITE="${WEBSITE:-https://${FORGE}/${OWNER}/${REPO}}" - - # --- Container values (optional — only relevant if container/ exists) --- - if [ -d "container" ]; then - echo "" - echo "── Container configuration (optional) ─────────" - read -rp "Service name [${REPO}]: " _SERVICE_NAME - SERVICE_NAME="${_SERVICE_NAME:-${REPO}}" - read -rp "Primary port [8080]: " _PORT - PORT="${_PORT:-8080}" - read -rp "Container registry [ghcr.io/${OWNER}]: " _REGISTRY - REGISTRY="${_REGISTRY:-ghcr.io/${OWNER}}" - else - SERVICE_NAME="${REPO}" - PORT="8080" - REGISTRY="ghcr.io/${OWNER}" - fi - - # --- Derived values --- - PROJECT_UPPER=$(echo "$REPO" | tr '[:lower:]-' '[:upper:]_') - PROJECT_LOWER=$(echo "$REPO" | tr '[:upper:]-' '[:lower:]_') - CURRENT_YEAR=$(date +%Y) - CURRENT_DATE=$(date +%Y-%m-%d) - VERSION="0.1.0" - - # Derive citation name parts (best-effort split on last space) - AUTHOR_LAST="${AUTHOR##* }" - AUTHOR_FIRST="${AUTHOR% *}" - FIRST_INITIAL="${AUTHOR_FIRST:0:1}." - if [ "$AUTHOR_LAST" = "$AUTHOR_FIRST" ]; then - AUTHOR_FIRST="$AUTHOR" - AUTHOR_LAST="" - FIRST_INITIAL="" - fi - - echo "" - echo "── Summary ──────────────────────────────────────" - echo " Project: $PROJECT_NAME" - echo " Repo: $REPO" - echo " Owner: $OWNER" - echo " Author: $AUTHOR <$AUTHOR_EMAIL>" - [ -n "$AUTHOR_ORG" ] && echo " Organization: $AUTHOR_ORG" - echo " Forge: $FORGE" - echo " Year: $CURRENT_YEAR" - echo "────────────────────────────────────────────────" - echo "" - read -rp "Proceed? [Y/n] " CONFIRM - [[ "${CONFIRM:-Y}" =~ ^[Nn] ]] && echo "Aborted." && exit 0 - - echo "" - echo "Replacing placeholders..." - - # Brace tokens as variables (hex avoids just interpolation) - LB=$(printf '\x7b\x7b') - RB=$(printf '\x7d\x7d') - - # Build the sed expression list - # Note: using | as delimiter since URLs contain / - SED_ARGS=( - -e "s|${LB}PROJECT_NAME${RB}|${PROJECT_NAME}|g" - -e "s|${LB}PROJECT_DESCRIPTION${RB}|${PROJECT_DESCRIPTION}|g" - -e "s|${LB}PROJECT${RB}|${PROJECT_UPPER}|g" - -e "s|${LB}project${RB}|${PROJECT_LOWER}|g" - -e "s|${LB}REPO${RB}|${REPO}|g" - -e "s|${LB}OWNER${RB}|${OWNER}|g" - -e "s|${LB}AUTHOR${RB}|${AUTHOR}|g" - -e "s|${LB}AUTHOR_EMAIL${RB}|${AUTHOR_EMAIL}|g" - -e "s|${LB}AUTHOR_ORG${RB}|${AUTHOR_ORG}|g" - -e "s|${LB}AUTHOR_LAST${RB}|${AUTHOR_LAST}|g" - -e "s|${LB}AUTHOR_FIRST${RB}|${AUTHOR_FIRST}|g" - -e "s|${LB}AUTHOR_INITIALS${RB}|${FIRST_INITIAL}|g" - -e "s|${LB}FORGE${RB}|${FORGE}|g" - -e "s|${LB}CURRENT_YEAR${RB}|${CURRENT_YEAR}|g" - -e "s|${LB}CURRENT_DATE${RB}|${CURRENT_DATE}|g" - -e "s|${LB}DATE${RB}|${CURRENT_DATE}|g" - -e "s|${LB}SECURITY_EMAIL${RB}|${SECURITY_EMAIL}|g" - -e "s|${LB}CONDUCT_EMAIL${RB}|${CONDUCT_EMAIL}|g" - -e "s|${LB}LICENSE${RB}|PMPL-1.0-or-later|g" - -e "s|${LB}CONDUCT_TEAM${RB}|Code of Conduct Committee|g" - -e "s|${LB}RESPONSE_TIME${RB}|48 hours|g" - -e "s|${LB}MAIN_BRANCH${RB}|main|g" - -e "s|${LB}PROJECT_PURPOSE${RB}|${PROJECT_DESCRIPTION}|g" - -e "s|${LB}PROJECT_ROLE${RB}|${PROJECT_TYPE}|g" - -e "s|${LB}PROJECT_TYPE${RB}|${PROJECT_TYPE}|g" - -e "s|${LB}WEBSITE${RB}|${WEBSITE}|g" - -e "s|${LB}SERVICE_NAME${RB}|${SERVICE_NAME}|g" - -e "s|${LB}PORT${RB}|${PORT}|g" - -e "s|${LB}REGISTRY${RB}|${REGISTRY}|g" - -e "s|${LB}IMAGE${RB}|${REGISTRY}/${SERVICE_NAME}|g" - -e "s|${LB}VERSION${RB}|${VERSION}|g" - -e "s|${LB}EMAIL${RB}|${AUTHOR_EMAIL}|g" - ) - [ -n "$AUTHOR_EMAIL_ALT" ] && SED_ARGS+=(-e "s|${LB}AUTHOR_EMAIL_ALT${RB}|${AUTHOR_EMAIL_ALT}|g") - - # Replace in all text files (skip .git, LICENSE text, and binaries) - find . -type f \ - -not -path './.git/*' \ - -not -name 'PMPL-1.0-or-later.txt' \ - -not -name '*.png' -not -name '*.jpg' -not -name '*.gif' \ - -not -name '*.woff' -not -name '*.woff2' \ - | while read -r file; do - if file --brief "$file" | grep -qi 'text\|ascii\|utf'; then - sed -i "${SED_ARGS[@]}" "$file" - fi - done - - # Also replace [YOUR-REPO-NAME] and [YOUR-NAME/ORG] in AI manifest - sed -i "s|\[YOUR-REPO-NAME\]|${PROJECT_NAME}|g" 0-AI-MANIFEST.a2ml 2>/dev/null || true - sed -i "s|\[YOUR-NAME/ORG\]|${OWNER}|g" 0-AI-MANIFEST.a2ml 2>/dev/null || true - - echo "" - echo "── Validation ───────────────────────────────────" - - # Check for remaining placeholders - PATTERN="${LB}[A-Z_]*${RB}" - REMAINING=$(grep -rl "$PATTERN" . --include='*.md' --include='*.adoc' --include='*.yml' --include='*.yaml' --include='*.a2ml' --include='*.toml' --include='*.scm' --include='*.ncl' --include='*.nix' --include='*.json' --include='*.sh' 2>/dev/null | grep -v '.git/' | grep -v '.machine_readable/ai/PLACEHOLDERS.adoc' || true) - if [ -n "$REMAINING" ]; then - echo "WARNING: Remaining placeholders in:" - echo "$REMAINING" | sed 's/^/ /' - echo "" - echo "Run: grep -rn '$LB' . --include='*.md' to inspect" - else - echo "All placeholders replaced successfully!" - fi - - # K9-SVC validation (if available) - if command -v k9-svc >/dev/null 2>&1; then - echo "" - echo "Running k9-svc validation..." - k9-svc validate . 2>/dev/null || true - fi - - echo "" - echo "Done! Next steps:" - echo " 1. Review changes: git diff" - echo " 2. Remove template cruft: rm .machine_readable/ai/PLACEHOLDERS.adoc" - echo " 3. Customize README.adoc for your project" - echo " 4. Commit: git add -A && git commit -m 'feat: initialize from RSR template'" - echo " 5. Push: git remote add origin git@${FORGE}:${OWNER}/${REPO}.git && git push -u origin main" - -# ═══════════════════════════════════════════════════════════════════════════════ -# BUILD & COMPILE -# ═══════════════════════════════════════════════════════════════════════════════ - -# Build the project (debug mode) -build *args: - @echo "Building {{project}} (debug)..." - # TODO: Replace with your build command - # Examples: - # cargo build {{args}} # Rust - # mix compile {{args}} # Elixir - # zig build {{args}} # Zig - # deno task build {{args}} # Deno/ReScript - @echo "Build complete" - -# Build in release mode with optimizations -build-release *args: - @echo "Building {{project}} (release)..." - # TODO: Replace with your release build command - # Examples: - # cargo build --release {{args}} - # MIX_ENV=prod mix compile {{args}} - # zig build -Doptimize=ReleaseFast {{args}} - @echo "Release build complete" - -# Build and watch for changes (requires entr or similar) -build-watch: - @echo "Watching for changes..." - # TODO: Customize file patterns for your language - # Examples: - # find src -name '*.rs' | entr -c just build - # mix compile --force --warnings-as-errors - # deno task dev - -# Clean build artifacts [reversible: rebuild with `just build`] -clean: - @echo "Cleaning..." - # TODO: Customize for your build system - rm -rf target/ _build/ build/ dist/ out/ obj/ bin/ - -# Deep clean including caches [reversible: rebuild] -clean-all: clean - rm -rf .cache .tmp - -# ═══════════════════════════════════════════════════════════════════════════════ -# TEST & QUALITY -# ═══════════════════════════════════════════════════════════════════════════════ - -# Run all tests -test *args: - @echo "Running tests..." - # TODO: Replace with your test command - # Examples: - # cargo test {{args}} - # mix test {{args}} - # zig build test {{args}} - # deno test {{args}} - @echo "Tests passed!" - -# Run tests with verbose output -test-verbose: - @echo "Running tests (verbose)..." - # TODO: Replace with verbose test command - -# Smoke test -test-smoke: - @echo "Smoke test..." - # TODO: Add basic sanity checks - -# Run all quality checks -quality: fmt-check lint test - @echo "All quality checks passed!" - -# Fix all auto-fixable issues [reversible: git checkout] -fix: fmt - @echo "Fixed all auto-fixable issues" - -# ═══════════════════════════════════════════════════════════════════════════════ -# LINT & FORMAT -# ═══════════════════════════════════════════════════════════════════════════════ - -# Format all source files [reversible: git checkout] -fmt: - @echo "Formatting source files..." - # TODO: Replace with your formatter - # Examples: - # cargo fmt - # mix format - # gleam format - # deno fmt - -# Check formatting without changes -fmt-check: - @echo "Checking formatting..." - # TODO: Replace with your format check - # Examples: - # cargo fmt --check - # mix format --check-formatted - # gleam format --check - -# Run linter -lint: - @echo "Linting source files..." - # TODO: Replace with your linter - # Examples: - # cargo clippy -- -D warnings - # mix credo --strict - # gleam check - -# ═══════════════════════════════════════════════════════════════════════════════ -# RUN & EXECUTE -# ═══════════════════════════════════════════════════════════════════════════════ - -# Run the application -run *args: build - # TODO: Replace with your run command - echo "Run not configured yet" - -# Run with verbose output -run-verbose *args: build - # TODO: Replace with verbose run command - echo "Run not configured yet" - -# Install to user path -install: build-release - @echo "Installing {{project}}..." - # TODO: Replace with your install command - -# ═══════════════════════════════════════════════════════════════════════════════ -# DEPENDENCIES -# ═══════════════════════════════════════════════════════════════════════════════ - -# Install/check all dependencies -deps: - @echo "Checking dependencies..." - # TODO: Replace with your dependency check - # Examples: - # cargo check - # mix deps.get - # gleam deps download - @echo "All dependencies satisfied" - -# Audit dependencies for vulnerabilities -deps-audit: - @echo "Auditing for vulnerabilities..." - # TODO: Replace with your audit command - # Examples: - # cargo audit - # mix audit - @command -v trivy >/dev/null && trivy fs --severity HIGH,CRITICAL --quiet . || true - @command -v gitleaks >/dev/null && gitleaks detect --source . --no-git --quiet || true - @echo "Audit complete" - -# ═══════════════════════════════════════════════════════════════════════════════ -# DOCUMENTATION -# ═══════════════════════════════════════════════════════════════════════════════ - -# Generate all documentation -docs: - @mkdir -p docs/generated docs/man - just cookbook - just man - @echo "Documentation generated in docs/" - -# Generate justfile cookbook documentation -cookbook: - #!/usr/bin/env bash - mkdir -p docs - OUTPUT="docs/just-cookbook.adoc" - echo "= {{project}} Justfile Cookbook" > "$OUTPUT" - echo ":toc: left" >> "$OUTPUT" - echo ":toclevels: 3" >> "$OUTPUT" - echo "" >> "$OUTPUT" - echo "Generated: $(date -Iseconds)" >> "$OUTPUT" - echo "" >> "$OUTPUT" - echo "== Recipes" >> "$OUTPUT" - echo "" >> "$OUTPUT" - just --list --unsorted | while read -r line; do - if [[ "$line" =~ ^[[:space:]]+([a-z_-]+) ]]; then - recipe="${BASH_REMATCH[1]}" - echo "=== $recipe" >> "$OUTPUT" - echo "" >> "$OUTPUT" - echo "[source,bash]" >> "$OUTPUT" - echo "----" >> "$OUTPUT" - echo "just $recipe" >> "$OUTPUT" - echo "----" >> "$OUTPUT" - echo "" >> "$OUTPUT" - fi - done - echo "Generated: $OUTPUT" - -# Generate man page -man: - #!/usr/bin/env bash - mkdir -p docs/man - cat > docs/man/{{project}}.1 << EOF - .TH {{project}} 1 "$(date +%Y-%m-%d)" "{{version}}" "{{project}} Manual" - .SH NAME - {{project}} \- RSR-compliant project - .SH SYNOPSIS - .B just - [recipe] [args...] - .SH DESCRIPTION - RSR (Rhodium Standard Repository) project managed with just. - .SH AUTHOR - $(git config user.name 2>/dev/null || echo "Author") <$(git config user.email 2>/dev/null || echo "email")> - EOF - echo "Generated: docs/man/{{project}}.1" - -# ═══════════════════════════════════════════════════════════════════════════════ -# CONTAINERS (stapeln ecosystem — Podman + Chainguard Wolfi) -# ═══════════════════════════════════════════════════════════════════════════════ - -# Initialise container templates — substitute placeholders with project values -container-init: - #!/usr/bin/env bash - set -euo pipefail - - if [ ! -d "container" ]; then - echo "Error: container/ directory not found." - echo "This repo may not have been created from rsr-template-repo." - exit 1 - fi - - echo "=== Container Template Initialisation ===" - echo "" - - # Load RSR defaults if available - DEFAULTS="${XDG_CONFIG_HOME:-$HOME/.config}/rsr/defaults" - if [ -f "$DEFAULTS" ]; then - echo "Loading defaults from $DEFAULTS" - # shellcheck source=/dev/null - source "$DEFAULTS" - echo "" - fi - - # Prompt for container-specific values - read -rp "Service name (e.g. my-api) [{{project}}]: " _SERVICE_NAME - SERVICE_NAME="${_SERVICE_NAME:-{{project}}}" - - read -rp "Primary port [8080]: " _PORT - PORT="${_PORT:-8080}" - - read -rp "Container registry [ghcr.io/${OWNER:-{{OWNER}}}]: " _REGISTRY - REGISTRY="${_REGISTRY:-ghcr.io/${OWNER:-{{OWNER}}}}" - - echo "" - echo " Service: $SERVICE_NAME" - echo " Port: $PORT" - echo " Registry: $REGISTRY" - echo "" - read -rp "Proceed? [Y/n] " CONFIRM - [[ "${CONFIRM:-Y}" =~ ^[Nn] ]] && echo "Aborted." && exit 0 - - echo "" - echo "Replacing container placeholders..." - - # Brace tokens as variables (hex escapes avoid just interpolation) - LB=$(printf '\x7b\x7b') - RB=$(printf '\x7d\x7d') - - SED_ARGS=( - -e "s|${LB}SERVICE_NAME${RB}|${SERVICE_NAME}|g" - -e "s|${LB}PORT${RB}|${PORT}|g" - -e "s|${LB}REGISTRY${RB}|${REGISTRY}|g" - ) - - find container/ -type f | while read -r file; do - if file --brief "$file" | grep -qi 'text\|ascii\|utf'; then - sed -i "${SED_ARGS[@]}" "$file" - fi - done - - echo "Container templates initialised." - echo "" - echo "Next steps:" - echo " 1. Edit container/Containerfile — add your build commands" - echo " 2. Edit container/entrypoint.sh — set your application binary" - echo " 3. Review container/compose.toml — adjust services and volumes" - echo " 4. Build: just container-build" - -# Build container image via cerro-torre pipeline -container-build *args: - #!/usr/bin/env bash - if [ -f "container/ct-build.sh" ]; then - cd container && ./ct-build.sh {{args}} - elif [ -f "container/Containerfile" ]; then - podman build -t {{project}}:latest -f container/Containerfile . - elif [ -f "Containerfile" ]; then - podman build -t {{project}}:latest -f Containerfile . - else - echo "No Containerfile found in container/ or project root" - exit 1 - fi - -# Verify compose configuration -container-verify: - #!/usr/bin/env bash - if [ ! -f "container/compose.toml" ]; then - echo "No container/compose.toml found" - exit 1 - fi - cd container - if command -v selur-compose &>/dev/null; then - selur-compose verify - else - echo "selur-compose not found, falling back to podman compose" - podman compose --file compose.toml config - fi - -# Start container stack -container-up *args: - #!/usr/bin/env bash - if [ ! -f "container/compose.toml" ]; then - echo "No container/compose.toml found" - exit 1 - fi - cd container - if command -v selur-compose &>/dev/null; then - selur-compose up {{args}} - else - podman compose --file compose.toml up {{args}} - fi - -# Stop container stack -container-down: - #!/usr/bin/env bash - cd container 2>/dev/null || { echo "No container/ directory"; exit 1; } - if command -v selur-compose &>/dev/null; then - selur-compose down - else - podman compose --file compose.toml down - fi - -# Sign and verify container bundle (build + pack + sign + verify) -container-sign: - #!/usr/bin/env bash - if [ -f "container/ct-build.sh" ]; then - cd container && ./ct-build.sh - else - echo "No container/ct-build.sh found" - exit 1 - fi - -# Push signed bundle to registry -container-push: - #!/usr/bin/env bash - if [ -f "container/ct-build.sh" ]; then - cd container && ./ct-build.sh --push - else - echo "No container/ct-build.sh found — falling back to podman push" - podman push {{project}}:latest - fi - -# Run container interactively (for debugging) -container-run *args: - podman run --rm -it {{project}}:latest {{args}} - -# ═══════════════════════════════════════════════════════════════════════════════ -# CI & AUTOMATION -# ═══════════════════════════════════════════════════════════════════════════════ - -# Run full CI pipeline locally -ci: deps quality - @echo "CI pipeline complete!" - -# Install git hooks -install-hooks: - @mkdir -p .git/hooks - @cat > .git/hooks/pre-commit << 'HOOKEOF' - #!/bin/bash - just fmt-check || exit 1 - just lint || exit 1 - HOOKEOF - @chmod +x .git/hooks/pre-commit - @echo "Git hooks installed" - -# ═══════════════════════════════════════════════════════════════════════════════ -# SECURITY -# ═══════════════════════════════════════════════════════════════════════════════ - -# Run security audit -security: deps-audit - @echo "=== Security Audit ===" - @command -v gitleaks >/dev/null && gitleaks detect --source . --verbose || true - @command -v trivy >/dev/null && trivy fs --severity HIGH,CRITICAL . || true - @echo "Security audit complete" - -# Generate SBOM -sbom: - @mkdir -p docs/security - @command -v syft >/dev/null && syft . -o spdx-json > docs/security/sbom.spdx.json || echo "syft not found" - -# ═══════════════════════════════════════════════════════════════════════════════ -# VALIDATION & COMPLIANCE -# ═══════════════════════════════════════════════════════════════════════════════ - -# Validate RSR compliance -validate-rsr: - #!/usr/bin/env bash - echo "=== RSR Compliance Check ===" - MISSING="" - for f in .editorconfig .gitignore Justfile README.adoc LICENSE 0-AI-MANIFEST.a2ml; do - [ -f "$f" ] || MISSING="$MISSING $f" - done - for f in .machine_readable/STATE.a2ml .machine_readable/META.a2ml .machine_readable/ECOSYSTEM.a2ml .machine_readable/anchors/ANCHOR.a2ml .machine_readable/policies/MAINTENANCE-AXES.a2ml .machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml .machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml; do - [ -f "$f" ] || MISSING="$MISSING $f" - done - for f in licensing/exhibits/EXHIBIT-A-ETHICAL-USE.txt licensing/exhibits/EXHIBIT-B-QUANTUM-SAFE.txt licensing/texts/PMPL-1.0-or-later.txt; do - [ -f "$f" ] || MISSING="$MISSING $f" - done - for f in src/interface/abi src/interface/ffi src/interface/generated; do - [ -d "$f" ] || MISSING="$MISSING $f" - done - for f in docs/maintenance/MAINTENANCE-CHECKLIST.adoc docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc; do - [ -f "$f" ] || MISSING="$MISSING $f" - done - if [ -f ".machine_readable/META.a2ml" ]; then - grep -q 'axis-1 = "must > intend > like"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:axis-1" - grep -q 'axis-2 = "corrective > adaptive > perfective"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:axis-2" - grep -q 'axis-3 = "systems > compliance > effects"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:axis-3" - grep -q 'scoping-first = true' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:scoping-first" - grep -q 'idris-unsound-scan = "believe_me/assert_total"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:idris-unsound-scan" - grep -q 'audit-focus = "systems in place, documentation explains actual state, safety/security accounted for, observed effects reviewed"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:audit-focus" - grep -q 'compliance-focus = "seams/compromises/exception register, bounded exceptions, anti-drift checks"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:compliance-focus" - grep -q 'effects-evidence = "benchmark execution/results and maintainer status dialogue/review"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:effects-evidence" - grep -q 'compliance-tooling = "panic-attack"' .machine_readable/policies/MAINTENANCE-AXES.a2ml || MISSING="$MISSING MAINTENANCE-AXES.a2ml:compliance-tooling" - grep -q 'effects-tooling = "ecological checking with sustainabot guidance"' .machine_readable/policies/MAINTENANCE-AXES.a2ml || MISSING="$MISSING MAINTENANCE-AXES.a2ml:effects-tooling" - grep -q 'source-human = "docs/maintenance/MAINTENANCE-CHECKLIST.adoc"' .machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml || MISSING="$MISSING MAINTENANCE-CHECKLIST.a2ml:source-human" - grep -q 'source-human = "docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc"' .machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml || MISSING="$MISSING SOFTWARE-DEVELOPMENT-APPROACH.a2ml:source-human" - fi - if [ -n "$MISSING" ]; then - echo "MISSING:$MISSING" - exit 1 - fi - echo "RSR compliance: PASS" - -# Validate STATE.a2ml syntax -validate-state: - @if [ -f ".machine_readable/STATE.a2ml" ]; then \ - grep -q '^\[metadata\]' .machine_readable/STATE.a2ml && \ - grep -q 'project\s*=' .machine_readable/STATE.a2ml && \ - echo "STATE.a2ml: valid" || echo "STATE.a2ml: INVALID (missing required sections)"; \ - else \ - echo "No .machine_readable/STATE.a2ml found"; \ - fi - -# Validate AI installation guide completeness (finishbot pre-release check) -validate-ai-install: - #!/usr/bin/env bash - echo "=== AI Installation Guide Check ===" - GUIDE="docs/AI_INSTALLATION_GUIDE.adoc" - README="README.adoc" - ERRORS=0 - - # Check guide exists - if [ ! -f "$GUIDE" ]; then - echo "MISSING: $GUIDE (create from template: docs/AI_INSTALLATION_GUIDE.adoc)" - ERRORS=$((ERRORS + 1)) - else - # Check for unfilled TODO markers - TODOS=$(grep -c '\[TODO-AI-INSTALL' "$GUIDE" 2>/dev/null || true) - if [ "$TODOS" -gt 0 ]; then - echo "INCOMPLETE: $GUIDE has $TODOS unfilled [TODO-AI-INSTALL] markers:" - grep -n '\[TODO-AI-INSTALL' "$GUIDE" | head -10 - ERRORS=$((ERRORS + 1)) - else - echo "$GUIDE: complete (no TODO markers)" - fi - - # Check AI implementation section exists - if ! grep -q 'ai-implementation' "$GUIDE" 2>/dev/null; then - echo "MISSING: [[ai-implementation]] anchor in $GUIDE" - ERRORS=$((ERRORS + 1)) - fi - - # Check privacy notice exists - if ! grep -qi 'privacy' "$GUIDE" 2>/dev/null; then - echo "MISSING: Privacy notice in $GUIDE" - ERRORS=$((ERRORS + 1)) - fi - - # Check install commands exist (not just placeholders) - if ! grep -q 'git clone' "$GUIDE" 2>/dev/null; then - echo "WARNING: No git clone command found in $GUIDE -- install commands may be incomplete" - fi - fi - - # Check README has AI install section - if [ -f "$README" ]; then - if ! grep -qi 'AI-Assisted Installation' "$README" 2>/dev/null; then - echo "MISSING: AI-Assisted Installation section in $README" - echo " Copy from docs/AI-INSTALL-README-SECTION.adoc" - ERRORS=$((ERRORS + 1)) - fi - - # Check README for unfilled TODO markers - README_TODOS=$(grep -c '\[TODO-AI-INSTALL' "$README" 2>/dev/null || true) - if [ "$README_TODOS" -gt 0 ]; then - echo "INCOMPLETE: $README has $README_TODOS unfilled [TODO-AI-INSTALL] markers" - ERRORS=$((ERRORS + 1)) - fi - fi - - if [ "$ERRORS" -gt 0 ]; then - echo "" - echo "AI install guide: FAIL ($ERRORS issues)" - exit 1 - fi - echo "AI install guide: PASS" - -# Full validation suite -validate: validate-rsr validate-state validate-ai-install - @echo "All validations passed!" - -# ═══════════════════════════════════════════════════════════════════════════════ -# STATE MANAGEMENT -# ═══════════════════════════════════════════════════════════════════════════════ - -# Update STATE.a2ml timestamp -state-touch: - @if [ -f ".machine_readable/STATE.a2ml" ]; then \ - sed -i 's/last-updated = "[^"]*"/last-updated = "'"$(date +%Y-%m-%d)"'"/' .machine_readable/STATE.a2ml && \ - echo "STATE.a2ml timestamp updated"; \ - fi - -# Show current phase from STATE.a2ml -state-phase: - @grep -oP 'phase\s*=\s*"\K[^"]+' .machine_readable/STATE.a2ml 2>/dev/null | head -1 || echo "unknown" - -# ═══════════════════════════════════════════════════════════════════════════════ -# GUIX & NIX -# ═══════════════════════════════════════════════════════════════════════════════ - -# Enter Guix development shell (primary) -guix-shell: - guix shell -D -f guix.scm - -# Build with Guix -guix-build: - guix build -f guix.scm - -# Enter Nix development shell (fallback) -nix-shell: - @if [ -f "flake.nix" ]; then nix develop; else echo "No flake.nix"; fi - -# ═══════════════════════════════════════════════════════════════════════════════ -# HYBRID AUTOMATION -# ═══════════════════════════════════════════════════════════════════════════════ - -# Run local automation tasks -automate task="all": - #!/usr/bin/env bash - case "{{task}}" in - all) just fmt && just lint && just test && just docs && just state-touch ;; - cleanup) just clean && find . -name "*.orig" -delete && find . -name "*~" -delete ;; - update) just deps && just validate ;; - *) echo "Unknown: {{task}}. Use: all, cleanup, update" && exit 1 ;; - esac - -# ═══════════════════════════════════════════════════════════════════════════════ -# COMBINATORIC MATRIX RECIPES -# ═══════════════════════════════════════════════════════════════════════════════ - -# Build matrix: [debug|release] x [target] x [features] -build-matrix mode="debug" target="" features="": - @echo "Build matrix: mode={{mode}} target={{target}} features={{features}}" - -# Test matrix: [unit|integration|e2e|all] x [verbosity] x [parallel] -test-matrix suite="unit" verbosity="normal" parallel="true": - @echo "Test matrix: suite={{suite}} verbosity={{verbosity}} parallel={{parallel}}" - -# Container matrix: [build|run|push|shell|scan] x [registry] x [tag] -container-matrix action="build" registry="ghcr.io/{{OWNER}}" tag="latest": - @echo "Container matrix: action={{action}} registry={{registry}} tag={{tag}}" - -# CI matrix: [lint|test|build|security|all] x [quick|full] -ci-matrix stage="all" depth="quick": - @echo "CI matrix: stage={{stage}} depth={{depth}}" - -# Show all matrix combinations -combinations: - @echo "=== Combinatoric Matrix Recipes ===" - @echo "" - @echo "Build Matrix: just build-matrix [debug|release] [target] [features]" - @echo "Test Matrix: just test-matrix [unit|integration|e2e|all] [verbosity] [parallel]" - @echo "Container: just container-matrix [build|run|push|shell|scan] [registry] [tag]" - @echo "CI Matrix: just ci-matrix [lint|test|build|security|all] [quick|full]" - -# ═══════════════════════════════════════════════════════════════════════════════ -# VERSION CONTROL -# ═══════════════════════════════════════════════════════════════════════════════ - -# Show git status -status: - @git status --short - -# Show recent commits -log count="20": - @git log --oneline -{{count}} - -# Generate CHANGELOG.md with git-cliff -changelog: - @command -v git-cliff >/dev/null || { echo "git-cliff not found — install: cargo install git-cliff"; exit 1; } - git cliff --config .machine_readable/configs/git-cliff/cliff.toml --output CHANGELOG.md - @echo "Generated CHANGELOG.md" - -# Preview changelog for unreleased commits (does not write) -changelog-preview: - @command -v git-cliff >/dev/null || { echo "git-cliff not found — install: cargo install git-cliff"; exit 1; } - git cliff --config .machine_readable/configs/git-cliff/cliff.toml --unreleased --strip header - -# Tag a new release (usage: just release-tag 1.2.3) -release-tag version: - #!/usr/bin/env bash - TAG="v{{version}}" - if git rev-parse "$TAG" >/dev/null 2>&1; then - echo "Tag $TAG already exists" - exit 1 - fi - just changelog - git add CHANGELOG.md - git commit -m "chore(release): prepare $TAG" - git tag -a "$TAG" -m "Release $TAG" - echo "Created tag $TAG — push with: git push origin main --tags" - -# ═══════════════════════════════════════════════════════════════════════════════ -# UTILITIES -# ═══════════════════════════════════════════════════════════════════════════════ - -# Count lines of code -loc: - @find . \( -name "*.rs" -o -name "*.ex" -o -name "*.exs" -o -name "*.res" -o -name "*.gleam" -o -name "*.zig" -o -name "*.idr" -o -name "*.hs" -o -name "*.ncl" -o -name "*.scm" -o -name "*.adb" -o -name "*.ads" \) -not -path './target/*' -not -path './_build/*' 2>/dev/null | xargs wc -l 2>/dev/null | tail -1 || echo "0" - -# Show TODO comments -todos: - @grep -rn "TODO\|FIXME\|HACK\|XXX" --include="*.rs" --include="*.ex" --include="*.res" --include="*.gleam" --include="*.zig" --include="*.idr" --include="*.hs" . 2>/dev/null || echo "No TODOs" - -# Open in editor -edit: - ${EDITOR:-code} . - -# Run high-rigor security assault using panic-attacker -maint-assault: - @./.machine_readable/scripts/maintenance/maint-assault.sh - -# [AUTO-GENERATED] Multi-arch / RISC-V target -build-riscv: - @echo "Building for RISC-V..." - cross build --target riscv64gc-unknown-linux-gnu diff --git a/a2ml/pandoc/LICENSE b/a2ml/pandoc/LICENSE deleted file mode 100644 index dc9b037ff..000000000 --- a/a2ml/pandoc/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/a2ml/pandoc/PANDOC-SUBMISSION.adoc b/a2ml/pandoc/PANDOC-SUBMISSION.adoc deleted file mode 100644 index 1a114a60a..000000000 --- a/a2ml/pandoc/PANDOC-SUBMISSION.adoc +++ /dev/null @@ -1,77 +0,0 @@ -== A2ML Pandoc Reader, Writer, and Filter - -=== Summary - -Custom Pandoc reader, writer, and Lua filter for A2ML (Attested Markup -Language) — a structured document format for AI agent manifests and -project metadata. - -A2ML provides a typed, formally verified surface syntax with directives -(`+@abstract+`, `+@opaque+`, `+@fig+`, `+@ref+`, etc.), sections, -key-value metadata, and cross-references. This tooling brings full -Pandoc ecosystem support: convert A2ML to HTML, PDF, DOCX, Markdown, -EPUB, and dozens more formats. - -=== Components - -* *a2ml.lua* — Combined Pandoc custom reader (360 lines). Parses A2ML -surface syntax into the Pandoc AST preserving headings, directives, code -blocks, inline formatting, and cross-references. -* *a2ml-reader.lua* — Standalone reader variant (189 lines) for simpler -use cases. -* *a2ml-writer.lua* — Custom Pandoc writer (153 lines). Converts any -Pandoc AST to valid A2ML output, enabling round-trip conversion and -cross-format workflows. -* *a2ml-filter.lua* — Post-processing Lua filter with six passes: -cross-reference resolution, `+@include+` directive expansion, TOC -generation, diagram rendering (Mermaid/Graphviz), SPDX validation, and -git metadata enrichment. -* *a2ml.html* — HTML5 Pandoc template with directive-specific styling -(colour-coded borders for `+@abstract+`, `+@opaque+`, `+@fig+`, -`+@note+`, `+@warning+`), responsive layout, print-friendly output, and -syntax highlighting. - -=== Usage - -[source,sh] ----- -# A2ML to HTML (full pipeline) -pandoc -f a2ml.lua input.a2ml \ - --lua-filter=a2ml-filter.lua \ - --template=a2ml.html \ - -o output.html - -# A2ML to PDF -pandoc -f a2ml.lua input.a2ml -o output.pdf - -# Markdown to A2ML -pandoc input.md -t a2ml-writer.lua -o output.a2ml ----- - -=== Requirements - -* Pandoc 3.0+ with Lua support - -=== Spec - -* A2ML v1.0.0: https://github.com/hyperpolymath/standards/tree/main/a2ml -* Media type: `+application/vnd.a2ml+` (IANA registration pending) - -=== Related - -* https://github.com/pandoc/lua-filters[pandoc/lua-filters] — Community -Lua filters repository -* link:../lsp/[A2ML LSP server] — Language Server Protocol -implementation -* link:../editors/vscode/[VS Code extension] — Syntax highlighting for -VS Code -* link:../SPEC-v1.0.adoc[A2ML specification] — Full language -specification - -=== License - -PMPL-1.0-or-later (Palimpsest License) - -=== Author - -Jonathan D.A. Jewell j.d.a.jewell@open.ac.uk diff --git a/a2ml/pandoc/README.adoc b/a2ml/pandoc/README.adoc deleted file mode 100644 index c0d61e98d..000000000 --- a/a2ml/pandoc/README.adoc +++ /dev/null @@ -1,163 +0,0 @@ -== pandoc-a2ml - -link:LICENSE[image:https://img.shields.io/badge/License-MIT-blue.svg[License: -MIT]] - -A collection of Pandoc custom reader, writer, filter, and HTML template -for https://github.com/hyperpolymath/standards/tree/main/a2ml[A2ML] -(Attested Markup Language) documents. - -A2ML is a typed, attested markup format designed for documents that need -structural guarantees: cross-references that resolve, directives with -typed attributes, and byte-exact opaque payloads. Think of it as -Markdown with attestation. - -=== Files - -* `+a2ml.lua+` – Custom reader (full-featured, 360 lines) -* `+a2ml-reader.lua+` – Standalone reader (lightweight, 189 lines) -* `+a2ml-writer.lua+` – Custom writer producing A2ML output -* `+a2ml-filter.lua+` – Lua filter with 6 post-processing passes -* `+a2ml.html+` – HTML5 template with A2ML-specific CSS - -=== Usage - -==== Reading A2ML - -Convert A2ML documents to any Pandoc output format: - -.... -pandoc -f a2ml.lua input.a2ml -o output.html -pandoc -f a2ml.lua input.a2ml -t markdown -pandoc -f a2ml.lua input.a2ml -o output.pdf -.... - -==== Writing A2ML - -Convert any Pandoc-supported format to A2ML: - -.... -pandoc input.md -t a2ml-writer.lua -o output.a2ml -.... - -==== Full pipeline - -Use the reader, filter, and template together: - -.... -pandoc -f a2ml.lua input.a2ml \ - --lua-filter=a2ml-filter.lua \ - --template=a2ml.html \ - -o output.html -.... - -==== Round-trip - -.... -pandoc -f a2ml.lua input.a2ml \ - -t a2ml-writer.lua -o roundtrip.a2ml -.... - -=== A2ML syntax - -A2ML uses a familiar surface syntax: - -.... -# Heading - -@abstract: -This is an abstract directive block. -@end - -Paragraphs are separated by blank lines. - -- Bullet lists work as expected -- **Bold** and *italic* inline formatting - -@ref(heading) creates an internal cross-reference. - -@opaque(lang="json"): -{"preserved": "byte-exact"} -@end - -```lua --- Fenced code blocks with language tags -``` -.... - -Supported elements: - -[cols=",",options="header",] -|=== -|A2ML Syntax |Pandoc Element -|`+# Heading+` |Header -|`+@directive: ... @end+` |Div -|`+@opaque(lang="x"): ... @end+` |CodeBlock -|`+**bold**+` |Strong -|`+*italic*+` |Emph -|`+[label](url)+` |Link -|`+@ref(id)+` |Link (internal) -|`+- list item+` |BulletList -|`+\'\'\'lang ... \'\'\'+` |CodeBlock -|=== - -=== Filter capabilities - -The `+a2ml-filter.lua+` provides these post-processing passes: - -[arabic] -. *Cross-reference resolver* – validates `+@ref(id)+` links against -actual heading anchors; unresolved refs get a warning and red styling. -. *Include directive* – `+@include(file.a2ml)+` pulls in external file -content via `+pandoc.read()+`. -. *TOC generator* – auto-generates a table of contents from document -headings. -. *Diagram rendering* – `+mermaid+` and `+graphviz+` code blocks are -rendered to inline SVG via `+pandoc.pipe()+`. -. *SPDX validator* – checks for `+SPDX-License-Identifier+` in metadata -or early document blocks. -. *Metadata enrichment* – populates version, date, and author from git -when not present in the document. - -Disable individual capabilities via metadata: - -.... ---- -a2ml-includes: false -a2ml-diagrams: false -a2ml-validate: false ---- -.... - -=== HTML template - -The `+a2ml.html+` template provides: - -* SPDX badge in the document header -* Directive styling with distinct colours per type (`+@abstract+` blue, -`+@opaque+` amber, `+@fig+` green, `+@note+` orange, `+@warning+` red) -* Responsive layout with mobile breakpoints -* Print-friendly stylesheet -* Full Pandoc syntax highlighting coverage - -=== Requirements - -* Pandoc 3.0+ with Lua support -* Optional: `+mmdc+` (Mermaid CLI) for diagram rendering -* Optional: `+dot+` (Graphviz) for diagram rendering - -=== Installation - -Copy the Lua files to your pandoc data directory: - -.... -mkdir -p ~/.local/share/pandoc/ -cp a2ml.lua a2ml-reader.lua a2ml-writer.lua a2ml-filter.lua ~/.local/share/pandoc/ -cp a2ml.html ~/.local/share/pandoc/templates/ -.... - -Or use them directly from this directory with explicit paths. - -=== License - -MIT — see LICENSE for details. diff --git a/a2ml/pandoc/ROADMAP.adoc b/a2ml/pandoc/ROADMAP.adoc deleted file mode 100644 index 5cdea28db..000000000 --- a/a2ml/pandoc/ROADMAP.adoc +++ /dev/null @@ -1,22 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Pandoc Roadmap - -== Current Status - -Initial development phase. - -== Milestones - -=== v0.1.0 - Foundation -* [ ] Core functionality -* [ ] Basic documentation -* [ ] CI/CD pipeline - -=== v1.0.0 - Stable Release -* [ ] Full feature set -* [ ] Comprehensive tests -* [ ] Production ready - -== Future Directions - -_To be determined based on community feedback._ diff --git a/a2ml/pandoc/SECURITY.adoc b/a2ml/pandoc/SECURITY.adoc deleted file mode 100644 index e47fdd927..000000000 --- a/a2ml/pandoc/SECURITY.adoc +++ /dev/null @@ -1,16 +0,0 @@ -== Security Policy - -=== Reporting a Vulnerability - -If you discover a security vulnerability, please report it responsibly. - -*Email:* j.d.a.jewell@open.ac.uk - -*Please include:* - Description of the vulnerability - Steps to -reproduce - Potential impact - -*Response timeline:* - Acknowledgement within 48 hours - Initial -assessment within 7 days - Fix or mitigation within 90 days - -*Safe harbour:* We will not pursue legal action against security -researchers who follow responsible disclosure. diff --git a/a2ml/pandoc/a2ml-filter.lua b/a2ml/pandoc/a2ml-filter.lua deleted file mode 100644 index 34b16d1ad..000000000 --- a/a2ml/pandoc/a2ml-filter.lua +++ /dev/null @@ -1,464 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- --- a2ml-filter.lua — Pandoc Lua filter for A2ML documents. --- --- Provides post-processing passes over the Pandoc AST produced by the --- A2ML reader (a2ml.lua). Designed to run as a filter (--lua-filter): --- --- pandoc -f a2ml.lua input.a2ml --lua-filter=a2ml-filter.lua -o output.html --- --- Capabilities: --- 1. Cross-reference resolver: @ref(id) → clickable internal links --- 2. Include directive: @include(file.a2ml) → pull in external file content --- 3. TOC generator: auto-generate table of contents from sections --- 4. Diagram rendering: mermaid/graphviz code blocks → images via pandoc.pipe() --- 5. SPDX validator: check SPDX header present, warn if missing --- 6. Metadata enrichment: populate version/date from git if absent --- --- Extensions table: --- +smart (typographic quotes) --- +includes (file inclusion) --- +diagrams (render diagrams) --- +validate (structural validation) --- --- Spec: /standards/a2ml/SPEC-v1.0.adoc - --- ============================================================================ --- Configuration --- ============================================================================ - ---- Map of heading IDs collected during the first pass. Used for cross-ref ---- resolution so that @ref(id) links can be verified against actual targets. -local heading_ids = {} - ---- Accumulated TOC entries (each: {level, id, text}). -local toc_entries = {} - ---- Track whether an SPDX header was found in the source. -local spdx_found = false - ---- Extension flags. Pandoc does not pass extension state to Lua filters, so ---- we enable all capabilities by default and allow users to disable them via ---- metadata fields (e.g. a2ml-includes: false). -local ext = { - smart = true, - includes = true, - diagrams = true, - validate = true, -} - --- ============================================================================ --- Utility helpers --- ============================================================================ - ---- Read extension flags from document metadata, allowing users to disable ---- individual capabilities. Metadata keys: a2ml-smart, a2ml-includes, ---- a2ml-diagrams, a2ml-validate. -local function read_extension_flags(meta) - for key, default in pairs(ext) do - local meta_key = "a2ml-" .. key - if meta[meta_key] ~= nil then - local val = meta[meta_key] - if type(val) == "boolean" then - ext[key] = val - elseif pandoc.utils.type(val) == "MetaBool" then - ext[key] = val - end - end - end -end - ---- Issue a warning message via pandoc's logging facility. ---- Falls back to io.stderr if pandoc.log is unavailable (Pandoc < 3.1). -local function warn(msg) - if pandoc.log and pandoc.log.warn then - pandoc.log.warn(msg) - else - io.stderr:write("WARNING [a2ml-filter]: " .. msg .. "\n") - end -end - ---- Attempt to run a shell command and capture stdout. ---- Returns the output string, or nil on failure. -local function shell_capture(cmd) - local handle = io.popen(cmd .. " 2>/dev/null") - if not handle then return nil end - local result = handle:read("*a") - handle:close() - if result and result ~= "" then - return result:match("^%s*(.-)%s*$") - end - return nil -end - --- ============================================================================ --- Pass 1: Collect heading IDs for cross-reference validation --- ============================================================================ - ---- First-pass traversal that collects all heading anchors. Run before the ---- main filter so that @ref(id) targets can be verified. -local function collect_headings(doc) - for _, block in ipairs(doc.blocks) do - if block.t == "Header" then - local id = block.attr.identifier - if id and id ~= "" then - heading_ids[id] = true - table.insert(toc_entries, { - level = block.level, - id = id, - text = pandoc.utils.stringify(block.content), - }) - end - end - end -end - --- ============================================================================ --- Filter 1: Cross-reference resolver --- ============================================================================ - ---- Resolve @ref(id) links. The A2ML reader already converts these to Link ---- elements with class "a2ml-ref". This filter verifies the target exists ---- and adds a title attribute for hover text. Unresolved refs get a warning. -local function resolve_crossrefs(link) - if link.t ~= "Link" then return nil end - - -- Check if this is an a2ml-ref link (class set by the reader) - local is_ref = false - for _, cls in ipairs(link.attr.classes) do - if cls == "a2ml-ref" then - is_ref = true - break - end - end - if not is_ref then return nil end - - -- Extract the target ID (strip leading #) - local target_id = link.target:match("^#(.+)$") - if not target_id then return nil end - - if heading_ids[target_id] then - -- Valid reference: add title for tooltip - link.title = "Section: " .. target_id - link.attr.classes = {"a2ml-ref", "a2ml-ref-resolved"} - return link - else - -- Unresolved reference: warn and mark visually - if ext.validate then - warn("Unresolved cross-reference: @ref(" .. target_id .. ")") - end - link.attr.classes = {"a2ml-ref", "a2ml-ref-unresolved"} - return link - end -end - --- ============================================================================ --- Filter 2: Include directive --- ============================================================================ - ---- Process @include(file.a2ml) directives. These appear as Div elements ---- with class "a2ml-include" (produced by the reader for @include directives). ---- The included file is read and parsed via pandoc.read(), then its blocks ---- replace the Div in-place. -local function process_includes(div) - if div.t ~= "Div" then return nil end - if not ext.includes then return nil end - - -- Check for a2ml-include class - local is_include = false - for _, cls in ipairs(div.attr.classes) do - if cls == "a2ml-include" then - is_include = true - break - end - end - if not is_include then return nil end - - -- Extract the file path from the data-a2ml attribute or from the content - local file_path = nil - for _, kv in ipairs(div.attr.attributes) do - if kv[1] == "file" or kv[1] == "src" then - file_path = kv[2] - break - end - end - - -- Fallback: try to extract path from the Div's text content - if not file_path then - local text = pandoc.utils.stringify(div.content) - file_path = text:match("^%s*(.-)%s*$") - end - - if not file_path or file_path == "" then - warn("@include directive has no file path") - return nil - end - - -- Read the external file - local fh = io.open(file_path, "r") - if not fh then - warn("@include: cannot open file: " .. file_path) - -- Return a warning block instead of silently dropping - return pandoc.Div( - pandoc.Blocks{pandoc.Para(pandoc.Inlines{ - pandoc.Emph(pandoc.Inlines{ - pandoc.Str("[include failed: " .. file_path .. "]") - }) - })}, - pandoc.Attr("", {"a2ml-include-error"}, {}) - ) - end - - local content = fh:read("*a") - fh:close() - - -- Parse the included content as A2ML if the file ends in .a2ml, - -- otherwise let Pandoc auto-detect the format. - local format = "markdown" - if file_path:match("%.a2ml$") then - -- Use our custom reader if available via pandoc.read with format option - -- Fallback to markdown parsing for broad compatibility - format = "markdown" - end - - local ok, included_doc = pcall(pandoc.read, content, format) - if ok and included_doc then - -- Return the included blocks wrapped in a Div for provenance tracking - return pandoc.Div( - included_doc.blocks, - pandoc.Attr("", {"a2ml-included"}, {{"data-source", file_path}}) - ) - else - warn("@include: failed to parse file: " .. file_path) - return nil - end -end - --- ============================================================================ --- Filter 3: TOC generator --- ============================================================================ - ---- Generate a table of contents from collected heading entries. ---- Inserts a BulletList at the beginning of the document (after the title ---- heading, if present). The TOC is wrapped in a Div with id "a2ml-toc". -local function generate_toc(doc) - if #toc_entries == 0 then return doc end - - -- Build nested list items from TOC entries - local items = {} - for _, entry in ipairs(toc_entries) do - local link = pandoc.Link( - pandoc.Inlines{pandoc.Str(entry.text)}, - "#" .. entry.id, - "", - pandoc.Attr("", {"a2ml-toc-link"}, {}) - ) - -- Indent visually by prepending spaces based on level - local prefix = "" - if entry.level > 1 then - prefix = string.rep(" ", entry.level - 1) - end - table.insert(items, pandoc.Blocks{ - pandoc.Plain(pandoc.Inlines{pandoc.Str(prefix), link}) - }) - end - - local toc_block = pandoc.Div( - pandoc.Blocks{ - pandoc.Header(2, pandoc.Inlines{pandoc.Str("Table of Contents")}, - pandoc.Attr("toc-heading", {"a2ml-toc-heading"}, {})), - pandoc.BulletList(items), - }, - pandoc.Attr("a2ml-toc", {"a2ml-toc"}, {}) - ) - - -- Insert TOC after the first heading (if any), otherwise at the start - local insert_pos = 1 - for idx, block in ipairs(doc.blocks) do - if block.t == "Header" and block.level == 1 then - insert_pos = idx + 1 - break - end - end - - table.insert(doc.blocks, insert_pos, toc_block) - return doc -end - --- ============================================================================ --- Filter 4: Diagram rendering --- ============================================================================ - ---- Render code blocks tagged with "mermaid" or "graphviz" (or "dot") into ---- inline SVG or image elements. Uses pandoc.pipe() to invoke the external ---- tool. Gracefully falls back to displaying the source code if the tool ---- is not available. -local function render_diagrams(codeblock) - if codeblock.t ~= "CodeBlock" then return nil end - if not ext.diagrams then return nil end - - local lang = nil - for _, cls in ipairs(codeblock.attr.classes) do - if cls == "mermaid" or cls == "graphviz" or cls == "dot" then - lang = cls - break - end - end - if not lang then return nil end - - local source = codeblock.text - local svg = nil - - if lang == "mermaid" then - -- Attempt to render via mmdc (Mermaid CLI) - local ok, result = pcall(pandoc.pipe, "mmdc", {"-i", "/dev/stdin", "-o", "/dev/stdout", "-e", "svg"}, source) - if ok and result and result ~= "" then - svg = result - end - elseif lang == "graphviz" or lang == "dot" then - -- Attempt to render via dot (Graphviz) - local ok, result = pcall(pandoc.pipe, "dot", {"-Tsvg"}, source) - if ok and result and result ~= "" then - svg = result - end - end - - if svg then - -- Return as a raw HTML block containing the SVG - return pandoc.Div( - pandoc.Blocks{pandoc.RawBlock("html", svg)}, - pandoc.Attr("", {"a2ml-diagram", "a2ml-diagram-" .. lang}, {}) - ) - else - -- Graceful fallback: keep the code block but add a note - warn("Diagram tool not available for '" .. lang .. "'; keeping source code") - codeblock.attr.classes = {lang, "a2ml-diagram-source"} - return codeblock - end -end - --- ============================================================================ --- Filter 5: SPDX validator --- ============================================================================ - ---- Check the document for an SPDX-License-Identifier. The A2ML reader may ---- set this in metadata; alternatively, we scan the first few blocks for ---- a comment or Para containing "SPDX-License-Identifier". -local function validate_spdx(doc) - if not ext.validate then return doc end - - -- Check metadata - if doc.meta["spdx-license"] then - spdx_found = true - return doc - end - - -- Scan first 5 blocks for SPDX mention - local limit = math.min(#doc.blocks, 5) - for idx = 1, limit do - local block = doc.blocks[idx] - local text = pandoc.utils.stringify(block) - if text:find("SPDX%-License%-Identifier") then - spdx_found = true - break - end - end - - if not spdx_found then - warn("A2ML document is missing SPDX-License-Identifier header") - end - - return doc -end - --- ============================================================================ --- Filter 6: Metadata enrichment --- ============================================================================ - ---- Populate version and date metadata from git if not already set in the ---- document. Uses git log and git describe for version/date extraction. -local function enrich_metadata(meta) - -- Populate date from git if missing - if not meta["date"] then - local git_date = shell_capture("git log -1 --format=%ci 2>/dev/null") - if git_date then - -- Extract just the YYYY-MM-DD portion - local date_str = git_date:match("^(%d%d%d%d%-%d%d%-%d%d)") - if date_str then - meta["date"] = pandoc.MetaString(date_str) - end - end - end - - -- Populate version from git describe if missing - if not meta["version"] then - local git_version = shell_capture("git describe --tags --always 2>/dev/null") - if git_version then - meta["version"] = pandoc.MetaString(git_version) - end - end - - -- Populate author from git config if missing - if not meta["author"] then - local git_author = shell_capture("git config user.name 2>/dev/null") - if git_author then - meta["author"] = pandoc.MetaString(git_author) - end - end - - return meta -end - --- ============================================================================ --- Filter pipeline --- ============================================================================ - ---- Pandoc runs filter traversals in the order listed in the returned table. ---- We use multiple passes: ---- 1. Meta pass: read extension flags and enrich metadata ---- 2. Pandoc pass: run all block/inline filters ---- 3. Final pass: generate TOC and validate SPDX - --- Return the filter as a list of traversals (Pandoc 3.0+ filter protocol). -return { - -- Pass 1: Read config, collect headings, enrich metadata - { - Pandoc = function(doc) - read_extension_flags(doc.meta) - collect_headings(doc) - doc.meta = enrich_metadata(doc.meta) - return doc - end, - }, - - -- Pass 2: Process includes, resolve cross-refs, render diagrams - { - Div = process_includes, - Link = resolve_crossrefs, - CodeBlock = render_diagrams, - }, - - -- Pass 3: Generate TOC, validate SPDX - { - Pandoc = function(doc) - doc = validate_spdx(doc) - doc = generate_toc(doc) - return doc - end, - }, -} - --- ============================================================================ --- Extensions table --- ============================================================================ - ---- Extensions advertised by this filter. These are informational; Pandoc does ---- not enforce them for filters (only for readers). Documented here for ---- tooling that inspects available capabilities. -Extensions = { - smart = true, -- Typographic quotes (SmartyPants) - includes = true, -- File inclusion via @include directive - diagrams = true, -- Diagram rendering (mermaid, graphviz) - validate = true, -- Structural validation (SPDX, references) -} diff --git a/a2ml/pandoc/a2ml-reader.lua b/a2ml/pandoc/a2ml-reader.lua deleted file mode 100644 index b70480c36..000000000 --- a/a2ml/pandoc/a2ml-reader.lua +++ /dev/null @@ -1,189 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- --- a2ml-reader.lua — Pandoc custom reader for A2ML (Attested Markup Language) --- --- Parses .a2ml files into Pandoc's internal AST, enabling conversion --- to any Pandoc output format (HTML, PDF, DOCX, Markdown, etc.). --- --- Usage: --- pandoc -f a2ml-reader.lua input.a2ml -o output.html --- pandoc -f a2ml-reader.lua input.a2ml -t markdown --- --- A2ML Syntax: --- # Heading → Header --- ## Sub-heading → Header (level 2) --- - list item → BulletList --- * list item → BulletList --- **bold** → Strong --- *italic* → Emph --- [text](url) → Link --- @ref(id) → Link to #id --- ```lang ... ``` → CodeBlock --- @directive: ... @end → Div with class "directive" --- ;; comment → stripped (Scheme-style comments) --- Paragraphs → Para (separated by blank lines) --- --- Media type: application/vnd.a2ml (IANA registration pending) - --- Reader entry point — Pandoc calls this with the file content -function Reader(input, reader_options) - local source = tostring(input) - local blocks = {} - local lines = {} - - -- Split into lines - for line in source:gmatch("([^\n]*)\n?") do - table.insert(lines, line) - end - - local i = 1 - local para_buffer = {} - - -- Flush accumulated paragraph text - local function flush_para() - if #para_buffer > 0 then - local text = table.concat(para_buffer, "\n") - local inlines = parse_inlines(text) - table.insert(blocks, pandoc.Para(inlines)) - para_buffer = {} - end - end - - while i <= #lines do - local line = lines[i] - - -- Skip Scheme-style comments - if line:match("^%s*;;") then - i = i + 1 - - -- Headings: # to ##### - elseif line:match("^(#+)%s+(.+)$") then - flush_para() - local hashes, title = line:match("^(#+)%s+(.+)$") - local level = #hashes - local inlines = parse_inlines(title) - table.insert(blocks, pandoc.Header(level, inlines)) - i = i + 1 - - -- Directive blocks: @name: ... @end - elseif line:match("^@(%w+)(.-):%s*$") then - flush_para() - local name = line:match("^@(%w+)") - local content_lines = {} - i = i + 1 - while i <= #lines and not lines[i]:match("^@end%s*$") do - table.insert(content_lines, lines[i]) - i = i + 1 - end - i = i + 1 -- skip @end - local content_text = table.concat(content_lines, "\n") - local content_inlines = parse_inlines(content_text) - local div = pandoc.Div( - { pandoc.Para(content_inlines) }, - pandoc.Attr("", { "a2ml-directive", "a2ml-" .. name }) - ) - table.insert(blocks, div) - - -- Code blocks: ```lang ... ``` - elseif line:match("^```(.*)$") then - flush_para() - local lang = line:match("^```(.*)$") or "" - lang = lang:match("^%s*(.-)%s*$") -- trim - local code_lines = {} - i = i + 1 - while i <= #lines and not lines[i]:match("^```%s*$") do - table.insert(code_lines, lines[i]) - i = i + 1 - end - i = i + 1 -- skip closing ``` - local code = table.concat(code_lines, "\n") - local classes = {} - if lang ~= "" then classes = { lang } end - table.insert(blocks, pandoc.CodeBlock(code, pandoc.Attr("", classes))) - - -- Bullet lists: - item or * item - elseif line:match("^%s*[%-*]%s+(.+)$") then - flush_para() - local items = {} - while i <= #lines and lines[i]:match("^%s*[%-*]%s+(.+)$") do - local item_text = lines[i]:match("^%s*[%-*]%s+(.+)$") - local item_inlines = parse_inlines(item_text) - table.insert(items, { pandoc.Plain(item_inlines) }) - i = i + 1 - end - table.insert(blocks, pandoc.BulletList(items)) - - -- Blank lines: flush paragraph - elseif line:match("^%s*$") then - flush_para() - i = i + 1 - - -- Regular text: accumulate into paragraph - else - table.insert(para_buffer, line) - i = i + 1 - end - end - - flush_para() - - return pandoc.Pandoc(blocks) -end - --- Parse inline markup within a text string -function parse_inlines(text) - local inlines = {} - local pos = 1 - - while pos <= #text do - -- Strong: **text** - local s, e, content = text:find("%*%*(.-)%*%*", pos) - if s == pos then - table.insert(inlines, pandoc.Strong(pandoc.Inlines(content))) - pos = e + 1 - - -- Emphasis: *text* - else - s, e, content = text:find("%*(.-)%*", pos) - if s == pos then - table.insert(inlines, pandoc.Emph(pandoc.Inlines(content))) - pos = e + 1 - - -- Link: [text](url) - else - s, e, link_text, url = text:find("%[(.-)%]%((.-)%)", pos) - if s == pos then - table.insert(inlines, pandoc.Link(pandoc.Inlines(link_text), url)) - pos = e + 1 - - -- Reference: @ref(id) - else - s, e, ref_id = text:find("@ref%((.-)%)", pos) - if s == pos then - table.insert(inlines, pandoc.Link(pandoc.Inlines(ref_id), "#" .. ref_id)) - pos = e + 1 - - -- Inline code: `code` - else - s, e, code = text:find("`(.-)`", pos) - if s == pos then - table.insert(inlines, pandoc.Code(code)) - pos = e + 1 - - -- Regular character - else - -- Grab text up to next special character - local next_special = text:find("[%*%[`@]", pos + 1) or (#text + 1) - local chunk = text:sub(pos, next_special - 1) - table.insert(inlines, pandoc.Str(chunk)) - pos = next_special - end - end - end - end - end - end - - return pandoc.Inlines(inlines) -end diff --git a/a2ml/pandoc/a2ml-writer.lua b/a2ml/pandoc/a2ml-writer.lua deleted file mode 100644 index a28de6ef8..000000000 --- a/a2ml/pandoc/a2ml-writer.lua +++ /dev/null @@ -1,153 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- --- a2ml-writer.lua — Pandoc custom writer for A2ML (Attested Markup Language) --- --- Converts Pandoc's internal AST to A2ML format. --- --- Usage: --- pandoc input.md -t a2ml-writer.lua -o output.a2ml --- pandoc input.html -t a2ml-writer.lua - --- Writer entry point -function Writer(doc, opts) - local buffer = {} - local function add(s) table.insert(buffer, s) end - - -- SPDX header - add(";; SPDX-License-Identifier: AGPL-3.0-or-later") - add("") - - for _, block in ipairs(doc.blocks) do - add(render_block(block)) - end - - return table.concat(buffer, "\n") -end - --- Render a block element to A2ML -function render_block(block) - if block.t == "Header" then - local hashes = string.rep("#", block.level) - return hashes .. " " .. render_inlines(block.content) .. "\n" - - elseif block.t == "Para" then - return render_inlines(block.content) .. "\n" - - elseif block.t == "BulletList" then - local items = {} - for _, item in ipairs(block.content) do - local text = "" - for _, b in ipairs(item) do - text = text .. render_block_inline(b) - end - table.insert(items, "- " .. text) - end - return table.concat(items, "\n") .. "\n" - - elseif block.t == "CodeBlock" then - local lang = "" - if block.classes and #block.classes > 0 then - lang = block.classes[1] - end - return "```" .. lang .. "\n" .. block.text .. "\n```\n" - - elseif block.t == "Div" then - -- Convert Div to A2ML directive - local classes = block.classes or {} - local directive_name = "section" - for _, cls in ipairs(classes) do - local name = cls:match("^a2ml%-(.+)$") - if name and name ~= "directive" then - directive_name = name - end - end - local content = "" - for _, b in ipairs(block.content) do - content = content .. render_block(b) - end - return "@" .. directive_name .. ":\n" .. content .. "@end\n" - - elseif block.t == "BlockQuote" then - local content = "" - for _, b in ipairs(block.content) do - content = content .. render_block(b) - end - return "@abstract:\n" .. content .. "@end\n" - - elseif block.t == "OrderedList" then - local items = {} - for idx, item in ipairs(block.content) do - local text = "" - for _, b in ipairs(item) do - text = text .. render_block_inline(b) - end - table.insert(items, tostring(idx) .. ". " .. text) - end - return table.concat(items, "\n") .. "\n" - - elseif block.t == "HorizontalRule" then - return "---\n" - - elseif block.t == "RawBlock" then - return block.text .. "\n" - - else - return "" - end -end - --- Render a block as inline text (for list items) -function render_block_inline(block) - if block.t == "Plain" or block.t == "Para" then - return render_inlines(block.content) - else - return render_block(block) - end -end - --- Render inline elements to A2ML text -function render_inlines(inlines) - local result = {} - for _, inline in ipairs(inlines) do - table.insert(result, render_inline(inline)) - end - return table.concat(result) -end - --- Render a single inline element -function render_inline(inline) - if inline.t == "Str" then - return inline.text - elseif inline.t == "Space" then - return " " - elseif inline.t == "SoftBreak" then - return "\n" - elseif inline.t == "LineBreak" then - return "\n" - elseif inline.t == "Strong" then - return "**" .. render_inlines(inline.content) .. "**" - elseif inline.t == "Emph" then - return "*" .. render_inlines(inline.content) .. "*" - elseif inline.t == "Code" then - return "`" .. inline.text .. "`" - elseif inline.t == "Link" then - local text = render_inlines(inline.content) - local url = inline.target - if url:match("^#") then - -- Internal reference → @ref() - return "@ref(" .. url:sub(2) .. ")" - else - return "[" .. text .. "](" .. url .. ")" - end - elseif inline.t == "RawInline" then - return inline.text - else - return "" - end -end - --- Template (optional — Pandoc uses this for standalone output) -function Template() - return "$body$" -end diff --git a/a2ml/pandoc/a2ml.html b/a2ml/pandoc/a2ml.html deleted file mode 100644 index ab906dece..000000000 --- a/a2ml/pandoc/a2ml.html +++ /dev/null @@ -1,580 +0,0 @@ - - - - - - - -$if(title)$ - $title$ -$else$ - A2ML Document -$endif$ -$if(author)$ - -$endif$ -$if(date)$ - -$endif$ -$if(version)$ - -$endif$ -$if(description)$ - -$endif$ -$for(css)$ - -$endfor$ -$for(header-includes)$ - $header-includes$ -$endfor$ - - - -
        -$if(spdx-license)$ -
        SPDX: $spdx-license$
        -$else$ -$if(a2ml-format)$ -
        A2ML v$a2ml-format$
        -$else$ -
        A2ML Document
        -$endif$ -$endif$ -$if(title)$ -

        $title$

        -$endif$ -
        -$if(author)$ - Author: $author$ -$endif$ -$if(version)$ - Version: $version$ -$endif$ -$if(date)$ - Date: $date$ -$endif$ -
        -
        - -
        -$body$ -
        - -
        -

        - Generated from A2ML source by - Pandoc + - a2ml.lua -$if(date)$ - — $date$ -$endif$ -

        -
        - -$for(include-after)$ - $include-after$ -$endfor$ - - diff --git a/a2ml/pandoc/a2ml.lua b/a2ml/pandoc/a2ml.lua deleted file mode 100644 index 283b71d15..000000000 --- a/a2ml/pandoc/a2ml.lua +++ /dev/null @@ -1,360 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- --- a2ml.lua — Pandoc custom reader for A2ML (Attested Markup Language). --- --- Converts A2ML surface syntax into the Pandoc AST, preserving: --- - Headings (# through #####) --- - Directive blocks (@name(attrs): ... @end) as Divs with attributes --- - Inline formatting (**bold**, *italic*, [link](url), @ref(id)) --- - Bullet lists (- or *) --- - Fenced code blocks (```) --- - Opaque payloads (byte-preserved) --- - Paragraphs (blank-line separated) --- --- Usage: --- pandoc -f a2ml.lua input.a2ml -o output.html --- pandoc -f a2ml.lua input.a2ml -t markdown --- pandoc -f a2ml.lua input.a2ml -t json --- --- Spec: /standards/a2ml/SPEC-v1.0.adoc --- Test vectors: /standards/a2ml/tests/vectors/ - --- Declare this as a custom reader for Pandoc. --- The Reader function receives the input string and returns a Pandoc document. - -local PANDOC_VERSION = PANDOC_VERSION or pandoc.types and {0,0,0} - ---- Parse A2ML inline formatting within a text string. ---- Handles: **bold**, *italic*, [link](url), @ref(id), escape sequences. ---- Returns a pandoc.Inlines list. -local function parse_inline(text) - local inlines = pandoc.Inlines{} - local pos = 1 - local len = #text - - while pos <= len do - -- Escape sequence: \x produces literal x - if text:sub(pos, pos) == "\\" and pos < len then - inlines:insert(pandoc.Str(text:sub(pos + 1, pos + 1))) - pos = pos + 2 - - -- Strong (bold): **...** - elseif text:sub(pos, pos + 1) == "**" then - local close = text:find("%*%*", pos + 2, false) - if close then - local content = text:sub(pos + 2, close - 1) - inlines:insert(pandoc.Strong(pandoc.Inlines{pandoc.Str(content)})) - pos = close + 2 - else - inlines:insert(pandoc.Str("**")) - pos = pos + 2 - end - - -- Emphasis (italic): *...* - elseif text:sub(pos, pos) == "*" and text:sub(pos + 1, pos + 1) ~= "*" then - local close = text:find("%*", pos + 1, false) - if close and text:sub(close - 1, close - 1) ~= "*" then - local content = text:sub(pos + 1, close - 1) - inlines:insert(pandoc.Emph(pandoc.Inlines{pandoc.Str(content)})) - pos = close + 1 - else - inlines:insert(pandoc.Str("*")) - pos = pos + 1 - end - - -- Link: [label](url) - elseif text:sub(pos, pos) == "[" then - local label_end = text:find("]", pos + 1, true) - if label_end and text:sub(label_end + 1, label_end + 1) == "(" then - local url_end = text:find(")", label_end + 2, true) - if url_end then - local label = text:sub(pos + 1, label_end - 1) - local url = text:sub(label_end + 2, url_end - 1) - inlines:insert(pandoc.Link(pandoc.Inlines{pandoc.Str(label)}, url)) - pos = url_end + 1 - else - inlines:insert(pandoc.Str("[")) - pos = pos + 1 - end - else - inlines:insert(pandoc.Str("[")) - pos = pos + 1 - end - - -- Reference: @ref(identifier) - elseif text:sub(pos, pos + 4) == "@ref(" then - local ref_end = text:find(")", pos + 5, true) - if ref_end then - local ref_id = text:sub(pos + 5, ref_end - 1) - -- Render as a Pandoc Link targeting #id (internal ref) - inlines:insert(pandoc.Link( - pandoc.Inlines{pandoc.Str(ref_id)}, - "#" .. ref_id, - "", - pandoc.Attr("", {"a2ml-ref"}, {}) - )) - pos = ref_end + 1 - else - inlines:insert(pandoc.Str("@ref(")) - pos = pos + 5 - end - - -- Plain text: accumulate until next special character - else - local next_special = text:find("[%*%[\\@]", pos) - if next_special then - if next_special > pos then - inlines:insert(pandoc.Str(text:sub(pos, next_special - 1))) - end - pos = next_special - -- If we matched @ but it's not @ref(, consume the @ as text - if text:sub(pos, pos) == "@" and text:sub(pos, pos + 4) ~= "@ref(" then - inlines:insert(pandoc.Str("@")) - pos = pos + 1 - end - else - inlines:insert(pandoc.Str(text:sub(pos))) - pos = len + 1 - end - end - end - - return inlines -end - ---- Parse a directive's attribute string, e.g. "id=fig:one,ref=sec:intro". ---- Returns a table of key-value pairs. -local function parse_directive_attrs(attr_str) - local attrs = {} - if not attr_str or attr_str == "" then - return attrs - end - - for pair in attr_str:gmatch("[^,]+") do - pair = pair:match("^%s*(.-)%s*$") -- trim whitespace - local key, value = pair:match("^(%S+)%s*=%s*(.+)$") - if key and value then - -- Strip quotes from value if present - value = value:match('^"(.*)"$') or value:match("^'(.*)'$") or value - attrs[key] = value - end - end - - return attrs -end - ---- Build a Pandoc Attr from directive attributes. ---- Uses 'id' as the element ID, directive name as class, ---- and remaining attrs as key-value pairs. -local function build_attr(directive_name, attrs) - local id = attrs["id"] or "" - local classes = {"a2ml-" .. directive_name} - local kv_pairs = {} - - -- Add data-a2ml attribute for HTML compatibility with test vectors - table.insert(kv_pairs, {"data-a2ml", directive_name}) - - for key, value in pairs(attrs) do - if key ~= "id" then - table.insert(kv_pairs, {key, value}) - end - end - - return pandoc.Attr(id, classes, kv_pairs) -end - ---- Main reader function. Pandoc calls this with the raw input. ---- Returns a pandoc.Pandoc document. -function Reader(input, opts) - local raw = tostring(input) - local lines = {} - for line in raw:gmatch("([^\n]*)\n?") do - table.insert(lines, line) - end - -- Remove trailing empty string from final newline split - if #lines > 0 and lines[#lines] == "" then - table.remove(lines) - end - - local blocks = pandoc.Blocks{} - local i = 1 - local total = #lines - - --- Collect paragraph lines (non-blank, non-special) into a Para block. - local function collect_paragraph() - local para_lines = {} - while i <= total do - local line = lines[i] - -- Stop on blank lines, headings, directives, lists, code fences - if line:match("^%s*$") or - line:match("^#+%s") or - line:match("^@%w") or - line:match("^```") or - line:match("^%s*[%-*]%s") then - break - end - table.insert(para_lines, line) - i = i + 1 - end - if #para_lines > 0 then - local text = table.concat(para_lines, " ") - blocks:insert(pandoc.Para(parse_inline(text))) - end - end - - while i <= total do - local line = lines[i] - - -- Blank line: skip - if line:match("^%s*$") then - i = i + 1 - - -- Heading: # through ##### - elseif line:match("^(#+)%s+(.+)$") then - local hashes, title = line:match("^(#+)%s+(.+)$") - local level = math.min(#hashes, 5) - -- Generate an ID from the title (lowercase, hyphens for spaces) - local heading_id = title:lower():gsub("[^%w%s%-]", ""):gsub("%s+", "-") - blocks:insert(pandoc.Header(level, parse_inline(title), pandoc.Attr(heading_id))) - i = i + 1 - - -- Fenced code block: ```lang ... ``` - elseif line:match("^```") then - local lang = line:match("^```(%S*)") - if lang == "" then lang = nil end - i = i + 1 - local code_lines = {} - while i <= total and not lines[i]:match("^```%s*$") do - table.insert(code_lines, lines[i]) - i = i + 1 - end - if i <= total then i = i + 1 end -- skip closing ``` - local code_text = table.concat(code_lines, "\n") - local attr = pandoc.Attr("", lang and {lang} or {}, {}) - blocks:insert(pandoc.CodeBlock(code_text, attr)) - - -- Directive block: @name(attrs): ... @end - elseif line:match("^@(%w[%w_%-]*)") then - local directive_name = line:match("^@(%w[%w_%-]*)") - local attr_str = line:match("^@%w[%w_%-]*%((.-)%)") - local attrs = parse_directive_attrs(attr_str) - - i = i + 1 - - -- Special handling for @opaque: preserve bytes exactly - if directive_name == "opaque" then - local opaque_lines = {} - while i <= total and lines[i] ~= "@end" do - table.insert(opaque_lines, lines[i]) - i = i + 1 - end - if i <= total then i = i + 1 end -- skip @end - local opaque_text = table.concat(opaque_lines, "\n") - local lang = attrs["lang"] - - -- Render opaque as a CodeBlock (preserves content exactly) - local code_attr = build_attr(directive_name, attrs) - if lang then - table.insert(code_attr.classes, lang) - end - blocks:insert(pandoc.CodeBlock(opaque_text, code_attr)) - - else - -- General directive: parse body as nested blocks - local body_lines = {} - while i <= total and lines[i] ~= "@end" do - table.insert(body_lines, lines[i]) - i = i + 1 - end - if i <= total then i = i + 1 end -- skip @end - - -- Parse the body content into inline elements - local body_text = table.concat(body_lines, "\n"):match("^%s*(.-)%s*$") - local body_blocks = pandoc.Blocks{} - - if body_text and body_text ~= "" then - -- Check if body contains list items - local has_list = false - for _, bl in ipairs(body_lines) do - if bl:match("^%s*[%-*]%s") then - has_list = true - break - end - end - - if has_list then - local items = {} - for _, bl in ipairs(body_lines) do - local item_text = bl:match("^%s*[%-*]%s+(.+)$") - if item_text then - table.insert(items, pandoc.Blocks{pandoc.Plain(parse_inline(item_text))}) - elseif bl:match("^%s*$") then - -- skip blank lines in list - else - -- Non-list line inside directive body - table.insert(items, pandoc.Blocks{pandoc.Plain(parse_inline(bl))}) - end - end - if #items > 0 then - body_blocks:insert(pandoc.BulletList(items)) - end - else - -- Treat as paragraph(s) - local para_chunks = {} - local current_chunk = {} - for _, bl in ipairs(body_lines) do - if bl:match("^%s*$") then - if #current_chunk > 0 then - table.insert(para_chunks, table.concat(current_chunk, " ")) - current_chunk = {} - end - else - table.insert(current_chunk, bl) - end - end - if #current_chunk > 0 then - table.insert(para_chunks, table.concat(current_chunk, " ")) - end - for _, chunk in ipairs(para_chunks) do - body_blocks:insert(pandoc.Para(parse_inline(chunk))) - end - end - end - - -- Wrap body in a Div with directive attributes - local div_attr = build_attr(directive_name, attrs) - blocks:insert(pandoc.Div(body_blocks, div_attr)) - end - - -- Bullet list: - item or * item - elseif line:match("^%s*[%-*]%s+") then - local items = {} - while i <= total and lines[i]:match("^%s*[%-*]%s+") do - local item_text = lines[i]:match("^%s*[%-*]%s+(.+)$") - if item_text then - table.insert(items, pandoc.Blocks{pandoc.Plain(parse_inline(item_text))}) - end - i = i + 1 - end - if #items > 0 then - blocks:insert(pandoc.BulletList(items)) - end - - -- Paragraph (default: accumulate non-special lines) - else - collect_paragraph() - end - end - - -- Build document metadata - local meta = {} - meta["a2ml-format"] = pandoc.MetaString("1.0.0") - - return pandoc.Pandoc(blocks, pandoc.Meta(meta)) -end - ---- Extensions table (required by Pandoc custom reader protocol). -Extensions = { - -- A2ML supports these structural elements - smart = true, -} diff --git a/a2ml/pandoc/container/.gatekeeper.yaml b/a2ml/pandoc/container/.gatekeeper.yaml deleted file mode 120000 index 87731df30..000000000 --- a/a2ml/pandoc/container/.gatekeeper.yaml +++ /dev/null @@ -1 +0,0 @@ -../../../../_shared/container/.gatekeeper.yaml \ No newline at end of file diff --git a/a2ml/pandoc/container/0.1-AI-MANIFEST.a2ml b/a2ml/pandoc/container/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index ccb5bc51d..000000000 --- a/a2ml/pandoc/container/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1,143 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "container-templates" -version: "1.0.0" -context: - - "https://a2ml.org/ns/v2" - - "https://stapeln.dev/ns/v1" - ---- -### [AI_MANIFEST] -description: | - Container templates for the stapeln container ecosystem. This directory - provides Podman-Chainguard-stapeln templates that are customised via - `just container-init` or `just init` during project bootstrap. - - All files use {{PLACEHOLDER}} tokens that are substituted with project- - specific values during initialisation. - -purpose: | - Provide a complete, security-first container deployment story for any - RSR-compliant repository. The templates cover the full lifecycle: - build, sign, verify, deploy, monitor, and govern. - -canonical_locations: - compose: "container/compose.toml" - containerfile: "container/Containerfile" - manifest: "container/manifest.toml" - gatekeeper: "container/.gatekeeper.yaml" - build_pipeline: "container/ct-build.sh" - entrypoint: "container/entrypoint.sh" - monitoring: "container/vordr.toml" - deployment: "container/deploy.k9.ncl" - example: "container/compose.example.toml" - ---- -### [FILE_RELATIONSHIPS] -files: - - name: "compose.toml" - role: "Orchestration" - description: | - selur-compose stack definition. Declares services, volumes, networks, - and health checks. References the Containerfile for image builds and - .gatekeeper.yaml for svalinn policy. - depends_on: ["Containerfile", ".gatekeeper.yaml"] - - - name: "Containerfile" - role: "Image Build" - description: | - Multi-stage OCI container build. Stage 1 compiles the application on - wolfi-base; Stage 2 copies the binary into a minimal runtime image. - Copies entrypoint.sh, .gatekeeper.yaml, and manifest.toml into the - final image. - depends_on: ["entrypoint.sh", ".gatekeeper.yaml", "manifest.toml"] - - - name: "manifest.toml" - role: "Bundle Metadata" - description: | - Cerro-torre .ctp bundle manifest. Describes provenance, dependencies, - attestations, and runtime security profile. Used by `ct pack` and - `ct verify`. - depends_on: [] - - - name: ".gatekeeper.yaml" - role: "Gateway Policy" - description: | - Svalinn edge gateway policy. Controls authentication, rate limiting, - container trust, request validation, CORS, and audit logging. - depends_on: [] - - - name: "ct-build.sh" - role: "Build Pipeline" - description: | - Shell script implementing the 5-stage pipeline: build (Podman), - pack (cerro-torre .ctp), sign (Ed25519), verify, push (optional). - Degrades gracefully when cerro-torre tools are not installed. - depends_on: ["Containerfile", "manifest.toml"] - - - name: "entrypoint.sh" - role: "Container Entrypoint" - description: | - Startup script with signal handling (SIGTERM, SIGINT), logging, and - exec into the main application process. - depends_on: [] - - - name: "vordr.toml" - role: "Runtime Monitoring" - description: | - Vordr monitoring configuration. Health endpoint probing, crash - detection, resource thresholds, and structured log output. - depends_on: [] - - - name: "deploy.k9.ncl" - role: "Deployment Component" - description: | - k9-svc deployment specification at Hunt trust level. Full pedigree - (L1-L5), environment configs, container config, and rolling - deployment strategy. - depends_on: ["compose.toml", "ct-build.sh"] - - - name: "compose.example.toml" - role: "Example" - description: | - Fully-commented multi-service example (Rust API + Elixir worker + - svalinn gateway). Copy to compose.toml and customise. - depends_on: [] - ---- -### [STAPELN_ECOSYSTEM] -overview: | - The stapeln container ecosystem comprises six tools: - - selur — Container orchestration with zero-copy IPC. Reads compose.toml. - cerro-torre — Verified container packaging (.ctp bundles), Ed25519 signing. - svalinn — Policy-driven edge gateway (auth, rate limits, CORS, trust). - vordr — Runtime monitoring (health, crashes, resources, logs). - rokur — Secrets management (runtime injection, no baked secrets). - k9-svc — Nickel deployment components (Kennel/Yard/Hunt trust levels). - -invariants: - - "Base images MUST be cgr.dev/chainguard/wolfi-base or cgr.dev/chainguard/static" - - "Container runtime is Podman — never Docker" - - "Containerfile — never Dockerfile" - - "All images run as non-root (appuser or project-specific user)" - - ".ctp bundles are signed with Ed25519 via cerro-torre" - - "Health endpoints (/health, /ready) must always be public (no auth)" - ---- -### [USAGE] -initialisation: | - Run `just container-init` to substitute all {{PLACEHOLDER}} tokens with - project-specific values. This is also run as part of `just init`. - -development: | - 1. `just container-build` — Build the container image - 2. `just container-verify` — Verify compose configuration - 3. `just container-up` — Start the stack locally - 4. `just container-down` — Stop the stack - -production: | - 1. `just container-sign` — Build, sign, verify .ctp bundle - 2. `just container-push` — Push signed bundle to registry - 3. `selur-compose up` — Deploy on target host diff --git a/a2ml/pandoc/container/Containerfile b/a2ml/pandoc/container/Containerfile deleted file mode 100644 index ba85260a6..000000000 --- a/a2ml/pandoc/container/Containerfile +++ /dev/null @@ -1,136 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# {{PROJECT_NAME}} Container Image -# -# Multi-stage build template for Chainguard Wolfi base images. -# Customise the builder stage for your language and copy the -# resulting binary/release into the minimal runtime stage. -# -# Build with Podman: -# podman build -t {{SERVICE_NAME}}:latest -f container/Containerfile . -# -# Run: -# podman run -p {{PORT}}:{{PORT}} {{SERVICE_NAME}}:latest -# -# Run with persistent volume: -# podman run -p {{PORT}}:{{PORT}} -v {{SERVICE_NAME}}-data:/data {{SERVICE_NAME}}:latest - -# ============================================================================ -# Stage 1: Builder -# ============================================================================ -# -# Install build tools and compile the application. -# This stage is discarded after the build — only the compiled output -# is copied into the runtime stage. -# -# Language-specific examples (uncomment the one you need): -# -# --- Rust --- -# RUN apk add --no-cache rust pkgconf build-base -# COPY Cargo.toml Cargo.lock ./ -# COPY src/ ./src/ -# RUN cargo build --release -# # Output: /build/target/release/{{SERVICE_NAME}} -# -# --- Elixir --- -# RUN apk add --no-cache erl27-elixir-1.18 erlang-27 erlang-27-dev git build-base -# COPY mix.exs mix.lock ./ -# COPY lib/ ./lib/ -# COPY config/ ./config/ -# ENV MIX_ENV=prod -# RUN mix local.hex --force && mix local.rebar --force && \ -# mix deps.get --only prod && mix compile && mix release -# # Output: /build/_build/prod/rel/{{SERVICE_NAME}}/ -# -# --- Zig --- -# RUN apk add --no-cache zig build-base -# COPY build.zig build.zig.zon ./ -# COPY src/ ./src/ -# RUN zig build -Doptimize=ReleaseFast -# # Output: /build/zig-out/bin/{{SERVICE_NAME}} -# -FROM cgr.dev/chainguard/wolfi-base:latest AS builder - -# TODO: Install your language toolchain -RUN apk add --no-cache build-base - -WORKDIR /build - -# TODO: Copy source files and build -COPY . . -# RUN - -# ============================================================================ -# Stage 2: Runtime -# ============================================================================ -# -# Minimal production image. Only the compiled binary/release and runtime -# dependencies are included. No compilers, no source code, no build tools. -# -FROM cgr.dev/chainguard/wolfi-base:latest - -# OCI image labels (compatible with cerro-torre .ctp bundle metadata) -LABEL org.opencontainers.image.title="{{PROJECT_NAME}}" \ - org.opencontainers.image.description="{{PROJECT_DESCRIPTION}}" \ - org.opencontainers.image.url="https://{{FORGE}}/{{OWNER}}/{{REPO}}" \ - org.opencontainers.image.source="https://{{FORGE}}/{{OWNER}}/{{REPO}}" \ - org.opencontainers.image.vendor="{{OWNER}}" \ - org.opencontainers.image.licenses="{{LICENSE}}" \ - org.opencontainers.image.authors="{{AUTHOR}} <{{AUTHOR_EMAIL}}>" \ - dev.cerrotorre.manifest="container/manifest.toml" \ - dev.cerrotorre.gatekeeper="container/.gatekeeper.yaml" \ - dev.stapeln.compose="container/compose.toml" - -# Install minimal runtime dependencies. -# Adjust this list for your application: -# - ca-certificates: TLS root certificates -# - curl: health check probe -# - libstdc++: C++ standard library (if needed by native deps) -# - ncurses: terminal UI (if needed, e.g. Elixir IEx) -RUN apk add --no-cache ca-certificates curl - -# Create non-root user for the application. -# Running as root inside containers is a security anti-pattern. -RUN addgroup -S appuser && adduser -S appuser -G appuser - -WORKDIR /app - -# TODO: Copy compiled binary/release from builder stage. -# Examples: -# COPY --from=builder /build/target/release/{{SERVICE_NAME}} /app/{{SERVICE_NAME}} -# COPY --from=builder /build/_build/prod/rel/{{SERVICE_NAME}} /app/release/ -# COPY --from=builder /build/zig-out/bin/{{SERVICE_NAME}} /app/{{SERVICE_NAME}} - -# Copy entrypoint script -COPY container/entrypoint.sh /app/entrypoint.sh -RUN chmod +x /app/entrypoint.sh - -# Copy stapeln integration files (svalinn gatekeeper policy, cerro-torre manifest) -COPY container/.gatekeeper.yaml /etc/svalinn/gatekeeper.yaml -COPY container/manifest.toml /app/manifest.toml - -# Create data directory for persistent storage (mountable volume) -RUN mkdir -p /data && chown appuser:appuser /data - -# Set ownership of the application directory -RUN chown -R appuser:appuser /app - -# Environment variables — customise for your application -ENV APP_HOST=[::] -ENV APP_PORT={{PORT}} -ENV APP_LOG_FORMAT=json -ENV APP_DATA_DIR=/data - -# Declare /data as a volume for persistent storage -VOLUME ["/data"] - -# Run as non-root -USER appuser - -# Expose the application port -EXPOSE {{PORT}} - -# Health check — the application must respond 2xx at /health -HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \ - CMD curl -sf http://localhost:${APP_PORT}/health || exit 1 - -ENTRYPOINT ["/app/entrypoint.sh"] diff --git a/a2ml/pandoc/container/README.adoc b/a2ml/pandoc/container/README.adoc deleted file mode 100644 index 9f7f7f05d..000000000 --- a/a2ml/pandoc/container/README.adoc +++ /dev/null @@ -1,179 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -// Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -= {{PROJECT_NAME}} Container Templates -:toc: left -:toclevels: 3 -:sectnums: - -== Overview - -This directory contains container templates for the -https://github.com/hyperpolymath/stapeln[stapeln] container ecosystem. -The stapeln stack provides verified container packaging, edge gateway -policies, runtime monitoring, and supply-chain signing for Podman-based -deployments using https://www.chainguard.dev/[Chainguard] Wolfi base images. - -All files use `{{PLACEHOLDER}}` tokens that are replaced by `just container-init` -(or by the top-level `just init` during project bootstrap). - -== File Reference - -[cols="1,3"] -|=== -| File | Purpose - -| `compose.toml` -| **selur-compose** stack definition. Declares services, volumes, networks, - and health checks. The primary orchestration file for local and production - deployment. Use `selur-compose up` or fall back to `podman compose`. - -| `compose.example.toml` -| Concrete multi-service example with detailed comments. Copy and customise - for your own stack. Not used directly by any tooling. - -| `Containerfile` -| Multi-stage OCI container build specification. Stage 1 builds the - application; Stage 2 produces a minimal runtime image on - `cgr.dev/chainguard/wolfi-base`. Uses Podman (never Docker). - -| `manifest.toml` -| **cerro-torre** bundle metadata. Describes the `.ctp` verified container - package: provenance, dependencies, attestations, and runtime security - profile. Used by `ct pack` and `ct verify`. - -| `.gatekeeper.yaml` -| **svalinn** edge gateway policy. Controls authentication, rate limiting, - container trust, request validation, CORS, and audit logging at the - network boundary. - -| `ct-build.sh` -| Build, sign, and verify pipeline script. Five stages: build (Podman), - pack (cerro-torre `.ctp`), sign (Ed25519), verify, and push (optional). - Gracefully degrades when cerro-torre tools are not installed. - -| `entrypoint.sh` -| Container entrypoint with signal handling (SIGTERM, SIGINT), startup - logging, and `exec` into the main application process. - -| `vordr.toml` -| **vordr** runtime monitoring configuration. Defines health endpoints, - crash detection, resource thresholds, and log output. - -| `deploy.k9.ncl` -| **k9-svc** deployment component at Hunt trust level. Full pedigree - (L1--L5), environment configs (dev/staging/prod), container - configuration, and rolling deployment strategy. - -| `0-AI-MANIFEST.a2ml` -| AI-readable manifest describing the container directory, file - interconnections, and the stapeln ecosystem. -|=== - -== The stapeln Ecosystem - -The stapeln container ecosystem comprises six interconnected tools: - -**selur** (compose):: - Container orchestration with zero-copy IPC for co-located services. - Reads `compose.toml` files. Falls back to standard Podman Compose - when the selur driver is unavailable. - -**cerro-torre** (bundles and signing):: - Verified container packaging. Produces `.ctp` bundles from OCI images, - signs them with Ed25519, and verifies the full chain. Tools: `ct pack`, - `ct sign`, `ct verify`, `ct push`, `ct explain`. - -**svalinn** (edge gateway):: - Policy-driven reverse proxy. Enforces authentication, rate limiting, - CORS, and container trust policies defined in `.gatekeeper.yaml`. - -**vordr** (monitoring):: - Runtime container monitoring. Watches health endpoints, detects crashes, - tracks resource usage, and emits structured logs. - -**rokur** (secrets):: - Secrets management for container deployments. Injects secrets at runtime - without baking them into images. Currently a stub/placeholder. - -**k9-svc** (deployment components):: - Nickel-based deployment specification. Components declare their pedigree - (identity, target, security, validation, recipes) and execute at one of - three trust levels: Kennel (data only), Yard (evaluation), Hunt (full - execution with cryptographic handshake). - -== How to Initialise - -[source,bash] ----- -# Option 1: During project bootstrap (includes all placeholders) -just init - -# Option 2: Container-specific initialisation -just container-init ----- - -The `container-init` recipe prompts for container-specific values -(service name, port, registry) and substitutes all `{{PLACEHOLDER}}` -tokens in the `container/` directory. - -== Development Workflow - -[source,bash] ----- -# 1. Build the container image -just container-build - -# 2. Verify the compose configuration -just container-verify - -# 3. Start the stack locally -just container-up --detach - -# 4. Check logs -podman compose --file container/compose.toml logs -f - -# 5. Stop the stack -just container-down ----- - -== Production Deployment - -[source,bash] ----- -# 1. Build, sign, and verify the .ctp bundle -just container-sign - -# 2. Push the signed bundle to the registry -just container-push - -# 3. Deploy on the target host -selur-compose up --detach ----- - -For k9-svc managed deployments: - -[source,bash] ----- -# Validate the deployment component -nickel typecheck container/deploy.k9.ncl - -# Deploy (requires Hunt-level authorisation) -k9-svc deploy container/deploy.k9.ncl --env production ----- - -== Base Images - -All Containerfiles use Chainguard Wolfi base images: - -* **Builder stage:** `cgr.dev/chainguard/wolfi-base:latest` -* **Runtime stage:** `cgr.dev/chainguard/wolfi-base:latest` (or - `cgr.dev/chainguard/static:latest` for statically-linked binaries) - -Chainguard images are minimal, CVE-free, and rebuilt daily. They use the -`apk` package manager (Alpine-compatible). - -== Container Runtime - -This project uses **Podman** (never Docker). All scripts, compose files, -and documentation reference Podman commands. The OCI Containerfile format -is compatible with Podman, Docker, and nerdctl. diff --git a/a2ml/pandoc/container/compose.example.toml b/a2ml/pandoc/container/compose.example.toml deleted file mode 100644 index d8d717c4f..000000000 --- a/a2ml/pandoc/container/compose.example.toml +++ /dev/null @@ -1,135 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# -# Example selur-compose configuration — multi-service stack -# -# This is a concrete, fully-commented example showing a Rust API + Elixir -# worker + svalinn gateway deployment. Copy this file to compose.toml and -# customise for your project. -# -# Usage: -# cp compose.example.toml compose.toml -# # Edit service names, ports, images -# selur-compose up --detach - -version = "1.0" - -# ============================================================================ -# Services -# ============================================================================ - -# Rust API service — the primary HTTP/gRPC backend. -# Handles incoming requests, data storage, and core business logic. -[services.rust-api] -image = "ghcr.io/hyperpolymath/myproject-api:latest.ctp" - -# Map host port 8080 to container port 8080. -# Use ["[::]:8080:8080"] for explicit IPv6 binding. -ports = ["8080:8080"] - -# Environment variables passed into the container at startup. -# These override defaults in the Containerfile ENV directives. -environment = { - RUST_LOG = "info", # Rust log level (trace, debug, info, warn, error) - APP_HOST = "[::]", # Listen on all interfaces (IPv4 + IPv6) - APP_PORT = "8080", # Internal container port - APP_LOG_FORMAT = "json", # Structured logging for selur/vordr - APP_DATA_DIR = "/data", # Persistent data directory (matches VOLUME) -} - -# Bind-mount a named volume for persistent data. -# Format: "volume-name:/container/path" -volumes = ["api-data:/data"] - -# Restart policy: "always" ensures the service comes back after crashes. -# Other options: "no", "on-failure", "unless-stopped" -restart = "always" - -# Health check: selur/Podman uses this to determine if the service is ready. -# The service must respond 2xx to this endpoint within the timeout. -healthcheck = { test = "curl -sf http://localhost:8080/health", interval = "30s", timeout = "5s", retries = 3 } - -# --- - -# Elixir worker service — background processing, event handling, coordination. -# Runs as an OTP release with supervision trees for fault tolerance. -[services.elixir-worker] -image = "ghcr.io/hyperpolymath/myproject-worker:latest.ctp" - -# Separate port for the worker's admin/metrics endpoint. -ports = ["4000:4000"] - -# The worker connects to the Rust API over the internal selur network. -# Service names resolve as hostnames within the compose network. -environment = { - API_URL = "http://rust-api:8080/api/v1", # Internal service discovery - MIX_ENV = "prod", # Elixir release mode - APP_LOG_FORMAT = "json", # Match structured logging format - POOL_SIZE = "10", # DB connection pool size -} - -# depends_on ensures the Rust API starts before the worker. -# Note: This only waits for the container to start, not for the health check. -# Use healthcheck + startup probes for true readiness gating. -depends_on = ["rust-api"] - -restart = "always" -healthcheck = { test = "curl -sf http://localhost:4000/health", interval = "30s", timeout = "5s", retries = 3 } - -# --- - -# Svalinn edge gateway — reverse proxy with policy enforcement. -# All external traffic enters through svalinn, which: -# 1. Terminates TLS (auto-provisioned certificates) -# 2. Validates JWT/OAuth2 authentication -# 3. Enforces rate limits from .gatekeeper.yaml -# 4. Routes requests to the appropriate backend service -# 5. Logs all write operations for audit -[services.svalinn] -image = "ghcr.io/hyperpolymath/svalinn:latest.ctp" - -# External-facing ports: HTTPS (443) and HTTP->HTTPS redirect (80). -ports = ["443:443", "80:80"] - -environment = { - # Backend routing: svalinn proxies to internal services. - SVALINN_BACKEND = "http://rust-api:8080", - SVALINN_WORKER_BACKEND = "http://elixir-worker:4000", - - # Policy file: mounted from the svalinn-config volume. - SVALINN_POLICY_FILE = "/etc/svalinn/gatekeeper.yaml", - - # Auto-provision TLS certificates (Let's Encrypt). - SVALINN_TLS_AUTO = "true", -} - -# Mount .gatekeeper.yaml as read-only policy configuration. -volumes = ["svalinn-config:/etc/svalinn:ro"] - -# Svalinn starts last — it needs both backends to be running. -depends_on = ["rust-api", "elixir-worker"] -restart = "always" -healthcheck = { test = "curl -sf http://localhost:80/health", interval = "30s", timeout = "5s", retries = 3 } - -# ============================================================================ -# Volumes -# ============================================================================ - -# Persistent storage for the Rust API (database files, indexes, WAL). -[volumes.api-data] -driver = "local" - -# Read-only policy configuration for svalinn gateway. -# Populate with: cp .gatekeeper.yaml /path/to/svalinn-config/gatekeeper.yaml -[volumes.svalinn-config] -driver = "local" - -# ============================================================================ -# Networks -# ============================================================================ - -# selur network: zero-copy IPC between services on the same host. -# When the selur driver is not installed, falls back to standard bridge -# networking (TCP over localhost). Performance is slightly lower but -# functionality is identical. -[networks.default] -driver = "selur" diff --git a/a2ml/pandoc/container/compose.toml b/a2ml/pandoc/container/compose.toml deleted file mode 100644 index a14f8a005..000000000 --- a/a2ml/pandoc/container/compose.toml +++ /dev/null @@ -1,70 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# -# {{PROJECT_NAME}} selur-compose configuration -# -# Orchestrates the container stack as verified container bundles (.ctp). -# Uses selur zero-copy IPC between services on the same host. -# -# Usage: -# selur-compose up # Start all services -# selur-compose up --detach # Start in background -# selur-compose verify # Verify all .ctp signatures -# selur-compose ps # Check status -# selur-compose logs -f {{SERVICE_NAME}} # Stream logs -# selur-compose down # Stop all services -# -# Fallback (when selur is not installed): -# podman compose --file compose.toml up --detach - -version = "1.0" - -# ============================================================================ -# Services -# ============================================================================ - -# Primary application service -[services.{{SERVICE_NAME}}] -image = "{{REGISTRY}}/{{SERVICE_NAME}}:latest.ctp" -ports = ["{{PORT}}:{{PORT}}"] -environment = { - APP_HOST = "[::]", - APP_PORT = "{{PORT}}", - APP_LOG_FORMAT = "json", - APP_DATA_DIR = "/data", -} -volumes = ["{{SERVICE_NAME}}-data:/data"] -restart = "always" -healthcheck = { test = "curl -sf http://localhost:{{PORT}}/health", interval = "30s", timeout = "5s", retries = 3 } - -# Svalinn edge gateway: validates requests, enforces policies, TLS termination -[services.svalinn] -image = "ghcr.io/hyperpolymath/svalinn:latest.ctp" -ports = ["443:443", "80:80"] -environment = { - SVALINN_BACKEND = "http://{{SERVICE_NAME}}:{{PORT}}", - SVALINN_POLICY_FILE = "/etc/svalinn/gatekeeper.yaml", - SVALINN_TLS_AUTO = "true", -} -volumes = ["svalinn-config:/etc/svalinn:ro"] -depends_on = ["{{SERVICE_NAME}}"] -restart = "always" -healthcheck = { test = "curl -sf http://localhost:80/health", interval = "30s", timeout = "5s", retries = 3 } - -# ============================================================================ -# Volumes -# ============================================================================ - -[volumes.{{SERVICE_NAME}}-data] -driver = "local" - -[volumes.svalinn-config] -driver = "local" - -# ============================================================================ -# Networks -# ============================================================================ - -# Use selur zero-copy IPC for inter-service communication on the same host. -# Falls back to standard bridge networking when selur driver is unavailable. -[networks.default] -driver = "selur" diff --git a/a2ml/pandoc/container/ct-build.sh b/a2ml/pandoc/container/ct-build.sh deleted file mode 100755 index a54a5418a..000000000 --- a/a2ml/pandoc/container/ct-build.sh +++ /dev/null @@ -1,162 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: MPL-2.0 -# -# {{PROJECT_NAME}} — Cerro Torre build, sign, and verify pipeline -# -# Builds the container image, packages it as a verified .ctp bundle, -# signs it with Ed25519, and verifies the result. Gracefully degrades -# when cerro-torre tools are not installed. -# -# Prerequisites: -# - podman (container build — required) -# - ct (cerro-torre CLI: pack, sign, verify — optional) -# - cerro-sign (Ed25519 signing — optional, ct sign used as fallback) -# -# Usage: -# ./ct-build.sh # Build + sign (local only) -# ./ct-build.sh --push # Build + sign + push to registry -# CT_KEY_ID=my-key ./ct-build.sh # Use specific signing key -# -# Environment variables: -# CT_KEY_ID — Signing key identifier (default: {{SERVICE_NAME}}-release) -# CT_REGISTRY — OCI registry to push to (default: {{REGISTRY}}) -# CT_TAG — Image tag (default: latest) - -set -euo pipefail - -# --------------------------------------------------------------------------- -# Configuration -# --------------------------------------------------------------------------- - -SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" -REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" - -PUSH="" -for arg in "$@"; do - if [ "$arg" = "--push" ]; then - PUSH="--push" - fi -done - -CT_KEY_ID="${CT_KEY_ID:-{{SERVICE_NAME}}-release}" -CT_REGISTRY="${CT_REGISTRY:-{{REGISTRY}}}" -CT_TAG="${CT_TAG:-latest}" - -IMAGE_NAME="{{SERVICE_NAME}}" -FULL_IMAGE="${CT_REGISTRY}/${IMAGE_NAME}:${CT_TAG}" -CTP_FILE="${SCRIPT_DIR}/${IMAGE_NAME}-${CT_TAG}.ctp" - -echo "=== {{PROJECT_NAME}} Cerro Torre Build Pipeline ===" -echo " Image: ${FULL_IMAGE}" -echo " Key: ${CT_KEY_ID}" -echo " Bundle: ${CTP_FILE}" -echo "" - -# --------------------------------------------------------------------------- -# Step 1: Build container image with Podman -# --------------------------------------------------------------------------- - -echo "--- Step 1: Building container image ---" - -podman build \ - -t "${FULL_IMAGE}" \ - -f "${SCRIPT_DIR}/Containerfile" \ - "${REPO_ROOT}" - -echo " Built: ${FULL_IMAGE}" -echo "" - -# --------------------------------------------------------------------------- -# Step 2: Pack into .ctp bundle -# --------------------------------------------------------------------------- - -echo "--- Step 2: Packing into .ctp bundle ---" - -if command -v ct &>/dev/null; then - ct pack "${FULL_IMAGE}" -o "${CTP_FILE}" - echo " Packed: ${CTP_FILE}" -else - echo " SKIP: ct not found (install cerro-torre CLI from stapeln/container-stack/cerro-torre)" - echo " The container image is built and tagged but not packed as a .ctp bundle." - echo " To pack manually: ct pack ${FULL_IMAGE} -o ${CTP_FILE}" - echo "" - if [ "$PUSH" = "--push" ]; then - echo "--- Pushing unsigned OCI image (no .ctp) ---" - podman push "${FULL_IMAGE}" - echo " Pushed: ${FULL_IMAGE} (unsigned OCI — not a .ctp bundle)" - fi - echo "" - echo "=== Build complete (without .ctp signing) ===" - exit 0 -fi - -echo "" - -# --------------------------------------------------------------------------- -# Step 3: Sign the .ctp bundle -# --------------------------------------------------------------------------- - -echo "--- Step 3: Signing .ctp bundle ---" - -if command -v cerro-sign &>/dev/null; then - cerro-sign sign "${CTP_FILE}" --key-id "${CT_KEY_ID}" - echo " Signed: ${CTP_FILE} (key: ${CT_KEY_ID})" -elif command -v ct &>/dev/null; then - ct sign "${CTP_FILE}" --key "${CT_KEY_ID}" - echo " Signed: ${CTP_FILE} (key: ${CT_KEY_ID})" -else - echo " SKIP: cerro-sign not found (install from stapeln/container-stack/cerro-torre)" -fi - -echo "" - -# --------------------------------------------------------------------------- -# Step 4: Verify the .ctp bundle -# --------------------------------------------------------------------------- - -echo "--- Step 4: Verifying .ctp bundle ---" - -if command -v ct &>/dev/null; then - ct verify "${CTP_FILE}" - echo " Verified: ${CTP_FILE}" -else - echo " SKIP: ct not found" -fi - -echo "" - -# --------------------------------------------------------------------------- -# Step 5: Push to registry (optional) -# --------------------------------------------------------------------------- - -if [ "$PUSH" = "--push" ]; then - echo "--- Step 5: Pushing to registry ---" - - if command -v ct &>/dev/null; then - ct push "${CTP_FILE}" "${FULL_IMAGE}" - echo " Pushed: ${FULL_IMAGE}" - else - # Fall back to podman push (unsigned OCI image) - echo " ct not available, falling back to podman push (unsigned)" - podman push "${FULL_IMAGE}" - echo " Pushed: ${FULL_IMAGE} (unsigned OCI — not a .ctp bundle)" - fi - echo "" -fi - -# --------------------------------------------------------------------------- -# Summary -# --------------------------------------------------------------------------- - -echo "=== Build pipeline complete ===" -echo " Image: ${FULL_IMAGE}" -echo " Bundle: ${CTP_FILE}" -echo "" -echo " To deploy with selur-compose:" -echo " cd container && selur-compose up" -echo "" -echo " To verify at any time:" -echo " ct verify ${CTP_FILE}" -echo "" -echo " To explain the verification chain:" -echo " ct explain ${CTP_FILE}" diff --git a/a2ml/pandoc/container/deploy.k9.ncl b/a2ml/pandoc/container/deploy.k9.ncl deleted file mode 100644 index 0ad0d04af..000000000 --- a/a2ml/pandoc/container/deploy.k9.ncl +++ /dev/null @@ -1,166 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# deploy.k9.ncl — {{PROJECT_NAME}} deployment component (Hunt level) -# -# k9-svc deployment specification with full pedigree (L1-L5). -# Security Level: 'Hunt (requires cryptographic handshake for execution). -# -# WARNING: This component can execute shell commands! -# It requires explicit authorisation via the Leash system. -# -# Usage: -# nickel typecheck container/deploy.k9.ncl -# k9-svc validate container/deploy.k9.ncl -# k9-svc deploy container/deploy.k9.ncl --env production - -# The component's pedigree (self-description across five layers) -let component_pedigree = { - # ───────────────────────────────────────────────────────────── - # L1: The Snout — Identity - # ───────────────────────────────────────────────────────────── - metadata = { - name = "{{SERVICE_NAME}}-deploy", - version = "{{VERSION}}", - breed = "application/vnd.k9+nickel", - magic_number = "K9!", - description = "{{PROJECT_NAME}} deployment component (Hunt level)", - }, - - # ───────────────────────────────────────────────────────────── - # L2: The Scent — Target Environment - # ───────────────────────────────────────────────────────────── - target = { - os = 'Linux, - is_edge = false, - requires_podman = true, - min_memory_mb = 256, - }, - - # ───────────────────────────────────────────────────────────── - # L3: The Leash — Security - # ───────────────────────────────────────────────────────────── - security = { - trust_level = 'Hunt, - allow_network = true, - allow_filesystem_write = true, - allow_subprocess = true, - # In production, replace with a real Ed25519 signature. - signature = "PLACEHOLDER-SIGNATURE-REQUIRED-FOR-HUNT", - }, - - # ───────────────────────────────────────────────────────────── - # L4: The Gut — Self-Validation - # ───────────────────────────────────────────────────────────── - validation = { - checksum = "sha256:placeholder", - pedigree_version = "1.0.0", - hunt_authorized = false, # Must be set true after handshake - }, - - # ───────────────────────────────────────────────────────────── - # L5: The Muscle — Deployment Recipes - # ───────────────────────────────────────────────────────────── - recipes = { - install = "just container-build", - validate = "just container-verify", - deploy = "just container-up", - migrate = "just container-build && just container-up", - }, -} in - -# Deployment configuration -let deployment = { - # Target environments (dev / staging / production) - environments = { - dev = { - replicas = 1, - memory = "256Mi", - cpu = "100m", - image_tag = "dev", - }, - staging = { - replicas = 2, - memory = "512Mi", - cpu = "250m", - image_tag = "staging", - }, - production = { - replicas = 3, - memory = "1Gi", - cpu = "500m", - image_tag = "latest", - }, - }, - - # Container configuration - container = { - image = "{{REGISTRY}}/{{SERVICE_NAME}}", - port = {{PORT}}, - health_check = "/health", - readiness_check = "/ready", - }, - - # Deployment strategy - strategy = { - type = "rolling", - max_surge = 1, - max_unavailable = 0, - }, -} in - -# Deployment scripts (executed at Hunt level) -let scripts = { - # Pre-deployment validation - pre_deploy = m%" -#!/bin/sh -set -eu -echo "K9: Pre-deployment validation for {{SERVICE_NAME}}..." -cd container && selur-compose verify || podman compose --file compose.toml config -echo "K9: Validation passed." -"%, - - # Deployment script - deploy = m%" -#!/bin/sh -set -eu -ENV="${1:-dev}" -echo "K9: Deploying {{SERVICE_NAME}} to $ENV environment..." -cd container -./ct-build.sh -selur-compose up --detach || podman compose --file compose.toml up --detach -echo "K9: Deployment to $ENV complete." -"%, - - # Rollback script - rollback = m%" -#!/bin/sh -set -eu -echo "K9: Rolling back {{SERVICE_NAME}} deployment..." -cd container -selur-compose down || podman compose --file compose.toml down -echo "K9: Rollback complete." -"%, -} in - -# Export the component -{ - pedigree = component_pedigree, - deployment = deployment, - scripts = scripts, - - # Security check: this component requires Hunt level - required_level = 'Hunt, - - # Warning for users - warning = m%" -WARNING: This is a Hunt-level component. - -It can execute shell commands and modify your system. -Before running, ensure you have: - -1. Reviewed the deployment scripts above -2. Verified the signature (when implemented) -3. Explicitly authorised Hunt-level execution - -Run with: k9-svc authorize container/deploy.k9.ncl && k9-svc deploy container/deploy.k9.ncl -"%, -} diff --git a/a2ml/pandoc/container/entrypoint.sh b/a2ml/pandoc/container/entrypoint.sh deleted file mode 100755 index a7a036992..000000000 --- a/a2ml/pandoc/container/entrypoint.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/sh -# SPDX-License-Identifier: MPL-2.0 -# {{PROJECT_NAME}} container entrypoint -# -# Handles signal propagation, startup logging, and health check -# preparation before exec-ing into the main application process. - -set -e - -# --------------------------------------------------------------------------- -# Signal handling -# --------------------------------------------------------------------------- -# -# Trap SIGTERM and SIGINT so that the application can shut down gracefully -# when Podman sends stop signals (e.g. `podman stop`, `selur-compose down`). - -cleanup() { - echo "Received shutdown signal — stopping {{SERVICE_NAME}}..." - # If the main process is backgrounded, kill it here: - # kill "$MAIN_PID" 2>/dev/null || true - # wait "$MAIN_PID" 2>/dev/null || true - exit 0 -} -trap cleanup TERM INT - -# --------------------------------------------------------------------------- -# Startup logging -# --------------------------------------------------------------------------- - -echo "Starting {{SERVICE_NAME}}..." -echo " Host: ${APP_HOST:-[::]}" -echo " Port: ${APP_PORT:-{{PORT}}}" -echo " Data: ${APP_DATA_DIR:-/data}" -echo " Log: ${APP_LOG_FORMAT:-json}" - -# --------------------------------------------------------------------------- -# Health check preparation -# --------------------------------------------------------------------------- -# -# Ensure the data directory exists and is writable. -# The VOLUME directive in the Containerfile creates /data, but a bind-mount -# might replace it with an empty directory owned by root. - -if [ -d "${APP_DATA_DIR:-/data}" ]; then - if [ ! -w "${APP_DATA_DIR:-/data}" ]; then - echo "WARNING: ${APP_DATA_DIR:-/data} is not writable by $(whoami)" - fi -fi - -# --------------------------------------------------------------------------- -# Exec into main process -# --------------------------------------------------------------------------- -# -# Replace the entrypoint shell with the application process so that -# signals are delivered directly and PID 1 is the application. -# -# TODO: Replace the command below with your application binary. -# Examples: -# exec /app/{{SERVICE_NAME}} -# exec /app/release/bin/{{SERVICE_NAME}} start -# exec /app/{{SERVICE_NAME}} serve --host "${APP_HOST}" --port "${APP_PORT}" - -exec "$@" diff --git a/a2ml/pandoc/container/manifest.toml b/a2ml/pandoc/container/manifest.toml deleted file mode 100644 index f55fcb3a2..000000000 --- a/a2ml/pandoc/container/manifest.toml +++ /dev/null @@ -1,62 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# -# Cerro Torre manifest for {{PROJECT_NAME}} .ctp bundle -# -# This manifest describes the container image for verified -# container packaging. Used by `ct pack` to create .ctp bundles. - -[metadata] -name = "{{SERVICE_NAME}}" -version = "{{VERSION}}" -revision = 1 -summary = "{{PROJECT_DESCRIPTION}}" -description = """ -{{PROJECT_NAME}} — containerised service packaged as a verified -cerro-torre .ctp bundle with Ed25519 signing and full provenance -tracking. -""" -license = "{{LICENSE}}" -homepage = "https://{{FORGE}}/{{OWNER}}/{{REPO}}" -maintainer = "{{AUTHOR}} <{{EMAIL}}>" - -[provenance] -upstream = "https://{{FORGE}}/{{OWNER}}/{{REPO}}" -import_date = {{CURRENT_DATE}}T00:00:00Z - -[dependencies] -runtime = ["ca-certificates", "curl"] -build = [] - -[build] -system = "podman" - -[build.environment] -APP_HOST = "[::]" -APP_PORT = "{{PORT}}" - -[outputs] -primary = "{{SERVICE_NAME}}" -split = [] - -[attestations] -require = ["source-signature", "sbom-complete"] -recommend = ["security-audit", "reproducible-build"] - -# Runtime security profile -[security] -user = "appuser" -group = "appuser" -read_only_root = false -no_new_privileges = true - -[security.capabilities] -drop = ["ALL"] -add = ["NET_BIND_SERVICE"] - -[security.network] -listen_tcp = [{{PORT}}] - -[security.filesystem] -read = ["/app/", "/data/"] -write = ["/data/", "/tmp/"] -execute = ["/app/entrypoint.sh"] diff --git a/a2ml/pandoc/container/vordr.toml b/a2ml/pandoc/container/vordr.toml deleted file mode 100644 index af38fc547..000000000 --- a/a2ml/pandoc/container/vordr.toml +++ /dev/null @@ -1,100 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# -# Vordr runtime monitoring configuration for {{PROJECT_NAME}} -# -# Vordr watches container health, detects crashes, tracks resource usage, -# and emits structured logs. It runs alongside the application stack and -# provides runtime observability without requiring in-process agents. -# -# Usage: -# vordr watch --config container/vordr.toml -# vordr status -# vordr report - -[metadata] -name = "{{SERVICE_NAME}}" -version = "{{VERSION}}" - -# ============================================================================ -# Health Monitoring -# ============================================================================ -# -# Vordr periodically probes these endpoints. If a probe fails beyond the -# failure_threshold, vordr emits an alert and (optionally) restarts the -# container via Podman. - -[health] -# Primary health endpoint — must return 2xx. -endpoint = "http://localhost:{{PORT}}/health" -interval = "30s" -timeout = "5s" -failure_threshold = 3 - -# Readiness endpoint — checked during startup and after restarts. -readiness_endpoint = "http://localhost:{{PORT}}/ready" -readiness_timeout = "10s" - -# Action on failure: "alert" (log + notify) or "restart" (alert + podman restart). -on_failure = "alert" - -# ============================================================================ -# Crash Detection -# ============================================================================ -# -# Monitors container state via Podman. Detects OOM kills, segfaults, -# and unexpected exits. - -[crash_detection] -enabled = true -# Maximum restarts within the window before vordr stops restarting. -max_restarts = 5 -restart_window = "10m" - -# ============================================================================ -# Resource Thresholds -# ============================================================================ -# -# Alert when resource usage exceeds these thresholds. Values are percentages -# of the container's cgroup limits (or host limits if uncapped). - -[resources] -cpu_warn = 80 # Percentage — warn at 80% sustained CPU. -cpu_critical = 95 # Percentage — critical alert at 95%. -memory_warn = 75 # Percentage of memory limit. -memory_critical = 90 -disk_warn = 80 # Percentage of volume usage. -disk_critical = 95 - -# Sample interval for resource metrics. -sample_interval = "15s" - -# ============================================================================ -# Log Output -# ============================================================================ -# -# Vordr emits its own logs (not the application's) in structured format. - -[logging] -format = "json" -level = "info" -# Write vordr logs to stdout (captured by Podman) and optionally to file. -output = "stdout" -# file = "/var/log/vordr/{{SERVICE_NAME}}.log" - -# ============================================================================ -# Notifications (optional) -# ============================================================================ -# -# Uncomment and configure to receive alerts via webhook or email. - -# [notifications.webhook] -# url = "https://example.com/hooks/vordr" -# method = "POST" -# headers = { "Content-Type" = "application/json" } -# on = ["failure", "recovery", "resource_critical"] - -# [notifications.email] -# to = "{{EMAIL}}" -# from = "vordr@{{SERVICE_NAME}}.local" -# smtp = "smtp://localhost:25" -# on = ["failure", "resource_critical"] diff --git a/a2ml/pandoc/contractile.just b/a2ml/pandoc/contractile.just deleted file mode 100644 index 9a5827baf..000000000 --- a/a2ml/pandoc/contractile.just +++ /dev/null @@ -1,75 +0,0 @@ -# Auto-generated by: contractile gen-just -# Source directory: contractiles -# Re-generate with: contractile gen-just --dir contractiles -# -# SPDX-License-Identifier: MPL-2.0 - -# === DUST (Recovery & Rollback) === -# Source: Dustfile.a2ml - -# List available dust recovery actions -dust-status: - @echo ' dust-source-rollback: Revert all source changes to last commit [rollback]' - -# Revert all source changes to last commit -dust-source-rollback: - @echo 'Executing rollback for source-rollback' - git checkout HEAD -- . - - -# === INTEND (Declared Future Intent) === -# Source: Intentfile.a2ml - -# Display declared future intents -intend-list: - @echo '=== Declared Intent ===' - @echo '' - @echo 'Features:' - @echo '' - @echo 'Quality:' - - -# === MUST (Physical State Checks) === -# Source: Mustfile.a2ml - -# Run all must checks -must-check: must-license-present must-readme-present must-spdx-headers must-no-banned-files - @echo 'All must checks passed' - -# LICENSE file must exist -must-license-present: - test -f LICENSE - -# README must exist -must-readme-present: - test -f README.adoc || test -f README.md - -# Source files should have SPDX license headers -must-spdx-headers: - find . -name '*.rs' -o -name '*.res' -o -name '*.gleam' | head -20 | xargs -r grep -L 'SPDX-License-Identifier' | wc -l | grep -q '^0$' - -# No Dockerfiles or Makefiles -must-no-banned-files: - test ! -f Dockerfile && test ! -f Makefile - - -# === TRUST (Integrity & Provenance Verification) === -# Source: Trustfile.a2ml - -# Run all trust verifications -trust-verify: trust-license-content trust-no-secrets-committed trust-container-images-pinned - @echo 'All trust verifications passed' - -# LICENSE contains expected SPDX identifier -trust-license-content: - grep -q 'SPDX\|License\|MIT\|Apache\|PMPL\|MPL' LICENSE - -# No .env or credential files in repo -trust-no-secrets-committed: - test ! -f .env && test ! -f credentials.json && test ! -f .env.local - -# Containerfile base images use pinned digests -trust-container-images-pinned: - test ! -f Containerfile || grep -q '@sha256:' Containerfile - - diff --git a/a2ml/pandoc/docs/0.1-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index 7f79301ee..000000000 --- a/a2ml/pandoc/docs/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1,33 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "docs-pillar" -level: 1 -parent: "../0-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Technical documentation hub. The root contains high-level orientation - (README, Quickstart, State-Visualizer). Specialized tracks live in - subdirectories. - -canonical_locations: - quickstart: "QUICKSTART.adoc" - state_visualizer: "STATE-VISUALIZER.adoc" - governance: "governance/" - architecture: "architecture/" - decisions: "decisions/" - theory: "theory/" - practice: "practice/" - developer: "developer/" - attribution: "attribution/" - reports: "reports/" - whitepapers: "whitepapers/" - standards: "standards/" - legal: "legal/" - wikis: "wikis/" - -invariants: - - "Primary documentation format MUST be AsciiDoc (.adoc)" - - "Root docs/ MUST only contain pillar entry points" diff --git a/a2ml/pandoc/docs/QUICKSTART.adoc b/a2ml/pandoc/docs/QUICKSTART.adoc deleted file mode 100644 index d97c31ec8..000000000 --- a/a2ml/pandoc/docs/QUICKSTART.adoc +++ /dev/null @@ -1,24 +0,0 @@ -= Quickstart -:toc: preamble - -Get up and running in 60 seconds. - -== Prerequisites - -* Git 2.40+ -* just (command runner) -* Your language toolchain (see Justfile for details) - -== From Template (New Project) - -[source,bash] ----- -git clone https://github.com/{{OWNER}}/rsr-template-repo my-project -cd my-project -rm -rf .git && git init -b main -just init # interactive placeholder replacement ----- - -== Project Structure - -See README.adoc in the root for the Dual-Track architecture summary. diff --git a/a2ml/pandoc/docs/README.adoc b/a2ml/pandoc/docs/README.adoc deleted file mode 100644 index df45be70b..000000000 --- a/a2ml/pandoc/docs/README.adoc +++ /dev/null @@ -1,14 +0,0 @@ -= Documentation Layout - -Primary tracks: - -* `theory/` for formal and conceptual material -* `practice/` for operational and implementation material -* `maintenance/` for baseline checklists and release hard-pass runbooks -* `whitepapers/academic/` for research-facing whitepapers -* `whitepapers/industry/` for industry/outreach whitepapers - -Core docs: - -* `maintenance/MAINTENANCE-CHECKLIST.md` -* `practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc` diff --git a/a2ml/pandoc/docs/RSR_OUTLINE.adoc b/a2ml/pandoc/docs/RSR_OUTLINE.adoc deleted file mode 100644 index 0ba0c97b5..000000000 --- a/a2ml/pandoc/docs/RSR_OUTLINE.adoc +++ /dev/null @@ -1,290 +0,0 @@ -= RSR Template Repository - -image:[Palimpsest-MPL-1.0,link="https://github.com/hyperpolymath/palimpsest-license"] image:[Palimpsest,link="https://github.com/hyperpolymath/palimpsest-license"] -:toc: -:sectnums: - -// Badges -image:https://img.shields.io/badge/RSR-Infrastructure-cd7f32[RSR Infrastructure] -image:https://img.shields.io/badge/Phase-Maintenance-brightgreen[Phase] -image:https://img.shields.io/badge/Guix-Primary-purple?logo=gnu[Guix] - -== Overview - -**The canonical template for RSR (Rhodium Standard Repository) projects.** - -This repository provides the standardized structure, configuration, and tooling for all RSR-compliant repos. Use it to: - -* Bootstrap new projects with RSR compliance -* Reference the standard directory structure -* Copy configuration templates (Justfile, STATE.a2ml, etc.) - -== Quick Start - -[source,bash] ----- -# Clone the template -git clone https://github.com/hyperpolymath/RSR-template-repo my-project -cd my-project - -# Remove template git history -rm -rf .git -git init - -# Interactive bootstrap — replaces all placeholders -just init - -# Enter development environment -guix shell -D -f guix.scm - -# Validate compliance -just validate-rsr ----- - -== What's Included - -[cols="1,3"] -|=== -|File/Directory |Purpose - -|`.editorconfig` -|Editor configuration (indent, charset) - -|`.gitignore` -|Standard ignore patterns - -|`.gitattributes` -|Line endings, diff drivers, binary detection - -|`.guix-channel` -|Guix channel definition - -|`.well-known/` -|RFC-compliant metadata (security.txt, ai.txt, humans.txt) - -|`.machine_readable/` -|All machine-readable content: state files (6 a2ml), `bot_directives/`, `contractiles/` - -|`docs/` -|Documentation directory - -|`guix.scm` -|Guix package definition - -|`Justfile` -|Task runner with 40+ recipes - -|`Containerfile` -|Container build (Wolfi base, Podman) - -|`LICENSE` -|PMPL-1.0-or-later (Palimpsest MPL) - -|`EXHIBIT-A-ETHICAL-USE.txt` -|Ethical use guidelines (LICENSE Exhibit A) - -|`EXHIBIT-B-QUANTUM-SAFE.txt` -|Quantum-safe provenance spec (LICENSE Exhibit B) - -|`README.adoc` -|Project overview - -|`TOPOLOGY.md` -|Architecture diagram and completion dashboard - -|`PLACEHOLDERS.md` -|Template variable reference and replacement guide - -|`0-AI-MANIFEST.a2ml` -|Universal AI agent entry point - -|`AI.a2ml` -|Claude-specific instructions - -|`src/abi/` -|Idris2 ABI definitions (Types, Layout, Foreign) - -|`ffi/zig/` -|Zig FFI implementation - -|`generated/abi/` -|Auto-generated C headers from Idris2 ABI -|=== - -== Justfile Features - -The template Justfile provides: - -* **Combinatoric matrix recipes** for build, test, container, CI -* **Cookbook generation**: `just cookbook` -> `docs/just-cookbook.adoc` -* **Man page generation**: `just man` -> `docs/man/project.1` -* **RSR validation**: `just validate-rsr` -* **STATE.a2ml management**: `just state-touch`, `just state-phase` -* **Container support**: `just container-build`, `just container-push` -* **CI matrix**: `just ci-matrix [stage] [depth]` - -=== Key Recipes - -[source,bash] ----- -just # Show all recipes -just help # Detailed help -just info # Project info -just combinations # Show matrix options - -just build # Build (debug) -just test # Run tests -just quality # Format + lint + test -just ci # Full CI pipeline - -just validate # RSR + STATE validation -just docs # Generate all docs -just cookbook # Generate Justfile docs - -just guix-shell # Guix dev environment -just container-build # Build container ----- - -== Directory Structure - -[source] ----- -project/ -├── .editorconfig # Editor settings -├── .gitignore # Git ignore -├── .gitattributes # Line endings, diff drivers -├── .guix-channel # Guix channel -├── .well-known/ # RFC metadata -│ ├── ai.txt -│ ├── humans.txt -│ └── security.txt -├── .machine_readable/ # ALL machine-readable content -│ ├── STATE.a2ml # Project state, progress, blockers -│ ├── META.a2ml # Architecture decisions, governance -│ ├── ECOSYSTEM.a2ml # Ecosystem position, relationships -│ ├── AGENTIC.a2ml # AI agent interaction patterns -│ ├── NEUROSYM.a2ml # Neurosymbolic integration config -│ ├── PLAYBOOK.a2ml # Operational runbook -│ ├── bot_directives/ # Per-bot rules and constraints -│ └── contractiles/ # Policy enforcement contracts -│ ├── k9/ # Security levels (Kennel/Yard/Hunt) -│ ├── dust/Dustfile # Recovery and rollback -│ ├── lust/Intentfile # Future intent declarations -│ ├── must/Mustfile # Invariant checks -│ └── trust/Trustfile.hs # Cryptographic verification -├── docs/ # Documentation -│ ├── CITATIONS.adoc -│ ├── TOPOLOGY-GUIDE.adoc -│ ├── generated/ -│ └── man/ -├── src/abi/ # Idris2 ABI definitions -│ ├── Types.idr -│ ├── Layout.idr -│ └── Foreign.idr -├── ffi/zig/ # Zig FFI implementation -│ ├── build.zig -│ ├── src/main.zig -│ └── test/integration_test.zig -├── generated/abi/ # Auto-generated C headers -├── examples/ # Example code -├── guix.scm # Guix package -├── Justfile # Task runner -├── Containerfile # Container build -├── LICENSE # PMPL-1.0-or-later -├── EXHIBIT-A-ETHICAL-USE.txt # Ethical use guidelines -├── EXHIBIT-B-QUANTUM-SAFE.txt # Quantum-safe provenance -├── README.adoc # Overview -├── TOPOLOGY.md # Architecture + completion -├── PLACEHOLDERS.md # Template variable guide -├── 0-AI-MANIFEST.a2ml # Universal AI entry point -└── AI.a2ml # Claude-specific instructions ----- - -== RSR Compliance - -=== Language Tiers - -* **Tier 1** (Gold): Rust, Elixir, Zig, Ada, Haskell, ReScript, Gleam -* **Tier 2** (Silver): Nickel, Guile Scheme, Nix, Idris2, OCaml -* **Infrastructure**: Guix channels, derivations, Julia batch scripts - -=== Required Files - -* `.editorconfig` -* `.gitignore` -* `Justfile` -* `README.adoc` -* `LICENSE` (PMPL-1.0-or-later) -* `.machine_readable/STATE.a2ml` -* `.well-known/security.txt` -* `.well-known/ai.txt` -* `.well-known/humans.txt` -* `guix.scm` OR `flake.nix` - -=== Prohibited - -* Python outside `salt/` directory -* TypeScript/JavaScript (use ReScript) -* CUE (use Guile/Nickel) -* `Dockerfile` (use `Containerfile`) -* npm, Bun, pnpm, yarn (use Deno) -* Go (use Rust) - -== STATE.a2ml - -The STATE.a2ml file tracks project state: - -[source] ----- -# STATE — Project State Checkpoint -# Format: a2ml (AI-readable markup) - -project: v-graphql -version: 0.1.0 -last-updated: 2026-02-14 -status: active - -phase: implementation -maturity: beta - -ecosystem: - part-of: RSR Framework - depends-on: [] - -milestones: - - name: Initial setup - completion: 100 - - name: Core implementation - completion: 0 ----- - -== Badge Schema - -Generate badges from STATE.a2ml: - -[source,bash] ----- -just badges standard ----- - -See `docs/BADGE_SCHEMA.adoc` for the full badge taxonomy. - -== Ecosystem Integration - -This template is part of: - -* **STATE.a2ml Ecosystem**: Conversation checkpoints -* **RSR Framework**: Repository standards -* **Consent-Aware-HTTP**: .well-known compliance -* **Hypatia**: Neurosymbolic security scanning -* **gitbot-fleet**: Bot orchestration - -== License - -SPDX-License-Identifier: MPL-2.0 - -== Links - -* https://github.com/hyperpolymath/elegant-STATE[elegant-STATE] - STATE tooling -* https://github.com/hyperpolymath/conative-gating[conative-gating] - Policy enforcement -* https://rhodium.sh[Rhodium Standard] - RSR documentation diff --git a/a2ml/pandoc/docs/STATE-VISUALIZER.adoc b/a2ml/pandoc/docs/STATE-VISUALIZER.adoc deleted file mode 100644 index 2af3297c7..000000000 --- a/a2ml/pandoc/docs/STATE-VISUALIZER.adoc +++ /dev/null @@ -1,128 +0,0 @@ -= Project State Visualizer -[source] ----- - - - - -# RSR Template Repo — Project Topology - -## System Architecture - -``` - ┌─────────────────────────────────────────┐ - │ NEW REPOSITORY │ - │ (Consumer of this Template) │ - └───────────────────┬─────────────────────┘ - │ Scaffolding - ▼ - ┌─────────────────────────────────────────┐ - │ RSR TEMPLATE HUB │ - │ │ - │ ┌───────────┐ ┌───────────────────┐ │ - │ │ AI Gate- │ │ ABI / FFI │ │ - │ │ keeper │ │ Standard │ │ - │ │ (0-AI-M) │ │ (Idris2/Zig) │ │ - │ └─────┬─────┘ └────────┬──────────┘ │ - │ │ │ │ - │ ┌─────▼─────┐ ┌────────▼──────────┐ │ - │ │ Topology │ │ SCM / 6SCM │ │ - │ │ Guide │ │ Metadata │ │ - │ │ (Visual) │ │ (machine_read) │ │ - │ └─────┬─────┘ └────────┬──────────┘ │ - │ │ │ │ - │ ┌─────▼─────────────────▼──────────┐ │ - │ │ CONTAINER ECOSYSTEM │ │ - │ │ ┌──────────┐ ┌───────────────┐ │ │ - │ │ │ Podman / │ │ selur-compose │ │ │ - │ │ │ OCI │ │ cerro-torre │ │ │ - │ │ │ Build │ │ svalinn/vordr │ │ │ - │ │ └──────────┘ └───────────────┘ │ │ - │ │ ct-build.sh deploy.k9.ncl │ │ - │ └──────────────────────────────────┘ │ - └────────│─────────────────│──────────────┘ - │ │ - ▼ ▼ - ┌─────────────────────────────────────────┐ - │ PLATFORM INTEGRATION │ - │ ┌───────────┐ ┌───────────┐ ┌───────┐│ - │ │ GitHub │ │ GitLab │ │ Nix / ││ - │ │ Workflows │ │ CI/CD │ │ Guix ││ - │ └───────────┘ └───────────┘ └───────┘│ - └─────────────────────────────────────────┘ - - ┌─────────────────────────────────────────┐ - │ REPO INFRASTRUCTURE │ - │ Justfile / Mustfile .machine_readable/ │ - │ Codeowners / Reuse 0-AI-MANIFEST.a2ml │ - └─────────────────────────────────────────┘ -``` - -## Completion Dashboard - -``` -COMPONENT STATUS NOTES -───────────────────────────────── ────────────────── ───────────────────────────────── -CORE STANDARDS - ABI/FFI Standard (Idris2/Zig) ██████████ 100% Universal interface stable - AI Gatekeeper (0-AI-MANIFEST) ██████████ 100% Universal entry point active - TOPOLOGY.md Standard ██████████ 100% Visual summary guide active - 6SCM Metadata Structure ██████████ 100% Machine-readable state stable - -INFRASTRUCTURE - Justfile Automation ██████████ 100% Standard build/verify tasks - CI/CD Workflow Templates ██████████ 100% GH/GL scaffolding verified - Multi-Forge Sync ██████████ 100% Hub-and-spoke mirroring stable - -CONTAINER ECOSYSTEM (Phase 2) - Containerfile (OCI build) ██████████ 100% Multi-stage Chainguard base - selur-compose orchestration ██████████ 100% Template + concrete example - cerro-torre manifest ██████████ 100% Bundle metadata & signing - svalinn gateway policy ██████████ 100% .gatekeeper.yaml active - vordr runtime monitoring ██████████ 100% Runtime config template - k9-svc deployment (Nickel) ██████████ 100% Hunt-level deploy descriptor - ct-build.sh pipeline ██████████ 100% Build/sign/verify script - Justfile container-* recipes ██████████ 100% 8 recipes integrated - Trustfile CONTAINER_SUPPLY_CHAIN ██████████ 100% Supply chain section added - -REPO INFRASTRUCTURE - .machine_readable/ ██████████ 100% STATE/META/ECOSYSTEM active - Governance & License ██████████ 100% PMPL & Ethical use verified - Development Shells (Nix/Guix) ██████████ 100% Reproducible env stable - -───────────────────────────────────────────────────────────────────────────── -OVERALL: ██████████ 100% RSR Template Stable & Certified -``` - -## Key Dependencies - -``` -Philosophy ──────► RSR Standard ──────► Template Scaffolding ──► New Repo - │ │ │ │ - ▼ ▼ ▼ ▼ -CCCP Policy ─────► 0-AI-MANIFEST ────────► Justfile ──────────► Compliance - │ - ▼ - Container Ecosystem - ┌──────────┼──────────┐ - ▼ ▼ ▼ - selur-compose cerro- svalinn/ - (orchestrate) torre vordr - (sign) (monitor) - │ - ▼ - k9-svc deploy -``` - -## Update Protocol - -This file is maintained by both humans and AI agents. When updating: - -1. **After completing a component**: Change its bar and percentage -2. **After adding a component**: Add a new row in the appropriate section -3. **After architectural changes**: Update the ASCII diagram -4. **Date**: Update the `Last updated` comment at the top of this file - -Progress bars use: `█` (filled) and `░` (empty), 10 characters wide. -Percentages: 0%, 10%, 20%, ... 100% (in 10% increments). ----- diff --git a/a2ml/pandoc/docs/architecture/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/architecture/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 028b503d6..000000000 --- a/a2ml/pandoc/docs/architecture/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "architecture-track" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Documentation track for system architecture and threat models. - -canonical_locations: - threat_model: "THREAT-MODEL.adoc" - -invariants: - - "Visual diagrams MUST include ASCII or Mermaid representations" diff --git a/a2ml/pandoc/docs/architecture/THREAT-MODEL.adoc b/a2ml/pandoc/docs/architecture/THREAT-MODEL.adoc deleted file mode 100644 index df5e0380c..000000000 --- a/a2ml/pandoc/docs/architecture/THREAT-MODEL.adoc +++ /dev/null @@ -1,162 +0,0 @@ -= Threat Model - - - -# Threat Model: {{PROJECT_NAME}} - -## Document Info - -| Field | Value | -|---------------|--------------------------------| -| Project | {{PROJECT_NAME}} | -| Version | 1.0 | -| Last Reviewed | {{DATE}} | -| Author | {{AUTHOR}} | -| Methodology | STRIDE | - -## Scope - -### In Scope - -- Application source code and build pipeline -- CI/CD workflows (GitHub Actions) -- Container images and runtime environment -- Secrets and credential management -- Dependencies (direct and transitive) -- Deployment artifacts (binaries, containers, SBOM) - -### Out of Scope - -- Physical security of hosting infrastructure -- GitHub/GitLab platform-level vulnerabilities -- End-user device security -- Social engineering attacks against maintainers (handled by org policy) - -## System Overview - -Brief description of {{PROJECT_NAME}} and its architecture. - -> See [STATE-VISUALIZER.adoc](../STATE-VISUALIZER.adoc) for the full architecture diagram and completion dashboard. - -## Assets - -| Asset | Classification | Owner | Notes | -|----------------------|----------------|-------------|--------------------------------------------| -| Source code | Internal | Maintainers | Public repos are still internal-integrity | -| Signing keys | Restricted | Release lead | Signing keys (e.g., Ed25519), GPG keys | -| CI/CD secrets | Restricted | Maintainers | GITHUB_TOKEN, deploy tokens, PATs | -| User/contributor data | Confidential | Org | Emails, contributor identity | -| Build artifacts | Internal | CI pipeline | Binaries, WASM bundles | -| Container images | Internal | CI pipeline | Chainguard-based, signed via image signing tool | -| SBOM / provenance | Public | CI pipeline | SLSA attestations | -| Dependencies | Public | Lockfile | Cargo.lock, deno.lock, gleam.toml | -| Infrastructure config | Confidential | Maintainers | Containerfiles, compose files, orchestration config | - -## Trust Boundaries - -| Boundary | From (Lower Trust) | To (Higher Trust) | -|-----------------------------|---------------------------|----------------------------| -| Pull request submission | External contributor | Repository codebase | -| CI/CD workflow execution | Workflow definition | Runner with secrets access | -| Container build boundary | Build stage | Runtime stage | -| External API calls | Third-party service | Application internals | -| User input (CLI/Web) | End user | Application logic | -| Dependency resolution | Package registry | Build environment | -| Forge mirroring | GitHub | GitLab / Bitbucket | - -## Threat Actors - -| Actor | Motivation | Capability | -|--------------------------|-------------------------------|------------| -| Script kiddie | Vandalism, clout | Low | -| Disgruntled contributor | Sabotage, backdoor insertion | Medium | -| Supply chain attacker | Wide-impact compromise | High | -| Nation state | Espionage, disruption | Very High | -| Automated bot | Credential stuffing, spam PRs | Low-Medium | - -## STRIDE Analysis - -### Spoofing - -| Threat | Affected Asset | Likelihood | Impact | Risk | Mitigation | -|---------------------------------|-------------------|------------|--------|--------|------------------------------------------------| -| Unsigned commits impersonate maintainer | Source code | Medium | High | High | Require GPG-signed commits; vigilant code review | -| Forged bot actions (automated agents) | CI/CD pipeline | Low | High | Medium | Bot tokens scoped minimally; audit bot activity | -| Spoofed package registry identity | Dependencies | Low | High | Medium | Pin dependencies by hash; verify provenance | - -### Tampering - -| Threat | Affected Asset | Likelihood | Impact | Risk | Mitigation | -|---------------------------------|-------------------|------------|--------|--------|------------------------------------------------| -| Malicious pull request | Source code | Medium | High | High | Branch protection; required reviews; CodeQL | -| Dependency poisoning (typosquat) | Dependencies | Medium | High | High | Lockfiles; secret-scanner; security scans | -| Tampered container base image | Container images | Low | High | Medium | Chainguard images; image signing verification | -| Workflow file modification | CI/CD pipeline | Low | High | Medium | CODEOWNERS on .github/; workflow-linter | - -### Repudiation - -| Threat | Affected Asset | Likelihood | Impact | Risk | Mitigation | -|---------------------------------|-------------------|------------|--------|--------|------------------------------------------------| -| Unlogged deployment | Build artifacts | Medium | Medium | Medium | SLSA provenance; deployment audit trail | -| Denied merge of vulnerable code | Source code | Low | Medium | Low | Git history is immutable; signed commits | -| Secret rotation without record | CI/CD secrets | Low | Low | Low | Secret rotation logged in STATE.a2ml | - -### Information Disclosure - -| Threat | Affected Asset | Likelihood | Impact | Risk | Mitigation | -|---------------------------------|-------------------|------------|--------|--------|------------------------------------------------| -| Secrets leaked in git history | CI/CD secrets | Medium | High | High | TruffleHog in CI; secret-scanner workflow | -| Verbose error messages in prod | Application logic | Medium | Medium | Medium | Sanitize outputs; structured logging | -| SBOM reveals internal structure | Infrastructure | Low | Low | Low | Accepted risk; SBOM is intentionally public | - -### Denial of Service - -| Threat | Affected Asset | Likelihood | Impact | Risk | Mitigation | -|---------------------------------|-------------------|------------|--------|--------|------------------------------------------------| -| CI resource exhaustion (fork bomb in PR) | CI/CD pipeline | Medium | Medium | Medium | Concurrency limits; timeout on workflows | -| Spam issues/PRs flooding triage | Maintainer time | Medium | Low | Low | GitHub rate limits; bot auto-close stale | -| Large binary commits bloating repo | Source code | Low | Medium | Low | .gitattributes LFS policy; pre-commit hooks | - -### Elevation of Privilege - -| Threat | Affected Asset | Likelihood | Impact | Risk | Mitigation | -|---------------------------------|-------------------|------------|--------|--------|------------------------------------------------| -| Workflow injection via PR title/body | CI/CD pipeline | Medium | High | High | Never interpolate PR fields in `run:`; use env vars | -| GITHUB_TOKEN over-scoped | CI/CD secrets | Medium | High | High | `permissions: read-all` default; per-job scoping | -| Container escape | Runtime environment | Low | High | Medium | Hardened container runtime; read-only rootfs; no-new-privileges | -| Compromised action dependency | CI/CD pipeline | Medium | High | High | SHA-pin all actions; never use `@latest` tags | - -## Mitigations in Place - -- **SLSA Provenance**: Build attestations via slsa-github-generator -- **Secret Scanning**: TruffleHog + secret-scanner workflow on every push -- **Static Analysis**: CodeQL on supported languages -- **Supply Chain**: OpenSSF Scorecard (scorecard.yml + scorecard-enforcer.yml) -- **Container Signing**: Ed25519 signatures on all published images (optional: use your signing tool) -- **Container Runtime**: Hardened container runtime with formal verification (optional) -- **Dependency Pinning**: All GitHub Actions SHA-pinned; lockfiles committed -- **Workflow Validation**: workflow-linter.yml checks all workflow changes -- **Security Scanning**: Neurosymbolic scanning (hypatia-scan.yml, optional) -- **Bot Governance**: Bot orchestration with confidence thresholds (optional) -- **Edge Security**: Gateway with policy enforcement (optional, where applicable) -- **SBOM**: Generated and published with releases - -## Residual Risks - -| Risk | Accepted Because | Review Trigger | -|-----------------------------------------------|---------------------------------------------------|-------------------------| -| Zero-day in GitHub Actions runner | Platform responsibility; no feasible mitigation | GitHub advisory | -| Maintainer account compromise | Mitigated by 2FA requirement; residual remains | Any suspicious activity | -| Transitive dependency vulnerability (0-day) | Lockfiles limit blast radius; scanning catches known CVEs | CVE database update | -| SBOM exposes internal component names | Transparency is a design goal | Policy change | - -## Review Schedule - -This threat model should be reviewed: - -- **Quarterly** as a standing item -- **When architecture changes** (new services, new trust boundaries, new deployment targets) -- **Before major releases** (v1.0, v2.0, etc.) -- **After any security incident** affecting this project or its dependencies - -Reviewer should update the "Last Reviewed" date and version in Document Info above. diff --git a/a2ml/pandoc/docs/attribution/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/attribution/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 52beaea4b..000000000 --- a/a2ml/pandoc/docs/attribution/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "attribution-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-unit of the docs pillar focusing on attribution. diff --git a/a2ml/pandoc/docs/attribution/CITATION.cff b/a2ml/pandoc/docs/attribution/CITATION.cff deleted file mode 100644 index 4d562f435..000000000 --- a/a2ml/pandoc/docs/attribution/CITATION.cff +++ /dev/null @@ -1,17 +0,0 @@ -cff-version: 1.2.0 -message: "If you use this software, please cite it as below." -authors: -- family-names: "{{AUTHOR_LAST}}" - given-names: "{{AUTHOR_FIRST}}" - orcid: "https://orcid.org/0000-0000-0000-0000" # Placeholder -title: "{{PROJECT_NAME}}" -version: 0.1.0 -date-released: {{CURRENT_DATE}} -url: "https://{{FORGE}}/{{OWNER}}/{{REPO}}" -repository-code: "https://{{FORGE}}/{{OWNER}}/{{REPO}}" -license: PMPL-1.0-or-later -keywords: - - "rsr" - - "formal-verification" - - "neurosymbolic" - - "provenance" diff --git a/a2ml/pandoc/docs/attribution/CITATIONS.adoc b/a2ml/pandoc/docs/attribution/CITATIONS.adoc deleted file mode 100644 index eeee45fbd..000000000 --- a/a2ml/pandoc/docs/attribution/CITATIONS.adoc +++ /dev/null @@ -1,35 +0,0 @@ -= {{PROJECT_NAME}} - Citation Guide -:toc: - -== BibTeX - -[source,bibtex] ----- -@software{{{PROJECT_NAME}}_{{CURRENT_YEAR}}, - author = {{{AUTHOR_LAST}}, {{AUTHOR_FIRST}}}, - title = {{{PROJECT_NAME}}}, - year = {{{CURRENT_YEAR}}}, - url = {https://github.com/{{OWNER}}/{{PROJECT_NAME}}}, - license = {PMPL-1.0-or-later} -} ----- - -== Harvard Style - -{{AUTHOR_LAST}}, {{AUTHOR_INITIALS}} ({{CURRENT_YEAR}}) _{{PROJECT_NAME}}_ [Computer software]. Available at: https://github.com/{{OWNER}}/{{PROJECT_NAME}} - -== OSCOLA - -{{AUTHOR}}, '{{PROJECT_NAME}}' ({{CURRENT_YEAR}}) - -== MLA - -{{AUTHOR_LAST}}, {{AUTHOR_FIRST}} "{{PROJECT_NAME}}." {{CURRENT_YEAR}}, github.com/{{OWNER}}/{{PROJECT_NAME}}. - -== APA 7 - -{{AUTHOR_LAST}}, {{AUTHOR_INITIALS}} ({{CURRENT_YEAR}}). _{{PROJECT_NAME}}_ [Computer software]. GitHub. https://github.com/{{OWNER}}/{{PROJECT_NAME}} - -== See Also - -* link:CITATION.cff[CITATION.cff] diff --git a/a2ml/pandoc/docs/attribution/CODEOWNERS.adoc b/a2ml/pandoc/docs/attribution/CODEOWNERS.adoc deleted file mode 100644 index 3714055f4..000000000 --- a/a2ml/pandoc/docs/attribution/CODEOWNERS.adoc +++ /dev/null @@ -1,19 +0,0 @@ -= Code Ownership -:icons: font - -This project utilizes a formally defined code ownership structure to ensure that specific components are reviewed by domain experts. - -== Authority Model - -Our ownership model is based on the "Perimeter" architecture: -* **Perimeter 1 (Core):** Strictly controlled by Lead Maintainers. -* **Perimeter 2 (Extensions):** Maintained by component owners. -* **Perimeter 3 (Community):** Open for broader community participation. - -== Automated Enforcement - -The technical rules for automatic review assignments are maintained in the machine-readable link:../../.github/CODEOWNERS[.github/CODEOWNERS] file. GitHub uses this to automatically notify owners when changes are proposed to their sections. - -== Component Owners - -A full list of maintainers and their contact information can be found in link:MAINTAINERS.adoc[MAINTAINERS.adoc]. diff --git a/a2ml/pandoc/docs/attribution/MAINTAINERS.adoc b/a2ml/pandoc/docs/attribution/MAINTAINERS.adoc deleted file mode 100644 index d829dd959..000000000 --- a/a2ml/pandoc/docs/attribution/MAINTAINERS.adoc +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Maintainers -:toc: preamble - -This document lists the maintainers of this project and their responsibilities. - -== Current Maintainers - -[cols="2,3,2",options="header"] -|=== -| Name | Role | Contact - -| {{AUTHOR}} -| Lead Maintainer -| https://github.com/{{OWNER}}[@{{OWNER}}] -|=== - -== Responsibilities - -Maintainers are responsible for: - -* Reviewing and merging pull requests -* Triaging issues and feature requests -* Ensuring code quality and security standards -* Managing releases and versioning -* Upholding the project's code of conduct - -== Becoming a Maintainer - -Contributors who demonstrate: - -* Consistent, high-quality contributions -* Understanding of the project's goals and standards -* Constructive participation in discussions -* Commitment to the project's long-term health - -May be invited to become maintainers at the discretion of existing maintainers. - -== Decision Making - -* Routine decisions (bug fixes, minor improvements) can be made by any maintainer -* Significant changes require discussion and consensus among maintainers -* Breaking changes or major features should be discussed in issues before implementation - -== Contact - -For questions about project governance, open an issue or contact the maintainers listed above. diff --git a/a2ml/pandoc/docs/attribution/README.adoc b/a2ml/pandoc/docs/attribution/README.adoc deleted file mode 100644 index b095612c0..000000000 --- a/a2ml/pandoc/docs/attribution/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= attribution Unit diff --git a/a2ml/pandoc/docs/decisions/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/decisions/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index ac26298b4..000000000 --- a/a2ml/pandoc/docs/decisions/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "decisions-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-unit of the docs pillar focusing on decisions. diff --git a/a2ml/pandoc/docs/decisions/0000-template.adoc b/a2ml/pandoc/docs/decisions/0000-template.adoc deleted file mode 100644 index 763eab1e2..000000000 --- a/a2ml/pandoc/docs/decisions/0000-template.adoc +++ /dev/null @@ -1,35 +0,0 @@ -= Architecture Decision Record: 0000-template - - - -# [NUMBER]. [TITLE] - -Date: YYYY-MM-DD - -## Status - -[Proposed | Accepted | Deprecated | Superseded by [ADR-NNNN](NNNN-title.md) | Rejected] - -## Context - -What is the issue that we're seeing that is motivating this decision or change? - -## Decision - -What is the change that we're proposing and/or doing? - -## Consequences - -What becomes easier or more difficult to do because of this change? - -### Positive - -- ... - -### Negative - -- ... - -### Neutral - -- ... diff --git a/a2ml/pandoc/docs/decisions/0001-adopt-rsr-standard.adoc b/a2ml/pandoc/docs/decisions/0001-adopt-rsr-standard.adoc deleted file mode 100644 index 85f414be3..000000000 --- a/a2ml/pandoc/docs/decisions/0001-adopt-rsr-standard.adoc +++ /dev/null @@ -1,86 +0,0 @@ -= Architecture Decision Record: 0001-adopt-rsr-standard - - - -# 1. Adopt Rhodium Standard Repository (RSR) Template - -Date: 2026-02-14 - -## Status - -Accepted - -## Context - -Managing multiple repositories with an ad-hoc approach led to significant -inconsistencies across the ecosystem. Common problems included: - -- Missing or incomplete configuration files (SECURITY.md, CONTRIBUTING.md, - .editorconfig, etc.) -- State files (STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml) placed in the repository - root instead of the canonical `.machine_readable/` directory -- Duplicate or conflicting workflow definitions across repos -- No standardized entry point for AI agents interacting with repositories -- Inconsistent bot directive configurations leading to unreliable automation -- No contractile enforcement or Justfile automation - -Without a single source of truth for repository structure, each new repo -required manual setup and inevitably drifted from best practices over time. - -## Decision - -Adopt the Rhodium Standard Repository (RSR) template (`rsr-template-repo`) as -the canonical starting point for all new repositories. Existing repositories -will migrate incrementally as they receive active development. - -The RSR template provides: - -- **Machine-readable state files** in `.machine_readable/` (STATE.a2ml, - ECOSYSTEM.a2ml, META.a2ml, AGENTIC.a2ml, NEUROSYM.a2ml, PLAYBOOK.a2ml) -- **AI manifest** (`0-AI-MANIFEST.a2ml`) as a universal entry point for all - AI agents -- **Bot directives** in `.machine_readable/bot_directives/` for bot orchestration integration -- **Contractiles** in `.machine_readable/contractiles/` (k9, dust, lust, must, trust) for - policy enforcement -- **Standardized workflows** (16+ GitHub Actions workflows, all SHA-pinned) -- **Justfile automation** with standard recipes for common tasks -- **Security and governance files**: SECURITY.md, CONTRIBUTING.md, - CODE_OF_CONDUCT.md, LICENSE (PMPL-1.0-or-later) -- **Architecture Decision Records** in `docs/decisions/` - -New repositories are created by cloning the template: - -```bash -git clone https://github.com/{{OWNER}}/rsr-template-repo new-repo-name -cd new-repo-name -rm -rf .git && git init -``` - -## Consequences - -### Positive - -- Consistency across all repositories, enforced from creation -- Automated compliance checking via `rsr-antipattern.yml` workflow -- Bot fleet can operate reliably across all repos with predictable structure -- AI agents (Claude, Gemini, etc.) have a standardized entry point via - `0-AI-MANIFEST.a2ml` -- New contributors can onboard faster with familiar, documented structure -- Reduced maintenance burden: fix once in template, propagate to all repos -- Machine-readable state enables tooling and automation pipelines - -### Negative - -- Migration effort for existing repos requires time and attention -- Learning curve for contributors unfamiliar with RSR conventions -- Template updates need propagation mechanism to existing repos -- Some repos may have unique needs that do not fit the standard template - without customization - -### Neutral - -- Existing CI/CD pipelines continue to work; RSR workflows are additive -- Third-party dependencies retain their original licenses regardless of - repo structure -- ADR process itself is part of the template, enabling future decisions - to be recorded consistently diff --git a/a2ml/pandoc/docs/decisions/README.adoc b/a2ml/pandoc/docs/decisions/README.adoc deleted file mode 100644 index 153a5e788..000000000 --- a/a2ml/pandoc/docs/decisions/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= decisions Unit diff --git a/a2ml/pandoc/docs/developer/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/developer/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index c16fcc747..000000000 --- a/a2ml/pandoc/docs/developer/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "developer-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-unit of the docs pillar focusing on developer. diff --git a/a2ml/pandoc/docs/developer/ABI-FFI-README.adoc b/a2ml/pandoc/docs/developer/ABI-FFI-README.adoc deleted file mode 100644 index 65d2afe11..000000000 --- a/a2ml/pandoc/docs/developer/ABI-FFI-README.adoc +++ /dev/null @@ -1,384 +0,0 @@ -= ABI/FFI Standards -{{~ Aditionally delete this line and fill out the template below ~}} - -# {{PROJECT}} ABI/FFI Documentation - -## Overview - -This library follows the **Hyperpolymath RSR Standard** for ABI and FFI design: - -- **ABI (Application Binary Interface)** defined in **Idris2** with formal proofs -- **FFI (Foreign Function Interface)** implemented in **Zig** for C compatibility -- **Generated C headers** bridge Idris2 ABI to Zig FFI -- **Any language** can call through standard C ABI - -## Architecture - -``` -┌─────────────────────────────────────────────┐ -│ ABI Definitions (Idris2) │ -│ src/abi/ │ -│ - Types.idr (Type definitions) │ -│ - Layout.idr (Memory layout proofs) │ -│ - Foreign.idr (FFI declarations) │ -└─────────────────┬───────────────────────────┘ - │ - │ generates (at compile time) - ▼ -┌─────────────────────────────────────────────┐ -│ C Headers (auto-generated) │ -│ generated/abi/{{project}}.h │ -└─────────────────┬───────────────────────────┘ - │ - │ imported by - ▼ -┌─────────────────────────────────────────────┐ -│ FFI Implementation (Zig) │ -│ ffi/zig/src/main.zig │ -│ - Implements C-compatible functions │ -│ - Zero-cost abstractions │ -│ - Memory-safe by default │ -└─────────────────┬───────────────────────────┘ - │ - │ compiled to lib{{project}}.so/.a - ▼ -┌─────────────────────────────────────────────┐ -│ Any Language via C ABI │ -│ - Rust, ReScript, Julia, Python, etc. │ -└─────────────────────────────────────────────┘ -``` - -## Directory Structure - -``` -{{project}}/ -├── src/ -│ ├── abi/ # ABI definitions (Idris2) -│ │ ├── Types.idr # Core type definitions with proofs -│ │ ├── Layout.idr # Memory layout verification -│ │ └── Foreign.idr # FFI function declarations -│ └── lib/ # Core library (any language) -│ -├── ffi/ -│ └── zig/ # FFI implementation (Zig) -│ ├── build.zig # Build configuration -│ ├── build.zig.zon # Dependencies -│ ├── src/ -│ │ └── main.zig # C-compatible FFI implementation -│ ├── test/ -│ │ └── integration_test.zig -│ └── include/ -│ └── {{project}}.h # C header (optional, can be generated) -│ -├── generated/ # Auto-generated files -│ └── abi/ -│ └── {{project}}.h # Generated from Idris2 ABI -│ -└── bindings/ # Language-specific wrappers (optional) - ├── rust/ - ├── rescript/ - └── julia/ -``` - -## Why Idris2 for ABI? - -### 1. **Formal Verification** - -Idris2's dependent types allow proving properties about the ABI at compile-time: - -```idris --- Prove struct size is correct -public export -exampleStructSize : HasSize ExampleStruct 16 - --- Prove field alignment is correct -public export -fieldAligned : Divides 8 (offsetOf ExampleStruct.field) - --- Prove ABI is platform-compatible -public export -abiCompatible : Compatible (ABI 1) (ABI 2) -``` - -### 2. **Type Safety** - -Encode invariants that C/Zig cannot express: - -```idris --- Non-null pointer guaranteed at type level -data Handle : Type where - MkHandle : (ptr : Bits64) -> {auto 0 nonNull : So (ptr /= 0)} -> Handle - --- Array with length proof -data Buffer : (n : Nat) -> Type where - MkBuffer : Vect n Byte -> Buffer n -``` - -### 3. **Platform Abstraction** - -Platform-specific types with compile-time selection: - -```idris -CInt : Platform -> Type -CInt Linux = Bits32 -CInt Windows = Bits32 - -CSize : Platform -> Type -CSize Linux = Bits64 -CSize Windows = Bits64 -``` - -### 4. **Safe Evolution** - -Prove that new ABI versions are backward-compatible: - -```idris --- Compiler enforces compatibility -abiUpgrade : ABI 1 -> ABI 2 -abiUpgrade old = MkABI2 { - -- Must preserve all v1 fields - v1_compat = old, - -- Can add new fields - new_features = defaults -} -``` - -## Why Zig for FFI? - -### 1. **C ABI Compatibility** - -Zig exports C-compatible functions naturally: - -```zig -export fn library_function(param: i32) i32 { - return param * 2; -} -``` - -### 2. **Memory Safety** - -Compile-time safety without runtime overhead: - -```zig -// Null check enforced at compile time -const handle = init() orelse return error.InitFailed; -defer free(handle); -``` - -### 3. **Cross-Compilation** - -Built-in cross-compilation to any platform: - -```bash -zig build -Dtarget=x86_64-linux -zig build -Dtarget=aarch64-macos -zig build -Dtarget=x86_64-windows -``` - -### 4. **Zero Dependencies** - -No runtime, no libc required (unless explicitly needed): - -```zig -// Minimal binary size -pub const lib = @import("std"); -// Only includes what you use -``` - -## Building - -### Build FFI Library - -```bash -cd ffi/zig -zig build # Build debug -zig build -Doptimize=ReleaseFast # Build optimized -zig build test # Run tests -``` - -### Generate C Header from Idris2 ABI - -```bash -cd src/abi -idris2 --cg c-header Types.idr -o ../../generated/abi/{{project}}.h -``` - -### Cross-Compile - -```bash -cd ffi/zig - -# Linux x86_64 -zig build -Dtarget=x86_64-linux - -# macOS ARM64 -zig build -Dtarget=aarch64-macos - -# Windows x86_64 -zig build -Dtarget=x86_64-windows -``` - -## Usage - -### From C - -```c -#include "{{project}}.h" - -int main() { - void* handle = {{project}}_init(); - if (!handle) return 1; - - int result = {{project}}_process(handle, 42); - if (result != 0) { - const char* err = {{project}}_last_error(); - fprintf(stderr, "Error: %s\n", err); - } - - {{project}}_free(handle); - return 0; -} -``` - -Compile with: -```bash -gcc -o example example.c -l{{project}} -L./zig-out/lib -``` - -### From Idris2 - -```idris -import {{PROJECT}}.ABI.Foreign - -main : IO () -main = do - Just handle <- init - | Nothing => putStrLn "Failed to initialize" - - Right result <- process handle 42 - | Left err => putStrLn $ "Error: " ++ errorDescription err - - free handle - putStrLn "Success" -``` - -### From Rust - -```rust -#[link(name = "{{project}}")] -extern "C" { - fn {{project}}_init() -> *mut std::ffi::c_void; - fn {{project}}_free(handle: *mut std::ffi::c_void); - fn {{project}}_process(handle: *mut std::ffi::c_void, input: u32) -> i32; -} - -fn main() { - unsafe { - let handle = {{project}}_init(); - assert!(!handle.is_null()); - - let result = {{project}}_process(handle, 42); - assert_eq!(result, 0); - - {{project}}_free(handle); - } -} -``` - -### From Julia - -```julia -const lib{{project}} = "lib{{project}}" - -function init() - handle = ccall((:{{project}}_init, lib{{project}}), Ptr{Cvoid}, ()) - handle == C_NULL && error("Failed to initialize") - handle -end - -function process(handle, input) - result = ccall((:{{project}}_process, lib{{project}}), Cint, (Ptr{Cvoid}, UInt32), handle, input) - result -end - -function cleanup(handle) - ccall((:{{project}}_free, lib{{project}}), Cvoid, (Ptr{Cvoid},), handle) -end - -# Usage -handle = init() -try - result = process(handle, 42) - println("Result: $result") -finally - cleanup(handle) -end -``` - -## Testing - -### Unit Tests (Zig) - -```bash -cd ffi/zig -zig build test -``` - -### Integration Tests - -```bash -cd ffi/zig -zig build test-integration -``` - -### ABI Verification (Idris2) - -```idris --- Compile-time verification -%runElab verifyABI - --- Runtime checks -main : IO () -main = do - verifyLayoutsCorrect - verifyAlignmentsCorrect - putStrLn "ABI verification passed" -``` - -## Contributing - -When modifying the ABI/FFI: - -1. **Update ABI first** (`src/abi/*.idr`) - - Modify type definitions - - Update proofs - - Ensure backward compatibility - -2. **Generate C header** - ```bash - idris2 --cg c-header src/abi/Types.idr -o generated/abi/{{project}}.h - ``` - -3. **Update FFI implementation** (`ffi/zig/src/main.zig`) - - Implement new functions - - Match ABI types exactly - -4. **Add tests** - - Unit tests in Zig - - Integration tests - - ABI verification tests - -5. **Update documentation** - - Function signatures - - Usage examples - - Migration guide (if breaking changes) - -## License - -{{LICENSE}} - -## See Also - -- [Idris2 Documentation](https://idris2.readthedocs.io) -- [Zig Documentation](https://ziglang.org/documentation/master/) -- [Rhodium Standard Repositories](https://github.com/{{OWNER}}/rhodium-standard-repositories) diff --git a/a2ml/pandoc/docs/developer/README.adoc b/a2ml/pandoc/docs/developer/README.adoc deleted file mode 100644 index 1d00529d5..000000000 --- a/a2ml/pandoc/docs/developer/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= developer Unit diff --git a/a2ml/pandoc/docs/governance/0.1-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/governance/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index 6e373bd2f..000000000 --- a/a2ml/pandoc/docs/governance/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-pillar" -level: 1 -parent: "../0-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Primary governance pillar implementing the Triaxial Software Development - Methodology (TSDM). Contains planning, maintenance, and audit tracks. - -canonical_locations: - tsdm_spec: "TSDM.adoc" - planning: "planning/" - maintenance: "maintenance/" - audit: "audit/" - crg: "CRG-CRITERIA.adoc" - checklist: "MAINTENANCE-CHECKLIST.adoc" - approach: "SOFTWARE-DEVELOPMENT-APPROACH.adoc" diff --git a/a2ml/pandoc/docs/governance/CRG-CRITERIA.a2ml b/a2ml/pandoc/docs/governance/CRG-CRITERIA.a2ml deleted file mode 100644 index 99a1c4e0a..000000000 --- a/a2ml/pandoc/docs/governance/CRG-CRITERIA.a2ml +++ /dev/null @@ -1,108 +0,0 @@ -; SPDX-License-Identifier: MPL-2.0 -; Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) - -; Component Readiness Grades (CRG) — Machine-readable specification -; Format: A2ML (AI-to-Machine Language) -; Standard: CRG v1.0 - -(standard - (name "Component Readiness Grades") - (abbreviation "CRG") - (version "1.0") - (date "2026-02-28") - (author "Jonathan D.A. Jewell ") - (license "PMPL-1.0-or-later") - (family "RSR")) - -(grades - (grade - (code X) - (name "Untested") - (release-stage #f) - (ordinal 0) - (description "No testing has been performed. Status unknown.") - (evidence-required "none") - (minimum-for #f)) - (grade - (code F) - (name "Harmful / Wasteful") - (release-stage #f) - (ordinal 1) - (description "Actively harmful, wasteful, or better handled externally. Reject, deprecate, or delegate.") - (evidence-required "documented test results showing harm, waste, or redundancy; comparison with alternatives") - (minimum-for #f)) - (grade - (code E) - (name "Minimal / Salvageable") - (release-stage "pre-alpha") - (ordinal 2) - (description "Does something slight. Barely functional. Needs redesign or major work.") - (evidence-required "at least one successful test case; documented failures and limitations") - (minimum-for #f)) - (grade - (code D) - (name "Partial / Inconsistent") - (release-stage "alpha") - (ordinal 3) - (description "Works on some things but not systematically.") - (evidence-required "matrix of tested scenarios; documented scope vs actual capabilities") - (minimum-for "alpha")) - (grade - (code C) - (name "Self-Validated") - (release-stage "beta") - (ordinal 4) - (description "Tested on the tool/project itself (dogfooding). Reliable in home context.") - (evidence-required "active dogfooding; CI integration or equivalent; no known failures in home context") - (minimum-for "beta")) - (grade - (code B) - (name "Broadly Validated") - (release-stage "release-candidate") - (ordinal 5) - (description "Tested on at least 6 disparate, unrelated targets.") - (evidence-required "list of 6+ diverse targets with test results; evidence of feedback incorporation") - (minimum-for "release-candidate")) - (grade - (code A) - (name "Field-Proven") - (release-stage "stable") - (ordinal 6) - (description "Real-world external feedback confirms value. Does no harm in the wild.") - (evidence-required "real-world usage data; feedback incorporation evidence; no unresolved harm reports") - (minimum-for "stable"))) - -(transitions - (promotion - (from X) (to E) (requirement "Run at least one test. Document results.")) - (promotion - (from X) (to F) (requirement "Evaluate and determine harmful or wasteful.")) - (promotion - (from E) (to D) (requirement "Fix critical failures. Document scope.")) - (promotion - (from D) (to C) (requirement "Dogfood on own project. Fix what breaks.")) - (promotion - (from C) (to B) (requirement "Test on 6+ diverse external targets. Fix what breaks.")) - (promotion - (from B) (to A) (requirement "Ship. Collect external feedback. Demonstrate no harm.")) - (demotion - (from A) (to B) (trigger "External feedback dries up or reveals no longer useful.")) - (demotion - (from A) (to F) (trigger "External feedback reveals component causes harm.")) - (demotion - (from B) (to C) (trigger "Broad validation reveals unfixed failures.")) - (demotion - (from C) (to D) (trigger "Home context changes and component no longer reliable.")) - (demotion - (from C) (to F) (trigger "Dogfooding reveals net negative.")) - (demotion - (from D) (to E) (trigger "Scope narrows to barely functional.")) - (demotion - (from any) (to F) (trigger "Better external alternative makes this pure opportunity cost."))) - -(conformance - (rule "Each assessable component MUST have a grade from {X, F, E, D, C, B, A}.") - (rule "Each grade above X MUST be supported by evidence per section 4.") - (rule "Assessments MUST be recorded in a version-controlled location.") - (rule "Assessments MUST be reviewed at least once per release cycle.") - (rule "Release stages MUST respect minimum grade thresholds.")) diff --git a/a2ml/pandoc/docs/governance/CRG-CRITERIA.adoc b/a2ml/pandoc/docs/governance/CRG-CRITERIA.adoc deleted file mode 100644 index f8264e6d4..000000000 --- a/a2ml/pandoc/docs/governance/CRG-CRITERIA.adoc +++ /dev/null @@ -1,39 +0,0 @@ -= Component Readiness Grades (CRG) Criteria -:toc: preamble -:icons: font - -This document defines the quality assessment criteria for individual project components. - -== Grade Definitions - -[cols="1,2,3,4",options="header"] -|=== -| Grade | Name | Release Stage | Meaning - -| **A** | Field-Proven | Stable | Real-world feedback amassed; no harm in wild. -| **B** | Broadly Validated | Release Candidate | Tested on 6+ diverse external targets. -| **C** | Self-Validated | Beta | Reliable in home context (dogfooded). -| **D** | Partial | Alpha | Works on some inputs/cases but not systematically. -| **E** | Minimal | Pre-alpha | Barely functional; needs major work. -| **F** | Harmful/Wasteful | Reject/Delegate | Redundant or negative value. -| **X** | Untested | — | Status completely unknown. -|=== - -== Core Principles - -1. **Assess components, not projects:** Each feature gets its own grade. -2. **Evidence over intuition:** Every grade above X requires documented evidence. -3. **Honest assessment:** Grade the component as it is today, not as you hope it will be. -4. **Grades are earned and can be lost:** Regressions lead to demotion. - -== Assessment Checklist - -1. Has it been tested at all? (No → **X**) -2. Does it cause harm or duplicate something better? (Yes → **F**) -3. Does it do something, however slight? (Barely → **E**) -4. Does it work on some things but not others? (Partial → **D**) -5. Does it work reliably on our own project? (Dogfooded → **C**) -6. Has it been tested on 6+ diverse external targets? (Broad → **B**) -7. Do external users confirm it works and is useful? (Field-proven → **A**) - -See link:READINESS.adoc[READINESS.adoc] for the current project assessment. diff --git a/a2ml/pandoc/docs/governance/MAINTENANCE-CHECKLIST.a2ml b/a2ml/pandoc/docs/governance/MAINTENANCE-CHECKLIST.a2ml deleted file mode 100644 index eaee72059..000000000 --- a/a2ml/pandoc/docs/governance/MAINTENANCE-CHECKLIST.a2ml +++ /dev/null @@ -1,159 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Cross-repo maintenance baseline (machine-readable canonical) - -[metadata] -version = "1.1.0" -last-updated = "2026-02-24" -scope = "cross-repo" -source-human = "docs/maintenance/MAINTENANCE-CHECKLIST.adoc" -companion-human = "docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc" -companion-machine = ".machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml" - -[policy] -single-source = true -notes = "Use this file as canonical machine policy and keep markdown synchronized." - -[maintenance-axes] -scoping-first = true -execution-order = ["scoping", "axis-1", "axis-2", "axis-3"] -axis-1 = "must > intend > like" -axis-2 = "corrective > adaptive > perfective" -axis-3 = "systems > compliance > effects" - -[scoping] -inputs_required = [ - "README", - "roadmap", - "status-docs", - "maintenance-checklist", - "ci-and-security-docs", -] - -marker_scan_required = [ - "TODO", - "FIXME", - "XXX", - "HACK", - "STUB", - "PARTIAL", -] - -idris_unsound_scan_required = [ - "believe_me", - "assert_total", -] - -scope_assembly_buckets = ["must", "intend", "like"] - -[axis-2-maintenance-rules] -corrective-first = true -adaptive-second = true -adaptive_examples = [ - "scope-change reconciliation", - "stale-reference removal", - "obsolete-work culling", -] -perfective-third = true -perfective_source = "axis-1 honest state after corrective/adaptive updates" - -[axis-3-audit-rules] -systems-check = true -documentation-honesty-check = true -safety-security-accounted-check = true -effects-review-check = true -benchmark-evidence-required = true -maintainer-dialogue-review-required = true -compliance-seams-check = true -exception-register-required = true -exception-bounded-scope-required = true -policy-drift-contamination-check = true -example-drift-risk = "single TypeScript exception causing broad ReScript->TypeScript migration" -compliance-tooling = "panic-attack" -effects-tooling = "ecological checking with sustainabot guidance" - -[generic-cleanup-finish-off] -root-cleanup-required = true -stale-work-cull-required = true -docs-parity-required = true -machine-human-sync-required = true -compliance-finish-off-required = true -effects-finish-off-required = true -release-prep-summary-required = true -next-actions-required = ["corrective", "adaptive", "perfective"] - -[must] -root_control_files = [ - ".gitignore", - ".gitattributes", - ".editorconfig", - ".tool-versions", - "Containerfile", - "Justfile", -] - -root_hosting_files = [ - "CNAME", - ".nojekyll", -] - -ownership_files = [ - "MAINTAINER", - ".github/CODEOWNERS", -] - -machine_readable_required = [ - ".machine_readable/anchors/ANCHOR.a2ml", - ".machine_readable/contractiles/", - ".machine_readable/ai/", - ".machine_readable/bot_directives/", -] - -contractiles_required = [ - "Mustfile", - "Trustfile", - "Intentfile", -] - -security_required = [ - ".well-known/security.txt", - "ci-security-scan", -] - -quality_gate_required = [ - "format", - "lint", - "unit-tests", - "integration-tests", - "p2p-tests", - "e2e-tests", - "bench-smoke", - "docs-check", - "security-scan", -] - -abi_ffi_policy = [ - "ABI Idris2 in src/interface/abi/*.idr", - "FFI Zig in ffi/**/*.zig", -] - -[should] -docs_primary_format = "adoc" -docs_structure = [ - "docs/theory", - "docs/practice", - "docs/whitepapers/academic", - "docs/whitepapers/industry", - "docs/proofs", - "docs/reports", -] - -root_minimization = true -well_known_metadata = true -roadmap_honesty_with_dates = true -ci_doc_format_policy = true - -[could] -generate_human_from_machine = true -mode_aware_bots = ["corrective", "adaptive", "perfective", "audit"] -topology_dashboard = true -exception_registry = true diff --git a/a2ml/pandoc/docs/governance/MAINTENANCE-CHECKLIST.adoc b/a2ml/pandoc/docs/governance/MAINTENANCE-CHECKLIST.adoc deleted file mode 100644 index dd74edc1c..000000000 --- a/a2ml/pandoc/docs/governance/MAINTENANCE-CHECKLIST.adoc +++ /dev/null @@ -1,569 +0,0 @@ -= Maintenance Checklist -# Maintenance Checklist (Cross-Repo) - -Use this as a repeatable maintenance runbook for any repo. - -Companion policy: - -- `docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc` (human-readable) -- `.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml` (machine-readable) - -## Canonical Repo Baseline (Final) - -Apply this baseline to every repo unless an explicit exception is recorded. - -### Three-Axis Default Model - -- [ ] Axis 1 (scope priority, runs first): `must > intend > like` -- [ ] Axis 2 (maintenance priority): `corrective > adaptive > perfective` -- [ ] Axis 3 (audit priority): `systems > compliance > effects` -- [ ] Perfective items are derived from Axis 1 honest state (not started independently). - -### Axis 1 Scoping Pass (Mandatory) - -Before Axis 2/3 execution, assemble a scoped worklist from evidence: - -- [ ] Read and reconcile: `README`, roadmap, status docs, maintenance checklist, and current CI/security docs. -- [ ] Scan for unfinished markers: `TODO`, `FIXME`, `XXX`, `HACK`, `STUB`, `PARTIAL`. -- [ ] If Idris is present, scan unsoundness markers: `believe_me`, `assert_total`. -- [ ] Identify declared intent vs actual implementation (docs honesty check). -- [ ] Produce a scope assembly artifact with prioritized entries under: - - `must` (release blockers / safety / correctness) - - `intend` (planned near-term) - - `like` (nice-to-have) - -### Axis 2 Maintenance Execution Rules - -- [ ] Corrective first: fix breakage, defects, regressions, safety issues. -- [ ] Adaptive second: reconcile changed scope, remove stale references, cull no-longer-relevant work. -- [ ] Perfective third: only from current honest state established by Axis 1 and updated by corrective/adaptive actions. - -### Axis 3 Audit Rules - -- [ ] Verify systems are in place and actually operating. -- [ ] Verify documentation explains the real/current state (not aspirational-only), including documented exceptions. -- [ ] Verify safety and security controls are present, active, and evidenced. -- [ ] Verify observed effects/impacts are captured and reviewed. -- [ ] Effects audit includes: - - benchmark execution and recorded results (with before/after where relevant) - - explicit maintainer dialogue/status review on what changed, why, and next risks -- [ ] Audit compliance seams/compromises explicitly: - - policy exceptions are recorded with rationale, scope, and expiry/review - - exception does not silently broaden into general policy drift - - language-policy contamination checks run (example: a single TS exception must not trigger broad TypeScript conversion) - - run `panic-attack` as the compliance-audit scanner - - run ecological checking under effects (using sustainabot guidance as current baseline) - -### Generic Cleanup And Finish-Off Pass - -Run this pass at the end of a corrective/adaptive/perfective cycle: - -- [ ] Root cleanup: - - keep only required control/entry files in root - - move non-essential docs/reports/fixtures to canonical folders -- [ ] Remove or archive stale work: - - close out completed TODO/STUB/PARTIAL items - - cull obsolete references, dead files, and superseded plans -- [ ] Documentation finish-off: - - ensure README, roadmap, status, and wiki match actual implementation state - - ensure machine-readable policy/state files match human docs -- [ ] Security/compliance finish-off: - - run compliance scanner (`panic-attack`) and resolve high-priority findings - - verify exception register and seams/compromises are explicitly bounded -- [ ] Effects finish-off: - - run benchmark/effects checks and record evidence - - conduct explicit maintainer review dialogue (what changed, why, remaining risks) -- [ ] Release-prep finish-off: - - produce Must/Should/Could summary - - produce immediate corrective/adaptive/perfective next-actions list - -### Must - -- [ ] Keep required control files at repository root: - - `.gitignore`, `.gitattributes`, `.editorconfig`, `.tool-versions` - - `Containerfile` - - `.containerignore` (or `.dockerignore` only when required for compatibility) - - `CNAME` and `.nojekyll` when using GitHub Pages/custom domain - - `Justfile` (root by convention) -- [ ] Keep ownership/governance files present: - - `MAINTAINER` in root - - `.github/CODEOWNERS` -- [ ] Keep machine-readable canonical structure under `.machine_readable/`: - - state/meta/ecosystem files (`*.a2ml` or repo standard) - - `anchors/ANCHOR.a2ml` - - `contractiles/` (`must`, `trust`, `lust`, and related) - - `ai/` for AI guidance files - - `bot_directives/` for bot control files -- [ ] Keep contractiles/invariants present and wired: - - root `Mustfile` (or equivalent) with enforceable checks - - `Trustfile` and `Intentfile` present -- [ ] Keep security metadata present: - - `.well-known/security.txt` and relevant policy metadata - - CI security scanning configured and runnable -- [ ] Keep docs and navigation coherent: - - single navigation entry point in root (`NAVIGATION.adoc` or equivalent) - - no duplicate conflicting docs for same purpose (for example both `.md` and `.adoc` in root unless intentionally required) -- [ ] Enforce ABI/FFI purity where the policy applies: - - ABI definitions in Idris2 (`src/abi/*.idr`) - - FFI implementations in Zig (`ffi/**/*.zig`) -- [ ] Ensure quality gate includes: formatting, lint, unit/integration tests, p2p/e2e checks, benchmark smoke, docs checks, security scan. - -### Should - -- [ ] Keep human docs primarily in AsciiDoc (`.adoc`) except where ecosystem rules require other formats (GitHub/community health, legal text, tool-specific files). -- [ ] Keep non-essential root files moved into structured folders: - - `docs/` (theory/practice/whitepapers/proofs/reports) - - `tests/` (fixtures/outputs) - - `docs/legal/` (while retaining root `LICENSE` when forge detection needs it) -- [ ] Maintain `.well-known/` for public metadata where applicable (`security.txt`, `humans.txt`, `ads.txt` mirrors if used). -- [ ] Keep CI policy checks for doc-format conventions and canonical file placement. -- [ ] Keep roadmap/status docs honest with dated evidence. - -### Could - -- [ ] Maintain both human and machine views of maintenance policy from a single source (generate one from the other). -- [ ] Add policy bots for corrective/adaptive/perfective/audit modes. -- [ ] Add repo-level architecture map (`TOPOLOGY.md`) and release-readiness dashboards. -- [ ] Add per-repo exception registry for approved policy deviations. - -### Explicit Root-Placement Rule - -Do **not** move the following out of root if you want default tool behavior: - -- `.gitignore`, `.gitattributes`, `.editorconfig`, `.tool-versions` -- `Containerfile` and ignore file (`.containerignore`/`.dockerignore`) -- `CNAME` and `.nojekyll` for GitHub Pages -- `Justfile` - -## Quick Automated Run (Script) - -Use the helper script first, then use the checklist for deeper/manual follow-up. - -Script locations: -- `$REPOS_DIR/run-maintenance.sh` -- `~/Desktop/run-maintenance.sh` - -```bash -~/Desktop/run-maintenance.sh --repo /absolute/path/to/repo --output /tmp/maintenance-report.json -jq . /tmp/maintenance-report.json -``` - -Useful flags: - -```bash -# Strict mode: fail process on failed checks -~/Desktop/run-maintenance.sh --repo /absolute/path/to/repo --strict - -# Skip expensive checks when needed -~/Desktop/run-maintenance.sh --repo /absolute/path/to/repo --skip-panic - -# Explicit language selection -~/Desktop/run-maintenance.sh --repo /absolute/path/to/repo --rust --python - -# Release hard-pass mode (fails on warnings or failures) -~/Desktop/run-maintenance.sh --repo /absolute/path/to/repo --fail-on-warn -``` - -Permission policy in script: -- Flags `g+w/o+w` files/dirs -- Flags suspicious executable files -- Flags shebang scripts missing executable bit -- Supports repo-local exceptions via `.maintenance-perms-ignore` (regex per line) -- **Audit-first by default** (non-mutating) -- `--fix-perms` is explicit opt-in only (never implicit) -- For reversible local hardening, pair snapshot/restore scripts where available: - - `scripts/maintenance/perms-state.sh snapshot` - - `scripts/maintenance/perms-state.sh lock` - - `scripts/maintenance/perms-state.sh restore` - -Important git behavior: -- Git generally tracks execute bit, not full UNIX mode matrix. -- Permission hardening audits do not force collaborators to re-unlock every file on pull. -- Keep lock mode opt-in, with restore path documented. - -```bash -# Audit-only (recommended default) -~/Desktop/run-maintenance.sh --repo /absolute/path/to/repo - -# Opt-in permission fixes (review output before commit) -~/Desktop/run-maintenance.sh --repo /absolute/path/to/repo --fix-perms -``` - -## 0) Setup - -```bash -REPO="/absolute/path/to/repo" -cd "$REPO" -``` - -```bash -date -u -git rev-parse --abbrev-ref HEAD -git rev-parse HEAD -git status --porcelain -``` - -## 1) Preflight - -- [ ] Confirm clean intent: note existing unrelated dirty files before edits. -- [ ] Confirm runtime/toolchain versions. -- [ ] Confirm container mode expectation (`podman`/`podman-compose`) if required. - -```bash -command -v rg git jq || true -command -v podman podman-compose || true -``` - -## 2) Dependency/Env Prereqs - -- [ ] Python deps in active interpreter (for Python paths). -- [ ] Language-specific tooling installed. - -```bash -python -c "import sys; print(sys.executable)" -python -c "import pydantic; print(pydantic.__version__)" || echo "pydantic missing" -``` - -## 3) Corrective Maintenance First - -- [ ] Fix regressions, runtime errors, panics, broken commands, failing tests. -- [ ] Re-run failing checks immediately after each fix. - -## 4) Code Health Scans - -- [ ] `TODO/FIXME/XXX/HACK/STUB/PARTIAL` scan. -- [ ] Permission policy scan (`g+w/o+w`, executable hygiene). -- [ ] ABI/FFI policy scan (if applicable: Idris2 ABI, Zig FFI). - -```bash -rg -n "TODO|FIXME|XXX|HACK|STUB|PARTIAL" -g '!**/.git/**' -g '!**/target/**' . -``` - -```bash -# Optional per-repo exceptions (regex per line): -# .maintenance-perms-ignore -# ^vendor/ -# ^third_party/ -``` - -```bash -# Adjust paths for your repo layout -find . -type f \( -name '*.idr' -o -name '*.idris2' -o -name '*.zig' \) -``` - -## 5) Panic/Safety/Security Pass - -- [ ] Run `panic-attacker` assail/assault. -- [ ] Triage findings by severity. -- [ ] Fix high first, then medium. -- [ ] Re-run until acceptable. - -```bash -PANIC_BIN="${REPOS_DIR:-$HOME/Documents/hyperpolymath-repos}/panic-attacker/target/release/panic-attack" -"$PANIC_BIN" assail "$REPO" --output /tmp/assail.json --output-format json --quiet -jq -r '.weak_points | length' /tmp/assail.json -jq -r '.weak_points[] | "\(.severity)|\(.location)|\(.description)"' /tmp/assail.json -``` - -```bash -# If repo has production-only source builder, prefer this for baseline checks: -./scripts/ci/build-panic-assail-source.sh /tmp/panic-src -"$PANIC_BIN" assail /tmp/panic-src --output /tmp/assail-prod.json --output-format json --quiet -``` - -## 6) Language-Specific Validation - -### Rust - -- [ ] Format -- [ ] Lint -- [ ] Tests -- [ ] Doc tests -- [ ] Benches (where relevant) - -```bash -cargo fmt --all --check -cargo clippy --workspace --all-targets -- -D warnings -cargo test --workspace -cargo test --workspace --doc -# Optional targeted benchmarks: -cargo bench -``` - -### Python - -- [ ] Format/lint -- [ ] Type check -- [ ] Tests - -```bash -ruff check . -ruff format --check . -mypy . -pytest -q -``` - -### Elixir - -- [ ] Format check -- [ ] Lint/static checks -- [ ] Tests - -```bash -mix format --check-formatted -mix credo --strict -mix test -``` - -## 7) Container/Runtime Checks (Podman) - -- [ ] Build container path. -- [ ] Run smoke tests inside containerized flow. -- [ ] Compare host vs container behavior for parity. - -```bash -podman --version -podman compose version || podman-compose --version -``` - -## 8) Benchmark + Regression Check - -- [ ] Capture before/after metrics for touched hot paths. -- [ ] Record command + sample size + output. -- [ ] Fail change if critical path regresses beyond threshold. - -## 9) Adaptive and Perfective Maintenance - -- [ ] Adaptive: compatibility updates (tooling/API/deprecations/config flags). -- [ ] Perfective: clarity, docs parity, developer workflow improvements. -- [ ] Update roadmap/checklist/docs to match actual implementation state. - -## 10) Final QA and Release Hygiene - -- [ ] Re-run full relevant checks one final time. -- [ ] Confirm no unintended file changes. -- [ ] Commit scoped changes with clear message. -- [ ] Push and capture commit SHA. - -```bash -git status --short -git diff --stat -git add -git commit -m "maint: " -git push -``` - -## 11) Maintenance Report Template - -Copy this block per repo run: - -```text -Repo: -Branch: -Start UTC: -End UTC: - -Scope: -- Corrective: -- Adaptive: -- Perfective: - -Checks Run: -- TODO/FIXME scan: -- Panic-attacker: -- Rust/Python/Elixir checks: -- Container checks: -- Benchmark checks: - -Findings: -- High: -- Medium: -- Low: - -Fixes Applied: -1. -2. -3. - -Validation Results: -- Tests: -- Benchmarks: -- Panic-attacker rerun: - -Artifacts: -- assail report: -- benchmark output: -- logs: - -Commit(s): -- SHA: - -Remaining Risks / Follow-ups: -1. -2. -``` - -## 12) Language-Repo Additions (Eclexia-Specific) - -Add these checks for language/compiler repositories with formal ABI/FFI constraints: - -- [x] README structure restored (index/TOC, audience paths, quickstart sanity). -- [x] Wiki split by audience (laypeople/users/developers) and linked from docs index. -- [x] Root-level clutter reduced (archive, analysis, reports relegated to `docs/` subtrees). -- [x] Machine-readable docs synchronized (`STATE.scm`, `META.scm`, `ECOSYSTEM.scm`, contractiles). -- [x] Human-readable docs synchronized (`README`, `QUICK_STATUS`, roadmap, wiki home). -- [x] `Mustfile` invariants present and enforceable in CI. -- [x] `Trustfile` and `Intentfile` present and complete. -- [x] FFI/ABI purity policy enforced (`*.zig` for FFI, `*.idr`/Idris2 for ABI). -- [x] `panic-attack` findings triaged with explicit severity budget for release. -- [x] Point-to-point, end-to-end, and benchmark checks wired in one quality gate. -- [x] CI workflows include quality + security + docs checks with explicit policy. -- [x] Release audit includes corrective/adaptive/perfective + Must/Should/Could. -- [x] Roadmap/status honesty pass completed (dates and current evidence updated). - -## 13) Latest Execution Record (Eclexia, 2026-02-24) - -Repo: `/tmp/eclexia-releaseprep` (branch `release-prep`, base `533ec9e9447f374135cc9e2e81021624ddb3c0ad`) - -### 13.1 Setup/Preflight - -- [x] Captured UTC timestamp and git state. -- [x] Tooling presence verified (`rg`, `git`, `jq`, `cargo`, `rustc`, `just`). -- [x] Runtime/toolchain versions captured. -- [x] Container tooling checked (`podman`, `podman-compose`). - -### 13.2 Corrective Maintenance - -- [x] Fixed `panic-attack` script path handling (`mktemp` output + local fallback binary detection). -- [x] Removed Idris `believe_me` usage from ABI wrappers. -- [x] Fixed conformance crash-noise path by skipping known intentional stack-overflow case in default runner. -- [x] Re-ran affected checks after each fix. - -### 13.3 Code-Health Scans - -- [x] TODO/FIXME/STUB/PARTIAL scan run on active code paths. -- [x] ABI/FFI file inventory run (`*.idr`, `*.zig`). -- [x] Active-code marker count reduced/triaged; remaining items tracked in release audit. - -### 13.4 Security/Panic Pass - -- [x] `panic-attack` run and triaged. -- [x] Critical findings cleared (Idris unsoundness markers removed). -- [x] Current baseline: 0 weak points (Critical 0, High 0, Medium 0, Low 0). -- [x] High/Medium backlog fully eliminated. - -### 13.5 Language Validation - -- [x] Final `just quality-gate` pass completed (docs, fmt, lint, unit, conformance, integration, p2p, e2e, bench). -- [x] Additional targeted reruns completed (`just test-conformance`, `just panic-attack`, `just docs-check`). - -### 13.6 Adaptive/Perfective/Docs - -- [x] README/wiki/docs structure and indexing restored. -- [x] Root tidy/relegation pass executed. -- [x] Roadmap/status honesty update performed with current date and evidence links. -- [x] Release audit created with corrective/adaptive/perfective + Must/Should/Could. -- [x] Full quality-gate rerun passed after hardening updates. -- [x] ABI/FFI extension lane added without breaking stable symbols (`ecl_abi_get_info`, `ecl_tracker_create_ex`, `ecl_tracker_snapshot`). -- [x] CI quality workflow now validates sibling `proven` repo presence and critical binding files. -- [x] Proven roadmap now includes explicit "critical core, not full rewrite" adoption guidance and flowchart. - -### 13.7 Outstanding Items (Explicit) - -- [x] Stable `v1.0.0` technical gate readiness met (quality + panic scan clean). -- [x] Parser/codegen/runtime panic-path hardening completed for scanner-flagged paths. -- [x] Non-eclexia `proven` library checked: already Idris2-first with Zig ABI bridge; no additional integration changes required in this run. -- [ ] Remote push blocked by token scope: GitHub rejected branch updates (`release-prep`, `release-prep-pushable`) due missing `workflow` OAuth scope. - -### 13.8 Artifacts - -- Release audit: `docs/reports/V1-READINESS-AUDIT-2026-02-24.md` -- Panic report: `/tmp/eclexia-panic-attack.KZ1jpC.json` (0 weak points) -- Final quality gate log: `/tmp/eclexia-quality-gate-final2.log` (plus post-change reruns via terminal sessions) -- Local commits: `88fa2af` (`release-prep`), `baa3d1c` (`release-prep-pushable`) + pending new commit from this pass - -## 12) LLM Operator Instructions - -Use this prompt with an LLM agent when you want the process run end-to-end: - -```text -Run the maintenance workflow for this repo using MAINTENANCE-CHECKLIST.md. - -Required behavior: -1. Run ~/Desktop/run-maintenance.sh first and collect the JSON report. -2. Triage report results by severity: fail > warn > pass. -3. Execute corrective maintenance first (fix regressions, panics, broken tests/commands). -4. Run TODO/FIXME/stub scan and address relevant items. -5. Run panic-attacker and fix findings in priority order; rerun to confirm. -6. Run language-specific checks (Rust/Python/Elixir) relevant to this repo. -7. Run benchmark/regression checks for touched hot paths. -8. Enforce permission policy: - - no group/world writable source files unless justified - - executable bit only where intended - - use .maintenance-perms-ignore for justified exceptions -9. Update docs/roadmap/checklist entries to reflect actual state. -10. Produce a final report using the template in MAINTENANCE-CHECKLIST.md. - -Constraints: -- Do not revert unrelated existing dirty changes. -- Stage and commit only scoped intended files. -- If blocked, state exactly what is blocked and why. -``` - -## 13) AI Execution Integrity Contract (Mandatory) - -Use this when delegating maintenance to any AI (Gemini/Claude/ChatGPT/etc.). - -```text -You must execute this maintenance run with strict integrity. - -Non-negotiable rules: -1. Do not claim any step is complete unless you actually ran it. -2. Do not silently skip checklist items. If skipped, state SKIPPED + exact reason. -3. For every check, provide evidence: - - command executed - - pass/fail/warn - - key output summary - - artifact/log path -4. If a command fails, stop claiming success and report the failure clearly. -5. After each fix, re-run the relevant failing check and report the rerun result. -6. Do not hide uncertainty. If unsure, say so and run additional verification. -7. Never mark “all done” while any fail/warn remains unexplained. -8. Do not make destructive or broad permission changes by default. - - permission changes must be audit-first - - use --fix-perms only with explicit intent -9. Final output must include: - - checklist coverage matrix (each item: PASS/FAIL/WARN/SKIPPED) - - unresolved risks - - exact next actions -10. Prioritize user safety and reputation: no “looks fine” claims without evidence. -``` - -Recommended enforcement line for AI prompts: - -```text -Fail closed: if evidence is missing for any checklist item, treat that item as NOT DONE. -``` - -## 14) Fleet Enrollment Automation (Gitbot + Hypatia) - -For centralized coverage across existing and new repos: - -```bash -cd "$REPOS_DIR/gitbot-fleet" -just enroll-repos -``` - -Optional directive write-back to repos that already have `.machine_readable/`: - -```bash -cd "$REPOS_DIR/gitbot-fleet" -just enroll-repos "$REPOS_DIR" true -``` - -Release hard gate from fleet: - -```bash -cd "$REPOS_DIR/gitbot-fleet" -just maintenance-hard-pass /absolute/path/to/repo -``` diff --git a/a2ml/pandoc/docs/governance/README.adoc b/a2ml/pandoc/docs/governance/README.adoc deleted file mode 100644 index 114ee94b2..000000000 --- a/a2ml/pandoc/docs/governance/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Governance Pillar (TSDM) diff --git a/a2ml/pandoc/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.a2ml b/a2ml/pandoc/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.a2ml deleted file mode 100644 index 093573a07..000000000 --- a/a2ml/pandoc/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.a2ml +++ /dev/null @@ -1,53 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# General software development approach (machine-readable) - -[metadata] -version = "1.0.0" -last-updated = "2026-02-24" -scope = "cross-repo" -source-human = "docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc" - -[execution] -order = ["axis-1", "axis-2", "axis-3"] - -[axis-1] -name = "scope" -priority = "must > intend > like" -inputs = [ - "README", - "roadmap", - "status-docs", - "ci-and-security-docs", -] -marker-scan = ["TODO", "FIXME", "XXX", "HACK", "STUB", "PARTIAL"] -idris-unsound-scan = ["believe_me", "assert_total"] -output = "scoped-work-assembly" - -[axis-2] -name = "maintenance" -priority = "corrective > adaptive > perfective" -corrective = "defect/regression/safety/security fixes" -adaptive = "scope reconciliation, stale-reference removal, obsolete-work culling" -perfective = "quality improvements derived from axis-1 honest state" - -[axis-3] -name = "audit" -priority = "systems > compliance > effects" -systems = "required systems present and operating" -compliance = "exceptions explicit, bounded, and drift-resistant" -effects = "benchmark/operational impact evidence captured and reviewed" -compliance-tooling = "panic-attack" -effects-tooling = "ecological checking with sustainabot guidance" - -[cleanup-finish-off] -root-cleanup = true -stale-work-cull = true -docs-sync-human-machine = true -compliance-audit = true -effects-audit = true -release-summary = ["must", "should", "could"] -next-actions = ["corrective", "adaptive", "perfective"] - -[collaboration] -maintainer-dialogue-required = true -dialogue-topics = ["what changed", "why", "remaining risks"] diff --git a/a2ml/pandoc/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.adoc b/a2ml/pandoc/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.adoc deleted file mode 100644 index e8805c684..000000000 --- a/a2ml/pandoc/docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.adoc +++ /dev/null @@ -1,63 +0,0 @@ -= Software Development Approach (General) -:toc: left -:toclevels: 2 - -This is the general operating policy for software development across repositories. - -== Core Sequence - -Always run work in this order: - -1. Scope first (Axis 1) -2. Maintenance second (Axis 2) -3. Audit third (Axis 3) - -== Axis Definitions - -=== Axis 1: Scope - -Priority order: `must > intend > like` - -Axis 1 output is a scoped assembly of work based on: - -* README, roadmap, status, CI/security docs -* marker scans (`TODO`, `FIXME`, `XXX`, `HACK`, `STUB`, `PARTIAL`) -* Idris unsoundness scan when Idris exists (`believe_me`, `assert_total`) -* docs honesty check (intent vs actual implementation) - -=== Axis 2: Maintenance - -Priority order: `corrective > adaptive > perfective` - -* Corrective: fix defects, regressions, breakage, security/safety failures -* Adaptive: reconcile scope changes, remove stale references, cull obsolete work -* Perfective: improve quality/clarity/performance only from the honest Axis 1 state - -=== Axis 3: Audit - -Priority order: `systems > compliance > effects` - -* Systems: required mechanisms exist and are operating -* Compliance: seams/compromises/exceptions are explicit, bounded, and do not drift -* Effects: benchmark and operational impact evidence is captured and reviewed - -Compliance scanner baseline: `panic-attack` + -Effects/ecological baseline: sustainabot-guided ecological checking - -== Generic Cleanup And Finish-Off - -At cycle end: - -* reduce root clutter to required control/entry files -* archive/remove stale or superseded work -* synchronize human and machine docs -* run compliance and effects audits with evidence capture -* produce Must/Should/Could summary and immediate next-actions list - -== Collaboration Rule - -Effects review must include explicit maintainer dialogue: - -* what changed -* why it changed -* what risks remain diff --git a/a2ml/pandoc/docs/governance/TSDM.a2ml b/a2ml/pandoc/docs/governance/TSDM.a2ml deleted file mode 100644 index f27036cc7..000000000 --- a/a2ml/pandoc/docs/governance/TSDM.a2ml +++ /dev/null @@ -1,22 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [TSDM_SPEC] -id: "tsdm-standard" -version: "1.0.0" - -axes: - axis_1: - name: "Planning" - levels: ["must", "should", "could"] - axis_2: - name: "Maintenance" - levels: ["corrective", "adaptive", "perfective"] - axis_3: - name: "Audit" - levels: ["systems", "compliance", "effects"] - -invariants: - - "Every task MUST map to at least one TSDM coordinate" - - "Axis 1 priority governs resource allocation" - - "Axis 2 type governs commit categorisation" - - "Axis 3 focus governs audit depth" diff --git a/a2ml/pandoc/docs/governance/TSDM.adoc b/a2ml/pandoc/docs/governance/TSDM.adoc deleted file mode 100644 index cbd582c0e..000000000 --- a/a2ml/pandoc/docs/governance/TSDM.adoc +++ /dev/null @@ -1,26 +0,0 @@ -= Triaxial Software Development Methodology (TSDM) -:toc: preamble -:icons: font - -TSDM is a three-dimensional governance framework designed for high-assurance, long-lived software systems. It ensures that every project decision is mapped across three critical axes: Planning, Maintenance, and Audit. - -== The Three Axes - -=== Axis 1: Planning (Scope Priority) -* **Must:** Non-negotiable core invariants and safety requirements. -* **Should:** Essential features and planned improvements. -* **Could:** Desired enhancements and future-proofing. - -=== Axis 2: Maintenance (Execution Type) -* **Corrective:** Fixing bugs, vulnerabilities, and failures. -* **Adaptive:** Responding to environment or dependency changes. -* **Perfective:** Improving performance, refactoring, and documentation. - -=== Axis 3: Audit (Verification Focus) -* **Systems:** Integrity of tools, infrastructure, and automation. -* **Compliance:** Adherence to standards, licenses, and verified seams. -* **Effects:** Real-world impact, ecological footprint, and user feedback. - -== Integration - -TSDM is the operational core of the Rhodium Standard. Every task in the `Justfile` and every state change in `STATE.a2ml` should be justifiable within this framework. diff --git a/a2ml/pandoc/docs/governance/audit/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/governance/audit/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 472248699..000000000 --- a/a2ml/pandoc/docs/governance/audit/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-axis-audit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM Audit track. diff --git a/a2ml/pandoc/docs/governance/audit/README.adoc b/a2ml/pandoc/docs/governance/audit/README.adoc deleted file mode 100644 index fac374040..000000000 --- a/a2ml/pandoc/docs/governance/audit/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Audit Axis diff --git a/a2ml/pandoc/docs/governance/audit/compliance/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/governance/audit/compliance/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index b13ec695f..000000000 --- a/a2ml/pandoc/docs/governance/audit/compliance/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-compliance" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM compliance unit within the Audit axis. diff --git a/a2ml/pandoc/docs/governance/audit/compliance/README.adoc b/a2ml/pandoc/docs/governance/audit/compliance/README.adoc deleted file mode 100644 index 876954fd9..000000000 --- a/a2ml/pandoc/docs/governance/audit/compliance/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Compliance Unit diff --git a/a2ml/pandoc/docs/governance/audit/effects/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/governance/audit/effects/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 0bccae0d0..000000000 --- a/a2ml/pandoc/docs/governance/audit/effects/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-effects" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM effects unit within the Audit axis. diff --git a/a2ml/pandoc/docs/governance/audit/effects/README.adoc b/a2ml/pandoc/docs/governance/audit/effects/README.adoc deleted file mode 100644 index 363479943..000000000 --- a/a2ml/pandoc/docs/governance/audit/effects/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Effects Unit diff --git a/a2ml/pandoc/docs/governance/audit/systems/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/governance/audit/systems/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index f97bc9ccb..000000000 --- a/a2ml/pandoc/docs/governance/audit/systems/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-systems" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM systems unit within the Audit axis. diff --git a/a2ml/pandoc/docs/governance/audit/systems/README.adoc b/a2ml/pandoc/docs/governance/audit/systems/README.adoc deleted file mode 100644 index 8d179b4aa..000000000 --- a/a2ml/pandoc/docs/governance/audit/systems/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Systems Unit diff --git a/a2ml/pandoc/docs/governance/maintenance/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/governance/maintenance/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 8e0dff5ec..000000000 --- a/a2ml/pandoc/docs/governance/maintenance/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-axis-maintenance" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM Maintenance track. diff --git a/a2ml/pandoc/docs/governance/maintenance/README.adoc b/a2ml/pandoc/docs/governance/maintenance/README.adoc deleted file mode 100644 index 0ed2f1b50..000000000 --- a/a2ml/pandoc/docs/governance/maintenance/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Maintenance Axis diff --git a/a2ml/pandoc/docs/governance/maintenance/adaptive/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/governance/maintenance/adaptive/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 63d1a9992..000000000 --- a/a2ml/pandoc/docs/governance/maintenance/adaptive/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-adaptive" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM adaptive unit within the Maintenance axis. diff --git a/a2ml/pandoc/docs/governance/maintenance/adaptive/README.adoc b/a2ml/pandoc/docs/governance/maintenance/adaptive/README.adoc deleted file mode 100644 index 7b60992af..000000000 --- a/a2ml/pandoc/docs/governance/maintenance/adaptive/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Adaptive Unit diff --git a/a2ml/pandoc/docs/governance/maintenance/corrective/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/governance/maintenance/corrective/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 05cb89da1..000000000 --- a/a2ml/pandoc/docs/governance/maintenance/corrective/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-corrective" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM corrective unit within the Maintenance axis. diff --git a/a2ml/pandoc/docs/governance/maintenance/corrective/README.adoc b/a2ml/pandoc/docs/governance/maintenance/corrective/README.adoc deleted file mode 100644 index ed904a81f..000000000 --- a/a2ml/pandoc/docs/governance/maintenance/corrective/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Corrective Unit diff --git a/a2ml/pandoc/docs/governance/maintenance/perfective/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/governance/maintenance/perfective/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 832762feb..000000000 --- a/a2ml/pandoc/docs/governance/maintenance/perfective/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-perfective" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM perfective unit within the Maintenance axis. diff --git a/a2ml/pandoc/docs/governance/maintenance/perfective/README.adoc b/a2ml/pandoc/docs/governance/maintenance/perfective/README.adoc deleted file mode 100644 index 8759d74d9..000000000 --- a/a2ml/pandoc/docs/governance/maintenance/perfective/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Perfective Unit diff --git a/a2ml/pandoc/docs/governance/planning/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/governance/planning/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 80339e77c..000000000 --- a/a2ml/pandoc/docs/governance/planning/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-axis-planning" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM Planning track. diff --git a/a2ml/pandoc/docs/governance/planning/README.adoc b/a2ml/pandoc/docs/governance/planning/README.adoc deleted file mode 100644 index 62aa375f2..000000000 --- a/a2ml/pandoc/docs/governance/planning/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Planning Axis diff --git a/a2ml/pandoc/docs/governance/planning/could/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/governance/planning/could/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index fc17a27d0..000000000 --- a/a2ml/pandoc/docs/governance/planning/could/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-could" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM could unit within the Planning axis. diff --git a/a2ml/pandoc/docs/governance/planning/could/README.adoc b/a2ml/pandoc/docs/governance/planning/could/README.adoc deleted file mode 100644 index ad5a6b82f..000000000 --- a/a2ml/pandoc/docs/governance/planning/could/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Could Unit diff --git a/a2ml/pandoc/docs/governance/planning/must/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/governance/planning/must/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 0987daeed..000000000 --- a/a2ml/pandoc/docs/governance/planning/must/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-must" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM must unit within the Planning axis. diff --git a/a2ml/pandoc/docs/governance/planning/must/README.adoc b/a2ml/pandoc/docs/governance/planning/must/README.adoc deleted file mode 100644 index 47eb46dc4..000000000 --- a/a2ml/pandoc/docs/governance/planning/must/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Must Unit diff --git a/a2ml/pandoc/docs/governance/planning/should/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/governance/planning/should/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index f492289a3..000000000 --- a/a2ml/pandoc/docs/governance/planning/should/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "governance-unit-should" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - TSDM should unit within the Planning axis. diff --git a/a2ml/pandoc/docs/governance/planning/should/README.adoc b/a2ml/pandoc/docs/governance/planning/should/README.adoc deleted file mode 100644 index 605489c8c..000000000 --- a/a2ml/pandoc/docs/governance/planning/should/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Should Unit diff --git a/a2ml/pandoc/docs/legal/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/legal/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index e54779833..000000000 --- a/a2ml/pandoc/docs/legal/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,16 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "legal-track" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-unit for legal and licensing documentation. Contains framework - exhibits and archival license texts. - -canonical_locations: - exhibits: "exhibits/" - texts: "texts/" diff --git a/a2ml/pandoc/docs/legal/EXHIBIT-A-ETHICAL-USE.txt b/a2ml/pandoc/docs/legal/EXHIBIT-A-ETHICAL-USE.txt deleted file mode 100644 index 0b20fca23..000000000 --- a/a2ml/pandoc/docs/legal/EXHIBIT-A-ETHICAL-USE.txt +++ /dev/null @@ -1,68 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 - -================================================================================ -EXHIBIT A — ETHICAL USE GUIDELINES -Palimpsest-MPL License Version 1.0 -================================================================================ - -1. PURPOSE - - These guidelines define ethical use expectations for software distributed - under the Palimpsest-MPL License. They are not legally binding restrictions - but represent the community's shared values and expectations. - -2. PRINCIPLES - - 2.1. Respect for Emotional Lineage - Users and distributors should acknowledge and preserve the cultural, - narrative, and symbolic meaning embedded in Covered Software. This - includes protest traditions, cultural heritage, trauma narratives, - and community stories where documented. - - 2.2. Transparency in Automated Processing - When Covered Software is processed by Non-Interpretive Systems - (AI training, content aggregation, automated summarization), such - use should be documented publicly and not misrepresent the - provenance of outputs. - - 2.3. Good Faith Attribution - Contributors should be credited accurately. Derivative works should - maintain the attribution chain and not obscure the origins of - contributions. - - 2.4. Community Benefit - Commercial use of Covered Software should contribute to the broader - community through bug fixes, documentation, or other improvements - where feasible. - -3. SPECIFIC GUIDANCE - - 3.1. AI and Machine Learning - - Training on Covered Software requires disclosure - - Generated outputs must not claim Emotional Lineage of the original - - Model cards should reference source materials - - 3.2. Content Aggregation - - Aggregators must link back to original sources - - Context must not be stripped in ways that distort meaning - - Cultural and narrative context should be preserved - - 3.3. Commercial Products - - Products built on Covered Software should acknowledge it - - Pricing should not exploit communities that created the work - - Support and improvements should flow back to the community - -4. ENFORCEMENT - - These guidelines are enforced through community norms, not legal action. - Disputes should be raised with the Palimpsest Stewardship Council for - non-binding guidance. - -5. AMENDMENTS - - These guidelines may be updated by the Palimpsest Stewardship Council. - Updates apply to new distributions, not retroactively. - -================================================================================ -END OF EXHIBIT A -================================================================================ diff --git a/a2ml/pandoc/docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt b/a2ml/pandoc/docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt deleted file mode 100644 index 7fba8c94b..000000000 --- a/a2ml/pandoc/docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt +++ /dev/null @@ -1,102 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 - -================================================================================ -EXHIBIT B — QUANTUM-SAFE PROVENANCE SPECIFICATION -Palimpsest-MPL License Version 1.0 -================================================================================ - -1. PURPOSE - - This exhibit specifies the cryptographic algorithms and procedures for - quantum-safe provenance in software distributed under the Palimpsest-MPL - License. - -2. APPROVED ALGORITHMS - - The following post-quantum cryptographic algorithms are approved for - signing Provenance Metadata: - - 2.1. Digital Signatures - - ML-DSA (FIPS 204, formerly CRYSTALS-Dilithium) - Recommended: ML-DSA-65 (security level 3) or ML-DSA-87 (level 5) - - SLH-DSA (FIPS 205, formerly SPHINCS+) - Recommended: SLH-DSA-SHA2-256f or SLH-DSA-SHAKE-256f - - FALCON (NIST Round 3 finalist) - Recommended: FALCON-1024 - - 2.2. Key Encapsulation (for encrypted provenance) - - ML-KEM (FIPS 203, formerly CRYSTALS-Kyber) - Recommended: ML-KEM-1024 - - 2.3. Hash Functions - - SHA-3 (FIPS 202) - Recommended: SHA3-256 or SHA3-512 - - SHAKE (FIPS 202 extendable output) - Recommended: SHAKE-256 - - 2.4. Key Derivation - - Argon2id (RFC 9106) - Parameters: t=3, m=65536, p=4 (minimum) - -3. PROVENANCE METADATA FORMAT - - Provenance Metadata should include: - - 3.1. Required Fields - - author-identity: Contributor name and contact - - timestamp: ISO 8601 with timezone - - content-hash: SHA3-256 hash of the contribution - - signature: Quantum-safe signature over all fields - - 3.2. Optional Fields - - parent-hash: Hash of the previous contribution in the chain - - emotional-lineage: Narrative context markers - - platform: Build/development environment - - witnesses: Third-party attestation signatures - -4. SIGNATURE PROCEDURE - - 4.1. Signing - a. Compute SHA3-256 hash of the contribution content - b. Construct metadata record with all required fields - c. Serialize metadata in canonical JSON form - d. Sign with ML-DSA-65 (or approved alternative) - e. Attach signature to distribution - - 4.2. Verification - a. Extract metadata and signature from distribution - b. Verify signature against contributor's public key - c. Verify content hash matches actual content - d. Verify timestamp is within acceptable range - e. Verify parent-hash chain if present - -5. KEY MANAGEMENT - - 5.1. Contributors should publish quantum-safe public keys via: - - OpenPGP keyservers (with PQ algorithm support) - - Repository .well-known/keys/ directory - - Contributor's personal website - - 5.2. Key rotation should occur: - - At least annually - - When algorithm recommendations change - - When key compromise is suspected - -6. TRANSITION PERIOD - - During the transition to quantum-safe cryptography: - - 6.1. Classical signatures (Ed25519, RSA) remain valid - 6.2. Hybrid signatures (classical + PQ) are encouraged - 6.3. Pure PQ signatures are preferred for new contributions - 6.4. Classical-only signatures will be deprecated in a future version - -7. COMPLIANCE - - Quantum-safe provenance is OPTIONAL under PMPL-1.0. When present, - it must follow this specification. Stripping quantum-safe signatures - from distributions is prohibited per Section 4.1 of the License. - -================================================================================ -END OF EXHIBIT B -================================================================================ diff --git a/a2ml/pandoc/docs/practice/.gitkeep b/a2ml/pandoc/docs/practice/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/a2ml/pandoc/docs/practice/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/practice/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 257f3a4f4..000000000 --- a/a2ml/pandoc/docs/practice/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "practice-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-unit of the docs pillar focusing on practice. diff --git a/a2ml/pandoc/docs/practice/AI-CONVENTIONS.adoc b/a2ml/pandoc/docs/practice/AI-CONVENTIONS.adoc deleted file mode 100644 index 3d9aa304f..000000000 --- a/a2ml/pandoc/docs/practice/AI-CONVENTIONS.adoc +++ /dev/null @@ -1,85 +0,0 @@ -= AI Conventions - - - -# AI Conventions (Authoritative Source) - -All AI coding agents working in this repository MUST follow these rules. -Per-tool config files (.cursorrules, .clinerules, etc.) reference this document. - -## Session Startup - -1. Read `0-AI-MANIFEST.a2ml` FIRST (mandatory gatekeeper). -2. Read `.machine_readable/STATE.a2ml` for current status and blockers. -3. Read `.machine_readable/anchors/ANCHOR.a2ml` for canonical authority boundaries. -4. Read `.machine_readable/policies/MAINTENANCE-AXES.a2ml` for maintenance/audit sequencing. -5. Read `.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml` for baseline controls. -6. Read `.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml` for execution order. -7. Read `.machine_readable/AGENTIC.a2ml` for agent constraints. - -## License - -- All original code: **MPL-2.0** -- Fallback (platform-required only): MPL-2.0 with comment explaining why. -- NEVER use AGPL-3.0. -- Preserve third-party licenses verbatim. -- Every source file needs `# SPDX-License-Identifier: MPL-2.0`. - -## Author Attribution - -- Name: **{{AUTHOR}}** -- Email: **{{AUTHOR_EMAIL}}** -- Copyright: `Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>` - -## State Files - -State/metadata files, anchors, and policies (.a2ml) belong in `.machine_readable/` ONLY. -NEVER create STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml, AGENTIC.a2ml, -NEUROSYM.a2ml, PLAYBOOK.a2ml, ANCHOR.a2ml, MAINTENANCE-AXES.a2ml, -MAINTENANCE-CHECKLIST.a2ml, or SOFTWARE-DEVELOPMENT-APPROACH.a2ml in the repository root. - -## Banned Patterns - -| Language | Banned | Reason | -|----------|-------------------------------------|---------------------------| -| Idris2 | `believe_me`, `assert_total` | Unsound escape hatches | -| Haskell | `unsafeCoerce`, `unsafePerformIO` | Breaks type safety | -| OCaml | `Obj.magic`, `Obj.repr`, `Obj.obj` | Unsafe casting | -| Coq | `Admitted` | Unproven assumption | -| Lean | `sorry` | Unproven assumption | -| Rust | `transmute` (unless FFI + SAFETY:) | Unsound reinterpret | - -## Banned Languages - -| Banned | Use Instead | -|---------------------|--------------------| -| TypeScript | ReScript | -| Node.js / npm / bun | Deno | -| Go | Rust | -| Python | Julia / Rust | - -## Container Standard - -- Runtime: **Podman** (never Docker). -- File: **Containerfile** (never Dockerfile). -- Base images: `cgr.dev/chainguard/wolfi-base:latest` or `cgr.dev/chainguard/static:latest`. - -## ABI/FFI Standard - -- ABI definitions: **Idris2** with dependent types (`src/abi/`). -- FFI implementation: **Zig** with C ABI compatibility (`ffi/zig/`). -- Generated C headers: `generated/abi/`. - -## Build System - -Use `just` (Justfile) for all build, test, lint, and format tasks. - -## References - -- `0-AI-MANIFEST.a2ml` -- universal AI entry point -- `.machine_readable/AGENTIC.a2ml` -- agent permissions and constraints -- `.machine_readable/STATE.a2ml` -- current project state -- `.machine_readable/anchors/ANCHOR.a2ml` -- canonical authority and policy boundary -- `.machine_readable/policies/MAINTENANCE-AXES.a2ml` -- canonical axis sequencing and audit requirements -- `.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml` -- baseline maintenance checklist policy -- `.machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml` -- axis execution approach policy diff --git a/a2ml/pandoc/docs/practice/README.adoc b/a2ml/pandoc/docs/practice/README.adoc deleted file mode 100644 index ae3326b9f..000000000 --- a/a2ml/pandoc/docs/practice/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= practice Unit diff --git a/a2ml/pandoc/docs/practice/STATE-VISUALIZER-GUIDE.adoc b/a2ml/pandoc/docs/practice/STATE-VISUALIZER-GUIDE.adoc deleted file mode 100644 index b355b468b..000000000 --- a/a2ml/pandoc/docs/practice/STATE-VISUALIZER-GUIDE.adoc +++ /dev/null @@ -1,155 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= TOPOLOGY.md — Generation Guide -{{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -:toc: -:sectnums: - -== What Is TOPOLOGY.md? - -A single-file visual map of any project's architecture and completion status. -It lives in the repo root and contains: - -1. **ASCII architecture diagram** — the full system as it will look when complete -2. **Completion dashboard** — every component with a progress bar and status note -3. **Dependency graph** — what blocks what (the critical path) -4. **Update protocol** — how to keep it current - -It is designed to be readable by humans, AI agents, and rendered cleanly on any -forge (GitHub, GitLab, Codeberg, Bitbucket). - -== Why - -- Gives any contributor (human or AI) an instant picture of the whole project -- Replaces "read 20 files to understand the architecture" with one glance -- The completion dashboard makes project health visible without running anything -- Works offline, no tooling required, just a text file - -== How To Generate One - -=== Option 1: Ask an AI agent - -Use this prompt (works with Claude, Gemini, ChatGPT, or any LLM with repo access): - -[source,text] ----- -Read the entire repository and produce a TOPOLOGY.md file for the repo root. - -The file must contain exactly three sections: - -1. **System Architecture** — An ASCII box diagram showing the complete system - as it will look when finished. Use Unicode box-drawing characters - (┌ ┐ └ ┘ │ ─ ├ ┤ ┬ ┴ ┼), arrows (▲ ▼ ◄ ► → ←), and double lines - (═ ║) for boundaries. Show: - - All external services (DNS, CDN, gateways) at the top - - Application components in the middle - - Data layer (databases, caches, queues) below - - Repo infrastructure (CI, contractiles, SCM files) at the bottom - - Every box labelled, every connection labelled or obvious from context - - The diagram should be BESPOKE to this project, not generic - -2. **Completion Dashboard** — A table in a code block listing every component - from the diagram. For each component show: - - Name (left-aligned, padded to 35 chars) - - Progress bar: 10 characters using █ (done) and ░ (remaining) - - Percentage (0% to 100% in 10% increments) - - A short note explaining the status - Group components by layer/concern. End with an OVERALL summary line. - -3. **Key Dependencies** — An ASCII arrow diagram showing the critical path. - What must finish before what else can start. - -Add a header comment with SPDX-License-Identifier and Last updated date. -End with an "Update Protocol" section explaining how to maintain the file. - -Use the template at TOPOLOGY.md in rsr-template-repo as a structural reference, -but make the content completely specific to THIS project. ----- - -=== Option 2: Copy the template and fill it in - -[source,bash] ----- -cp /path/to/rsr-template-repo/TOPOLOGY.md ./TOPOLOGY.md -# Then edit: replace placeholders, draw the real architecture, fill the dashboard ----- - -=== Option 3: Batch generation across all repos - -[source,bash] ----- -# From the repos root, generate for every repo that lacks one -for repo in /path/to/your/repos/*/; do - if [ ! -f "$repo/TOPOLOGY.md" ]; then - echo "NEEDS TOPOLOGY: $(basename $repo)" - fi -done ----- - -Then feed each repo to an AI agent with the prompt above. Claude Code can do -this with a session per repo, or you can batch it. - -== Conventions - -=== Box-drawing characters - -Use Unicode, not ASCII art. This renders correctly everywhere. - -[cols="1,1", options="header"] -|=== -| Character | Use -| `┌ ┐ └ ┘` | Box corners -| `│ ─` | Vertical / horizontal lines -| `├ ┤ ┬ ┴ ┼` | T-junctions and crosses -| `═ ║` | Double lines for major boundaries -| `▲ ▼ ◄ ►` | Directional arrows -| `→ ← ↑ ↓` | Thin arrows (alternative) -|=== - -=== Progress bars - -Always 10 characters wide. Use full blocks only (no half-blocks). - -[source,text] ----- -░░░░░░░░░░ 0% Not started -█░░░░░░░░░ 10% Stub/skeleton exists -██░░░░░░░░ 20% Early work -███░░░░░░░ 30% Foundation laid -████░░░░░░ 40% Core logic started -█████░░░░░ 50% Half done -██████░░░░ 60% Most logic complete -███████░░░ 70% Working but rough -████████░░ 80% Needs polish/docs -█████████░ 90% Nearly done -██████████ 100% Complete and tested ----- - -=== Component naming - -- Use the actual names from the codebase (file names, service names, tool names) -- Group by architectural layer, not alphabetically -- Include repo infrastructure (CI, contractiles, SCM files) as a layer - -=== When to update - -- After completing a component → change bar + percentage -- After adding a component → add row -- After architectural change → redraw diagram -- After major milestone → update overall percentage -- Always update the `Last updated` date - -== Integration With Other RSR Files - -TOPOLOGY.md complements but does not replace: - -- **STATE.a2ml** — machine-readable state (tasks, blockers, next actions) -- **ECOSYSTEM.a2ml** — position in the wider project ecosystem -- **META.a2ml** — architecture decisions and design rationale -- **0-AI-MANIFEST.a2ml** — AI agent entry point and invariants - -TOPOLOGY.md is the _visual summary_ for humans; the a2ml files are the -_structured data_ for tooling. Both should agree. - -== Copyright - -Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> diff --git a/a2ml/pandoc/docs/reports/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/reports/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 5eb265dce..000000000 --- a/a2ml/pandoc/docs/reports/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,19 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "reports-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Documentation unit for all automated and manual audit reports. Classified - by domain. - -canonical_locations: - maintenance: "maintenance/" - security: "security/" - performance: "performance/" - compliance: "compliance/" - quality: "quality/" diff --git a/a2ml/pandoc/docs/reports/README.adoc b/a2ml/pandoc/docs/reports/README.adoc deleted file mode 100644 index 0c06c31da..000000000 --- a/a2ml/pandoc/docs/reports/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= reports Unit diff --git a/a2ml/pandoc/docs/reports/compliance/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/reports/compliance/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 6b3975282..000000000 --- a/a2ml/pandoc/docs/reports/compliance/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "report-unit-compliance" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Specialised repository for compliance findings and evidence. diff --git a/a2ml/pandoc/docs/reports/compliance/README.adoc b/a2ml/pandoc/docs/reports/compliance/README.adoc deleted file mode 100644 index c38c66a46..000000000 --- a/a2ml/pandoc/docs/reports/compliance/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Compliance Reports diff --git a/a2ml/pandoc/docs/reports/maintenance/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/reports/maintenance/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 43eefe29a..000000000 --- a/a2ml/pandoc/docs/reports/maintenance/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "report-unit-maintenance" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Maintenance reports. diff --git a/a2ml/pandoc/docs/reports/maintenance/README.adoc b/a2ml/pandoc/docs/reports/maintenance/README.adoc deleted file mode 100644 index f13abf79e..000000000 --- a/a2ml/pandoc/docs/reports/maintenance/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Maintenance Reports diff --git a/a2ml/pandoc/docs/reports/performance/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/reports/performance/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 40c09540c..000000000 --- a/a2ml/pandoc/docs/reports/performance/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "report-unit-performance" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Specialised repository for performance findings and evidence. diff --git a/a2ml/pandoc/docs/reports/performance/README.adoc b/a2ml/pandoc/docs/reports/performance/README.adoc deleted file mode 100644 index 037767d3c..000000000 --- a/a2ml/pandoc/docs/reports/performance/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Performance Reports diff --git a/a2ml/pandoc/docs/reports/quality/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/reports/quality/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index d460edcfa..000000000 --- a/a2ml/pandoc/docs/reports/quality/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "report-unit-quality" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Specialised repository for quality findings and evidence. diff --git a/a2ml/pandoc/docs/reports/quality/README.adoc b/a2ml/pandoc/docs/reports/quality/README.adoc deleted file mode 100644 index d1be84848..000000000 --- a/a2ml/pandoc/docs/reports/quality/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Quality Reports diff --git a/a2ml/pandoc/docs/reports/security/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/reports/security/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 696ab590c..000000000 --- a/a2ml/pandoc/docs/reports/security/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "report-unit-security" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Specialised repository for security findings and evidence. diff --git a/a2ml/pandoc/docs/reports/security/README.adoc b/a2ml/pandoc/docs/reports/security/README.adoc deleted file mode 100644 index 9a78a8bc2..000000000 --- a/a2ml/pandoc/docs/reports/security/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Security Reports diff --git a/a2ml/pandoc/docs/standards/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/standards/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index c147c6f8b..000000000 --- a/a2ml/pandoc/docs/standards/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "standards-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Standards unit for high-rigor verification. diff --git a/a2ml/pandoc/docs/standards/README.adoc b/a2ml/pandoc/docs/standards/README.adoc deleted file mode 100644 index 34a94c4fc..000000000 --- a/a2ml/pandoc/docs/standards/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Standards Unit diff --git a/a2ml/pandoc/docs/templates/contractiles/README.adoc b/a2ml/pandoc/docs/templates/contractiles/README.adoc deleted file mode 100644 index 4eeac6b80..000000000 --- a/a2ml/pandoc/docs/templates/contractiles/README.adoc +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Contractile Templates - -Blank templates for projects that want to replace the hyperpolymath -defaults with their own contractile definitions. - -Copy the relevant file to `.machine_readable/contractiles//` -and fill in your project-specific checks. - -The working examples in `.machine_readable/contractiles/` show the -full hyperpolymath setup — use those as reference. diff --git a/a2ml/pandoc/docs/templates/contractiles/dust/Dustfile.a2ml b/a2ml/pandoc/docs/templates/contractiles/dust/Dustfile.a2ml deleted file mode 100644 index 903af2c3f..000000000 --- a/a2ml/pandoc/docs/templates/contractiles/dust/Dustfile.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Dustfile.a2ml — BLANK TEMPLATE -# Replace this with your project's contractile. -# See .machine_readable/contractiles/ for a working example. -# -# Copy this file to .machine_readable/contractiles/dust/Dustfile.a2ml -# and fill in your project-specific checks. - -@abstract: -[Your project's DUST contract goes here] -@end diff --git a/a2ml/pandoc/docs/templates/contractiles/intend/Intentfile.a2ml b/a2ml/pandoc/docs/templates/contractiles/intend/Intentfile.a2ml deleted file mode 100644 index c54c79a87..000000000 --- a/a2ml/pandoc/docs/templates/contractiles/intend/Intentfile.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Intentfile.a2ml — BLANK TEMPLATE -# Replace this with your project's contractile. -# See .machine_readable/contractiles/ for a working example. -# -# Copy this file to .machine_readable/contractiles/intend/Intentfile.a2ml -# and fill in your project-specific checks. - -@abstract: -[Your project's INTEND contract goes here] -@end diff --git a/a2ml/pandoc/docs/templates/contractiles/must/Mustfile.a2ml b/a2ml/pandoc/docs/templates/contractiles/must/Mustfile.a2ml deleted file mode 100644 index d08796f92..000000000 --- a/a2ml/pandoc/docs/templates/contractiles/must/Mustfile.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Mustfile.a2ml — BLANK TEMPLATE -# Replace this with your project's contractile. -# See .machine_readable/contractiles/ for a working example. -# -# Copy this file to .machine_readable/contractiles/must/Mustfile.a2ml -# and fill in your project-specific checks. - -@abstract: -[Your project's MUST contract goes here] -@end diff --git a/a2ml/pandoc/docs/templates/contractiles/trust/Trustfile.a2ml b/a2ml/pandoc/docs/templates/contractiles/trust/Trustfile.a2ml deleted file mode 100644 index 842c6b06a..000000000 --- a/a2ml/pandoc/docs/templates/contractiles/trust/Trustfile.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Trustfile.a2ml — BLANK TEMPLATE -# Replace this with your project's contractile. -# See .machine_readable/contractiles/ for a working example. -# -# Copy this file to .machine_readable/contractiles/trust/Trustfile.a2ml -# and fill in your project-specific checks. - -@abstract: -[Your project's TRUST contract goes here] -@end diff --git a/a2ml/pandoc/docs/theory/.gitkeep b/a2ml/pandoc/docs/theory/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/a2ml/pandoc/docs/theory/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/theory/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 93df18706..000000000 --- a/a2ml/pandoc/docs/theory/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,23 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "theory-track" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Documentation track for domain-specific theory and research foundations. - Categorised by discipline. - -canonical_locations: - ontologies: "ontologies/" - mathematics: "mathematics/" - computing: "computing/" - socio_technical: "socio-technical/" - formalisms: "formalisms/" - other: "other/" - -invariants: - - "Theoretical claims MUST reference established academic or technical formalisms" diff --git a/a2ml/pandoc/docs/theory/README.adoc b/a2ml/pandoc/docs/theory/README.adoc deleted file mode 100644 index c0ddf280b..000000000 --- a/a2ml/pandoc/docs/theory/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= theory Unit diff --git a/a2ml/pandoc/docs/theory/computing/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/theory/computing/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index f387d08e9..000000000 --- a/a2ml/pandoc/docs/theory/computing/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "theory-unit-computing" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Theoretical foundation for computing. diff --git a/a2ml/pandoc/docs/theory/computing/README.adoc b/a2ml/pandoc/docs/theory/computing/README.adoc deleted file mode 100644 index 4d0db25d5..000000000 --- a/a2ml/pandoc/docs/theory/computing/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Computing Theory diff --git a/a2ml/pandoc/docs/theory/formalisms/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/theory/formalisms/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index cdc2baa14..000000000 --- a/a2ml/pandoc/docs/theory/formalisms/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "theory-unit-formalisms" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Theoretical foundation for formalisms. diff --git a/a2ml/pandoc/docs/theory/formalisms/README.adoc b/a2ml/pandoc/docs/theory/formalisms/README.adoc deleted file mode 100644 index 5d064c391..000000000 --- a/a2ml/pandoc/docs/theory/formalisms/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Formalisms Theory diff --git a/a2ml/pandoc/docs/theory/mathematics/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/theory/mathematics/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 677a4dacb..000000000 --- a/a2ml/pandoc/docs/theory/mathematics/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "theory-unit-mathematics" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Theoretical foundation for mathematics. diff --git a/a2ml/pandoc/docs/theory/mathematics/README.adoc b/a2ml/pandoc/docs/theory/mathematics/README.adoc deleted file mode 100644 index 356236f4b..000000000 --- a/a2ml/pandoc/docs/theory/mathematics/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Mathematics Theory diff --git a/a2ml/pandoc/docs/theory/ontologies/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/theory/ontologies/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index d888cee56..000000000 --- a/a2ml/pandoc/docs/theory/ontologies/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "theory-unit-ontologies" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Theoretical foundation for ontologies. diff --git a/a2ml/pandoc/docs/theory/ontologies/README.adoc b/a2ml/pandoc/docs/theory/ontologies/README.adoc deleted file mode 100644 index 6d16ecf96..000000000 --- a/a2ml/pandoc/docs/theory/ontologies/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Ontologies Theory diff --git a/a2ml/pandoc/docs/theory/other/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/theory/other/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 166ed9e8b..000000000 --- a/a2ml/pandoc/docs/theory/other/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "theory-unit-other" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Theoretical foundation for other. diff --git a/a2ml/pandoc/docs/theory/other/README.adoc b/a2ml/pandoc/docs/theory/other/README.adoc deleted file mode 100644 index 1861d6d56..000000000 --- a/a2ml/pandoc/docs/theory/other/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Other Theory diff --git a/a2ml/pandoc/docs/theory/socio-technical/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/theory/socio-technical/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 891952224..000000000 --- a/a2ml/pandoc/docs/theory/socio-technical/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "theory-unit-socio-technical" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Theoretical foundation for socio technical. diff --git a/a2ml/pandoc/docs/theory/socio-technical/README.adoc b/a2ml/pandoc/docs/theory/socio-technical/README.adoc deleted file mode 100644 index 9ab4ee075..000000000 --- a/a2ml/pandoc/docs/theory/socio-technical/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Socio technical Theory diff --git a/a2ml/pandoc/docs/whitepapers/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/whitepapers/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index c936101d8..000000000 --- a/a2ml/pandoc/docs/whitepapers/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,20 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "whitepapers-track" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Unit for strategic publications and whitepapers. Categorised by target - audience: Academic, Industry, and Outreach. - -canonical_locations: - academic: "academic/" - industry: "industry/" - outreach: "outreach/" - -invariants: - - "Each sub-track MUST have a clear audience definition in its README" diff --git a/a2ml/pandoc/docs/whitepapers/README.adoc b/a2ml/pandoc/docs/whitepapers/README.adoc deleted file mode 100644 index 88e83c5e0..000000000 --- a/a2ml/pandoc/docs/whitepapers/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= whitepapers Unit diff --git a/a2ml/pandoc/docs/whitepapers/academic/.gitkeep b/a2ml/pandoc/docs/whitepapers/academic/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/a2ml/pandoc/docs/whitepapers/academic/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/whitepapers/academic/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index ceb8a1e71..000000000 --- a/a2ml/pandoc/docs/whitepapers/academic/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "academic-unit" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Academic logic at level 3. diff --git a/a2ml/pandoc/docs/whitepapers/academic/README.adoc b/a2ml/pandoc/docs/whitepapers/academic/README.adoc deleted file mode 100644 index 16c3f4538..000000000 --- a/a2ml/pandoc/docs/whitepapers/academic/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Academic Logic diff --git a/a2ml/pandoc/docs/whitepapers/industry/.gitkeep b/a2ml/pandoc/docs/whitepapers/industry/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/a2ml/pandoc/docs/whitepapers/industry/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/whitepapers/industry/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 20156dd51..000000000 --- a/a2ml/pandoc/docs/whitepapers/industry/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "industry-unit" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Industry logic at level 3. diff --git a/a2ml/pandoc/docs/whitepapers/industry/README.adoc b/a2ml/pandoc/docs/whitepapers/industry/README.adoc deleted file mode 100644 index 7bc7fcd6d..000000000 --- a/a2ml/pandoc/docs/whitepapers/industry/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Industry Logic diff --git a/a2ml/pandoc/docs/whitepapers/outreach/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/whitepapers/outreach/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index ed7e1529f..000000000 --- a/a2ml/pandoc/docs/whitepapers/outreach/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,16 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "whitepapers-track-outreach" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Documentation track for outreach, education, and general-audience - engagement. Focuses on accessibility and high-level conceptual clarity. - -invariants: - - "Language MUST be accessible to non-technical audiences" - - "Avoid deep technical jargon without providing clear definitions" diff --git a/a2ml/pandoc/docs/whitepapers/outreach/README.adoc b/a2ml/pandoc/docs/whitepapers/outreach/README.adoc deleted file mode 100644 index 8141463f4..000000000 --- a/a2ml/pandoc/docs/whitepapers/outreach/README.adoc +++ /dev/null @@ -1,17 +0,0 @@ -= Outreach & Education -:toc: preamble -:icons: font - -This directory contains whitepapers, guides, and presentations tailored for a general audience, including schools, corporate partners, and special interest groups. - -== Target Audiences - -* **Schools & Education:** Introductory material on formal verification and sovereign systems. -* **Corporate:** High-level business value and compliance summaries. -* **Special Interest Groups:** Community-specific impact and ethical use cases. - -== Goals - -* De-mystify high-rigor engineering. -* Promote the adoption of the Rhodium Standard. -* Provide accessible entry points for non-technical stakeholders. diff --git a/a2ml/pandoc/docs/wikis/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/docs/wikis/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index f071ca8a9..000000000 --- a/a2ml/pandoc/docs/wikis/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "wikis-track" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Long-form collaborative documentation and project knowledge base. - This directory mirrors the content structure of the project wiki. - -invariants: - - "Primary wiki format MUST be AsciiDoc (.adoc)" diff --git a/a2ml/pandoc/docs/wikis/README.adoc b/a2ml/pandoc/docs/wikis/README.adoc deleted file mode 100644 index 71b60d1ba..000000000 --- a/a2ml/pandoc/docs/wikis/README.adoc +++ /dev/null @@ -1,15 +0,0 @@ -= Project Wikis -:toc: preamble -:icons: font - -This directory contains the source files for the project wiki. It is intended for long-form documentation, deep-dives, and community-maintained knowledge. - -== Structure - -* **Core Concepts:** Fundamental architectural ideas. -* **Workflows:** Step-by-step guides for contributors. -* **Glossary:** Definitions of project-specific terminology. - -== Wiki Synchronization - -Changes made here should be synchronised with the forge-hosted wiki (GitHub/GitLab) using the project's sync scripts. diff --git a/a2ml/pandoc/examples/0.1-AI-MANIFEST.a2ml b/a2ml/pandoc/examples/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index 0d69c9050..000000000 --- a/a2ml/pandoc/examples/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1 +0,0 @@ -# AI Manifest - Level 1: examples diff --git a/a2ml/pandoc/examples/README.adoc b/a2ml/pandoc/examples/README.adoc deleted file mode 100644 index b9cdb4879..000000000 --- a/a2ml/pandoc/examples/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= examples Pillar diff --git a/a2ml/pandoc/examples/web-project-deno.json b/a2ml/pandoc/examples/web-project-deno.json deleted file mode 100644 index 028e4f1ad..000000000 --- a/a2ml/pandoc/examples/web-project-deno.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "// NOTE": "Example deno.json for ReScript web projects", - "tasks": { - "build": "deno run -A npm:rescript", - "clean": "deno run -A npm:rescript clean", - "watch": "deno run -A npm:rescript -w", - "serve": "deno run -A jsr:@std/http/file-server .", - "test": "deno test --allow-all" - }, - "imports": { - "rescript": "^12.0.0", - "@rescript/core": "npm:@rescript/core@^1.6.0", - "safe-dom/": "https://raw.githubusercontent.com/{{OWNER}}/rescript-dom-mounter/main/src/", - "proven/": "../proven/bindings/rescript/src/" - }, - "compilerOptions": { - "allowJs": true, - "checkJs": false - } -} diff --git a/a2ml/pandoc/expected.a2ml b/a2ml/pandoc/expected.a2ml deleted file mode 100644 index 073946720..000000000 --- a/a2ml/pandoc/expected.a2ml +++ /dev/null @@ -1,16 +0,0 @@ -;; SPDX-License-Identifier: MPL-2.0 - -# A2ML Overview - -@abstract: -A2ML is a typed, attested markup format. -@end - -## Claims - -- Required sections must exist. -- References must resolve. - -@refs: -[1] Attested Markup Language Spec (draft) -@end diff --git a/a2ml/pandoc/expected.html b/a2ml/pandoc/expected.html deleted file mode 100644 index 3e3efcc36..000000000 --- a/a2ml/pandoc/expected.html +++ /dev/null @@ -1,12 +0,0 @@ -

        A2ML Overview

        -
        -

        A2ML is a typed, attested markup format.

        -
        -

        Claims

        -
          -
        • Required sections must exist.
        • -
        • References must resolve.
        • -
        -
        -

        [1] Attested Markup Language Spec (draft)

        -
        diff --git a/a2ml/pandoc/features/0.1-AI-MANIFEST.a2ml b/a2ml/pandoc/features/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index dc3e4ee3a..000000000 --- a/a2ml/pandoc/features/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "features-pillar" -level: 1 -parent: "../0-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Optional project features and ecosystem integrations. Provides bootstrap - guides for high-rigor tools (Panic-Attacker, BoJ-Server, SSGs). - -canonical_locations: - panic_attacker: "panic-attacker/" - boj_server: "boj-server/" - ssg: "ssg/" diff --git a/a2ml/pandoc/features/README.adoc b/a2ml/pandoc/features/README.adoc deleted file mode 100644 index 3899280c2..000000000 --- a/a2ml/pandoc/features/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Project Features diff --git a/a2ml/pandoc/features/boj-server/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/features/boj-server/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index c77798cdf..000000000 --- a/a2ml/pandoc/features/boj-server/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "feature-unit-boj-server" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Bootstrap and integration logic for the boj-server ecosystem component. diff --git a/a2ml/pandoc/features/boj-server/README.adoc b/a2ml/pandoc/features/boj-server/README.adoc deleted file mode 100644 index 0039c37dc..000000000 --- a/a2ml/pandoc/features/boj-server/README.adoc +++ /dev/null @@ -1,14 +0,0 @@ -= BoJ Server Integration -:icons: font - -This unit provides a "starting hand" for integrating with the **BoJ-Server** (Box of Justice) ecosystem — a high-rigor, verified server infrastructure. - -== Integration Options - -* **Core:** Use BoJ-Server as the primary verified backend for this project. -* **Bridge:** Utilize the BoJ-Server IPC bridge for cross-boundary communication. - -== Related Repository - -For the full specification and source, visit: -https://github.com/hyperpolymath/boj-server diff --git a/a2ml/pandoc/features/panic-attacker/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/features/panic-attacker/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index e61ad2440..000000000 --- a/a2ml/pandoc/features/panic-attacker/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "feature-unit-panic-attacker" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Bootstrap and integration logic for the panic-attacker ecosystem component. diff --git a/a2ml/pandoc/features/panic-attacker/README.adoc b/a2ml/pandoc/features/panic-attacker/README.adoc deleted file mode 100644 index 72d56a429..000000000 --- a/a2ml/pandoc/features/panic-attacker/README.adoc +++ /dev/null @@ -1,25 +0,0 @@ -= Panic Attacker Feature -:icons: font - -This unit integrates the **Panic-Attacker** high-rigor stress testing tool into the project lifecycle. - -== Value Proposition - -Panic-Attacker goes beyond unit testing by applying: -* **Static Analysis (Assail):** Detecting logic-based bug signatures. -* **Multi-Axis Dynamic Attacks (Assault):** Stressing CPU, Memory, Disk, and Network boundaries. - -== Usage in this Template - -This template includes a pre-configured maintenance trigger: - -[source,bash] ----- -just maint-assault ----- - -This runs a medium-intensity assault on the project binary and emits a report to `docs/reports/security/`. - -== Related Repository - -https://github.com/hyperpolymath/panic-attacker diff --git a/a2ml/pandoc/features/ssg/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/features/ssg/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 121c5ae27..000000000 --- a/a2ml/pandoc/features/ssg/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "feature-unit-ssg" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Bootstrap and integration logic for the ssg ecosystem component. diff --git a/a2ml/pandoc/features/ssg/README.adoc b/a2ml/pandoc/features/ssg/README.adoc deleted file mode 100644 index e15687bf1..000000000 --- a/a2ml/pandoc/features/ssg/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Ssg Feature diff --git a/a2ml/pandoc/features/ssg/ssg-bootstrap.sh b/a2ml/pandoc/features/ssg/ssg-bootstrap.sh deleted file mode 100755 index 89c6fa5ff..000000000 --- a/a2ml/pandoc/features/ssg/ssg-bootstrap.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: MPL-2.0 -# -# ssg-bootstrap.sh — Universal SSG Initialisation Helper -# -# Provides a starting hand for creating a documentation site or blog -# using hyperpolymath-approved formal or pretty-formal SSGs. - -set -euo pipefail - -echo "═══════════════════════════════════════════════════" -echo " SSG BOOTSTRAP HELPER" -echo "═══════════════════════════════════════════════════" -echo "" -echo "Select an SSG to initialize in this project:" -echo " [1] Casket-SSG (Haskell) — Pretty-formal, high-rigor default" -echo " [2] Ddraig-SSG (Idris2) — Super-formal, dependent-type proofed" -echo " [3] Serum-SSG (Elixir) — Concurrent, robust, BEAM-based" -echo " [4] Zola (Rust) — Fast, standalone, standard" -echo "" - -read -rp "Enter choice [1-4]: " choice - -case "$choice" in - 1) - echo "Selected: Casket-SSG" - echo "Integration: git clone https://github.com/hyperpolymath/casket-ssg docs/site" - ;; - 2) - echo "Selected: Ddraig-SSG" - echo "Integration: git clone https://github.com/hyperpolymath/ddraig-ssg docs/site" - ;; - 3) - echo "Selected: Serum-SSG" - echo "Integration: mix serum.new docs/site" - ;; - 4) - echo "Selected: Zola" - echo "Integration: zola init docs/site" - ;; - *) - echo "Invalid selection. Aborting." - exit 1 - ;; -esac - -echo "" -echo "Note: For more advanced polystack options, visit: https://github.com/hyperpolymath/polystack" diff --git a/a2ml/pandoc/pandoc-a2ml-scm-1.rockspec b/a2ml/pandoc/pandoc-a2ml-scm-1.rockspec deleted file mode 100644 index c7c1d63df..000000000 --- a/a2ml/pandoc/pandoc-a2ml-scm-1.rockspec +++ /dev/null @@ -1,53 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- (MIT required for LuaRocks OSI-approved policy) --- --- pandoc-a2ml-scm-1.rockspec — LuaRocks package spec for pandoc-a2ml. --- --- Provides Pandoc reader, writer, and filter for A2ML (Attested Markup Language). - -rockspec_format = "3.0" -package = "pandoc-a2ml" -version = "scm-1" - -source = { - url = "git://github.com/hyperpolymath/pandoc-a2ml.git", - branch = "main", -} - -description = { - summary = "Pandoc reader, writer, and filter for A2ML (Attested Markup Language)", - detailed = [[ - pandoc-a2ml provides a custom Pandoc reader, writer, and filter for the - A2ML (Attested Markup Language) format. A2ML is an attestation-native - markup language designed for documents that carry trust metadata, - cryptographic signatures, and provenance information. - - Features: - - Custom reader: parse .a2ml files into the Pandoc AST - - Custom writer: render Pandoc AST back to .a2ml format - - Filter: transform attestation directives within Pandoc pipelines - - Preserves headings, directive blocks, inline formatting, and lists - ]], - homepage = "https://github.com/hyperpolymath/pandoc-a2ml", - license = "MIT", - maintainer = "Jonathan D.A. Jewell ", - labels = { "pandoc", "a2ml", "markup", "filter", "reader", "writer", "attestation" }, -} - -dependencies = { - "lua >= 5.1", -} - -build = { - type = "builtin", - modules = { - ["pandoc-a2ml"] = "a2ml.lua", - ["pandoc-a2ml.reader"] = "a2ml-reader.lua", - ["pandoc-a2ml.writer"] = "a2ml-writer.lua", - ["pandoc-a2ml.filter"] = "a2ml-filter.lua", - }, - copy_directories = { - "docs", - "examples", - }, -} diff --git a/a2ml/pandoc/sample.a2ml b/a2ml/pandoc/sample.a2ml deleted file mode 100644 index 2ecdbe38c..000000000 --- a/a2ml/pandoc/sample.a2ml +++ /dev/null @@ -1,13 +0,0 @@ -# A2ML Overview - -@abstract: -A2ML is a typed, attested markup format. -@end - -## Claims -- Required sections must exist. -- References must resolve. - -@refs: -[1] Attested Markup Language Spec (draft) -@end diff --git a/a2ml/pandoc/src/0.1-AI-MANIFEST.a2ml b/a2ml/pandoc/src/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index c92e124d1..000000000 --- a/a2ml/pandoc/src/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "source-pillar" -level: 1 -parent: "../0-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Primary source code directory. Organized by role and architectural - aspect. - -canonical_locations: - core: "core/" - interface: "interface/" - bridges: "bridges/" - contracts: "contracts/" - errors: "errors/" - definitions: "definitions/" - aspects: "aspects/" - -invariants: - - "Core logic MUST reside in core/" - - "Verified seams MUST reside in interface/" - - "Safety constraints MUST reside in contracts/" - - "Failure dictionaries MUST reside in errors/" diff --git a/a2ml/pandoc/src/README.adoc b/a2ml/pandoc/src/README.adoc deleted file mode 100644 index 5529f66f3..000000000 --- a/a2ml/pandoc/src/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= src Pillar diff --git a/a2ml/pandoc/src/aspects/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/src/aspects/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 3d5b209e2..000000000 --- a/a2ml/pandoc/src/aspects/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "source-unit-aspects" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Cross-cutting concerns and domain-specific aspects (Security, - Observability, Integrity). - -canonical_locations: - security: "security/" - observability: "observability/" - integrity: "integrity/" diff --git a/a2ml/pandoc/src/aspects/README.adoc b/a2ml/pandoc/src/aspects/README.adoc deleted file mode 100644 index 6456f962f..000000000 --- a/a2ml/pandoc/src/aspects/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Aspects Pillar diff --git a/a2ml/pandoc/src/aspects/integrity/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/src/aspects/integrity/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index f114cbd24..000000000 --- a/a2ml/pandoc/src/aspects/integrity/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "aspect-unit-integrity" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Implementation logic for the integrity aspect. diff --git a/a2ml/pandoc/src/aspects/integrity/README.adoc b/a2ml/pandoc/src/aspects/integrity/README.adoc deleted file mode 100644 index f15d829db..000000000 --- a/a2ml/pandoc/src/aspects/integrity/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Integrity Aspect diff --git a/a2ml/pandoc/src/aspects/observability/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/src/aspects/observability/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index e16cbdf9d..000000000 --- a/a2ml/pandoc/src/aspects/observability/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "aspect-unit-observability" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Implementation logic for the observability aspect. diff --git a/a2ml/pandoc/src/aspects/observability/README.adoc b/a2ml/pandoc/src/aspects/observability/README.adoc deleted file mode 100644 index 7852ee64d..000000000 --- a/a2ml/pandoc/src/aspects/observability/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Observability Aspect diff --git a/a2ml/pandoc/src/aspects/security/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/src/aspects/security/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 099653636..000000000 --- a/a2ml/pandoc/src/aspects/security/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "aspect-unit-security" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Implementation logic for the security aspect. diff --git a/a2ml/pandoc/src/aspects/security/README.adoc b/a2ml/pandoc/src/aspects/security/README.adoc deleted file mode 100644 index 3c3536ec8..000000000 --- a/a2ml/pandoc/src/aspects/security/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Security Aspect diff --git a/a2ml/pandoc/src/bridges/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/src/bridges/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 3d3e27a07..000000000 --- a/a2ml/pandoc/src/bridges/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "source-unit-bridges" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Integration logic for external systems (API, Database, RPC, etc.). diff --git a/a2ml/pandoc/src/contracts/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/src/contracts/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 0bd9198f8..000000000 --- a/a2ml/pandoc/src/contracts/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "source-unit-contracts" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Contracts unit for high-rigor source code. diff --git a/a2ml/pandoc/src/contracts/README.adoc b/a2ml/pandoc/src/contracts/README.adoc deleted file mode 100644 index 9cfa20983..000000000 --- a/a2ml/pandoc/src/contracts/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Contracts Unit diff --git a/a2ml/pandoc/src/core/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/src/core/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 22846c785..000000000 --- a/a2ml/pandoc/src/core/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "source-unit-core" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Primary application logic and core domain models. diff --git a/a2ml/pandoc/src/definitions/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/src/definitions/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index e54f4dabb..000000000 --- a/a2ml/pandoc/src/definitions/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "source-unit-definitions" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Definitions unit for high-rigor source code. diff --git a/a2ml/pandoc/src/definitions/README.adoc b/a2ml/pandoc/src/definitions/README.adoc deleted file mode 100644 index 954834977..000000000 --- a/a2ml/pandoc/src/definitions/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Definitions Unit diff --git a/a2ml/pandoc/src/errors/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/src/errors/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index dddcc6c43..000000000 --- a/a2ml/pandoc/src/errors/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "source-unit-errors" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Errors unit for high-rigor source code. diff --git a/a2ml/pandoc/src/errors/README.adoc b/a2ml/pandoc/src/errors/README.adoc deleted file mode 100644 index 460fc1e93..000000000 --- a/a2ml/pandoc/src/errors/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Errors Unit diff --git a/a2ml/pandoc/src/interface/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/src/interface/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 7f0f471b3..000000000 --- a/a2ml/pandoc/src/interface/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,24 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "interface-seams-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Consolidated "Verified Interface Seams" unit. This directory unifies the - formal specification (ABI), the bridge implementation (FFI), and the - resulting artifacts (Generated). - -canonical_locations: - abi: "abi/" - ffi: "ffi/" - generated: "generated/" - -invariants: - - "ABI MUST be Idris2 (.idr)" - - "FFI MUST be Zig (.zig)" - - "Generated artifacts MUST be C-compatible" - - "The 'Truth' lives in abi/; the 'Implementation' lives in ffi/" diff --git a/a2ml/pandoc/src/interface/README.adoc b/a2ml/pandoc/src/interface/README.adoc deleted file mode 100644 index 8faf0aad2..000000000 --- a/a2ml/pandoc/src/interface/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= interface Unit diff --git a/a2ml/pandoc/src/interface/abi/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/src/interface/abi/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index 91cafa014..000000000 --- a/a2ml/pandoc/src/interface/abi/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "abi-logic" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Specialised Level 3 logic for abi. diff --git a/a2ml/pandoc/src/interface/abi/README.adoc b/a2ml/pandoc/src/interface/abi/README.adoc deleted file mode 100644 index 2330304d0..000000000 --- a/a2ml/pandoc/src/interface/abi/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= abi Logic diff --git a/a2ml/pandoc/src/interface/ffi/0.3-AI-MANIFEST.a2ml b/a2ml/pandoc/src/interface/ffi/0.3-AI-MANIFEST.a2ml deleted file mode 100644 index bf456ae24..000000000 --- a/a2ml/pandoc/src/interface/ffi/0.3-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "ffi-logic" -level: 3 -parent: "../0.2-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Specialised Level 3 logic for ffi. diff --git a/a2ml/pandoc/src/interface/ffi/README.adoc b/a2ml/pandoc/src/interface/ffi/README.adoc deleted file mode 100644 index 8fe57d34c..000000000 --- a/a2ml/pandoc/src/interface/ffi/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= ffi Logic diff --git a/a2ml/pandoc/src/interface/ffi/build.zig b/a2ml/pandoc/src/interface/ffi/build.zig deleted file mode 100644 index 4a2e049a4..000000000 --- a/a2ml/pandoc/src/interface/ffi/build.zig +++ /dev/null @@ -1,94 +0,0 @@ -// {{PROJECT}} FFI Build Configuration -// SPDX-License-Identifier: MPL-2.0 - -const std = @import("std"); - -pub fn build(b: *std.Build) void { - const target = b.standardTargetOptions(.{}); - const optimize = b.standardOptimizeOption(.{}); - - // Shared library (.so, .dylib, .dll) - const lib = b.addSharedLibrary(.{ - .name = "{{project}}", - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - }); - - // Set version - lib.version = .{ .major = 0, .minor = 1, .patch = 0 }; - - // Static library (.a) - const lib_static = b.addStaticLibrary(.{ - .name = "{{project}}", - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - }); - - // Install artifacts - b.installArtifact(lib); - b.installArtifact(lib_static); - - // Generate header file for C compatibility - const header = b.addInstallHeader( - b.path("include/{{project}}.h"), - "{{project}}.h", - ); - b.getInstallStep().dependOn(&header.step); - - // Unit tests - const lib_tests = b.addTest(.{ - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - }); - - const run_lib_tests = b.addRunArtifact(lib_tests); - - const test_step = b.step("test", "Run library tests"); - test_step.dependOn(&run_lib_tests.step); - - // Integration tests - const integration_tests = b.addTest(.{ - .root_source_file = b.path("test/integration_test.zig"), - .target = target, - .optimize = optimize, - }); - - integration_tests.linkLibrary(lib); - - const run_integration_tests = b.addRunArtifact(integration_tests); - - const integration_test_step = b.step("test-integration", "Run integration tests"); - integration_test_step.dependOn(&run_integration_tests.step); - - // Documentation - const docs = b.addTest(.{ - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = .Debug, - }); - - const docs_step = b.step("docs", "Generate documentation"); - docs_step.dependOn(&b.addInstallDirectory(.{ - .source_dir = docs.getEmittedDocs(), - .install_dir = .prefix, - .install_subdir = "docs", - }).step); - - // Benchmark (if needed) - const bench = b.addExecutable(.{ - .name = "{{project}}-bench", - .root_source_file = b.path("bench/bench.zig"), - .target = target, - .optimize = .ReleaseFast, - }); - - bench.linkLibrary(lib); - - const run_bench = b.addRunArtifact(bench); - - const bench_step = b.step("bench", "Run benchmarks"); - bench_step.dependOn(&run_bench.step); -} diff --git a/a2ml/pandoc/src/interface/ffi/src/0.4-AI-MANIFEST.a2ml b/a2ml/pandoc/src/interface/ffi/src/0.4-AI-MANIFEST.a2ml deleted file mode 100644 index 5b5f1b1e5..000000000 --- a/a2ml/pandoc/src/interface/ffi/src/0.4-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "src-unit" -level: 4 -parent: "../0.3-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Src logic at level 4. diff --git a/a2ml/pandoc/src/interface/ffi/src/README.adoc b/a2ml/pandoc/src/interface/ffi/src/README.adoc deleted file mode 100644 index a5c0c6d57..000000000 --- a/a2ml/pandoc/src/interface/ffi/src/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Src Logic diff --git a/a2ml/pandoc/src/interface/ffi/src/main.zig b/a2ml/pandoc/src/interface/ffi/src/main.zig deleted file mode 100644 index 6b233bc79..000000000 --- a/a2ml/pandoc/src/interface/ffi/src/main.zig +++ /dev/null @@ -1,274 +0,0 @@ -// {{PROJECT}} FFI Implementation -// -// This module implements the C-compatible FFI declared in src/abi/Foreign.idr -// All types and layouts must match the Idris2 ABI definitions. -// -// SPDX-License-Identifier: MPL-2.0 - -const std = @import("std"); - -// Version information (keep in sync with project) -const VERSION = "0.1.0"; -const BUILD_INFO = "{{PROJECT}} built with Zig " ++ @import("builtin").zig_version_string; - -/// Thread-local error storage -threadlocal var last_error: ?[]const u8 = null; - -/// Set the last error message -fn setError(msg: []const u8) void { - last_error = msg; -} - -/// Clear the last error -fn clearError() void { - last_error = null; -} - -//============================================================================== -// Core Types (must match src/abi/Types.idr) -//============================================================================== - -/// Result codes (must match Idris2 Result type) -pub const Result = enum(c_int) { - ok = 0, - @"error" = 1, - invalid_param = 2, - out_of_memory = 3, - null_pointer = 4, -}; - -/// Library handle (opaque to prevent direct access) -pub const Handle = opaque { - // Internal state hidden from C - allocator: std.mem.Allocator, - initialized: bool, - // Add your fields here -}; - -//============================================================================== -// Library Lifecycle -//============================================================================== - -/// Initialize the library -/// Returns a handle, or null on failure -export fn {{project}}_init() ?*Handle { - const allocator = std.heap.c_allocator; - - const handle = allocator.create(Handle) catch { - setError("Failed to allocate handle"); - return null; - }; - - // Initialize handle - handle.* = .{ - .allocator = allocator, - .initialized = true, - }; - - clearError(); - return handle; -} - -/// Free the library handle -export fn {{project}}_free(handle: ?*Handle) void { - const h = handle orelse return; - const allocator = h.allocator; - - // Clean up resources - h.initialized = false; - - allocator.destroy(h); - clearError(); -} - -//============================================================================== -// Core Operations -//============================================================================== - -/// Process data (example operation) -export fn {{project}}_process(handle: ?*Handle, input: u32) Result { - const h = handle orelse { - setError("Null handle"); - return .null_pointer; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return .@"error"; - } - - // Example processing logic - _ = input; - - clearError(); - return .ok; -} - -//============================================================================== -// String Operations -//============================================================================== - -/// Get a string result (example) -/// Caller must free the returned string -export fn {{project}}_get_string(handle: ?*Handle) ?[*:0]const u8 { - const h = handle orelse { - setError("Null handle"); - return null; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return null; - } - - // Example: allocate and return a string - const result = h.allocator.dupeZ(u8, "Example result") catch { - setError("Failed to allocate string"); - return null; - }; - - clearError(); - return result.ptr; -} - -/// Free a string allocated by the library -export fn {{project}}_free_string(str: ?[*:0]const u8) void { - const s = str orelse return; - const allocator = std.heap.c_allocator; - - const slice = std.mem.span(s); - allocator.free(slice); -} - -//============================================================================== -// Array/Buffer Operations -//============================================================================== - -/// Process an array of data -export fn {{project}}_process_array( - handle: ?*Handle, - buffer: ?[*]const u8, - len: u32, -) Result { - const h = handle orelse { - setError("Null handle"); - return .null_pointer; - }; - - const buf = buffer orelse { - setError("Null buffer"); - return .null_pointer; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return .@"error"; - } - - // Access the buffer - const data = buf[0..len]; - _ = data; - - // Process data here - - clearError(); - return .ok; -} - -//============================================================================== -// Error Handling -//============================================================================== - -/// Get the last error message -/// Returns null if no error -export fn {{project}}_last_error() ?[*:0]const u8 { - const err = last_error orelse return null; - - // Return C string (static storage, no need to free) - const allocator = std.heap.c_allocator; - const c_str = allocator.dupeZ(u8, err) catch return null; - return c_str.ptr; -} - -//============================================================================== -// Version Information -//============================================================================== - -/// Get the library version -export fn {{project}}_version() [*:0]const u8 { - return VERSION.ptr; -} - -/// Get build information -export fn {{project}}_build_info() [*:0]const u8 { - return BUILD_INFO.ptr; -} - -//============================================================================== -// Callback Support -//============================================================================== - -/// Callback function type (C ABI) -pub const Callback = *const fn (u64, u32) callconv(.C) u32; - -/// Register a callback -export fn {{project}}_register_callback( - handle: ?*Handle, - callback: ?Callback, -) Result { - const h = handle orelse { - setError("Null handle"); - return .null_pointer; - }; - - const cb = callback orelse { - setError("Null callback"); - return .null_pointer; - }; - - if (!h.initialized) { - setError("Handle not initialized"); - return .@"error"; - } - - // Store callback for later use - _ = cb; - - clearError(); - return .ok; -} - -//============================================================================== -// Utility Functions -//============================================================================== - -/// Check if handle is initialized -export fn {{project}}_is_initialized(handle: ?*Handle) u32 { - const h = handle orelse return 0; - return if (h.initialized) 1 else 0; -} - -//============================================================================== -// Tests -//============================================================================== - -test "lifecycle" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - try std.testing.expect({{project}}_is_initialized(handle) == 1); -} - -test "error handling" { - const result = {{project}}_process(null, 0); - try std.testing.expectEqual(Result.null_pointer, result); - - const err = {{project}}_last_error(); - try std.testing.expect(err != null); -} - -test "version" { - const ver = {{project}}_version(); - const ver_str = std.mem.span(ver); - try std.testing.expectEqualStrings(VERSION, ver_str); -} diff --git a/a2ml/pandoc/src/interface/ffi/test/0.4-AI-MANIFEST.a2ml b/a2ml/pandoc/src/interface/ffi/test/0.4-AI-MANIFEST.a2ml deleted file mode 100644 index e02427f84..000000000 --- a/a2ml/pandoc/src/interface/ffi/test/0.4-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "test-unit" -level: 4 -parent: "../0.3-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Test logic at level 4. diff --git a/a2ml/pandoc/src/interface/ffi/test/README.adoc b/a2ml/pandoc/src/interface/ffi/test/README.adoc deleted file mode 100644 index f6f38bf6e..000000000 --- a/a2ml/pandoc/src/interface/ffi/test/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Test Logic diff --git a/a2ml/pandoc/src/interface/ffi/test/integration_test.zig b/a2ml/pandoc/src/interface/ffi/test/integration_test.zig deleted file mode 100644 index 034199499..000000000 --- a/a2ml/pandoc/src/interface/ffi/test/integration_test.zig +++ /dev/null @@ -1,182 +0,0 @@ -// {{PROJECT}} Integration Tests -// SPDX-License-Identifier: MPL-2.0 -// -// These tests verify that the Zig FFI correctly implements the Idris2 ABI - -const std = @import("std"); -const testing = std.testing; - -// Import FFI functions -extern fn {{project}}_init() ?*opaque {}; -extern fn {{project}}_free(?*opaque {}) void; -extern fn {{project}}_process(?*opaque {}, u32) c_int; -extern fn {{project}}_get_string(?*opaque {}) ?[*:0]const u8; -extern fn {{project}}_free_string(?[*:0]const u8) void; -extern fn {{project}}_last_error() ?[*:0]const u8; -extern fn {{project}}_version() [*:0]const u8; -extern fn {{project}}_is_initialized(?*opaque {}) u32; - -//============================================================================== -// Lifecycle Tests -//============================================================================== - -test "create and destroy handle" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - try testing.expect(handle != null); -} - -test "handle is initialized" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const initialized = {{project}}_is_initialized(handle); - try testing.expectEqual(@as(u32, 1), initialized); -} - -test "null handle is not initialized" { - const initialized = {{project}}_is_initialized(null); - try testing.expectEqual(@as(u32, 0), initialized); -} - -//============================================================================== -// Operation Tests -//============================================================================== - -test "process with valid handle" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const result = {{project}}_process(handle, 42); - try testing.expectEqual(@as(c_int, 0), result); // 0 = ok -} - -test "process with null handle returns error" { - const result = {{project}}_process(null, 42); - try testing.expectEqual(@as(c_int, 4), result); // 4 = null_pointer -} - -//============================================================================== -// String Tests -//============================================================================== - -test "get string result" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const str = {{project}}_get_string(handle); - defer if (str) |s| {{project}}_free_string(s); - - try testing.expect(str != null); -} - -test "get string with null handle" { - const str = {{project}}_get_string(null); - try testing.expect(str == null); -} - -//============================================================================== -// Error Handling Tests -//============================================================================== - -test "last error after null handle operation" { - _ = {{project}}_process(null, 0); - - const err = {{project}}_last_error(); - try testing.expect(err != null); - - if (err) |e| { - const err_str = std.mem.span(e); - try testing.expect(err_str.len > 0); - } -} - -test "no error after successful operation" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - _ = {{project}}_process(handle, 0); - - // Error should be cleared after successful operation - // (This depends on implementation) -} - -//============================================================================== -// Version Tests -//============================================================================== - -test "version string is not empty" { - const ver = {{project}}_version(); - const ver_str = std.mem.span(ver); - - try testing.expect(ver_str.len > 0); -} - -test "version string is semantic version format" { - const ver = {{project}}_version(); - const ver_str = std.mem.span(ver); - - // Should be in format X.Y.Z - try testing.expect(std.mem.count(u8, ver_str, ".") >= 1); -} - -//============================================================================== -// Memory Safety Tests -//============================================================================== - -test "multiple handles are independent" { - const h1 = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(h1); - - const h2 = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(h2); - - try testing.expect(h1 != h2); - - // Operations on h1 should not affect h2 - _ = {{project}}_process(h1, 1); - _ = {{project}}_process(h2, 2); -} - -test "double free is safe" { - const handle = {{project}}_init() orelse return error.InitFailed; - - {{project}}_free(handle); - {{project}}_free(handle); // Should not crash -} - -test "free null is safe" { - {{project}}_free(null); // Should not crash -} - -//============================================================================== -// Thread Safety Tests (if applicable) -//============================================================================== - -test "concurrent operations" { - const handle = {{project}}_init() orelse return error.InitFailed; - defer {{project}}_free(handle); - - const ThreadContext = struct { - h: *opaque {}, - id: u32, - }; - - const thread_fn = struct { - fn run(ctx: ThreadContext) void { - _ = {{project}}_process(ctx.h, ctx.id); - } - }.run; - - var threads: [4]std.Thread = undefined; - for (&threads, 0..) |*thread, i| { - thread.* = try std.Thread.spawn(.{}, thread_fn, .{ - ThreadContext{ .h = handle, .id = @intCast(i) }, - }); - } - - for (threads) |thread| { - thread.join(); - } -} diff --git a/a2ml/pandoc/verification/0.1-AI-MANIFEST.a2ml b/a2ml/pandoc/verification/0.1-AI-MANIFEST.a2ml deleted file mode 100644 index 3435bdb41..000000000 --- a/a2ml/pandoc/verification/0.1-AI-MANIFEST.a2ml +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "verification-pillar" -level: 1 -parent: "../0-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Primary verification pillar. Contains evidence for correctness, - performance, formal proofs, randomized testing, and aerospace-grade - high-assurance metrics (MC/DC coverage, traceability, safety cases). - -canonical_locations: - tests: "tests/" - benchmarks: "benchmarks/" - proofs: "proofs/" - fuzzing: "fuzzing/" - simulations: "simulations/" - coverage: "coverage/" - traceability: "traceability/" - safety_case: "safety_case/" - -invariants: - - "Evidence MUST be reproducible and documented" - - "High-assurance deployments MUST satisfy traceability and safety_case requirements" diff --git a/a2ml/pandoc/verification/README.adoc b/a2ml/pandoc/verification/README.adoc deleted file mode 100644 index f07e7f34b..000000000 --- a/a2ml/pandoc/verification/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Verification Pillar diff --git a/a2ml/pandoc/verification/benchmarks/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/verification/benchmarks/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index d922a4c74..000000000 --- a/a2ml/pandoc/verification/benchmarks/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "benches-pillar" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Benches pillar. diff --git a/a2ml/pandoc/verification/benchmarks/README.adoc b/a2ml/pandoc/verification/benchmarks/README.adoc deleted file mode 100644 index 5db764868..000000000 --- a/a2ml/pandoc/verification/benchmarks/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Benchmarks Unit diff --git a/a2ml/pandoc/verification/coverage/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/verification/coverage/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 32b819e4e..000000000 --- a/a2ml/pandoc/verification/coverage/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,12 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "verification-unit-coverage" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - High-assurance verification unit for coverage. - Critical for safety-of-life and aerospace-grade deployment standards. diff --git a/a2ml/pandoc/verification/coverage/README.adoc b/a2ml/pandoc/verification/coverage/README.adoc deleted file mode 100644 index 256695694..000000000 --- a/a2ml/pandoc/verification/coverage/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Coverage Unit diff --git a/a2ml/pandoc/verification/fuzzing/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/verification/fuzzing/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 5178d400e..000000000 --- a/a2ml/pandoc/verification/fuzzing/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "fuzzing-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Fuzzing unit for high-rigor verification. diff --git a/a2ml/pandoc/verification/fuzzing/README.adoc b/a2ml/pandoc/verification/fuzzing/README.adoc deleted file mode 100644 index edeb17929..000000000 --- a/a2ml/pandoc/verification/fuzzing/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Fuzzing Unit diff --git a/a2ml/pandoc/verification/proofs/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/verification/proofs/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 135e181bd..000000000 --- a/a2ml/pandoc/verification/proofs/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "verification-unit-proofs" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Sub-unit focusing on proofs. diff --git a/a2ml/pandoc/verification/proofs/README.adoc b/a2ml/pandoc/verification/proofs/README.adoc deleted file mode 100644 index 1ae324d07..000000000 --- a/a2ml/pandoc/verification/proofs/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Proofs Unit diff --git a/a2ml/pandoc/verification/safety_case/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/verification/safety_case/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index d461915b8..000000000 --- a/a2ml/pandoc/verification/safety_case/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,12 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "verification-unit-safety_case" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - High-assurance verification unit for safety case. - Critical for safety-of-life and aerospace-grade deployment standards. diff --git a/a2ml/pandoc/verification/safety_case/README.adoc b/a2ml/pandoc/verification/safety_case/README.adoc deleted file mode 100644 index 47c8e3687..000000000 --- a/a2ml/pandoc/verification/safety_case/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Safety case Unit diff --git a/a2ml/pandoc/verification/simulations/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/verification/simulations/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index f890ecace..000000000 --- a/a2ml/pandoc/verification/simulations/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "simulations-unit" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - Simulations unit for high-rigor verification. diff --git a/a2ml/pandoc/verification/simulations/README.adoc b/a2ml/pandoc/verification/simulations/README.adoc deleted file mode 100644 index 8e1b13aa9..000000000 --- a/a2ml/pandoc/verification/simulations/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Simulations Unit diff --git a/a2ml/pandoc/verification/tests/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/verification/tests/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 0008fcfaf..000000000 --- a/a2ml/pandoc/verification/tests/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1 +0,0 @@ -# AI Manifest - Level 1: tests diff --git a/a2ml/pandoc/verification/tests/README.adoc b/a2ml/pandoc/verification/tests/README.adoc deleted file mode 100644 index 344bf862b..000000000 --- a/a2ml/pandoc/verification/tests/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Tests Unit diff --git a/a2ml/pandoc/verification/traceability/0.2-AI-MANIFEST.a2ml b/a2ml/pandoc/verification/traceability/0.2-AI-MANIFEST.a2ml deleted file mode 100644 index 966776651..000000000 --- a/a2ml/pandoc/verification/traceability/0.2-AI-MANIFEST.a2ml +++ /dev/null @@ -1,12 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 ---- -### [META] -id: "verification-unit-traceability" -level: 2 -parent: "../0.1-AI-MANIFEST.a2ml" - ---- -### [AI_MANIFEST] -description: | - High-assurance verification unit for traceability. - Critical for safety-of-life and aerospace-grade deployment standards. diff --git a/a2ml/pandoc/verification/traceability/README.adoc b/a2ml/pandoc/verification/traceability/README.adoc deleted file mode 100644 index ff23dd759..000000000 --- a/a2ml/pandoc/verification/traceability/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= Traceability Unit diff --git a/a2ml/profiles/README.adoc b/a2ml/profiles/README.adoc deleted file mode 100644 index 0b713588e..000000000 --- a/a2ml/profiles/README.adoc +++ /dev/null @@ -1,69 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML Profiles (a2ml/* namespace) -:toc: -:icons: font - -Home of the profile definitions shipped by this repository, plus the -hash-pinned registry that indexes them. See `../SPEC.adoc` Sections 8 and 11 -for the normative profile mechanism. - -== Layout - -[cols="2,3",options="header"] -|=== -| Path | Contents -| `-/PROFILE.a2ml` | One profile definition (the single source - of truth for that profile). Example: `a2ml-state/PROFILE.a2ml`. -| `REGISTRY.a2ml` | Verifiable index: one base record per profile, pinning its - definition by sha256. -|=== - -== The seven `a2ml/*` profiles (descriptiles family) - -[cols="2,4",options="header"] -|=== -| Profile id | Validates -| `a2ml/state` | `STATE.a2ml` — current project state and progress -| `a2ml/meta` | `META.a2ml` — architecture decisions / dev practices -| `a2ml/ecosystem` | `ECOSYSTEM.a2ml` — position in the ecosystem -| `a2ml/agentic` | `AGENTIC.a2ml` — AI-agent permissions and constraints -| `a2ml/neurosym` | `NEUROSYM.a2ml` — neurosymbolic / Hypatia config -| `a2ml/playbook` | `PLAYBOOK.a2ml` — operational runbook -| `a2ml/anchor` | `ANCHOR.a2ml` — canonical authority identity -|=== - -Each profile constrains only the five axes permitted by SPEC.adoc Section 8.2 -(required sections, allowed directives, required directives, reference classes, -minimum attestation). All seven are non-executable validation bundles: they -raise strictness only and grant no capability. - -== Declaring a profile in a document - -A descriptiles document opts in with a single self-closing directive in its preamble: - ----- -@profile(id=a2ml/state) ----- - -== Verifying / regenerating the registry - -The registry pins each definition by the sha256 of its exact bytes. To verify: - -[source,sh] ----- -sha256sum a2ml/profiles/*/PROFILE.a2ml -# compare each digest against the matching `hash:` line in REGISTRY.a2ml ----- - -When a definition changes, recompute its digest and update both the definition's -`version` and its registry entry. The registry is the verifiable index; a -consumer trusts a profile only when the computed hash equals the pinned hash. - -== Adding a new profile - -. Create `-/PROFILE.a2ml` with a single `@profile-def` block. -. Compute its sha256 and add a `@record` entry to `REGISTRY.a2ml`. -. If it is an `a2ml/*` profile, list it in SPEC.adoc Section 11. - -The `a2ml/*` namespace is reserved for this repository. Downstream consumers -register their own profiles under their own namespaces, in their own repos. diff --git a/a2ml/profiles/REGISTRY.a2ml b/a2ml/profiles/REGISTRY.a2ml deleted file mode 100644 index 36230783a..000000000 --- a/a2ml/profiles/REGISTRY.a2ml +++ /dev/null @@ -1,98 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 - -# A2ML Profile Registry - -@abstract: -The verifiable index of profiles shipped by this repository (SPEC.adoc -Section 8.5). Each entry is a base record (SPEC.adoc Section 7) whose -`artefact_ref` names a profile definition and whose `hash` pins that -definition by the sha256 of its exact bytes (SPEC.adoc Section 9.2 / 9.4). -A consumer trusts a profile only when the definition's computed hash equals -the pinned hash here. This is SSOT + verifiable registry: one home per -profile (the PROFILE.a2ml file), one hash-pinned index entry (here), no -duplicated normative text. -@end - -# Conventions - -@rationale: -A registry entry describes a whole definition file rather than a located -region, so its `source_span` uses the file-start anchor `{1,1}-{1,1}` by -convention; the artefact is identified by `artefact_ref`. Entries carry -`provenance.kind = mechanical` because the pinned value is a mechanical fact -(the sha256 of the file) and the registry is regenerated by hashing the -definition files. Recompute with: -`sha256sum a2ml/profiles/*/PROFILE.a2ml`. -@end - -# Entries - -@record: -id: reg-a2ml-state -source_span: { file: "a2ml/profiles/a2ml-state/PROFILE.a2ml", start: { line: 1, col: 1 }, end: { line: 1, col: 1 } } -hash: "sha256:7517fa9959df3e16db0ac49967ea37829aeb58880138a8e7858a267a22c2420e" -provenance: { author: "hyperpolymath", tool: "a2ml-registry@1.1.0", kind: mechanical } -timestamp: "2026-06-03T12:00:00Z" -artefact_ref: "repo:standards/a2ml/profiles/a2ml-state/PROFILE.a2ml" -profile_decl: a2ml/state -@end - -@record: -id: reg-a2ml-meta -source_span: { file: "a2ml/profiles/a2ml-meta/PROFILE.a2ml", start: { line: 1, col: 1 }, end: { line: 1, col: 1 } } -hash: "sha256:1c2332aeb46e4f80167a6a984f2999f76e511afb033edc9d1b94ed20bf1657d2" -provenance: { author: "hyperpolymath", tool: "a2ml-registry@1.1.0", kind: mechanical } -timestamp: "2026-06-03T12:00:00Z" -artefact_ref: "repo:standards/a2ml/profiles/a2ml-meta/PROFILE.a2ml" -profile_decl: a2ml/meta -@end - -@record: -id: reg-a2ml-ecosystem -source_span: { file: "a2ml/profiles/a2ml-ecosystem/PROFILE.a2ml", start: { line: 1, col: 1 }, end: { line: 1, col: 1 } } -hash: "sha256:cdd8a16f376fda13ea19a5ddacc3cbb33c8ff9ebd4466f50a63ac9a0570da6a6" -provenance: { author: "hyperpolymath", tool: "a2ml-registry@1.1.0", kind: mechanical } -timestamp: "2026-06-03T12:00:00Z" -artefact_ref: "repo:standards/a2ml/profiles/a2ml-ecosystem/PROFILE.a2ml" -profile_decl: a2ml/ecosystem -@end - -@record: -id: reg-a2ml-agentic -source_span: { file: "a2ml/profiles/a2ml-agentic/PROFILE.a2ml", start: { line: 1, col: 1 }, end: { line: 1, col: 1 } } -hash: "sha256:a16b5b33e4f7d1f03e8c4c87d1c713844007a2e669e6dff58c6507cc34d7c9ae" -provenance: { author: "hyperpolymath", tool: "a2ml-registry@1.1.0", kind: mechanical } -timestamp: "2026-06-03T12:00:00Z" -artefact_ref: "repo:standards/a2ml/profiles/a2ml-agentic/PROFILE.a2ml" -profile_decl: a2ml/agentic -@end - -@record: -id: reg-a2ml-neurosym -source_span: { file: "a2ml/profiles/a2ml-neurosym/PROFILE.a2ml", start: { line: 1, col: 1 }, end: { line: 1, col: 1 } } -hash: "sha256:ae343862907f0f37d57ba380a6abca70d717bae567ea378798edde79a25cb3ec" -provenance: { author: "hyperpolymath", tool: "a2ml-registry@1.1.0", kind: mechanical } -timestamp: "2026-06-03T12:00:00Z" -artefact_ref: "repo:standards/a2ml/profiles/a2ml-neurosym/PROFILE.a2ml" -profile_decl: a2ml/neurosym -@end - -@record: -id: reg-a2ml-playbook -source_span: { file: "a2ml/profiles/a2ml-playbook/PROFILE.a2ml", start: { line: 1, col: 1 }, end: { line: 1, col: 1 } } -hash: "sha256:be1a98e21c9e4d2183a1771a3ee5f80a2e3f385b74061916bda6cd8aecc32db5" -provenance: { author: "hyperpolymath", tool: "a2ml-registry@1.1.0", kind: mechanical } -timestamp: "2026-06-03T12:00:00Z" -artefact_ref: "repo:standards/a2ml/profiles/a2ml-playbook/PROFILE.a2ml" -profile_decl: a2ml/playbook -@end - -@record: -id: reg-a2ml-anchor -source_span: { file: "a2ml/profiles/a2ml-anchor/PROFILE.a2ml", start: { line: 1, col: 1 }, end: { line: 1, col: 1 } } -hash: "sha256:956d83e0e6ebdd50dcf10754acd34ba6c6f3b78a60d69df9d9e5d83039e299a0" -provenance: { author: "hyperpolymath", tool: "a2ml-registry@1.1.0", kind: mechanical } -timestamp: "2026-06-03T12:00:00Z" -artefact_ref: "repo:standards/a2ml/profiles/a2ml-anchor/PROFILE.a2ml" -profile_decl: a2ml/anchor -@end diff --git a/a2ml/profiles/a2ml-agentic/PROFILE.a2ml b/a2ml/profiles/a2ml-agentic/PROFILE.a2ml deleted file mode 100644 index 427893499..000000000 --- a/a2ml/profiles/a2ml-agentic/PROFILE.a2ml +++ /dev/null @@ -1,30 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 - -# A2ML Profile: a2ml/agentic - -@abstract: -Validation profile for the descriptiles AGENTIC.a2ml metadata record (AI-agent -interaction patterns, permissions, and constraints). Non-executable; -five-axis-bounded per SPEC.adoc Section 8.2. -@end - -@profile-def(id=a2ml/agentic, version="1.0.0"): -required_sections: - - metadata - - agent-permissions - - agent-constraints -allowed_directives: closed [ profile ] -required_directives: [] -reference_classes: [] -min_attestation: checked -@end - -# Notes - -@rationale: -AGENTIC governs what automated agents may do in the repo. Both -`agent-permissions` (the allow side) and `agent-constraints` (the deny side) -are required: an AGENTIC record that states permissions without constraints, -or vice versa, is dangerously half-specified. `maintenance-integrity` and -`automation-hooks` remain optional refinements. -@end diff --git a/a2ml/profiles/a2ml-anchor/PROFILE.a2ml b/a2ml/profiles/a2ml-anchor/PROFILE.a2ml deleted file mode 100644 index 508ab7a26..000000000 --- a/a2ml/profiles/a2ml-anchor/PROFILE.a2ml +++ /dev/null @@ -1,32 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 - -# A2ML Profile: a2ml/anchor - -@abstract: -Validation profile for the ANCHOR.a2ml record — the canonical authority -identity for a repository. Non-executable; five-axis-bounded per SPEC.adoc -Section 8.2. -@end - -@profile-def(id=a2ml/anchor, version="1.0.0"): -required_sections: - - id - - version - - clade - - status -allowed_directives: closed [ profile ] -required_directives: [] -reference_classes: [] -min_attestation: checked -@end - -# Notes - -@rationale: -ANCHOR is the smallest, most load-bearing descriptiles record: it asserts a repo's -canonical identity. Its dialect is key-based (top-level `key: value`), so here -`required_sections` names the required top-level KEYS rather than [section] -headers. All four — `id` (canonical authority id), `version`, `clade` -(taxonomy), and `status` — are required; an anchor missing any of them cannot -serve as an authority. `ssg` and `parents` are optional relationship fields. -@end diff --git a/a2ml/profiles/a2ml-ecosystem/PROFILE.a2ml b/a2ml/profiles/a2ml-ecosystem/PROFILE.a2ml deleted file mode 100644 index 6ecb6496f..000000000 --- a/a2ml/profiles/a2ml-ecosystem/PROFILE.a2ml +++ /dev/null @@ -1,29 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 - -# A2ML Profile: a2ml/ecosystem - -@abstract: -Validation profile for the descriptiles ECOSYSTEM.a2ml metadata record (position in -the ecosystem and related projects). Non-executable; five-axis-bounded per -SPEC.adoc Section 8.2. -@end - -@profile-def(id=a2ml/ecosystem, version="1.0.0"): -required_sections: - - metadata - - project - - position-in-ecosystem -allowed_directives: closed [ profile ] -required_directives: [] -reference_classes: [] -min_attestation: checked -@end - -# Notes - -@rationale: -ECOSYSTEM situates the repo among its siblings. `project` (name/role) and -`position-in-ecosystem` (category) are the minimum needed to place it; -`related-projects` is optional because a standalone or newly-seeded repo may -have no recorded relationships yet. -@end diff --git a/a2ml/profiles/a2ml-meta/PROFILE.a2ml b/a2ml/profiles/a2ml-meta/PROFILE.a2ml deleted file mode 100644 index 44208cb3a..000000000 --- a/a2ml/profiles/a2ml-meta/PROFILE.a2ml +++ /dev/null @@ -1,30 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 - -# A2ML Profile: a2ml/meta - -@abstract: -Validation profile for the descriptiles META.a2ml metadata record (architecture -decisions and development practices). Non-executable: raises validation -strictness only, within the five axes of SPEC.adoc Section 8.2. -@end - -@profile-def(id=a2ml/meta, version="1.0.0"): -required_sections: - - metadata - - project-info - - development-practices -allowed_directives: closed [ profile ] -required_directives: [] -reference_classes: [] -min_attestation: checked -@end - -# Notes - -@rationale: -META carries the project's architecture-decision record and its development -practices. `project-info` and `development-practices` are required because a -META with neither is indistinguishable from an empty stub. Architecture -decisions live under `architecture-decisions` but are not made mandatory: a -new project may legitimately have none yet. -@end diff --git a/a2ml/profiles/a2ml-neurosym/PROFILE.a2ml b/a2ml/profiles/a2ml-neurosym/PROFILE.a2ml deleted file mode 100644 index 62dd6d3da..000000000 --- a/a2ml/profiles/a2ml-neurosym/PROFILE.a2ml +++ /dev/null @@ -1,28 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 - -# A2ML Profile: a2ml/neurosym - -@abstract: -Validation profile for the descriptiles NEUROSYM.a2ml metadata record (neurosymbolic -integration / Hypatia scan configuration). Non-executable; five-axis-bounded -per SPEC.adoc Section 8.2. -@end - -@profile-def(id=a2ml/neurosym, version="1.0.0"): -required_sections: - - metadata - - hypatia-config -allowed_directives: closed [ profile ] -required_directives: [] -reference_classes: [] -min_attestation: checked -@end - -# Notes - -@rationale: -NEUROSYM wires the repo into Hypatia's scanning. `hypatia-config` -(scan-enabled / depth / report-format) is the one section without which the -record does nothing useful, so it is required. `symbolic-rules` and -`neural-config` are optional per-project tuning. -@end diff --git a/a2ml/profiles/a2ml-playbook/PROFILE.a2ml b/a2ml/profiles/a2ml-playbook/PROFILE.a2ml deleted file mode 100644 index 60af5ed23..000000000 --- a/a2ml/profiles/a2ml-playbook/PROFILE.a2ml +++ /dev/null @@ -1,28 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 - -# A2ML Profile: a2ml/playbook - -@abstract: -Validation profile for the descriptiles PLAYBOOK.a2ml metadata record (operational -runbook). Non-executable; five-axis-bounded per SPEC.adoc Section 8.2. -@end - -@profile-def(id=a2ml/playbook, version="1.0.0"): -required_sections: - - metadata - - incident-response - - release-process -allowed_directives: closed [ profile ] -required_directives: [] -reference_classes: [] -min_attestation: checked -@end - -# Notes - -@rationale: -PLAYBOOK is the operational runbook. `incident-response` and -`release-process` are the two procedures a runbook exists to capture, so both -are required. `deployment` and `maintenance-operations` are optional because -not every component deploys or runs scheduled maintenance. -@end diff --git a/a2ml/profiles/a2ml-state/PROFILE.a2ml b/a2ml/profiles/a2ml-state/PROFILE.a2ml deleted file mode 100644 index 02eff3ff6..000000000 --- a/a2ml/profiles/a2ml-state/PROFILE.a2ml +++ /dev/null @@ -1,33 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 - -# A2ML Profile: a2ml/state - -@abstract: -Validation profile for the descriptiles STATE.a2ml metadata record (current project -state and progress). Non-executable: this profile only raises validation -strictness. It constrains exactly the five axes permitted by SPEC.adoc -Section 8.2. -@end - -@profile-def(id=a2ml/state, version="1.0.0"): -required_sections: - - metadata - - position - - maintenance-status -allowed_directives: closed [ profile ] -required_directives: [] -reference_classes: [] -min_attestation: checked -@end - -# Notes - -@rationale: -STATE documents are record-dialect A2ML (TOML-like [section] headers map to -A2ML section titles). The three required sections are the load-bearing ones: -`metadata` (identity/version), `position` (phase/maturity), and -`maintenance-status` (last-run result). `allowed_directives: closed [ profile ]` -keeps STATE a pure data record — the only directive permitted is the -`@profile` declaration itself; any stray markup directive is a checked-mode -error. -@end diff --git a/a2ml/prototype/ada-tui/docs/README.adoc b/a2ml/prototype/ada-tui/docs/README.adoc deleted file mode 100644 index 770c3517a..000000000 --- a/a2ml/prototype/ada-tui/docs/README.adoc +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML Ada/SPARK TUI (Prototype) - -This is a minimal Ada TUI wrapper around the A2ML CLI. - -== SPARK separation - -* `A2ML_TUI.Core` is SPARK-safe logic (mode toggles, command composition). -* `Main` is non-SPARK (process spawning, IO). - -== Build - -[source,bash] ----- -cd prototype/ada-tui - -gnatmake -gnat2022 -O2 -o a2ml-tui src/main.adb -./a2ml-tui ----- - -== Requirements - -* GNAT / Ada compiler -* `just` available in PATH -* A2ML CLI prototype (ReScript) buildable on this machine diff --git a/a2ml/prototype/ada-tui/src/core.adb b/a2ml/prototype/ada-tui/src/core.adb deleted file mode 100644 index 85eec1bcc..000000000 --- a/a2ml/prototype/ada-tui/src/core.adb +++ /dev/null @@ -1,57 +0,0 @@ -with Ada.Strings.Fixed; - -package body A2ML_TUI.Core with SPARK_Mode is - use Ada.Strings.Fixed; - - function Toggle_Mode (S : State) return State is - R : State := S; - begin - if S.Mode = Checked then - R.Mode := Lax; - else - R.Mode := Checked; - end if; - return R; - end Toggle_Mode; - - function Toggle_Concat (S : State) return State is - R : State := S; - begin - R.Concat := not S.Concat; - return R; - end Toggle_Concat; - - function Set_Out (S : State; Path : String) return State is - R : State := S; - begin - if Path'Length = 0 then - R.Outp := " "; - else - R.Outp := Path; - end if; - return R; - end Set_Out; - - function Mode_Str (M : Mode_Type) return String is - begin - return (if M = Checked then "checked" else "lax"); - end Mode_Str; - - function Build_Command - (Command : String; - Input : String; - Mode : Mode_Type; - Outp : String; - Concat : Boolean) return String is - Cmd : String := "just cli " & Command & " " & Input; - begin - Cmd := Cmd & " --mode " & Mode_Str (Mode); - if Outp /= " " then - Cmd := Cmd & " --out " & Outp; - end if; - if Concat then - Cmd := Cmd & " --concat"; - end if; - return Cmd; - end Build_Command; -end A2ML_TUI.Core; diff --git a/a2ml/prototype/ada-tui/src/core.ads b/a2ml/prototype/ada-tui/src/core.ads deleted file mode 100644 index ae8e48560..000000000 --- a/a2ml/prototype/ada-tui/src/core.ads +++ /dev/null @@ -1,20 +0,0 @@ -package A2ML_TUI.Core with SPARK_Mode is - type Mode_Type is (Lax, Checked); - - type State is record - Mode : Mode_Type := Checked; - Concat : Boolean := False; - Outp : String (1 .. 1) := " "; -- empty sentinel - end record; - - function Toggle_Mode (S : State) return State; - function Toggle_Concat (S : State) return State; - function Set_Out (S : State; Path : String) return State; - - function Build_Command - (Command : String; - Input : String; - Mode : Mode_Type; - Outp : String; - Concat : Boolean) return String; -end A2ML_TUI.Core; diff --git a/a2ml/prototype/ada-tui/src/main.adb b/a2ml/prototype/ada-tui/src/main.adb deleted file mode 100644 index afe4cedbc..000000000 --- a/a2ml/prototype/ada-tui/src/main.adb +++ /dev/null @@ -1,80 +0,0 @@ -with Ada.Text_IO; -with Ada.Strings.Fixed; -with GNAT.OS_Lib; -with A2ML_TUI.Core; - -procedure Main is - pragma SPARK_Mode (Off); - - use Ada.Text_IO; - use Ada.Strings.Fixed; - use A2ML_TUI.Core; - - function Read_Line_Trim return String is - Buffer : String (1 .. 1024); - Last : Natural; - begin - Get_Line (Buffer, Last); - return Trim (Buffer (1 .. Last), Ada.Strings.Both); - end Read_Line_Trim; - - procedure Run_Command (Cmd : String) is - Args : GNAT.OS_Lib.Argument_List_Access; - Result : Integer; - begin - Args := GNAT.OS_Lib.Argument_String_To_List (Cmd); - Result := GNAT.OS_Lib.Spawn (Args (Args'First), Args); - GNAT.OS_Lib.Free (Args); - Put_Line ("Exit code: " & Integer'Image (Result)); - end Run_Command; - - Choice : String := ""; - Input : String := ""; - Outp : String := ""; - St : State; -begin - Put_Line ("A2ML Ada TUI (prototype)"); - Put_Line ("------------------------"); - loop - Put_Line (""); - Put_Line ("1) Render HTML"); - Put_Line ("2) Validate (checked)"); - Put_Line ("3) Dump AST (JSON)"); - Put_Line ("4) Toggle mode (lax/checked) [current: " & (if St.Mode = Checked then "checked" else "lax") & "]"); - Put_Line ("5) Toggle concat [current: " & (if St.Concat then "on" else "off") & "]"); - Put_Line ("6) Set output path [current: " & (if St.Outp = " " then "stdout" else St.Outp) & "]"); - Put_Line ("7) Quit"); - Put ("> "); - Choice := Read_Line_Trim; - - if Choice = "7" then - exit; - elsif Choice = "4" then - St := Toggle_Mode (St); - elsif Choice = "5" then - St := Toggle_Concat (St); - elsif Choice = "6" then - Put ("Output path (empty for stdout): "); - Outp := Read_Line_Trim; - St := Set_Out (St, Outp); - elsif Choice = "1" or else Choice = "2" or else Choice = "3" then - Put ("Input file (or '-' for stdin): "); - Input := Read_Line_Trim; - if Input = "" then - Put_Line ("No input provided."); - else - declare - Cmd : String := - (if Choice = "1" then Build_Command ("render", Input, St.Mode, St.Outp, St.Concat) - elsif Choice = "2" then Build_Command ("validate", Input, St.Mode, St.Outp, St.Concat) - else Build_Command ("ast", Input, St.Mode, St.Outp, St.Concat)); - begin - Put_Line ("Running: " & Cmd); - Run_Command (Cmd); - end; - end if; - else - Put_Line ("Unknown choice."); - end if; - end loop; -end Main; diff --git a/a2ml/prototype/affinescript/README.adoc b/a2ml/prototype/affinescript/README.adoc deleted file mode 100644 index 486bf454a..000000000 --- a/a2ml/prototype/affinescript/README.adoc +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML Web Prototype (AffineScript) - -This is a minimal, non-exhaustive AFfineScript prototype that demonstrates: - -* Parsing a tiny Module 0 subset -* Rendering to HTML -* Basic checked-mode validation (ID/ref resolution) - -It is intentionally small and not a full implementation. - -== Files - -* `src/A2ml.affine` - minimal parser + renderer sketch -* `src/Demo.affine` - demo usage - -== Notes - -A production implementation should follow the formal grammar in `docs/GRAMMAR.adoc` -and conformance rules in `docs/CONFORMANCE.adoc`. - -== Vectors - -`src/VectorRunner.affine` provides a minimal vector runner for `tests/vectors/`.\n+If a matching `*.html.expected` file exists, HTML output is compared too. diff --git a/a2ml/prototype/affinescript/package.json b/a2ml/prototype/affinescript/package.json deleted file mode 100644 index c47e76e4d..000000000 --- a/a2ml/prototype/affinescript/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "a2ml-web", - "private": true, - "type": "module", - "dependencies": { - "@rescript/runtime": "^12.1.0" - } -} diff --git a/a2ml/prototype/affinescript/src/A2ml.affine b/a2ml/prototype/affinescript/src/A2ml.affine deleted file mode 100644 index 9a7253e5c..000000000 --- a/a2ml/prototype/affinescript/src/A2ml.affine +++ /dev/null @@ -1,412 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// -// Minimal Module-0 parser and checked validator for web rendering demos. -// AffineScript port of A2ml.res. Intentionally small but deterministic. - -module A2ml; - -extern fn length(s: String) -> Int = "string" "length"; -extern fn slice(s: String, start: Int, end: Int) -> String = "string" "slice"; -extern fn slice_to_end(s: String, from: Int) -> String = "string" "slice"; -extern fn trim(s: String) -> String = "string" "trim"; -extern fn index_of(s: String, needle: String) -> Int = "string" "indexOf"; -extern fn split(s: String, sep: String) -> [String] = "string" "split"; -extern fn starts_with(s: String, p: String) -> Bool = "string" "startsWith"; -extern fn ends_with(s: String, p: String) -> Bool = "string" "endsWith"; -extern fn int_to_string(n: Int) -> String = "global" "String"; - -pub type Attrs = [(String, String)] - -pub type Inline = - | Text(String) - | Emph(String) - | Strong(String) - | Link(String, String) - -pub type Block = - | Heading(Int, String) - | Paragraph([Inline]) - | List([[Inline]]) - | Directive(String, Attrs, [Block]) - -pub type Doc = [Block] - -pub type ParseMode = | Lax | Checked - -pub type ParseError = { line: Int, msg: String } - -fn is_char(s: String, i: Int, ch: String) -> Bool { - i >= 0 && i < length(s) && slice(s, i, i + 1) == ch -} - -fn index_of_opt(s: String, sub: String) -> Option { - let idx = index_of(s, sub); - if idx < 0 { None } else { Some(idx) } -} - -fn index_from_opt(s: String, start: Int, sub: String) -> Option { - let sliced = slice_to_end(s, start); - let idx = index_of(sliced, sub); - if idx < 0 { None } else { Some(idx + start) } -} - -pub fn is_heading(line: String) -> Option<(Int, String)> { - let trimmed = trim(line); - let hcount = 0; - while hcount < length(trimmed) && is_char(trimmed, hcount, "#") { - hcount = hcount + 1; - } - if hcount > 0 && hcount <= 5 { - Some((hcount, trim(slice_to_end(trimmed, hcount)))) - } else { - None - } -} - -pub fn parse_attrs(line: String) -> Attrs { - let start = match index_of_opt(line, "(") { None => -1, Some(idx) => idx }; - let end_ = match index_of_opt(line, ")") { None => -1, Some(idx) => idx }; - if start == -1 || end_ == -1 || end_ < start { - [] - } else { - let inner = slice(line, start + 1, end_); - let parts = split(inner, ","); - let out = []; - let i = 0; - while i < len(parts) { - let kv = split(trim(parts[i]), "="); - if len(kv) == 2 { - let key = trim(kv[0]); - let value = trim(kv[1]); - let unquoted = if (starts_with(value, "\"") && ends_with(value, "\"")) - || (starts_with(value, "'") && ends_with(value, "'")) { - slice(value, 1, length(value) - 1) - } else { - value - }; - out = out ++ [(key, unquoted)]; - } - i = i + 1; - } - out - } -} - -fn is_directive_start(line: String) -> Bool { - let trimmed = trim(line); - starts_with(trimmed, "@") && ends_with(trimmed, ":") -} - -pub fn parse_inline(text: String) -> [Inline] { - let acc = []; - let i = 0; - while i < length(text) { - if i + 1 < length(text) && slice(text, i, i + 2) == "**" { - match index_from_opt(text, i + 2, "**") { - None => { acc = acc ++ [Text("**")]; i = i + 2; } - Some(j) => { acc = acc ++ [Strong(slice(text, i + 2, j))]; i = j + 2; } - } - } else if is_char(text, i, "*") { - match index_from_opt(text, i + 1, "*") { - None => { acc = acc ++ [Text("*")]; i = i + 1; } - Some(j) => { acc = acc ++ [Emph(slice(text, i + 1, j))]; i = j + 1; } - } - } else if is_char(text, i, "[") { - match index_from_opt(text, i + 1, "]") { - None => { acc = acc ++ [Text("[")]; i = i + 1; } - Some(j) => { - if j + 1 < length(text) && is_char(text, j + 1, "(") { - match index_from_opt(text, j + 2, ")") { - None => { acc = acc ++ [Text("[")]; i = i + 1; } - Some(k) => { - acc = acc ++ [Link(slice(text, i + 1, j), slice(text, j + 2, k))]; - i = k + 1; - } - } - } else { - acc = acc ++ [Text("[")]; i = i + 1; - } - } - } - } else { - let star = index_from_opt(text, i, "*"); - let bracket = index_from_opt(text, i, "["); - let next = length(text); - match star { Some(s) => { if s < next { next = s; } } None => {} } - match bracket { Some(b) => { if b < next { next = b; } } None => {} } - if next <= i { next = i + 1; } - acc = acc ++ [Text(slice(text, i, next))]; - i = next; - } - } - acc -} - -fn parse_directive_header(line: String) -> (String, String) { - let trimmed = trim(line); - let without_at = slice_to_end(trimmed, 1); - let body = if ends_with(without_at, ":") { - slice(without_at, 0, length(without_at) - 1) - } else { - without_at - }; - let name_only = match index_of_opt(body, "(") { - None => body, - Some(idx) => slice(body, 0, idx), - }; - (name_only, body) -} - -fn parse_directive_lines(lines: [String], start_index: Int, - parse_line: fn(String) -> Option) -> ([Block], Int) { - let blocks = []; - let i = start_index; - while i < len(lines) { - if trim(lines[i]) == "@end" { - return (blocks, i + 1); - } - match parse_line(lines[i]) { Some(b) => { blocks = blocks ++ [b]; } None => {} } - i = i + 1; - } - (blocks, i) -} - -pub fn parse_blocks(lines: [String], start_index: Int, stop_at_end: Bool) -> ([Block], Int) { - let blocks = []; - let i = start_index; - while i < len(lines) { - let line = lines[i]; - if stop_at_end && trim(line) == "@end" { - return (blocks, i + 1); - } else if trim(line) == "" { - i = i + 1; - } else { - match is_heading(line) { - Some((level, text)) => { blocks = blocks ++ [Heading(level, text)]; i = i + 1; } - None => { - if is_directive_start(line) { - let (name_only, body) = parse_directive_header(line); - let attrs = parse_attrs(body); - if name_only == "opaque" { - let raw_lines = []; - let j = i + 1; - let found = false; - while j < len(lines) && !found { - if trim(lines[j]) == "@end" { - found = true; - j = j + 1; - } else { - raw_lines = raw_lines ++ [lines[j]]; - j = j + 1; - } - } - let raw_text = join_lines(raw_lines, "\n"); - blocks = blocks ++ [Directive(name_only, attrs, [Paragraph([Text(raw_text)])])]; - i = j; - } else if name_only == "refs" { - let (ref_blocks, next_index) = parse_directive_lines(lines, i + 1, fn(ref_line) { - let trimmed = trim(ref_line); - if trimmed == "" { None } else { Some(Paragraph(parse_inline(trimmed))) } - }); - blocks = blocks ++ [Directive(name_only, attrs, ref_blocks)]; - i = next_index; - } else { - let (inner_blocks, next_index) = parse_blocks(lines, i + 1, true); - blocks = blocks ++ [Directive(name_only, attrs, inner_blocks)]; - i = next_index; - } - } else if starts_with(trim(line), "-") { - let items = []; - let j = i; - let done = false; - while j < len(lines) && !done { - let l = trim(lines[j]); - if starts_with(l, "-") { - items = items ++ [parse_inline(trim(slice_to_end(l, 1)))]; - j = j + 1; - } else { - done = true; - } - } - blocks = blocks ++ [List(items)]; - i = j; - } else { - let parts = []; - let j = i; - let done = false; - while j < len(lines) && !done { - let l = lines[j]; - if trim(l) == "" - || (stop_at_end && trim(l) == "@end") - || is_directive_start(l) - || starts_with(trim(l), "-") - || (match is_heading(l) { Some(_) => true, None => false }) { - done = true; - } else { - parts = parts ++ [trim(l)]; - j = j + 1; - } - } - blocks = blocks ++ [Paragraph(parse_inline(join_lines(parts, " ")))]; - i = j; - } - } - } - } - } - (blocks, i) -} - -fn join_lines(arr: [String], sep: String) -> String { - let out = ""; - let i = 0; - while i < len(arr) { - out = if i == 0 { arr[i] } else { out ++ sep ++ arr[i] }; - i = i + 1; - } - out -} - -pub fn parse(mode: ParseMode, input: String) -> Doc { - let _ = mode; - let lines = split(input, "\n"); - let (blocks, _index) = parse_blocks(lines, 0, false); - blocks -} - -pub fn render_inline(parts: [Inline]) -> String { - let out = ""; - let i = 0; - while i < len(parts) { - out = out ++ match parts[i] { - Text(t) => t, - Emph(t) => "" ++ t ++ "", - Strong(t) => "" ++ t ++ "", - Link(label, url) => "" ++ label ++ "", - }; - i = i + 1; - } - out -} - -pub fn render_blocks(blocks: [Block]) -> String { - let rendered = []; - let i = 0; - while i < len(blocks) { - let s = match blocks[i] { - Heading(level, text) => - "" ++ text ++ "", - Paragraph(parts) => "

        " ++ render_inline(parts) ++ "

        ", - List(items) => { - let lis = ""; - let j = 0; - while j < len(items) { lis = lis ++ "
      1. " ++ render_inline(items[j]) ++ "
      2. "; j = j + 1; } - "
          " ++ lis ++ "
        " - } - Directive(name, attrs, body) => { - let content = render_blocks(body); - let attrs_string = ""; - let k = 0; - while k < len(attrs) { - let (ak, av) = attrs[k]; - let seg = ak ++ "=\"" ++ av ++ "\""; - attrs_string = if k == 0 { seg } else { attrs_string ++ " " ++ seg }; - k = k + 1; - } - let data_attr = if attrs_string == "" { "" } else { " " ++ attrs_string }; - "
        " ++ content ++ "
        " - } - }; - rendered = rendered ++ [s]; - i = i + 1; - } - join_lines(rendered, "\n") -} - -pub fn render_html(doc: Doc) -> String { - render_blocks(doc) -} - -pub type StringSet = [String] - -fn set_has(set: StringSet, value: String) -> Bool { - let i = 0; - while i < len(set) { if set[i] == value { return true; } i = i + 1; } - false -} - -fn set_add(set: StringSet, value: String) -> StringSet { - if set_has(set, value) { set } else { set ++ [value] } -} - -pub fn validate(doc: Doc) -> [ParseError] { - let ids = []; - let refs = []; - let errors = []; - - fn walk(blocks: [Block], depth_line: Int) -> Unit { - let i = 0; - while i < len(blocks) { - let line_no = depth_line + i + 1; - match blocks[i] { - Directive(_name, attrs, body) => { - let a = 0; - while a < len(attrs) { - let (k, v) = attrs[a]; - if k == "id" { - if set_has(ids, v) { - errors = errors ++ [ParseError { line: line_no, msg: "duplicate id: " ++ v }]; - } else { - ids = set_add(ids, v); - } - } else if k == "ref" { - refs = refs ++ [(v, line_no)]; - } - a = a + 1; - } - walk(body, line_no); - } - _ => {} - } - i = i + 1; - } - } - - walk(doc, 0); - - let r = 0; - while r < len(refs) { - let (ref_id, line_no) = refs[r]; - if !set_has(ids, ref_id) { - errors = errors ++ [ParseError { line: line_no, msg: "unresolved reference \"" ++ ref_id ++ "\"" }]; - } - r = r + 1; - } - - errors -} - -pub fn validate_checked(doc: Doc) -> [ParseError] { - let errors = validate(doc); - let allowed = ["abstract", "refs", "fig", "table", "opaque", "section", "requires"]; - - fn walk(blocks: [Block], depth_line: Int) -> Unit { - let i = 0; - while i < len(blocks) { - let line_no = depth_line + i + 1; - match blocks[i] { - Directive(name, _attrs, body) => { - if !set_has(allowed, name) { - errors = errors ++ [ParseError { line: line_no, msg: "unknown directive: " ++ name }]; - } - walk(body, line_no); - } - _ => {} - } - i = i + 1; - } - } - - walk(doc, 0); - errors -} diff --git a/a2ml/prototype/affinescript/src/Cli.affine b/a2ml/prototype/affinescript/src/Cli.affine deleted file mode 100644 index 33fedbb6e..000000000 --- a/a2ml/prototype/affinescript/src/Cli.affine +++ /dev/null @@ -1,136 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// AffineScript port of Cli.res — A2ML CLI (prototype). - -module Cli; - -use Compat; -use A2ml; -use Json; - -extern fn argv() -> [String] = "process" "argv"; -extern fn read_text(path: String) -> String = "platform" "readTextFile"; -extern fn write_text(path: String, text: String) -> Unit = "platform" "writeTextFile"; -extern fn read_stdin() -> String = "platform" "readStdin"; -extern fn exit(code: Int) -> Unit = "platform" "exit"; - -pub let help_text = "A2ML CLI (prototype)\n\n" - ++ "Usage:\n a2ml [options]\n\n" - ++ "Commands:\n render Render HTML to stdout (or --out)\n" - ++ " validate Validate in checked mode, exit 2 on errors\n" - ++ " ast Output JSON surface AST\n\n" - ++ "Options:\n --mode Parse mode (default: lax)\n" - ++ " --out Write output to file\n" - ++ " --concat Concatenate outputs when multiple inputs\n" - ++ " --stdin Read input from stdin (equivalent to '-')\n" - ++ " -h, --help Show this help\n\n" - ++ "Notes:\n * Use '-' as a filename to read from stdin.\n" - ++ " * For multiple files, --concat joins outputs in order.\n"; - -pub fn usage() -> Effect[IO] Unit { - Compat.console_log(help_text); - exit(1) -} - -pub fn get_arg(args: [String], name: String) -> Option { - let i = 0; - while i < len(args) { - if args[i] == name { - if i + 1 < len(args) { return Some(args[i + 1]); } else { return None; } - } - i = i + 1; - } - None -} - -pub fn has_flag(args: [String], name: String) -> Bool { - let i = 0; - while i < len(args) { if args[i] == name { return true; } i = i + 1; } - false -} - -pub fn collect_inputs(args: [String]) -> [String] { - let inputs = []; - let i = 3; - let done = false; - while i < len(args) && !done { - if Compat.starts_with(args[i], "-") { - done = true; - } else { - inputs = inputs ++ [args[i]]; - i = i + 1; - } - } - inputs -} - -pub fn read_input(path: String) -> String { - if path == "-" { read_stdin() } else { read_text(path) } -} - -pub fn render_doc(input: String, mode: A2ml.ParseMode) -> String { - A2ml.render_html(A2ml.parse(mode, input)) -} - -pub fn validate_doc(input: String, mode: A2ml.ParseMode) -> [A2ml.ParseError] { - let doc = A2ml.parse(mode, input); - if mode == A2ml.Checked { A2ml.validate_checked(doc) } else { [] } -} - -pub fn ast_doc(input: String, mode: A2ml.ParseMode) -> String { - Json.doc_to_json(A2ml.parse(mode, input)) -} - -pub fn main() -> Effect[IO] Unit { - let args = argv(); - if has_flag(args, "-h") || has_flag(args, "--help") { Compat.console_log(help_text); exit(0); } - if len(args) < 3 { usage(); } - - let command = args[2]; - let inputs = collect_inputs(args); - let read_from_stdin = has_flag(args, "--stdin"); - let mode = match get_arg(args, "--mode") { Some("checked") => A2ml.Checked, _ => A2ml.Lax }; - let out_path = get_arg(args, "--out"); - let concat = has_flag(args, "--concat"); - let sources = if read_from_stdin { ["-"] } else { inputs }; - if len(sources) == 0 { usage(); } - - match command { - "render" => { - let outputs = []; - let i = 0; - while i < len(sources) { outputs = outputs ++ [render_doc(read_input(sources[i]), mode)]; i = i + 1; } - let result = if concat { Compat.array_join(outputs, "\n") } else { Compat.array_join(outputs, "\n\n") }; - match out_path { Some(p) => write_text(p, result), None => Compat.console_log(result) } - } - "validate" => { - let all_errors = []; - let i = 0; - while i < len(sources) { - let errs = validate_doc(read_input(sources[i]), mode); - let j = 0; - while j < len(errs) { all_errors = all_errors ++ [errs[j]]; j = j + 1; } - i = i + 1; - } - if len(all_errors) == 0 { - Compat.console_log("ok") - } else { - let k = 0; - while k < len(all_errors) { - Compat.console_log(Compat.int_to_string(all_errors[k].line) ++ ": " ++ all_errors[k].msg); - k = k + 1; - } - exit(2) - } - } - "ast" => { - let outputs = []; - let i = 0; - while i < len(sources) { outputs = outputs ++ [ast_doc(read_input(sources[i]), mode)]; i = i + 1; } - let result = Compat.array_join(outputs, "\n"); - match out_path { Some(p) => write_text(p, result), None => Compat.console_log(result) } - } - _ => usage(), - } -} - -main() diff --git a/a2ml/prototype/affinescript/src/Compat.affine b/a2ml/prototype/affinescript/src/Compat.affine deleted file mode 100644 index ea316805b..000000000 --- a/a2ml/prototype/affinescript/src/Compat.affine +++ /dev/null @@ -1,48 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// AffineScript port of Compat.res (JS compatibility helpers). - -module Compat; - -extern fn console_log(v: a) -> Unit = "console" "log"; -extern fn str_length(s: String) -> Int = "string" "length"; -extern fn slice(s: String, start: Int, end: Int) -> String = "string" "slice"; -extern fn slice_to_end(s: String, from: Int) -> String = "string" "slice"; -extern fn trim(s: String) -> String = "string" "trim"; -extern fn index_of(s: String, needle: String) -> Int = "string" "indexOf"; -extern fn split(s: String, sep: String) -> [String] = "string" "split"; -extern fn starts_with(s: String, p: String) -> Bool = "string" "startsWith"; -extern fn ends_with(s: String, p: String) -> Bool = "string" "endsWith"; -extern fn replace(s: String, from: String, to: String) -> String = "string" "replace"; -extern fn int_to_string(n: Int) -> String = "global" "String"; -extern fn json_stringify(v: a) -> String = "JSON" "stringify"; - -pub fn array_length(arr: [a]) -> Int { len(arr) } - -pub fn array_join(arr: [String], sep: String) -> String { - let out = ""; - let i = 0; - while i < len(arr) { - out = if i == 0 { arr[i] } else { out ++ sep ++ arr[i] }; - i = i + 1; - } - out -} - -pub fn array_join_with(arr: [a], sep: String, fn_: fn(a) -> String) -> String { - let parts = []; - let i = 0; - while i < len(arr) { parts = parts ++ [fn_(arr[i])]; i = i + 1; } - array_join(parts, sep) -} - -pub fn array_get_exn(arr: [a], idx: Int) -> a { arr[idx] } - -pub fn array_make(_size: Int, _default: a) -> [a] { [] } - -pub type JsonValue = - | JString(String) - | JNumber(Float) - | JBool(Bool) - | JNull - | JArray([JsonValue]) - | JObject([(String, JsonValue)]) diff --git a/a2ml/prototype/affinescript/src/Demo.affine b/a2ml/prototype/affinescript/src/Demo.affine deleted file mode 100644 index a39e4c74d..000000000 --- a/a2ml/prototype/affinescript/src/Demo.affine +++ /dev/null @@ -1,21 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// AffineScript port of Demo.res. - -module Demo; - -use A2ml; - -extern fn console_log(v: a) -> Unit = "console" "log"; - -pub let demo_doc = "# A2ML Overview\n\n@abstract:\nA2ML is a typed, attested markup format.\n@end\n\n## Claims\n- Required sections must exist.\n- References must resolve.\n"; - -pub fn main() -> Effect[IO] Unit { - let parsed = A2ml.parse(A2ml.Lax, demo_doc); - let html = A2ml.render_html(parsed); - let errors = A2ml.validate_checked(parsed); - // Replace with DOM updates in a real web integration. - console_log(html); - console_log(errors) -} - -main() diff --git a/a2ml/prototype/affinescript/src/DumpAst.affine b/a2ml/prototype/affinescript/src/DumpAst.affine deleted file mode 100644 index 5b5c4e899..000000000 --- a/a2ml/prototype/affinescript/src/DumpAst.affine +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// AffineScript port of DumpAst.res. - -module DumpAst; - -use Compat; -use A2ml; -use Json; - -extern fn read_file_sync(path: String, enc: String) -> String = "fs" "readFileSync"; -extern fn argv() -> [String] = "process" "argv"; - -pub fn main() -> Effect[IO] Unit { - let args = argv(); - if len(args) < 3 { - Compat.console_log("Usage: dump-ast ") - } else { - let input = read_file_sync(args[2], "utf8"); - let doc = A2ml.parse(A2ml.Lax, input); - Compat.console_log(Json.doc_to_json(doc)) - } -} - -main() diff --git a/a2ml/prototype/affinescript/src/Json.affine b/a2ml/prototype/affinescript/src/Json.affine deleted file mode 100644 index ae5fc4e22..000000000 --- a/a2ml/prototype/affinescript/src/Json.affine +++ /dev/null @@ -1,71 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// AffineScript port of Json.res — simple JSON encoding for the A2ML AST. - -module Json; - -use Compat; -use A2ml; - -pub fn escape_string(s: String) -> String { - let s1 = Compat.replace(s, "\\", "\\\\"); - let s2 = Compat.replace(s1, "\"", "\\\""); - Compat.replace(s2, "\n", "\\n") -} - -pub fn inline_to_json(part: A2ml.Inline) -> String { - match part { - Text(t) => "{\"type\":\"text\",\"text\":\"" ++ escape_string(t) ++ "\"}", - Emph(t) => "{\"type\":\"emph\",\"text\":\"" ++ escape_string(t) ++ "\"}", - Strong(t) => "{\"type\":\"strong\",\"text\":\"" ++ escape_string(t) ++ "\"}", - Link(label, url) => "{\"type\":\"link\",\"label\":\"" ++ escape_string(label) - ++ "\",\"url\":\"" ++ escape_string(url) ++ "\"}", - } -} - -pub fn block_to_json(block: A2ml.Block) -> String { - match block { - Heading(level, text) => - "{\"type\":\"heading\",\"level\":" ++ Compat.int_to_string(level) - ++ ",\"text\":\"" ++ escape_string(text) ++ "\"}", - Paragraph(parts) => { - let items = []; - let i = 0; - while i < len(parts) { items = items ++ [inline_to_json(parts[i])]; i = i + 1; } - "{\"type\":\"paragraph\",\"content\":[" ++ Compat.array_join(items, ",") ++ "]}" - } - List(items) => { - let rendered = []; - let i = 0; - while i < len(items) { - let content = []; - let j = 0; - while j < len(items[i]) { content = content ++ [inline_to_json(items[i][j])]; j = j + 1; } - rendered = rendered ++ ["[" ++ Compat.array_join(content, ",") ++ "]"]; - i = i + 1; - } - "{\"type\":\"list\",\"items\":[" ++ Compat.array_join(rendered, ",") ++ "]}" - } - Directive(name, attrs, body) => { - let attrs_json = []; - let i = 0; - while i < len(attrs) { - let (k, v) = attrs[i]; - attrs_json = attrs_json ++ ["\"" ++ escape_string(k) ++ "\":\"" ++ escape_string(v) ++ "\""]; - i = i + 1; - } - let body_json = []; - let j = 0; - while j < len(body) { body_json = body_json ++ [block_to_json(body[j])]; j = j + 1; } - "{\"type\":\"directive\",\"name\":\"" ++ escape_string(name) - ++ "\",\"attrs\":{" ++ Compat.array_join(attrs_json, ",") - ++ "},\"body\":[" ++ Compat.array_join(body_json, ",") ++ "]}" - } - } -} - -pub fn doc_to_json(doc: A2ml.Doc) -> String { - let blocks = []; - let i = 0; - while i < len(doc) { blocks = blocks ++ [block_to_json(doc[i])]; i = i + 1; } - "{\"blocks\":[" ++ Compat.array_join(blocks, ",") ++ "]}" -} diff --git a/a2ml/prototype/affinescript/src/RunReport.affine b/a2ml/prototype/affinescript/src/RunReport.affine deleted file mode 100644 index f0da6b06c..000000000 --- a/a2ml/prototype/affinescript/src/RunReport.affine +++ /dev/null @@ -1,8 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// AffineScript port of RunReport.res. - -module RunReport; - -use VectorReport; - -VectorReport.run() diff --git a/a2ml/prototype/affinescript/src/RunVectors.affine b/a2ml/prototype/affinescript/src/RunVectors.affine deleted file mode 100644 index 7928b65a3..000000000 --- a/a2ml/prototype/affinescript/src/RunVectors.affine +++ /dev/null @@ -1,13 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// AffineScript port of RunVectors.res. - -module RunVectors; - -use VectorRunner; - -extern fn throw_message(msg: String) -> a = "error" "throw"; - -let code = VectorRunner.run(); -if code != 0 { - throw_message("Vector tests failed") -} diff --git a/a2ml/prototype/affinescript/src/VectorReport.affine b/a2ml/prototype/affinescript/src/VectorReport.affine deleted file mode 100644 index 268529056..000000000 --- a/a2ml/prototype/affinescript/src/VectorReport.affine +++ /dev/null @@ -1,43 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// AffineScript port of VectorReport.res. - -module VectorReport; - -use Compat; -use A2ml; - -extern fn readdir_sync(path: String) -> [String] = "fs" "readdirSync"; -extern fn read_file_sync(path: String, enc: String) -> String = "fs" "readFileSync"; -extern fn write_file_sync(path: String, contents: String) -> Unit = "fs" "writeFileSync"; -extern fn exists_sync(path: String) -> Bool = "fs" "existsSync"; - -pub fn list_vectors() -> [(String, String)] { - let files = readdir_sync("tests/vectors"); - let out = []; - let i = 0; - while i < len(files) { - if Compat.ends_with(files[i], ".a2ml") { - let expected = Compat.replace(files[i], ".a2ml", ".expected"); - out = out ++ [("tests/vectors/" ++ files[i], "tests/vectors/" ++ expected)]; - } - i = i + 1; - } - out -} - -pub fn run() -> Effect[IO] Unit { - let vectors = list_vectors(); - let report = []; - let i = 0; - while i < len(vectors) { - let (input_path, _expected_path) = vectors[i]; - let input = read_file_sync(input_path, "utf8"); - let doc = A2ml.parse(A2ml.Lax, input); - let errors = A2ml.validate_checked(doc); - let status = if len(errors) == 0 { "PASS" } else { "FAIL" }; - report = report ++ ["{\"file\": \"" ++ input_path ++ "\", \"status\": \"" ++ status ++ "\"}"]; - i = i + 1; - } - write_file_sync("build/vector-report.json", "[" ++ Compat.array_join(report, ",") ++ "]"); - Compat.console_log("Report written to build/vector-report.json") -} diff --git a/a2ml/prototype/affinescript/src/VectorRunner.affine b/a2ml/prototype/affinescript/src/VectorRunner.affine deleted file mode 100644 index 531421c86..000000000 --- a/a2ml/prototype/affinescript/src/VectorRunner.affine +++ /dev/null @@ -1,94 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Minimal test vector runner for Module 0. AffineScript port of VectorRunner.res. - -module VectorRunner; - -use Compat; -use A2ml; - -extern fn readdir_sync(path: String) -> [String] = "fs" "readdirSync"; -extern fn read_file_sync(path: String, enc: String) -> String = "fs" "readFileSync"; -extern fn exists_sync(path: String) -> Bool = "fs" "existsSync"; -extern fn includes(s: String, needle: String) -> Bool = "string" "includes"; -extern fn regex_replace_global(s: String, pattern: String, repl: String) -> String = "regex" "replaceGlobal"; - -pub fn list_vectors() -> [(String, String)] { - let files = readdir_sync("tests/vectors"); - let out = []; - let i = 0; - while i < len(files) { - if Compat.ends_with(files[i], ".a2ml") { - let expected = Compat.replace(files[i], ".a2ml", ".expected"); - out = out ++ [("tests/vectors/" ++ files[i], "tests/vectors/" ++ expected)]; - } - i = i + 1; - } - out -} - -pub fn parse_expected(text: String) -> Option { - let lines = Compat.split(text, "\n"); - let i = 0; - while i < len(lines) { - if Compat.starts_with(lines[i], "ERROR:") { - return Some(Compat.trim(Compat.slice_to_end(lines[i], 6))); - } - i = i + 1; - } - None -} - -pub fn normalize_html(html: String) -> String { - Compat.trim(regex_replace_global(html, "\\s+", " ")) -} - -pub fn run() -> Effect[IO] Int { - let vectors = list_vectors(); - let failures = []; - let v = 0; - while v < len(vectors) { - let (input_path, expected_path) = vectors[v]; - let input = read_file_sync(input_path, "utf8"); - let expected = read_file_sync(expected_path, "utf8"); - - let doc = A2ml.parse(A2ml.Lax, input); - let errors = A2ml.validate_checked(doc); - let expected_error = parse_expected(expected); - - match expected_error { - None => { - if len(errors) > 0 { - failures = failures ++ [input_path ++ ": expected ok, got error"]; - } - } - Some(msg) => { - if len(errors) == 0 { - failures = failures ++ [input_path ++ ": expected error, got ok"]; - } else { - if !includes(errors[0].msg, msg) { - failures = failures ++ [input_path ++ ": error mismatch"]; - } - } - } - } - - let html_expected_path = Compat.replace(input_path, ".a2ml", ".html.expected"); - if exists_sync(html_expected_path) { - let actual_html = normalize_html(A2ml.render_html(doc)); - let expected_html = normalize_html(read_file_sync(html_expected_path, "utf8")); - if actual_html != expected_html { - failures = failures ++ [input_path ++ ": html mismatch"]; - } - } - v = v + 1; - } - - if len(failures) == 0 { - Compat.console_log("All vectors passed"); - 0 - } else { - let f = 0; - while f < len(failures) { Compat.console_log(failures[f]); f = f + 1; } - 1 - } -} diff --git a/a2ml/prototype/ddraig/DemoBuild.idr b/a2ml/prototype/ddraig/DemoBuild.idr deleted file mode 100644 index 1e93c878c..000000000 --- a/a2ml/prototype/ddraig/DemoBuild.idr +++ /dev/null @@ -1,25 +0,0 @@ -module DemoBuild - -import System -import System.File -import Ddraig - -main : IO () -main = do - let inputPath = "prototype/ddraig/content/demo.md" - let outputPath = "docs/demo.html" - contentE <- readFile inputPath - case contentE of - Left err => do - putStrLn ("Failed to read demo input: " ++ show err) - exitFailure - Right content => do - let (fm, body) = parseFrontmatter content - let htmlBody = parseMarkdown body - let htmlOut = applyTemplate fm htmlBody - writeResult <- writeFile outputPath htmlOut - case writeResult of - Left err => do - putStrLn ("Failed to write demo output: " ++ show err) - exitFailure - Right _ => putStrLn ("Wrote: " ++ outputPath) diff --git a/a2ml/prototype/ddraig/content/demo.adoc b/a2ml/prototype/ddraig/content/demo.adoc deleted file mode 100644 index 1807de631..000000000 --- a/a2ml/prototype/ddraig/content/demo.adoc +++ /dev/null @@ -1,27 +0,0 @@ -== A2ML Overview - -A2ML is a typed, attested markup format. - -=== A2ML Surface Example - -[source,a2ml] ----- -# A2ML Overview - -@abstract: -A2ML is a typed, attested markup format. -@end - -## Claims -- Required sections must exist. -- References must resolve. ----- - -=== Claims - -* Required sections must exist. -* References must resolve. - -=== References - -[1] Attested Markup Language Spec (draft) diff --git a/a2ml/prototype/wasm/README.adoc b/a2ml/prototype/wasm/README.adoc deleted file mode 100644 index ac94fbdc8..000000000 --- a/a2ml/prototype/wasm/README.adoc +++ /dev/null @@ -1,29 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML WASM Prototype (ReScript + rescript-wasm-runtime) - -This prototype demonstrates a direct-to-WASM flow using the -`rescript-wasm-runtime` project (sibling repo `rescript-wasm-runtime`). - -== What it shows - -* Compile a `.wat` file to `.wasm` via `Wasm.compileToWasm` -* Load and call a WASM export via `Wasm.loadModule` - -== Files - -* `fixtures/add.wat` - tiny WASM text module -* `src/WasmDemo.res` - demo using the runtime - -== Notes - -This is a minimal sketch. To run it locally, you need: - -* `wat2wasm` (from WABT) on your PATH -* A JS runtime compatible with the runtime (Deno recommended) -* Access to `rescript-wasm-runtime` on your module path - -== Suggested local setup - -1. Work in a repo where `rescript-wasm-runtime` is already built. -2. Ensure `rescript.json` includes the module path or bundle output. -3. Run the generated JS in Deno. diff --git a/a2ml/prototype/wasm/fixtures/add.wat b/a2ml/prototype/wasm/fixtures/add.wat deleted file mode 100644 index bd1c9aa82..000000000 --- a/a2ml/prototype/wasm/fixtures/add.wat +++ /dev/null @@ -1,7 +0,0 @@ -;; Minimal WAT module for demo purposes -(module - (func $add (param $a i32) (param $b i32) (result i32) - local.get $a - local.get $b - i32.add) - (export "add" (func $add))) diff --git a/a2ml/prototype/wasm/src/WasmDemo.affine b/a2ml/prototype/wasm/src/WasmDemo.affine deleted file mode 100644 index 94228aea9..000000000 --- a/a2ml/prototype/wasm/src/WasmDemo.affine +++ /dev/null @@ -1,33 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module WasmDemo; - -// SPDX-License-Identifier: MPL-2.0 - -// A2ML WASM protostruct using rescript-wasm-runtime. -// This is a minimal demo intended for local testing only. - -// Assumes rescript-wasm-runtime is available locally. -// You can add it to a workspace or compile this in a repo where -// rescript-wasm-runtime's compiled JS is on the module path. - -fn buildWasm = async () => { - fn ok = await Wasm.compileToWasm("fixtures/add.wat", "build/add.wasm", ()) - if !ok { - Js.log("WASM compile failed") - } -} - -fn runWasm = async () => { - fn instance = await Wasm.loadModule("build/add.wasm", ()) - fn exports: Js.t<{. add: (int, int) => int}> = %raw(`instance.exports`) - fn result = exports##add(2, 3) - Js.log(`add(2,3) = ${Int.toString(result)}`) -} - -fn _ = { - fn _ = buildWasm() - fn _ = runWasm() -} - diff --git a/a2ml/repl/A2ML-REPL.idr b/a2ml/repl/A2ML-REPL.idr deleted file mode 100644 index 3e7054674..000000000 --- a/a2ml/repl/A2ML-REPL.idr +++ /dev/null @@ -1,306 +0,0 @@ -module A2ML.REPL - -import A2ML.TypedCore -import A2ML.Proofs -import A2ML.Parser -import A2ML.Converters -import System -import System.File -import Data.String - -%default covering - --- ============================================================================ --- REPL State --- ============================================================================ - -record ReplState where - constructor MkReplState - currentDoc : Maybe Doc - filename : Maybe String - modified : Bool - history : List String - strictMode : Bool - -initialState : ReplState -initialState = MkReplState Nothing Nothing False [] False - --- ============================================================================ --- REPL Commands --- ============================================================================ - -data ReplCommand - = Load String -- :load file.a2ml - | Parse String -- :parse "# Test" - | Validate -- :validate - | Show -- :show - | Ids -- :ids - | Refs -- :refs - | Convert String -- :convert md|html|djot|tex - | Stats -- :stats - | Strict Bool -- :strict on|off - | Save String -- :save file.a2ml - | Clear -- :clear - | Help -- :help - | Quit -- :quit - | Eval String -- Evaluate A2ML text - --- ============================================================================ --- Command Parser --- ============================================================================ - -parseCommand : String -> Maybe ReplCommand -parseCommand input = - let trimmed = trim input - in case words trimmed of - [] => Nothing - (":load" :: file :: _) => Just (Load file) - [":parse", text] => Just (Parse text) - [":validate"] => Just Validate - [":show"] => Just Show - [":ids"] => Just Ids - [":refs"] => Just Refs - (":convert" :: fmt :: _) => Just (Convert fmt) - [":stats"] => Just Stats - (":strict" :: "on" :: _) => Just (Strict True) - (":strict" :: "off" :: _) => Just (Strict False) - (":save" :: file :: _) => Just (Save file) - [":clear"] => Just Clear - [":help"] => Just Help - [":quit"] => Just Quit - [":q"] => Just Quit - _ => - if isPrefixOf ":" trimmed - then Nothing -- Unknown command - else Just (Eval trimmed) -- Evaluate as A2ML - --- ============================================================================ --- Command Execution --- ============================================================================ - -covering -executeCommand : ReplCommand -> ReplState -> IO ReplState -executeCommand (Load filename) state = do - Right content <- readFile filename - | Left err => do - putStrLn ("Error reading file: " ++ show err) - pure state - - case parseDocument content of - Success doc _ => do - putStrLn ("✓ Loaded: " ++ filename) - pure (MkReplState (Just doc) (Just filename) False state.history state.strictMode) - Failure err _ => do - putStrLn ("✗ Parse error: " ++ err) - pure state - -executeCommand (Parse text) state = do - case parseDocument text of - Success doc _ => do - putStrLn "✓ Parsed successfully" - pure (MkReplState (Just doc) Nothing True state.history state.strictMode) - Failure err _ => do - putStrLn ("✗ Parse error: " ++ err) - pure state - -executeCommand Validate state = do - case state.currentDoc of - Nothing => do - putStrLn "No document loaded. Use :load or :parse " - pure state - - Just doc => do - let ids = collectIds doc - let refs = collectRefs doc - - case validateDocument doc ids refs of - Right validated => do - putStrLn "✓ Document is valid" - putStrLn (" Unique IDs: " ++ show (length validated.ids)) - putStrLn (" Resolved refs: " ++ show (length validated.refs)) - pure state - - Left errors => do - putStrLn ("✗ Validation errors (" ++ show (length errors) ++ "):") - for_ errors $ \err => case err of - DuplicateId id => putStrLn (" - Duplicate ID: " ++ id.raw) - UnresolvedRef id => putStrLn (" - Unresolved reference: " ++ id.raw) - MissingRequired msg => putStrLn (" - " ++ msg) - pure state - -executeCommand Show state = do - case state.currentDoc of - Nothing => putStrLn "No document loaded" - Just doc => putStrLn (prettyPrint doc) - pure state - -executeCommand Ids state = do - case state.currentDoc of - Nothing => putStrLn "No document loaded" - Just doc => do - let ids = collectIds doc - putStrLn ("IDs defined (" ++ show (length ids) ++ "):") - for_ ids $ \id => putStrLn (" - " ++ id.raw) - pure state - -executeCommand Refs state = do - case state.currentDoc of - Nothing => putStrLn "No document loaded" - Just doc => do - let refs = collectRefs doc - putStrLn ("References used (" ++ show (length refs) ++ "):") - for_ refs $ \id => putStrLn (" - " ++ id.raw) - pure state - -executeCommand (Convert fmt) state = do - case state.currentDoc of - Nothing => do - putStrLn "No document loaded" - pure state - - Just doc => do - case parseFormat fmt of - Just Markdown => putStrLn (toMarkdown doc) - Just Html => putStrLn (toHtml doc) - Just Djot => putStrLn (toDjot doc) - Just Latex => putStrLn (toLatex doc) - Just PlainText => putStrLn (toPlainText doc) - Nothing => putStrLn ("Unknown format: " ++ fmt) - pure state - -executeCommand Stats state = do - case state.currentDoc of - Nothing => putStrLn "No document loaded" - Just doc => do - let ids = collectIds doc - let refs = collectRefs doc - putStrLn "Document statistics:" - putStrLn (" Blocks: " ++ show (length (blocks doc))) - putStrLn (" IDs: " ++ show (length ids)) - putStrLn (" Refs: " ++ show (length refs)) - pure state - -executeCommand (Strict enabled) state = do - putStrLn ("Strict mode: " ++ if enabled then "ON" else "OFF") - pure (record { strictMode = enabled } state) - -executeCommand (Save filename) state = do - case state.currentDoc of - Nothing => do - putStrLn "No document to save" - pure state - - Just doc => do - let content = prettyPrint doc - Right () <- writeFile filename content - | Left err => do - putStrLn ("Error writing file: " ++ show err) - pure state - putStrLn ("✓ Saved to: " ++ filename) - pure (record { modified = False, filename = Just filename } state) - -executeCommand Clear state = do - putStrLn "Document cleared" - pure (record { currentDoc = Nothing, filename = Nothing, modified = False } state) - -executeCommand Help state = do - putStrLn """ -A2ML REPL Commands: - - :load Load an A2ML document - :parse Parse A2ML text - :validate Validate current document - :show Show current document - :ids List all IDs in document - :refs List all references in document - :convert Convert to format (md|html|djot|tex|txt) - :stats Show document statistics - :strict on|off Enable/disable strict validation - :save Save current document - :clear Clear current document - :help Show this help - :quit Exit REPL - - Evaluate A2ML text and add to current document - -Examples: - :load paper.a2ml - :validate - :convert html - :stats - """ - pure state - -executeCommand Quit state = do - if state.modified then do - putStrLn "Warning: Document has unsaved changes" - putStr "Save before quitting? (y/n): " - response <- getLine - if response == "y" then - case state.filename of - Just fname => do - _ <- executeCommand (Save fname) state - pure state - Nothing => do - putStr "Filename: " - fname <- getLine - _ <- executeCommand (Save fname) state - pure state - else - pure state - else - pure state - -executeCommand (Eval text) state = do - case parseDocument text of - Success doc _ => do - let newDoc = case state.currentDoc of - Just existing => MkDoc (blocks existing ++ blocks doc) - Nothing => doc - putStrLn "✓ Evaluated" - pure (MkReplState (Just newDoc) state.filename True state.history state.strictMode) - Failure err _ => do - putStrLn ("✗ Parse error: " ++ err) - pure state - --- ============================================================================ --- REPL Loop --- ============================================================================ - -covering -replLoop : ReplState -> IO () -replLoop state = do - putStr "a2ml> " - line <- getLine - - case parseCommand line of - Nothing => do - putStrLn "Unknown command. Type :help for help." - replLoop state - - Just Quit => do - newState <- executeCommand Quit state - if newState.modified then - replLoop newState -- User cancelled quit - else - putStrLn "Goodbye!" - - Just cmd => do - newState <- executeCommand cmd state - replLoop newState - --- ============================================================================ --- Main Entry Point --- ============================================================================ - -covering -main : IO () -main = do - putStrLn "╔══════════════════════════════════════════════════════════╗" - putStrLn "║ A2ML REPL v0.7.0 ║" - putStrLn "╚══════════════════════════════════════════════════════════╝" - putStrLn "" - putStrLn "Type :help for help, :quit to exit" - putStrLn "" - - replLoop initialState diff --git a/a2ml/scripts/add-arxiv-badge.sh b/a2ml/scripts/add-arxiv-badge.sh deleted file mode 100755 index 764288e00..000000000 --- a/a2ml/scripts/add-arxiv-badge.sh +++ /dev/null @@ -1,215 +0,0 @@ -#!/bin/bash -# SPDX-License-Identifier: MPL-2.0 -# Add arXiv badge to A2ML README after paper acceptance - -set -euo pipefail - -# Colors -GREEN='\033[0;32m' -BLUE='\033[0;34m' -YELLOW='\033[1;33m' -RED='\033[0;31m' -NC='\033[0m' # No Color - -info() { echo -e "${BLUE}ℹ️ ${NC}$1"; } -success() { echo -e "${GREEN}✓${NC} $1"; } -warn() { echo -e "${YELLOW}⚠️ ${NC}$1"; } -error() { echo -e "${RED}✗${NC} $1"; } - -echo "╔══════════════════════════════════════════════════════════╗" -echo "║ Add arXiv Badge to A2ML Documentation ║" -echo "╚══════════════════════════════════════════════════════════╝" -echo "" - -# Check for arXiv ID -if [ $# -eq 0 ]; then - error "Usage: $0 " - echo "" - echo "Examples:" - echo " $0 2601.12345" - echo " $0 arXiv:2601.12345" - echo "" - echo "After arXiv paper is accepted, run this script with your arXiv ID." - exit 1 -fi - -ARXIV_ID="$1" - -# Normalize arXiv ID (remove "arXiv:" prefix if present) -ARXIV_ID_CLEAN=$(echo "$ARXIV_ID" | sed 's/^arXiv://') - -info "arXiv ID: $ARXIV_ID_CLEAN" -echo "" - -# URLs -ARXIV_ABS_URL="https://arxiv.org/abs/${ARXIV_ID_CLEAN}" -ARXIV_PDF_URL="https://arxiv.org/pdf/${ARXIV_ID_CLEAN}.pdf" -BADGE_URL="https://img.shields.io/badge/arXiv-${ARXIV_ID_CLEAN}-b31b1b.svg" - -info "URLs:" -echo " Abstract: $ARXIV_ABS_URL" -echo " PDF: $ARXIV_PDF_URL" -echo " Badge: $BADGE_URL" -echo "" - -# Verify arXiv ID exists (optional, requires network) -if command -v curl >/dev/null 2>&1; then - info "Verifying arXiv ID..." - if curl -s --head "$ARXIV_ABS_URL" | grep "200 OK" >/dev/null; then - success "arXiv ID verified" - else - warn "Could not verify arXiv ID (may not be published yet)" - read -p "Continue anyway? (y/n): " -n 1 -r - echo "" - if [[ ! $REPLY =~ ^[Yy]$ ]]; then - exit 1 - fi - fi - echo "" -fi - -# Update README.adoc -update_readme() { - local readme="README.adoc" - - if [ ! -f "$readme" ]; then - error "$readme not found" - return 1 - fi - - info "Updating $readme..." - - # Check if arXiv badge already exists - if grep -q "arxiv.org/abs/${ARXIV_ID_CLEAN}" "$readme"; then - warn "arXiv badge already exists in $readme" - return 0 - fi - - # Add badge after title, before first content - # Insert after line 2 (assuming line 1 is SPDX, line 2 is title) - - # Create badge line - local badge_line="image:${BADGE_URL}[arXiv, link=${ARXIV_ABS_URL}]" - - # Insert after title - sed -i "3i\\ -\\ -${badge_line}" "$readme" - - success "Badge added to $readme" - - # Also add link in documents section - if grep -q "^== Documents" "$readme"; then - # Find line number of "== Documents" - local line_num=$(grep -n "^== Documents" "$readme" | cut -d: -f1) - local insert_line=$((line_num + 2)) - - # Add arXiv paper link - sed -i "${insert_line}i\\* link:${ARXIV_ABS_URL}[arXiv Paper: A2ML v1.0]" "$readme" - - success "arXiv link added to Documents section" - fi -} - -# Update SPEC.a2ml -update_spec() { - local spec="SPEC.a2ml" - - if [ ! -f "$spec" ]; then - warn "$spec not found (OK if using SPEC.adoc only)" - return 0 - fi - - info "Updating $spec..." - - # Check if reference already exists - if grep -q "arxiv.org/abs/${ARXIV_ID_CLEAN}" "$spec"; then - warn "arXiv reference already exists in $spec" - return 0 - fi - - # Add to @refs block at end - if grep -q "^@refs:" "$spec"; then - # Find last line of @refs block (line before @end) - local refs_end=$(grep -n "^@end" "$spec" | tail -1 | cut -d: -f1) - local insert_line=$((refs_end)) - - # Insert new reference - sed -i "${insert_line}i\\[5] A2ML Paper - arXiv:${ARXIV_ID_CLEAN} (${ARXIV_ABS_URL})" "$spec" - - success "arXiv reference added to $spec" - fi -} - -# Update IANA media type registration -update_iana() { - local iana_doc="docs/IANA-MEDIA-TYPE.a2ml" - - if [ ! -f "$iana_doc" ]; then - warn "$iana_doc not found" - return 0 - fi - - info "Updating $iana_doc..." - - # Check if reference already exists - if grep -q "arxiv.org/abs/${ARXIV_ID_CLEAN}" "$iana_doc"; then - warn "arXiv reference already exists in $iana_doc" - return 0 - fi - - # Add to @refs block - if grep -q "^@refs:" "$iana_doc"; then - local refs_end=$(grep -n "^@end" "$iana_doc" | tail -1 | cut -d: -f1) - local insert_line=$((refs_end)) - - sed -i "${insert_line}i\\[4] A2ML Paper - arXiv:${ARXIV_ID_CLEAN} (${ARXIV_ABS_URL})" "$iana_doc" - - success "arXiv reference added to $iana_doc" - fi -} - -# Update IANA registration template -update_iana_registration() { - local iana_reg="docs/iana/application-vnd.a2ml-registration.txt" - - if [ ! -f "$iana_reg" ]; then - warn "$iana_reg not found" - return 0 - fi - - info "Updating $iana_reg..." - - # Replace placeholder with actual arXiv ID - sed -i "s/arXiv:XXXX.XXXXX/arXiv:${ARXIV_ID_CLEAN}/" "$iana_reg" - - # Add arXiv reference if not present - if ! grep -q "arXiv Paper:" "$iana_reg"; then - # Add to References section - sed -i "/\[4\]/a\\[5] arXiv Paper: A2ML: A Lightweight Markup Language with Formal Proof Obligations\n arXiv:${ARXIV_ID_CLEAN} ${ARXIV_ABS_URL}" "$iana_reg" - fi - - success "arXiv reference added to IANA registration" -} - -# Main -main() { - update_readme - update_spec - update_iana - update_iana_registration - - echo "" - success "All documentation updated!" - echo "" - - info "Next steps:" - echo " 1. Review changes: git diff" - echo " 2. Commit changes: git add -A && git commit -m 'docs: add arXiv badge (arXiv:${ARXIV_ID_CLEAN})'" - echo " 3. Push changes: git push" - echo " 4. Update IANA submission with arXiv reference (if not yet submitted)" - echo " 5. Announce paper publication!" - echo "" -} - -main diff --git a/a2ml/scripts/build-demo-ddraig.sh b/a2ml/scripts/build-demo-ddraig.sh deleted file mode 100755 index 0a5bcc4c7..000000000 --- a/a2ml/scripts/build-demo-ddraig.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -DDRAIG_REPO="${DDRAIG_REPO:-$(cd "$(dirname "$0")/../.." && pwd)/ddraig-ssg}" - -if [ ! -d "$DDRAIG_REPO" ]; then - echo "ddraig-ssg repo not found at $DDRAIG_REPO" >&2 - exit 1 -fi - -mkdir -p build -TMP_SRC="build/ddraig-src" -mkdir -p "$TMP_SRC" -cp -f "$DDRAIG_REPO/src/Ddraig.idr" "$TMP_SRC/" -cp -f prototype/ddraig/DemoBuild.idr "$TMP_SRC/" -idris2 --codegen node --source-dir "$TMP_SRC" "$TMP_SRC/DemoBuild.idr" -o build/ddraig-demo.js -OUT_JS="build/exec/build/ddraig-demo.js" -if [ ! -f "$OUT_JS" ]; then - echo "Expected output not found: $OUT_JS" >&2 - exit 1 -fi -cp -f "$OUT_JS" build/ddraig-demo.js -node build/ddraig-demo.js diff --git a/a2ml/scripts/check-6scm.sh b/a2ml/scripts/check-6scm.sh deleted file mode 100755 index f0dbead81..000000000 --- a/a2ml/scripts/check-6scm.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: MPL-2.0 -# -# check-6scm.sh — verify the .machine_readable/6scm/ mirror is honest. -# -# The 6scm mirror duplicated the legacy Scheme (.scm) descriptor set into -# .machine_readable/6scm/ so tools that only read Scheme had a copy. That -# metadata has migrated to .machine_readable/6a2/ (A2ML / descriptiles), so -# for most repos there are no .scm sources left to mirror. -# -# A validator that validates nothing must not report success. This script -# therefore distinguishes three states LOUDLY (never a silent green): -# -# 1. Sources present -> real diff check; fail on missing/out-of-sync mirror. -# 2. No sources, no mirror -> OBSOLETE no-op: exit 0 with an explicit -# "retired" message (it does NOT claim "in sync"). -# 3. No sources, but an orphaned mirror with files -> DRIFT: fail loudly. -# -# See CANONICAL-NAMES.adoc (6a2/descriptiles supersedes the legacy set) and -# standards Wave-0 "kill the false green" remediation. - -set -euo pipefail - -SCM_NAMES=(AGENTIC.scm ECOSYSTEM.scm META.scm NEUROSYM.scm PLAYBOOK.scm STATE.scm) -MIRROR_DIR=".machine_readable/6scm" - -# Collect the sources that actually exist. -sources=() -for f in "${SCM_NAMES[@]}"; do - [ -f ".machine_readable/$f" ] && sources+=("$f") -done - -# State 2/3: no sources to mirror — the mechanism is obsolete for this repo. -if [ "${#sources[@]}" -eq 0 ]; then - orphans=0 - if [ -d "$MIRROR_DIR" ]; then - while IFS= read -r _; do orphans=$((orphans + 1)); done \ - < <(find "$MIRROR_DIR" -type f 2>/dev/null) - fi - if [ "$orphans" -gt 0 ]; then - echo "DRIFT: $MIRROR_DIR holds $orphans mirror file(s) but no .scm sources exist." >&2 - echo " The 6scm mirror is obsolete (metadata migrated to .machine_readable/6a2/)." >&2 - echo " Remove $MIRROR_DIR and retire the sync-6scm/check-6scm recipes." >&2 - exit 1 - fi - echo "OBSOLETE (no-op): no .scm sources; 6scm mirror retired (superseded by 6a2/descriptiles). Nothing to mirror." - exit 0 -fi - -# State 1: sources exist — the mirror must be present and byte-identical. -missing=0 -for f in "${sources[@]}"; do - src=".machine_readable/$f" - dst="$MIRROR_DIR/$f" - if [ ! -f "$dst" ]; then - echo "Missing mirror: $dst" >&2 - missing=1 - continue - fi - if ! diff -u "$src" "$dst" >/dev/null; then - echo "Out of sync: $src -> $dst" >&2 - missing=1 - fi -done - -if [ "$missing" -eq 0 ]; then - echo "6scm mirror in sync (${#sources[@]} source(s) verified)." -fi -exit $missing diff --git a/a2ml/scripts/contractiles-a2ml-emit.sh b/a2ml/scripts/contractiles-a2ml-emit.sh deleted file mode 100755 index afb854357..000000000 --- a/a2ml/scripts/contractiles-a2ml-emit.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) - -out_dir="${1:-$root/build/contractiles}" -mkdir -p "$out_dir" - -tool="$root/scripts/contractiles-a2ml-tool.js" -runtool() { deno run --quiet --allow-read --allow-write "$tool" "$@"; } - -runtool emit "$root/contractiles/must/Mustfile.a2ml" "$out_dir/mustfile.json" -runtool emit "$root/contractiles/trust/Trustfile.a2ml" "$out_dir/trustfile.json" -runtool emit "$root/contractiles/dust/Dustfile.a2ml" "$out_dir/dustfile.json" -runtool emit "$root/contractiles/lust/Intentfile.a2ml" "$out_dir/intentfile.json" - -echo "Wrote: $out_dir/mustfile.json" -echo "Wrote: $out_dir/trustfile.json" -echo "Wrote: $out_dir/dustfile.json" -echo "Wrote: $out_dir/intentfile.json" diff --git a/a2ml/scripts/contractiles-a2ml-test.sh b/a2ml/scripts/contractiles-a2ml-test.sh deleted file mode 100755 index 7bb4840c6..000000000 --- a/a2ml/scripts/contractiles-a2ml-test.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) - -tool="$root/scripts/contractiles-a2ml-tool.js" -fixtures="$root/tests/contractiles/fixtures" -expected="$root/tests/contractiles/expected" - -runtool() { deno run --quiet --allow-read --allow-write "$tool" "$@"; } - -runtool validate \ - "$fixtures/Mustfile.a2ml" \ - "$fixtures/Trustfile.a2ml" \ - "$fixtures/Dustfile.a2ml" \ - "$fixtures/Intentfile.a2ml" - -runtool emit "$fixtures/Mustfile.a2ml" "$expected/mustfile.json.tmp" -runtool emit "$fixtures/Trustfile.a2ml" "$expected/trustfile.json.tmp" -runtool emit "$fixtures/Dustfile.a2ml" "$expected/dustfile.json.tmp" -runtool emit "$fixtures/Intentfile.a2ml" "$expected/intentfile.json.tmp" - -diff -u "$expected/mustfile.json" "$expected/mustfile.json.tmp" -diff -u "$expected/trustfile.json" "$expected/trustfile.json.tmp" -diff -u "$expected/dustfile.json" "$expected/dustfile.json.tmp" -diff -u "$expected/intentfile.json" "$expected/intentfile.json.tmp" - -expect_fail() { - local file="$1" - if runtool validate "$file"; then - echo "Expected validation failure: $file" >&2 - exit 1 - fi -} - -expect_fail_type() { - local file="$1" - local type="$2" - if runtool validate --type "$type" "$file"; then - echo "Expected validation failure: $file ($type)" >&2 - exit 1 - fi -} - -expect_fail_type "$fixtures/invalid-mustfile.a2ml" mustfile -expect_fail_type "$fixtures/invalid-trustfile.a2ml" trustfile -expect_fail_type "$fixtures/invalid-dustfile.a2ml" dustfile -expect_fail_type "$fixtures/invalid-intentfile.a2ml" intentfile - -rm -f "$expected/mustfile.json.tmp" \ - "$expected/trustfile.json.tmp" \ - "$expected/dustfile.json.tmp" \ - "$expected/intentfile.json.tmp" - -echo "Contractiles A2ML v1 tests: OK" diff --git a/a2ml/scripts/contractiles-a2ml-tool.js b/a2ml/scripts/contractiles-a2ml-tool.js deleted file mode 100644 index 97dfdb03a..000000000 --- a/a2ml/scripts/contractiles-a2ml-tool.js +++ /dev/null @@ -1,355 +0,0 @@ -#!/usr/bin/env -S deno run --allow-read --allow-write -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -// -// Contractiles A2ML validator/emitter (Deno port of the former Python tool; -// Python is banned estate-wide). JSON output is byte-compatible with the -// previous `json.dumps(obj, indent=2, sort_keys=True) + "\n"` form. - -const SPEC_VERSION = "1.0.0"; - -const REQUIRED = { - mustfile: { - filename: "Mustfile.a2ml", - sections: ["Parameters", "Checks"], - parameters: ["gateway_port", "schema_version"], - item_fields: ["description", "run"], - }, - trustfile: { - filename: "Trustfile.a2ml", - sections: ["Inputs", "Verifications"], - inputs: [ - "policy_path", - "policy_hash_path", - "schema_path", - "schema_sig_path", - "schema_pub_path", - "driver_paths", - "migrations_path", - "migrations_sig_path", - "migrations_pub_path", - ], - item_fields: ["description", "command"], - }, - dustfile: { - filename: "Dustfile.a2ml", - sections: ["Logs", "Policy", "Gateway", "Dust-Events"], - fields_by_section: { - "Logs": ["path", "reversible", "handler"], - "Policy": ["path", "rollback"], - "Gateway": ["event", "undo"], - "Dust-Events": ["source", "transform"], - }, - }, - intentfile: { - filename: "Intentfile.a2ml", - sections: ["Trust-Engine", "Control-Plane", "Pipeline", "Introspection"], - }, -}; - -const NAME_TO_TYPE = Object.fromEntries( - Object.entries(REQUIRED).map(([k, v]) => [v.filename, k]), -); - -function baseName(p) { - const parts = p.split("/"); - return parts[parts.length - 1]; -} - -function parseA2ml(path) { - let section = null; - let item = null; - const data = { sections: {}, items: {}, bullets: {} }; - - const flushItem = () => { - if (item === null) return; - (data.items[section] ??= []).push(item); - item = null; - }; - - const text = Deno.readTextFileSync(path); - for (const raw of text.split("\n")) { - const line = raw.replace(/\s+$/, ""); - if (line.startsWith("## ")) { - flushItem(); - section = line.slice(3).trim(); - if (!(section in data.sections)) data.sections[section] = true; - continue; - } - if (line.startsWith("### ")) { - flushItem(); - item = { name: line.slice(4).trim() }; - continue; - } - if (!line.startsWith("- ")) continue; - - const content = line.slice(2).trim(); - if (content.includes(":")) { - const idx = content.indexOf(":"); - const key = content.slice(0, idx).trim(); - const value = content.slice(idx + 1).trim(); - if (item !== null) { - item[key] = value; - } else { - (data.bullets[section] ??= []).push({ [key]: value }); - } - } else { - (data.bullets[section] ??= []).push(content); - } - } - - flushItem(); - return data; -} - -function resolveType(path, explicit) { - if (explicit) { - if (!(explicit in REQUIRED)) return null; - return explicit; - } - return NAME_TO_TYPE[baseName(path)] ?? null; -} - -function validate(path, explicitType) { - const docType = resolveType(path, explicitType); - if (!docType) return [`Unsupported file: ${baseName(path)}`]; - - const req = REQUIRED[docType]; - const parsed = parseA2ml(path); - const errors = []; - - for (const section of req.sections ?? []) { - if (!(section in parsed.sections)) errors.push(`Missing section: ${section}`); - } - - if (docType === "mustfile") { - const params = {}; - for (const entry of parsed.bullets["Parameters"] ?? []) { - if (entry && typeof entry === "object") Object.assign(params, entry); - } - for (const key of req.parameters ?? []) { - if (!(key in params) || params[key] === "") errors.push(`Missing parameter: ${key}`); - } - - const checks = parsed.items["Checks"] ?? []; - const seen = new Set(); - for (const check of checks) { - const cname = check.name ?? ""; - if (!cname) { - errors.push("Check missing name"); - continue; - } - if (seen.has(cname)) errors.push(`Duplicate check name: ${cname}`); - seen.add(cname); - for (const field of req.item_fields ?? []) { - if (!(field in check) || check[field] === "") { - errors.push(`Check '${cname}' missing field: ${field}`); - } - } - } - } else if (docType === "trustfile") { - const inputs = {}; - for (const entry of parsed.bullets["Inputs"] ?? []) { - if (entry && typeof entry === "object") Object.assign(inputs, entry); - } - for (const key of req.inputs ?? []) { - if (!(key in inputs) || inputs[key] === "") errors.push(`Missing input: ${key}`); - } - - const verifications = parsed.items["Verifications"] ?? []; - for (const verification of verifications) { - const vname = verification.name ?? ""; - if (!vname) { - errors.push("Verification missing name"); - continue; - } - for (const field of req.item_fields ?? []) { - if (!(field in verification) || verification[field] === "") { - errors.push(`Verification '${vname}' missing field: ${field}`); - } - } - } - } else if (docType === "dustfile") { - for (const [section, fields] of Object.entries(req.fields_by_section ?? {})) { - const items = parsed.items[section] ?? []; - if (items.length === 0) { - errors.push(`Section '${section}' has no entries`); - continue; - } - for (const entry of items) { - const ename = entry.name ?? ""; - if (!ename) { - errors.push(`${section} entry missing name`); - continue; - } - for (const field of fields) { - if (!(field in entry) || entry[field] === "") { - errors.push(`${section} '${ename}' missing field: ${field}`); - } - } - } - } - } else if (docType === "intentfile") { - for (const section of req.sections ?? []) { - const bullets = parsed.bullets[section] ?? []; - if (bullets.length === 0) { - errors.push(`Section '${section}' must include at least one item`); - } - } - } - - return errors; -} - -function emit(path, explicitType) { - const docType = resolveType(path, explicitType); - if (!docType) { - console.error(`Unsupported file: ${baseName(path)}`); - Deno.exit(1); - } - - const parsed = parseA2ml(path); - - if (docType === "mustfile") { - const parameters = {}; - for (const entry of parsed.bullets["Parameters"] ?? []) { - if (entry && typeof entry === "object") Object.assign(parameters, entry); - } - const checks = parsed.items["Checks"] ?? []; - return { type: "mustfile", spec_version: SPEC_VERSION, parameters, checks }; - } - - if (docType === "trustfile") { - const inputs = {}; - for (const entry of parsed.bullets["Inputs"] ?? []) { - if (entry && typeof entry === "object") Object.assign(inputs, entry); - } - const verifications = parsed.items["Verifications"] ?? []; - return { type: "trustfile", spec_version: SPEC_VERSION, inputs, verifications }; - } - - if (docType === "dustfile") { - const sections = {}; - for (const section of REQUIRED[docType].sections) { - sections[section] = parsed.items[section] ?? []; - } - return { type: "dustfile", spec_version: SPEC_VERSION, sections }; - } - - if (docType === "intentfile") { - const future = {}; - for (const section of REQUIRED[docType].sections) { - const items = parsed.bullets[section] ?? []; - future[section] = items.map((it) => - typeof it === "string" ? it : Object.values(it)[0] - ); - } - return { type: "intentfile", spec_version: SPEC_VERSION, future }; - } - - console.error(`Unsupported file: ${baseName(path)}`); - Deno.exit(1); -} - -// Recursively sort object keys, then serialise to match Python's -// json.dumps(obj, indent=2, sort_keys=True) including ensure_ascii=True. -function sortDeep(value) { - if (Array.isArray(value)) return value.map(sortDeep); - if (value && typeof value === "object") { - const out = {}; - for (const k of Object.keys(value).sort()) out[k] = sortDeep(value[k]); - return out; - } - return value; -} - -function asciiEscape(s) { - let out = ""; - for (const ch of s) { - const cp = ch.codePointAt(0); - if (cp > 0x7f) { - if (cp > 0xffff) { - const u = cp - 0x10000; - const hi = 0xd800 + (u >> 10); - const lo = 0xdc00 + (u & 0x3ff); - out += "\\u" + hi.toString(16).padStart(4, "0") + - "\\u" + lo.toString(16).padStart(4, "0"); - } else { - out += "\\u" + cp.toString(16).padStart(4, "0"); - } - } else { - out += ch; - } - } - return out; -} - -function pyJson(obj) { - return asciiEscape(JSON.stringify(sortDeep(obj), null, 2)) + "\n"; -} - -function parseArgs(argv) { - const cmd = argv[0]; - if (cmd === "validate") { - const files = []; - let type = null; - for (let i = 1; i < argv.length; i++) { - if (argv[i] === "--type") { - type = argv[++i]; - } else { - files.push(argv[i]); - } - } - if (files.length === 0) { - console.error("usage: contractiles-a2ml-tool validate FILES... [--type TYPE]"); - Deno.exit(2); - } - return { cmd, files, type }; - } - if (cmd === "emit") { - const positional = []; - let type = null; - for (let i = 1; i < argv.length; i++) { - if (argv[i] === "--type") { - type = argv[++i]; - } else { - positional.push(argv[i]); - } - } - if (positional.length < 2) { - console.error("usage: contractiles-a2ml-tool emit INPUT OUTPUT [--type TYPE]"); - Deno.exit(2); - } - return { cmd, input: positional[0], output: positional[1], type }; - } - console.error("usage: contractiles-a2ml-tool {validate,emit} ..."); - Deno.exit(2); -} - -function main() { - const args = parseArgs(Deno.args); - - if (args.cmd === "validate") { - const allErrors = []; - for (const f of args.files) { - for (const err of validate(f, args.type)) { - allErrors.push(`${baseName(f)}: ${err}`); - } - } - if (allErrors.length > 0) { - for (const err of allErrors) console.error(err); - return 1; - } - return 0; - } - - if (args.cmd === "emit") { - const output = emit(args.input, args.type); - Deno.writeTextFileSync(args.output, pyJson(output)); - return 0; - } - - return 1; -} - -Deno.exit(main()); diff --git a/a2ml/scripts/contractiles-a2ml-validate.sh b/a2ml/scripts/contractiles-a2ml-validate.sh deleted file mode 100755 index b00b15183..000000000 --- a/a2ml/scripts/contractiles-a2ml-validate.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) - -tool="$root/scripts/contractiles-a2ml-tool.js" -runtool() { deno run --quiet --allow-read --allow-write "$tool" "$@"; } - -if ! command -v a2ml >/dev/null 2>&1; then - echo "a2ml CLI not found. Install it or add bin/a2ml to PATH." >&2 - exit 1 -fi - -files=( - "$root/contractiles/must/Mustfile.a2ml" - "$root/contractiles/trust/Trustfile.a2ml" - "$root/contractiles/dust/Dustfile.a2ml" - "$root/contractiles/lust/Intentfile.a2ml" -) - -for file in "${files[@]}"; do - a2ml validate "$file" -done - -runtool validate "${files[@]}" diff --git a/a2ml/scripts/contractiles-k9-validate.sh b/a2ml/scripts/contractiles-k9-validate.sh deleted file mode 100755 index 7a0d7b9ff..000000000 --- a/a2ml/scripts/contractiles-k9-validate.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) -component="$root/contractiles/k9/a2ml-contractiles.k9.ncl" - -if ! command -v nickel >/dev/null 2>&1; then - echo "nickel not found. Install Nickel to typecheck the K9 component." >&2 - exit 1 -fi - -if ! command -v a2ml >/dev/null 2>&1; then - echo "a2ml CLI not found. Install it or add bin/a2ml to PATH." >&2 - exit 1 -fi - -nickel typecheck "$component" - -a2ml validate \ - "$root/contractiles/must/Mustfile.a2ml" \ - "$root/contractiles/trust/Trustfile.a2ml" \ - "$root/contractiles/dust/Dustfile.a2ml" \ - "$root/contractiles/lust/Intentfile.a2ml" diff --git a/a2ml/scripts/deploy-site.sh b/a2ml/scripts/deploy-site.sh deleted file mode 100755 index 843c6cb98..000000000 --- a/a2ml/scripts/deploy-site.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: MPL-2.0 -# Build the a2ml.net site with ddraig-ssg and deploy it to the Cloudflare -# Pages project "a2ml". Requires CLOUDFLARE_API_TOKEN (Pages:Edit) and -# CLOUDFLARE_ACCOUNT_ID in the environment (e.g. `source ~/.secrets/cloudflare.env`). -# wrangler is run via Deno's npm-compat layer (no npm/node_modules/package.json -# on disk) per estate policy — "JS deps: Deno". -set -euo pipefail - -SITE_DIR="$(cd "$(dirname "$0")/.." && pwd)/site" -DDRAIG_REPO="${DDRAIG_REPO:-$(cd "$(dirname "$0")/../../.." && pwd)/ddraig-ssg}" -DDRAIG_BIN="$DDRAIG_REPO/build/exec/ddraig" -OUT_DIR="${OUT_DIR:-$(mktemp -d)}" -BASE_URL="https://a2ml.net" -PROJECT_NAME="a2ml" - -if [ ! -x "$DDRAIG_BIN" ]; then - echo "Building ddraig-ssg..." - ( cd "$DDRAIG_REPO" && idris2 Ddraig.idr -o ddraig ) -fi - -echo "Building $SITE_DIR -> $OUT_DIR (base $BASE_URL)" -"$DDRAIG_BIN" build "$SITE_DIR" "$OUT_DIR" "$BASE_URL" - -: "${CLOUDFLARE_API_TOKEN:?Set CLOUDFLARE_API_TOKEN (Pages:Edit) before deploying}" -: "${CLOUDFLARE_ACCOUNT_ID:?Set CLOUDFLARE_ACCOUNT_ID before deploying}" - -echo "Deploying $OUT_DIR to Cloudflare Pages project '$PROJECT_NAME'" -deno run -A npm:wrangler@4 pages deploy "$OUT_DIR" \ - --project-name="$PROJECT_NAME" \ - --branch=main - -echo "Done. Verify: curl -I $BASE_URL/ and $BASE_URL/.well-known/security.txt" diff --git a/a2ml/scripts/package-cli.sh b/a2ml/scripts/package-cli.sh deleted file mode 100755 index fb53f57f6..000000000 --- a/a2ml/scripts/package-cli.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -mkdir -p dist/a2ml-cli - -cp -v bin/a2ml dist/a2ml-cli/ -cp -v docs/a2ml.1 dist/a2ml-cli/ -cp -v docs/CLI.adoc dist/a2ml-cli/ -cp -v README.adoc dist/a2ml-cli/ - -# Include compiled JS if present -if [ -f prototype/rescript/src/Cli.bs.js ]; then - cp -v prototype/rescript/src/Cli.bs.js dist/a2ml-cli/ -fi - -(cd dist && tar -czf a2ml-cli.tar.gz a2ml-cli) - -if command -v sha256sum >/dev/null 2>&1; then - (cd dist && sha256sum a2ml-cli.tar.gz > a2ml-cli.tar.gz.sha256) - echo "Created dist/a2ml-cli.tar.gz.sha256" -else - echo "sha256sum not found; skip checksum generation." >&2 -fi - -echo "Created dist/a2ml-cli.tar.gz" diff --git a/a2ml/showcase/content/examples.adoc b/a2ml/showcase/content/examples.adoc deleted file mode 100644 index 57ad57727..000000000 --- a/a2ml/showcase/content/examples.adoc +++ /dev/null @@ -1,272 +0,0 @@ -== Examples - -Real-world A2ML manifests demonstrating the format in practice. Each -example shows a different use case, from minimal declarations to -multi-agent orchestration. - -=== 1. Minimal Manifest - -The simplest possible A2ML file. Declares an agent with a single -self-attestation. - -.... -;; SPDX-License-Identifier: MPL-2.0 - -# Greeter Bot - -@abstract: -A simple bot that greets new contributors in pull requests. -@end - -@attestation: -agent-id: greeter-bot -attested-by: greeter-bot -trust-level: self-declared -capabilities: - - pr-comment -scope: repository -@end -.... - -This is enough for tooling to identify the agent, understand what it -does, and record that its capabilities are self-declared (i.e., not yet -independently verified). - -''''' - -=== 2. CI/CD Agent Manifest - -A GitHub Actions bot that runs in CI pipelines, with a verified -attestation from the security team. - -.... -;; SPDX-License-Identifier: MPL-2.0 - -# rhodibot — Repository Automation Agent - -@abstract: -rhodibot automates repository maintenance tasks including -label management, issue triage, and PR hygiene checks. -It operates within GitHub Actions workflows. -@end - -@provenance: -created-by: Jonathan D.A. Jewell -created: 2026-01-20 -last-modified: 2026-03-14 -source: https://github.com/hyperpolymath/gitbot-fleet -version: 2.1.0 -@end - -## Capabilities - -- Applies labels based on file paths and PR content -- Triages issues by parsing title and body against known patterns -- Enforces branch naming conventions -- Validates commit message format -- Checks PR size and flags oversized changes - -@attestation: -agent-id: rhodibot -attested-by: rhodibot -trust-level: self-declared -timestamp: 2026-01-20T09:00:00Z -capabilities: - - label-management - - issue-triage - - branch-validation - - commit-validation - - pr-size-check -scope: organization -@end - -@attestation: -agent-id: rhodibot -attested-by: security-team -trust-level: verified -timestamp: 2026-02-15T16:45:00Z -verifies: rhodibot/self-declared/2026-01-20 -signature: sha256:4e2a91f7c8d3b0... -note: Verified that rhodibot only reads repository metadata - and does not modify code or secrets. -@end - -@policy: -require: attestation.trust-level >= verified -enforce: github-actions -action: allow-execution -@end - -@refs: -[1] gitbot-fleet Documentation, https://github.com/hyperpolymath/gitbot-fleet -[2] Rhodium Standard Repositories, https://github.com/hyperpolymath/rhodium-standard-repositories -@end -.... - -''''' - -=== 3. Security Scanner Manifest - -Hypatia, a neurosymbolic security scanner, declaring its scanning -capabilities with an audited attestation. - -.... -;; SPDX-License-Identifier: MPL-2.0 - -# Hypatia — Neurosymbolic Security Scanner - -@abstract: -Hypatia performs multi-layered security analysis combining -rule-based scanning with neurosymbolic reasoning. It detects -secrets, vulnerable dependencies, misconfigured workflows, -and policy violations. -@end - -@provenance: -created-by: Jonathan D.A. Jewell -created: 2025-11-01 -last-modified: 2026-03-16 -source: https://github.com/hyperpolymath/hypatia -version: 3.4.0 -@end - -## Scan Modules - -- **Secret detection** — API keys, tokens, credentials in source -- **Dependency audit** — CVE matching against known vulnerabilities -- **Workflow analysis** — GitHub Actions misconfigurations -- **Policy enforcement** — RSR compliance, license headers, file locations -- **Neurosymbolic reasoning** — pattern inference beyond static rules - -@attestation: -agent-id: hypatia-scanner-v3 -attested-by: hypatia-scanner-v3 -trust-level: self-declared -timestamp: 2025-11-01T12:00:00Z -capabilities: - - secret-detection - - dependency-audit - - workflow-analysis - - policy-enforcement - - neurosymbolic-reasoning -scope: global -@end - -@attestation: -agent-id: hypatia-scanner-v3 -attested-by: security-team -trust-level: verified -timestamp: 2026-01-10T14:00:00Z -verifies: hypatia-scanner-v3/self-declared/2025-11-01 -signature: sha256:8b3d7f2e1a... -@end - -@attestation: -agent-id: hypatia-scanner-v3 -attested-by: independent-security-review -trust-level: audited -timestamp: 2026-02-28T10:30:00Z -verifies: hypatia-scanner-v3/verified/2026-01-10 -audit-report: https://audits.hyperpolymath.dev/hypatia-v3 -signature: sha256:c91e5a3b0d... -@end - -@refs: -[1] Hypatia Documentation, https://github.com/hyperpolymath/hypatia -[2] OWASP Top 10 for LLM Applications -[3] SLSA Build Provenance, https://slsa.dev -@end -.... - -''''' - -=== 4. Multi-Agent Orchestration - -Multiple agents referencing each other’s attestations to establish a -trust network for a deployment pipeline. - -.... -;; SPDX-License-Identifier: MPL-2.0 - -# Deployment Pipeline — Agent Trust Network - -@abstract: -This manifest defines the trust relationships between agents -involved in the production deployment pipeline. Each agent -attests to the capabilities of the agents it depends on. -@end - -## Pipeline Agents - -The deployment pipeline involves four agents, each responsible -for a stage of the process: - -1. **codebot** — code review and static analysis -2. **hypatia** — security scanning -3. **sustainabot** — supply chain and dependency health -4. **finishbot** — final approval and deployment trigger - -## Trust Chain - -@attestation: -agent-id: codebot-v2 -attested-by: codebot-v2 -trust-level: self-declared -timestamp: 2026-03-01T09:00:00Z -capabilities: - - code-review - - style-enforcement - - complexity-analysis -scope: pipeline -@end - -@attestation: -agent-id: sustainabot -attested-by: sustainabot -trust-level: self-declared -timestamp: 2026-03-01T09:00:00Z -capabilities: - - dependency-health - - license-compliance - - supply-chain-audit -scope: pipeline -@end - -;; Finishbot trusts codebot and sustainabot, and requires -;; hypatia to have been audited before it will approve. - -@attestation: -agent-id: finishbot -attested-by: finishbot -trust-level: self-declared -timestamp: 2026-03-01T09:00:00Z -capabilities: - - deployment-approval - - rollback-trigger -requires: - - codebot-v2/verified - - hypatia-scanner-v3/audited - - sustainabot/verified -scope: pipeline -@end - -@policy: -require: all-agents.trust-level >= verified -require: hypatia-scanner-v3.trust-level == audited -enforce: deployment-gate -action: block-deploy -message: All pipeline agents must be verified. - Hypatia must be independently audited. -@end - -@refs: -[1] gitbot-fleet, https://github.com/hyperpolymath/gitbot-fleet -[2] Hypatia Scanner, https://github.com/hyperpolymath/hypatia -[3] SLSA Framework, https://slsa.dev -@end -.... - -This example shows how `+finishbot+` will refuse to approve a deployment -unless `+codebot+` and `+sustainabot+` are at least `+verified+`, and -`+hypatia+` has been independently `+audited+`. The policy block makes -this machine-enforceable. diff --git a/a2ml/showcase/content/getting-started.adoc b/a2ml/showcase/content/getting-started.adoc deleted file mode 100644 index 69efe48a0..000000000 --- a/a2ml/showcase/content/getting-started.adoc +++ /dev/null @@ -1,213 +0,0 @@ -== Get Started - -A step-by-step guide to creating your first A2ML manifest, validating -it, and integrating it into your project. - -=== Prerequisites - -* https://pandoc.org/installing.html[Pandoc] 3.0 or later -* Git (for cloning the tooling) -* A text editor (VS Code recommended for syntax highlighting) - -''''' - -=== Install pandoc-a2ml - -Clone the pandoc-a2ml repository and note the path to the Lua scripts. -No compilation needed — the reader, writer, and filter are pure Lua. - -[source,bash] ----- -git clone https://github.com/hyperpolymath/pandoc-a2ml.git -cd pandoc-a2ml ----- - -The key files are: - `+a2ml-reader.lua+` — reads `+.a2ml+` files into -Pandoc’s AST - `+a2ml-writer.lua+` — writes Pandoc AST as `+.a2ml+` -output - `+a2ml-filter.lua+` — Lua filter for attestation processing - -You can either add these to your Pandoc data directory -(`+~/.local/share/pandoc/+`) or reference them by path. - -=== Install the VS Code Extension - -For syntax highlighting while editing `+.a2ml+` files: - -[arabic] -. Open VS Code -. Go to Extensions (Ctrl+Shift+X) -. Search for *"`A2ML`"* -. Click Install - -Alternatively, clone and install manually: - -[source,bash] ----- -git clone https://github.com/hyperpolymath/vscode-a2ml.git -cd vscode-a2ml -code --install-extension . ----- - -You should now see syntax highlighting for `+.a2ml+` files, including -directive blocks, headings, and comments. - -=== Create Your First Manifest - -Create a file called `+0-AI-MANIFEST.a2ml+` in your repository root. -This is the entry point that AI agents and tooling will read first. - -.... -;; SPDX-License-Identifier: MPL-2.0 - -# AI Manifest — my-project - -@abstract: -This repository contains my-project, a tool for doing useful things. -This manifest declares the AI agents that operate on this repository -and the policies that govern their behaviour. -@end - -@provenance: -created-by: Your Name -created: 2026-03-16 -source: https://github.com/your-org/my-project -version: 1.0.0 -@end - -## Repository Structure - -- Source code in `src/` -- Machine-readable metadata in `.machine_readable/` -- CI/CD workflows in `.github/workflows/` - -## Agents - -No AI agents currently operate on this repository. - -@refs: -[1] A2ML Specification, https://a2ml.hyperpolymath.dev/specification.html -@end -.... - -=== Validate with Pandoc - -Check that your manifest parses correctly by converting it to HTML: - -[source,bash] ----- -pandoc -f path/to/a2ml-reader.lua 0-AI-MANIFEST.a2ml -o manifest.html ----- - -If the file is well-formed, Pandoc will produce clean HTML output. Open -`+manifest.html+` in a browser to verify the structure. - -For deeper validation using the A2ML filter (checks attestation -structure): - -[source,bash] ----- -pandoc -f path/to/a2ml-reader.lua \ - --lua-filter path/to/a2ml-filter.lua \ - 0-AI-MANIFEST.a2ml \ - -o validated.html ----- - -=== Add Machine-Readable Metadata - -For full Rhodium Standard compliance, create the `+.machine_readable/+` -directory and add A2ML metadata files: - -[source,bash] ----- -mkdir -p .machine_readable/anchors .machine_readable/policies ----- - -Create `+.machine_readable/STATE.a2ml+`: - -.... -;; SPDX-License-Identifier: MPL-2.0 - -# Project State - -@abstract: -Current state of my-project development. -@end - -## Status - -- Phase: initial setup -- Completion: 10% -- Next milestone: core functionality - -## Blockers - -None currently. -.... - -Create `+.machine_readable/META.a2ml+`: - -.... -;; SPDX-License-Identifier: MPL-2.0 - -# Project Metadata - -@abstract: -Architecture decisions and governance for my-project. -@end - -## Architecture Decisions - -- Language: chosen based on team expertise -- License: PMPL-1.0-or-later for original code -.... - -These files give AI agents and automated tooling a structured -understanding of your project’s state, architecture, and ecosystem -position. - -=== Add an Agent Attestation - -When you introduce an AI agent to your workflow (a CI bot, a code -reviewer, a security scanner), declare it in the manifest: - -.... -;; Add this to 0-AI-MANIFEST.a2ml or a dedicated agent file - -@attestation: -agent-id: my-ci-bot -attested-by: my-ci-bot -trust-level: self-declared -timestamp: 2026-03-16T12:00:00Z -capabilities: - - lint-checking - - test-execution -scope: repository -@end -.... - -As the agent is reviewed and verified, add higher-trust attestations: - -.... -@attestation: -agent-id: my-ci-bot -attested-by: security-team -trust-level: verified -timestamp: 2026-03-20T15:00:00Z -verifies: my-ci-bot/self-declared/2026-03-16 -signature: sha256:your-signature-here -@end -.... - -''''' - -=== Next Steps - -* Read the full link:specification.html[Specification] for all -directives and fields -* Browse link:examples.html[Examples] for real-world patterns -* Explore link:integrations.html[Integrations] for editor and CI tooling -* Check out the source repositories: -** https://github.com/hyperpolymath/pandoc-a2ml[pandoc-a2ml] -** https://github.com/hyperpolymath/vscode-a2ml[vscode-a2ml] -** https://github.com/hyperpolymath/tree-sitter-a2ml[tree-sitter-a2ml] -** https://github.com/hyperpolymath/pandoc-k9[pandoc-k9] diff --git a/a2ml/showcase/content/index.adoc b/a2ml/showcase/content/index.adoc deleted file mode 100644 index 119c6acf3..000000000 --- a/a2ml/showcase/content/index.adoc +++ /dev/null @@ -1,88 +0,0 @@ -A2ML - -Attested Markup Language - -Every AI agent needs an identity. A2ML gives them one. - -A universal manifest format that lets AI agents declare their -capabilities, prove their provenance through attestation chains, and -establish trust through verifiable metadata. - -Get Started - -== What is A2ML? - -A2ML (Attested Markup Language) is a structured document format designed -for the age of AI agents. It solves a fundamental problem: *how do you -know what an AI agent is, what it can do, and whether you should trust -it?* - -A2ML files (`+.a2ml+`) act as identity documents for software agents. -They combine human-readable markup with machine-verifiable attestation -blocks, creating a chain of trust that can be audited by both people and -automated systems. - -Attestation Chains - -Every claim is backed by a verifiable attestation. Agents sign their -capabilities, and auditors countersign. Trust is earned, not assumed. - -Provenance Tracking - -Know exactly where a manifest came from, who authored it, and what has -changed. Full lineage from creation to deployment. - -Agent Identity - -Unique agent identifiers, capability declarations, and trust levels. -Every agent in your system has a clear, auditable identity. - -CI/CD Native - -Designed to live in repositories alongside code. Validate manifests in -pipelines, enforce policies in pull requests, audit in production. - -== Why A2ML? - -As AI agents proliferate across CI/CD pipelines, security scanners, code -reviewers, and orchestration systems, the question of *agent -accountability* becomes critical. Who deployed this bot? What -permissions does it have? Who attested to its behaviour? - -A2ML answers these questions with a format that is: - -* *Human-readable* — uses familiar markup syntax with headings, lists, -and paragraphs -* *Machine-parseable* — directive blocks (`+@attestation:+` … `+@end+`) -carry structured data -* *Auditable* — attestation chains create a verifiable trust graph -* *Composable* — agents can reference each other’s manifests to build -multi-agent trust networks - -== Tooling Ecosystem - -A2ML is not a paper specification. It ships with real, working tools: - -* *https://pandoc.org[Pandoc]* reader, writer, filter, and template via -https://github.com/hyperpolymath/pandoc-a2ml[pandoc-a2ml] — convert A2ML -to HTML, PDF, Markdown, and 40+ other formats -* *https://code.visualstudio.com[VS Code]* syntax highlighting via -https://github.com/hyperpolymath/vscode-a2ml[vscode-a2ml] -* *https://tree-sitter.github.io[Tree-sitter]* grammar via -https://github.com/hyperpolymath/tree-sitter-a2ml[tree-sitter-a2ml] — -works in Neovim, Helix, Zed, and GitHub -* *GitHub Linguist* — language detection (submission pending) - -== Part of a Larger Ecosystem - -A2ML integrates with the broader hyperpolymath standards: - -* *https://github.com/hyperpolymath/pandoc-k9[K9 Validators]* — -contractile enforcement for repository policies -* *https://github.com/hyperpolymath/hypatia[Hypatia]* — neurosymbolic -CI/CD security scanning that consumes A2ML manifests -* *https://github.com/hyperpolymath/panll[PanLL]* — panel framework with -A2ML-based panel identity -* *https://github.com/hyperpolymath/rhodium-standard-repositories[Rhodium -Standard Repositories]* — repository quality standard that requires A2ML -manifests diff --git a/a2ml/showcase/content/integrations.adoc b/a2ml/showcase/content/integrations.adoc deleted file mode 100644 index 78ab8c2f3..000000000 --- a/a2ml/showcase/content/integrations.adoc +++ /dev/null @@ -1,131 +0,0 @@ -== Integrations - -A2ML has working integrations across editors, build tools, and language -ecosystems. This is not a roadmap — these tools exist today. - -''''' - -=== Pandoc [.badge .badge-live]#Live# - -Full Pandoc integration via -https://github.com/hyperpolymath/pandoc-a2ml[pandoc-a2ml]: custom -reader, writer, Lua filter, and HTML template. - -Convert A2ML to any of Pandoc’s 40+ output formats (HTML, PDF, DOCX, -LaTeX, Markdown, reStructuredText, EPUB, and more), or convert _from_ -any Pandoc input format into A2ML. - -[source,bash] ----- -# Read A2ML, output HTML -pandoc -f a2ml-reader.lua manifest.a2ml -o manifest.html - -# Read A2ML, output PDF -pandoc -f a2ml-reader.lua manifest.a2ml -o manifest.pdf - -# Convert Markdown to A2ML -pandoc README.md -t a2ml-writer.lua -o README.a2ml - -# Apply the A2ML filter for attestation validation -pandoc -f a2ml-reader.lua --lua-filter a2ml-filter.lua manifest.a2ml -o report.html ----- - -*Install:* Clone the repo and add the Lua scripts to your Pandoc data -directory, or reference them by path. - -*Repository:* -https://github.com/hyperpolymath/pandoc-a2ml[github.com/hyperpolymath/pandoc-a2ml] - -=== VS Code [.badge .badge-live]#Live# - -Syntax highlighting, bracket matching, and snippet support for `+.a2ml+` -files in Visual Studio Code. - -Features: - Full TextMate grammar for A2ML syntax - Highlighting for -directives (`+@attestation:+` … `+@end+`), headings, inline formatting, -and comments - Snippets for common patterns (attestation block, policy -block, provenance block) - File icon for `+.a2ml+` files - Language -configuration for bracket/comment auto-pairing - -*Install:* Search "`A2ML`" in the VS Code marketplace, or install from -VSIX. - -*Repository:* -https://github.com/hyperpolymath/vscode-a2ml[github.com/hyperpolymath/vscode-a2ml] - -=== Tree-sitter [.badge .badge-live]#Live# - -A https://tree-sitter.github.io[tree-sitter] grammar for A2ML, enabling -syntax highlighting and structural queries in any editor that supports -tree-sitter. - -Works with: - *Neovim* (via nvim-treesitter) - *Helix* (built-in -tree-sitter support) - *Zed* (built-in tree-sitter support) - *GitHub* -(syntax highlighting in code views, via tree-sitter) - *Emacs* (via -tree-sitter-langs) - -The grammar parses the full A2ML syntax including nested directive -blocks, attestation fields, and inline formatting. - -*Repository:* -https://github.com/hyperpolymath/tree-sitter-a2ml[github.com/hyperpolymath/tree-sitter-a2ml] - -=== GitHub Linguist [.badge .badge-pending]#Pending# - -A pull request to add A2ML to -https://github.com/github-linguist/linguist[GitHub Linguist] is in -preparation. Once merged, GitHub will: - -* Detect `+.a2ml+` files automatically -* Show A2ML in repository language statistics -* Apply syntax highlighting using the tree-sitter grammar -* Recognise `+application/vnd.a2ml+` as a registered media type - -=== K9 Validators [.badge .badge-live]#Live# - -https://github.com/hyperpolymath/pandoc-k9[pandoc-k9] provides -contractile validation for A2ML files. K9 validators enforce structural -and policy constraints: - -* *must* — required fields and sections -* *trust* — attestation chain validity -* *dust* — deprecated pattern detection -* *intend* — intent declaration verification - -K9 runs in CI/CD pipelines and can block merges when A2ML manifests fail -validation. - -*Repository:* -https://github.com/hyperpolymath/pandoc-k9[github.com/hyperpolymath/pandoc-k9] - -=== LuaRocks [.badge .badge-live]#Live# - -The A2ML Pandoc components are available as a Lua library via -https://luarocks.org[LuaRocks], making it straightforward to integrate -A2ML parsing into any Lua-based toolchain. - -[source,bash] ----- -luarocks install pandoc-a2ml ----- - -=== Hypatia CI/CD Scanner [.badge .badge-live]#Live# - -https://github.com/hyperpolymath/hypatia[Hypatia] consumes A2ML -manifests as part of its neurosymbolic security scanning. It: - -* Reads `+0-AI-MANIFEST.a2ml+` to understand repository structure -* Validates attestation chains in `+.machine_readable/*.a2ml+` files -* Enforces that all agents operating on a repository have valid -manifests -* Reports trust-level gaps in CI pipeline output - -=== Hackage (Haskell) [.badge .badge-soon]#Coming Soon# - -A native Haskell library for parsing and generating A2ML is in -development. It will provide: - -* Pure Haskell parser (no Pandoc dependency) -* Type-safe AST for A2ML documents -* Attestation chain validation -* Integration with the Pandoc Haskell library diff --git a/a2ml/showcase/content/specification.adoc b/a2ml/showcase/content/specification.adoc deleted file mode 100644 index 53d9771c0..000000000 --- a/a2ml/showcase/content/specification.adoc +++ /dev/null @@ -1,280 +0,0 @@ -== A2ML Specification - -=== Overview - -A2ML (Attested Markup Language) is a text-based document format that -combines human-readable markup with machine-verifiable attestation -blocks. This page describes the format as currently implemented in the -https://github.com/hyperpolymath/pandoc-a2ml[pandoc-a2ml] toolchain. - -=== File Format - -* *Extension:* `+.a2ml+` -* *Media type:* `+application/vnd.a2ml+` (IANA registration pending) -* *Encoding:* UTF-8 -* *Line endings:* LF (Unix-style) recommended; CRLF accepted - -=== Basic Syntax - -A2ML uses a Markdown-like syntax with additional constructs for -attestation and structured metadata. - -==== Headings - -.... -# Top-level heading -## Second-level heading -### Third-level heading -.... - -==== Inline Formatting - -.... -**Bold text** for emphasis -*Italic text* for secondary emphasis -[Link text](https://example.com) for hyperlinks -@ref(section-id) for internal cross-references -`inline code` for identifiers -.... - -==== Lists - -.... -- Unordered list item -- Another item -* Asterisk syntax also works - -1. Ordered list item -2. Another item -.... - -==== Code Blocks - -.... -```language -code goes here -``` -.... - -==== Comments - -.... -;; Scheme-style comments are stripped during parsing. -;; Use these for notes that should not appear in output. -.... - -=== Directive Blocks - -Directives are the core extension that distinguishes A2ML from plain -Markdown. They carry structured, machine-readable content within -annotated blocks. - -==== Syntax - -.... -@directive-name: -Content of the directive. -Can span multiple lines. -@end -.... - -The parser collects everything between `+@directive-name:+` and `+@end+` -into a named container (rendered as a `+
        +` with -`+class="directive-name"+` in HTML output). - -==== Standard Directives - -The following directives have conventional meaning across the A2ML -ecosystem. Tooling may validate or enforce these. - -===== `+@abstract+` - -A short summary of the document’s purpose. Typically one to three -sentences. - -.... -@abstract: -A2ML is a typed, attested markup format for AI agent identity. -@end -.... - -===== `+@attestation+` - -A trust claim with structured fields. This is the fundamental unit of -the A2ML trust model. - -.... -@attestation: -agent-id: hypatia-scanner-v3 -attested-by: rhodibot -trust-level: verified -timestamp: 2026-03-16T14:30:00Z -signature: sha256:9f86d08... -capabilities: - - static-analysis - - secret-detection - - dependency-audit -scope: repository -@end -.... - -*Fields:* - -[width="100%",cols="24%,33%,43%",options="header",] -|=== -|Field |Required |Description -|`+agent-id+` |Yes |Unique identifier for the agent being attested - -|`+attested-by+` |Yes |Identifier of the attesting authority - -|`+trust-level+` |Yes |One of: `+self-declared+`, `+peer-reviewed+`, -`+verified+`, `+audited+` - -|`+timestamp+` |Yes |ISO 8601 timestamp of the attestation - -|`+signature+` |Recommended |Cryptographic signature (algorithm:hash) - -|`+capabilities+` |Yes |List of declared capabilities - -|`+scope+` |No |Scope of the attestation (e.g., `+repository+`, -`+organization+`, `+global+`) -|=== - -===== `+@refs+` - -References and citations. Used for linking to external specifications, -standards, or related documents. - -.... -@refs: -[1] Attested Markup Language Specification (draft), 2026 -[2] SLSA Supply Chain Framework, https://slsa.dev -@end -.... - -===== `+@policy+` - -Declares a policy constraint that tooling should enforce. - -.... -@policy: -require: attestation.trust-level >= verified -enforce: ci-pipeline -action: block-merge -@end -.... - -===== `+@provenance+` - -Records the origin and lineage of the document. - -.... -@provenance: -created-by: Jonathan D.A. Jewell -created: 2026-01-15 -last-modified: 2026-03-16 -source: https://github.com/hyperpolymath/a2ml-spec -version: 0.3.0 -@end -.... - -=== Attestation Chains - -The real power of A2ML comes from *attestation chains* — sequences of -attestations where each one references or builds upon previous ones. - -.... -;; Agent declares its own capabilities -@attestation: -agent-id: codebot-v2 -attested-by: codebot-v2 -trust-level: self-declared -capabilities: - - code-review - - style-checking -@end - -;; Security team verifies the agent -@attestation: -agent-id: codebot-v2 -attested-by: security-team -trust-level: verified -verifies: codebot-v2/self-declared/2026-03-10 -signature: sha256:a3f2c8... -@end - -;; Auditor provides highest-level attestation -@attestation: -agent-id: codebot-v2 -attested-by: external-auditor -trust-level: audited -verifies: codebot-v2/verified/2026-03-12 -audit-report: https://audits.example.com/codebot-v2 -signature: sha256:7b1e4d... -@end -.... - -Each successive attestation raises the trust level and creates an -auditable trail from `+self-declared+` through `+verified+` to -`+audited+`. - -=== Trust Levels - -[width="100%",cols="22%,26%,52%",options="header",] -|=== -|Level |Meaning |Typical Attester -|`+self-declared+` |Agent claims its own capabilities |The agent itself - -|`+peer-reviewed+` |Another agent or team has reviewed the claims |A -peer agent or team lead - -|`+verified+` |A security or operations team has validated behaviour -|Security team, CI system - -|`+audited+` |An independent audit has confirmed the claims |External -auditor -|=== - -=== Canonical File Locations - -In repositories following the -https://github.com/hyperpolymath/rhodium-standard-repositories[Rhodium -Standard], A2ML files live in the `+.machine_readable/+` directory: - -.... -.machine_readable/ - STATE.a2ml # Project state and progress - META.a2ml # Architecture decisions, governance - ECOSYSTEM.a2ml # Position in ecosystem, relationships - AGENTIC.a2ml # AI agent interaction patterns - NEUROSYM.a2ml # Neurosymbolic integration config - PLAYBOOK.a2ml # Operational runbook - anchors/ - ANCHOR.a2ml # Canonical authority declaration - policies/ - MAINTENANCE-AXES.a2ml - MAINTENANCE-CHECKLIST.a2ml -.... - -The top-level `+0-AI-MANIFEST.a2ml+` serves as the entry point that all -AI agents must read first. - -=== Pandoc Integration - -A2ML is a first-class Pandoc format. Convert between A2ML and any -Pandoc-supported format: - -[source,bash] ----- -# A2ML to HTML -pandoc -f a2ml-reader.lua input.a2ml -o output.html - -# A2ML to PDF (via LaTeX) -pandoc -f a2ml-reader.lua input.a2ml -o output.pdf - -# Markdown to A2ML -pandoc input.md -t a2ml-writer.lua -o output.a2ml - -# A2ML to A2ML (normalise) -pandoc -f a2ml-reader.lua input.a2ml -t a2ml-writer.lua -o normalised.a2ml ----- diff --git a/a2ml/showcase/output/examples.html b/a2ml/showcase/output/examples.html deleted file mode 100644 index 6c7511444..000000000 --- a/a2ml/showcase/output/examples.html +++ /dev/null @@ -1,672 +0,0 @@ - - - - - - - - - Examples — A2ML: Attested Markup Language - - - - - - - - -
        -

        Examples

        -

        Real-world A2ML manifests demonstrating the format in practice. Each example shows a different use case, from minimal declarations to multi-agent orchestration.

        -

        1. Minimal Manifest

        -

        The simplest possible A2ML file. Declares an agent with a single self-attestation.

        -
        ;; SPDX-License-Identifier: AGPL-3.0-or-later
        -
        -# Greeter Bot
        -
        -@abstract:
        -A simple bot that greets new contributors in pull requests.
        -@end
        -
        -@attestation:
        -agent-id: greeter-bot
        -attested-by: greeter-bot
        -trust-level: self-declared
        -capabilities:
        -  - pr-comment
        -scope: repository
        -@end
        -
        -

        This is enough for tooling to identify the agent, understand what it does, and record that its capabilities are self-declared (i.e., not yet independently verified).

        -

        ---

        -

        2. CI/CD Agent Manifest

        -

        A GitHub Actions bot that runs in CI pipelines, with a verified attestation from the security team.

        -
        ;; SPDX-License-Identifier: AGPL-3.0-or-later
        -
        -# rhodibot — Repository Automation Agent
        -
        -@abstract:
        -rhodibot automates repository maintenance tasks including
        -label management, issue triage, and PR hygiene checks.
        -It operates within GitHub Actions workflows.
        -@end
        -
        -@provenance:
        -created-by: Jonathan D.A. Jewell
        -created: 2026-01-20
        -last-modified: 2026-03-14
        -source: https://github.com/hyperpolymath/gitbot-fleet
        -version: 2.1.0
        -@end
        -
        -## Capabilities
        -
        -- Applies labels based on file paths and PR content
        -- Triages issues by parsing title and body against known patterns
        -- Enforces branch naming conventions
        -- Validates commit message format
        -- Checks PR size and flags oversized changes
        -
        -@attestation:
        -agent-id: rhodibot
        -attested-by: rhodibot
        -trust-level: self-declared
        -timestamp: 2026-01-20T09:00:00Z
        -capabilities:
        -  - label-management
        -  - issue-triage
        -  - branch-validation
        -  - commit-validation
        -  - pr-size-check
        -scope: organization
        -@end
        -
        -@attestation:
        -agent-id: rhodibot
        -attested-by: security-team
        -trust-level: verified
        -timestamp: 2026-02-15T16:45:00Z
        -verifies: rhodibot/self-declared/2026-01-20
        -signature: sha256:4e2a91f7c8d3b0...
        -note: Verified that rhodibot only reads repository metadata
        -      and does not modify code or secrets.
        -@end
        -
        -@policy:
        -require: attestation.trust-level >= verified
        -enforce: github-actions
        -action: allow-execution
        -@end
        -
        -@refs:
        -[1] gitbot-fleet Documentation, https://github.com/hyperpolymath/gitbot-fleet
        -[2] Rhodium Standard Repositories, https://github.com/hyperpolymath/rhodium-standard-repositories
        -@end
        -
        -

        ---

        -

        3. Security Scanner Manifest

        -

        Hypatia, a neurosymbolic security scanner, declaring its scanning capabilities with an audited attestation.

        -
        ;; SPDX-License-Identifier: AGPL-3.0-or-later
        -
        -# Hypatia — Neurosymbolic Security Scanner
        -
        -@abstract:
        -Hypatia performs multi-layered security analysis combining
        -rule-based scanning with neurosymbolic reasoning. It detects
        -secrets, vulnerable dependencies, misconfigured workflows,
        -and policy violations.
        -@end
        -
        -@provenance:
        -created-by: Jonathan D.A. Jewell
        -created: 2025-11-01
        -last-modified: 2026-03-16
        -source: https://github.com/hyperpolymath/hypatia
        -version: 3.4.0
        -@end
        -
        -## Scan Modules
        -
        -- **Secret detection** — API keys, tokens, credentials in source
        -- **Dependency audit** — CVE matching against known vulnerabilities
        -- **Workflow analysis** — GitHub Actions misconfigurations
        -- **Policy enforcement** — RSR compliance, license headers, file locations
        -- **Neurosymbolic reasoning** — pattern inference beyond static rules
        -
        -@attestation:
        -agent-id: hypatia-scanner-v3
        -attested-by: hypatia-scanner-v3
        -trust-level: self-declared
        -timestamp: 2025-11-01T12:00:00Z
        -capabilities:
        -  - secret-detection
        -  - dependency-audit
        -  - workflow-analysis
        -  - policy-enforcement
        -  - neurosymbolic-reasoning
        -scope: global
        -@end
        -
        -@attestation:
        -agent-id: hypatia-scanner-v3
        -attested-by: security-team
        -trust-level: verified
        -timestamp: 2026-01-10T14:00:00Z
        -verifies: hypatia-scanner-v3/self-declared/2025-11-01
        -signature: sha256:8b3d7f2e1a...
        -@end
        -
        -@attestation:
        -agent-id: hypatia-scanner-v3
        -attested-by: independent-security-review
        -trust-level: audited
        -timestamp: 2026-02-28T10:30:00Z
        -verifies: hypatia-scanner-v3/verified/2026-01-10
        -audit-report: https://audits.hyperpolymath.dev/hypatia-v3
        -signature: sha256:c91e5a3b0d...
        -@end
        -
        -@refs:
        -[1] Hypatia Documentation, https://github.com/hyperpolymath/hypatia
        -[2] OWASP Top 10 for LLM Applications
        -[3] SLSA Build Provenance, https://slsa.dev
        -@end
        -
        -

        ---

        -

        4. Multi-Agent Orchestration

        -

        Multiple agents referencing each other's attestations to establish a trust network for a deployment pipeline.

        -
        ;; SPDX-License-Identifier: AGPL-3.0-or-later
        -
        -# Deployment Pipeline — Agent Trust Network
        -
        -@abstract:
        -This manifest defines the trust relationships between agents
        -involved in the production deployment pipeline. Each agent
        -attests to the capabilities of the agents it depends on.
        -@end
        -
        -## Pipeline Agents
        -
        -The deployment pipeline involves four agents, each responsible
        -for a stage of the process:
        -
        -1. **codebot** — code review and static analysis
        -2. **hypatia** — security scanning
        -3. **sustainabot** — supply chain and dependency health
        -4. **finishbot** — final approval and deployment trigger
        -
        -## Trust Chain
        -
        -@attestation:
        -agent-id: codebot-v2
        -attested-by: codebot-v2
        -trust-level: self-declared
        -timestamp: 2026-03-01T09:00:00Z
        -capabilities:
        -  - code-review
        -  - style-enforcement
        -  - complexity-analysis
        -scope: pipeline
        -@end
        -
        -@attestation:
        -agent-id: sustainabot
        -attested-by: sustainabot
        -trust-level: self-declared
        -timestamp: 2026-03-01T09:00:00Z
        -capabilities:
        -  - dependency-health
        -  - license-compliance
        -  - supply-chain-audit
        -scope: pipeline
        -@end
        -
        -;; Finishbot trusts codebot and sustainabot, and requires
        -;; hypatia to have been audited before it will approve.
        -
        -@attestation:
        -agent-id: finishbot
        -attested-by: finishbot
        -trust-level: self-declared
        -timestamp: 2026-03-01T09:00:00Z
        -capabilities:
        -  - deployment-approval
        -  - rollback-trigger
        -requires:
        -  - codebot-v2/verified
        -  - hypatia-scanner-v3/audited
        -  - sustainabot/verified
        -scope: pipeline
        -@end
        -
        -@policy:
        -require: all-agents.trust-level >= verified
        -require: hypatia-scanner-v3.trust-level == audited
        -enforce: deployment-gate
        -action: block-deploy
        -message: All pipeline agents must be verified.
        -         Hypatia must be independently audited.
        -@end
        -
        -@refs:
        -[1] gitbot-fleet, https://github.com/hyperpolymath/gitbot-fleet
        -[2] Hypatia Scanner, https://github.com/hyperpolymath/hypatia
        -[3] SLSA Framework, https://slsa.dev
        -@end
        -
        -

        This example shows how finishbot will refuse to approve a deployment unless codebot and sustainabot are at least verified, and hypatia has been independently audited. The policy block makes this machine-enforceable.

        - -
        - - -
        -

        - - Built with ddraig-ssg (Idris 2) - · - A2ML is part of the - hyperpolymath - standards ecosystem -

        -

        - Copyright © 2026 Jonathan D.A. Jewell (hyperpolymath). - Licensed under PMPL-1.0-or-later. -

        -
        - - - diff --git a/a2ml/showcase/output/getting-started.html b/a2ml/showcase/output/getting-started.html deleted file mode 100644 index 334fd9048..000000000 --- a/a2ml/showcase/output/getting-started.html +++ /dev/null @@ -1,594 +0,0 @@ - - - - - - - - - Get Started — A2ML: Attested Markup Language - - - - - - - - -
        -

        Get Started

        -

        A step-by-step guide to creating your first A2ML manifest, validating it, and integrating it into your project.

        -

        Prerequisites

        -
          -
        • [Pandoc](https://pandoc.org/installing.html) 3.0 or later
        • -
        • Git (for cloning the tooling)
        • -
        • A text editor (VS Code recommended for syntax highlighting)
        • -
        -

        ---

        -

        -

        Install pandoc-a2ml

        -

        Clone the pandoc-a2ml repository and note the path to the Lua scripts. No compilation needed — the reader, writer, and filter are pure Lua.

        -
        git clone https://github.com/hyperpolymath/pandoc-a2ml.git
        -cd pandoc-a2ml
        -
        -

        The key files are:

        -
          -
        • a2ml-reader.lua — reads .a2ml files into Pandoc's AST
        • -
        • a2ml-writer.lua — writes Pandoc AST as .a2ml output
        • -
        • a2ml-filter.lua — Lua filter for attestation processing
        • -
        -

        You can either add these to your Pandoc data directory (~/.local/share/pandoc/) or reference them by path.

        -

        -

        -

        Install the VS Code Extension

        -

        For syntax highlighting while editing .a2ml files:

        -

        1. Open VS Code 2. Go to Extensions (Ctrl+Shift+X) 3. Search for "A2ML" 4. Click Install

        -

        Alternatively, clone and install manually:

        -
        git clone https://github.com/hyperpolymath/vscode-a2ml.git
        -cd vscode-a2ml
        -code --install-extension .
        -
        -

        You should now see syntax highlighting for .a2ml files, including directive blocks, headings, and comments.

        -

        -

        -

        Create Your First Manifest

        -

        Create a file called 0-AI-MANIFEST.a2ml in your repository root. This is the entry point that AI agents and tooling will read first.

        -
        ;; SPDX-License-Identifier: AGPL-3.0-or-later
        -
        -# AI Manifest — my-project
        -
        -@abstract:
        -This repository contains my-project, a tool for doing useful things.
        -This manifest declares the AI agents that operate on this repository
        -and the policies that govern their behaviour.
        -@end
        -
        -@provenance:
        -created-by: Your Name
        -created: 2026-03-16
        -source: https://github.com/your-org/my-project
        -version: 1.0.0
        -@end
        -
        -## Repository Structure
        -
        -- Source code in `src/`
        -- Machine-readable metadata in `.machine_readable/`
        -- CI/CD workflows in `.github/workflows/`
        -
        -## Agents
        -
        -No AI agents currently operate on this repository.
        -
        -@refs:
        -[1] A2ML Specification, https://a2ml.hyperpolymath.dev/specification.html
        -@end
        -
        -

        -

        -

        Validate with Pandoc

        -

        Check that your manifest parses correctly by converting it to HTML:

        -
        pandoc -f path/to/a2ml-reader.lua 0-AI-MANIFEST.a2ml -o manifest.html
        -
        -

        If the file is well-formed, Pandoc will produce clean HTML output. Open manifest.html in a browser to verify the structure.

        -

        For deeper validation using the A2ML filter (checks attestation structure):

        -
        pandoc -f path/to/a2ml-reader.lua \
        -       --lua-filter path/to/a2ml-filter.lua \
        -       0-AI-MANIFEST.a2ml \
        -       -o validated.html
        -
        -

        -

        -

        Add Machine-Readable Metadata

        -

        For full Rhodium Standard compliance, create the .machine_readable/ directory and add A2ML metadata files:

        -
        mkdir -p .machine_readable/anchors .machine_readable/policies
        -
        -

        Create .machine_readable/STATE.a2ml:

        -
        ;; SPDX-License-Identifier: AGPL-3.0-or-later
        -
        -# Project State
        -
        -@abstract:
        -Current state of my-project development.
        -@end
        -
        -## Status
        -
        -- Phase: initial setup
        -- Completion: 10%
        -- Next milestone: core functionality
        -
        -## Blockers
        -
        -None currently.
        -
        -

        Create .machine_readable/META.a2ml:

        -
        ;; SPDX-License-Identifier: AGPL-3.0-or-later
        -
        -# Project Metadata
        -
        -@abstract:
        -Architecture decisions and governance for my-project.
        -@end
        -
        -## Architecture Decisions
        -
        -- Language: chosen based on team expertise
        -- License: PMPL-1.0-or-later for original code
        -
        -

        These files give AI agents and automated tooling a structured understanding of your project's state, architecture, and ecosystem position.

        -

        -

        -

        Add an Agent Attestation

        -

        When you introduce an AI agent to your workflow (a CI bot, a code reviewer, a security scanner), declare it in the manifest:

        -
        ;; Add this to 0-AI-MANIFEST.a2ml or a dedicated agent file
        -
        -@attestation:
        -agent-id: my-ci-bot
        -attested-by: my-ci-bot
        -trust-level: self-declared
        -timestamp: 2026-03-16T12:00:00Z
        -capabilities:
        -  - lint-checking
        -  - test-execution
        -scope: repository
        -@end
        -
        -

        As the agent is reviewed and verified, add higher-trust attestations:

        -
        @attestation:
        -agent-id: my-ci-bot
        -attested-by: security-team
        -trust-level: verified
        -timestamp: 2026-03-20T15:00:00Z
        -verifies: my-ci-bot/self-declared/2026-03-16
        -signature: sha256:your-signature-here
        -@end
        -
        -

        -

        ---

        -

        Next Steps

        -
          -
        • Read the full [Specification](specification.html) for all directives and fields
        • -
        • Browse [Examples](examples.html) for real-world patterns
        • -
        • Explore [Integrations](integrations.html) for editor and CI tooling
        • -
        • Check out the source repositories:
        • -
        • [pandoc-a2ml](https://github.com/hyperpolymath/pandoc-a2ml)
        • -
        • [vscode-a2ml](https://github.com/hyperpolymath/vscode-a2ml)
        • -
        • [tree-sitter-a2ml](https://github.com/hyperpolymath/tree-sitter-a2ml)
        • -
        • [pandoc-k9](https://github.com/hyperpolymath/pandoc-k9)
        • -
        - -
        - - -
        -

        - - Built with ddraig-ssg (Idris 2) - · - A2ML is part of the - hyperpolymath - standards ecosystem -

        -

        - Copyright © 2026 Jonathan D.A. Jewell (hyperpolymath). - Licensed under PMPL-1.0-or-later. -

        -
        - - - diff --git a/a2ml/showcase/output/index.html b/a2ml/showcase/output/index.html deleted file mode 100644 index ffed777b1..000000000 --- a/a2ml/showcase/output/index.html +++ /dev/null @@ -1,463 +0,0 @@ - - - - - - - - - A2ML — A2ML: Attested Markup Language - - - - - - - - -
        -

        A2ML

        Attested Markup Language

        Every AI agent needs an identity. A2ML gives them one.

        A universal manifest format that lets AI agents declare their capabilities, prove their provenance through attestation chains, and establish trust through verifiable metadata.

        Get Started

        -

        What is A2ML?

        -

        A2ML (Attested Markup Language) is a structured document format designed for the age of AI agents. It solves a fundamental problem: how do you know what an AI agent is, what it can do, and whether you should trust it?

        -

        A2ML files (.a2ml) act as identity documents for software agents. They combine human-readable markup with machine-verifiable attestation blocks, creating a chain of trust that can be audited by both people and automated systems.

        -

        Attestation Chains

        Every claim is backed by a verifiable attestation. Agents sign their capabilities, and auditors countersign. Trust is earned, not assumed.

        Provenance Tracking

        Know exactly where a manifest came from, who authored it, and what has changed. Full lineage from creation to deployment.

        Agent Identity

        Unique agent identifiers, capability declarations, and trust levels. Every agent in your system has a clear, auditable identity.

        CI/CD Native

        Designed to live in repositories alongside code. Validate manifests in pipelines, enforce policies in pull requests, audit in production.

        -

        Why A2ML?

        -

        As AI agents proliferate across CI/CD pipelines, security scanners, code reviewers, and orchestration systems, the question of agent accountability becomes critical. Who deployed this bot? What permissions does it have? Who attested to its behaviour?

        -

        A2ML answers these questions with a format that is:

        -
          -
        • Human-readable — uses familiar markup syntax with headings, lists, and paragraphs
        • -
        • Machine-parseable — directive blocks (@attestation: ... @end) carry structured data
        • -
        • Auditable — attestation chains create a verifiable trust graph
        • -
        • Composable — agents can reference each other's manifests to build multi-agent trust networks
        • -
        -

        Tooling Ecosystem

        -

        A2ML is not a paper specification. It ships with real, working tools:

        -
          -
        • [Pandoc](https://pandoc.org) reader, writer, filter, and template via [pandoc-a2ml](https://github.com/hyperpolymath/pandoc-a2ml) — convert A2ML to HTML, PDF, Markdown, and 40+ other formats
        • -
        • [VS Code](https://code.visualstudio.com) syntax highlighting via [vscode-a2ml](https://github.com/hyperpolymath/vscode-a2ml)
        • -
        • [Tree-sitter](https://tree-sitter.github.io) grammar via [tree-sitter-a2ml](https://github.com/hyperpolymath/tree-sitter-a2ml) — works in Neovim, Helix, Zed, and GitHub
        • -
        • GitHub Linguist — language detection (submission pending)
        • -
        -

        Part of a Larger Ecosystem

        -

        A2ML integrates with the broader hyperpolymath standards:

        -
          -
        • [K9 Validators](https://github.com/hyperpolymath/pandoc-k9) — contractile enforcement for repository policies
        • -
        • [Hypatia](https://github.com/hyperpolymath/hypatia) — neurosymbolic CI/CD security scanning that consumes A2ML manifests
        • -
        • [PanLL](https://github.com/hyperpolymath/panll) — panel framework with A2ML-based panel identity
        • -
        • [Rhodium Standard Repositories](https://github.com/hyperpolymath/rhodium-standard-repositories) — repository quality standard that requires A2ML manifests
        • -
        - -
        - - -
        -

        - - Built with ddraig-ssg (Idris 2) - · - A2ML is part of the - hyperpolymath - standards ecosystem -

        -

        - Copyright © 2026 Jonathan D.A. Jewell (hyperpolymath). - Licensed under PMPL-1.0-or-later. -

        -
        - - - diff --git a/a2ml/showcase/output/integrations.html b/a2ml/showcase/output/integrations.html deleted file mode 100644 index 85fd045a1..000000000 --- a/a2ml/showcase/output/integrations.html +++ /dev/null @@ -1,531 +0,0 @@ - - - - - - - - - Integrations — A2ML: Attested Markup Language - - - - - - - - -
        -

        Integrations

        -

        A2ML has working integrations across editors, build tools, and language ecosystems. This is not a roadmap — these tools exist today.

        -

        ---

        -

        -

        Pandoc Live

        -

        Full Pandoc integration via [pandoc-a2ml](https://github.com/hyperpolymath/pandoc-a2ml): custom reader, writer, Lua filter, and HTML template.

        -

        Convert A2ML to any of Pandoc's 40+ output formats (HTML, PDF, DOCX, LaTeX, Markdown, reStructuredText, EPUB, and more), or convert from any Pandoc input format into A2ML.

        -
        # Read A2ML, output HTML
        -pandoc -f a2ml-reader.lua manifest.a2ml -o manifest.html
        -
        -# Read A2ML, output PDF
        -pandoc -f a2ml-reader.lua manifest.a2ml -o manifest.pdf
        -
        -# Convert Markdown to A2ML
        -pandoc README.md -t a2ml-writer.lua -o README.a2ml
        -
        -# Apply the A2ML filter for attestation validation
        -pandoc -f a2ml-reader.lua --lua-filter a2ml-filter.lua manifest.a2ml -o report.html
        -
        -

        Install: Clone the repo and add the Lua scripts to your Pandoc data directory, or reference them by path.

        -

        Repository: [github.com/hyperpolymath/pandoc-a2ml](https://github.com/hyperpolymath/pandoc-a2ml)

        -

        -

        -

        VS Code Live

        -

        Syntax highlighting, bracket matching, and snippet support for .a2ml files in Visual Studio Code.

        -

        Features:

        -
          -
        • Full TextMate grammar for A2ML syntax
        • -
        • Highlighting for directives (@attestation: ... @end), headings, inline formatting, and comments
        • -
        • Snippets for common patterns (attestation block, policy block, provenance block)
        • -
        • File icon for .a2ml files
        • -
        • Language configuration for bracket/comment auto-pairing
        • -
        -

        Install: Search "A2ML" in the VS Code marketplace, or install from VSIX.

        -

        Repository: [github.com/hyperpolymath/vscode-a2ml](https://github.com/hyperpolymath/vscode-a2ml)

        -

        -

        -

        Tree-sitter Live

        -

        A [tree-sitter](https://tree-sitter.github.io) grammar for A2ML, enabling syntax highlighting and structural queries in any editor that supports tree-sitter.

        -

        Works with:

        -
          -
        • Neovim (via nvim-treesitter)
        • -
        • Helix (built-in tree-sitter support)
        • -
        • Zed (built-in tree-sitter support)
        • -
        • GitHub (syntax highlighting in code views, via tree-sitter)
        • -
        • Emacs (via tree-sitter-langs)
        • -
        -

        The grammar parses the full A2ML syntax including nested directive blocks, attestation fields, and inline formatting.

        -

        Repository: [github.com/hyperpolymath/tree-sitter-a2ml](https://github.com/hyperpolymath/tree-sitter-a2ml)

        -

        -

        -

        GitHub Linguist Pending

        -

        A pull request to add A2ML to [GitHub Linguist](https://github.com/github-linguist/linguist) is in preparation. Once merged, GitHub will:

        -
          -
        • Detect .a2ml files automatically
        • -
        • Show A2ML in repository language statistics
        • -
        • Apply syntax highlighting using the tree-sitter grammar
        • -
        • Recognise application/vnd.a2ml as a registered media type
        • -
        -

        -

        -

        K9 Validators Live

        -

        [pandoc-k9](https://github.com/hyperpolymath/pandoc-k9) provides contractile validation for A2ML files. K9 validators enforce structural and policy constraints:

        -
          -
        • must — required fields and sections
        • -
        • trust — attestation chain validity
        • -
        • dust — deprecated pattern detection
        • -
        • intend — intent declaration verification
        • -
        -

        K9 runs in CI/CD pipelines and can block merges when A2ML manifests fail validation.

        -

        Repository: [github.com/hyperpolymath/pandoc-k9](https://github.com/hyperpolymath/pandoc-k9)

        -

        -

        -

        LuaRocks Live

        -

        The A2ML Pandoc components are available as a Lua library via [LuaRocks](https://luarocks.org), making it straightforward to integrate A2ML parsing into any Lua-based toolchain.

        -
        luarocks install pandoc-a2ml
        -
        -

        -

        -

        Hypatia CI/CD Scanner Live

        -

        [Hypatia](https://github.com/hyperpolymath/hypatia) consumes A2ML manifests as part of its neurosymbolic security scanning. It:

        -
          -
        • Reads 0-AI-MANIFEST.a2ml to understand repository structure
        • -
        • Validates attestation chains in .machine_readable/*.a2ml files
        • -
        • Enforces that all agents operating on a repository have valid manifests
        • -
        • Reports trust-level gaps in CI pipeline output
        • -
        -

        -

        -

        Hackage (Haskell) Coming Soon

        -

        A native Haskell library for parsing and generating A2ML is in development. It will provide:

        -
          -
        • Pure Haskell parser (no Pandoc dependency)
        • -
        • Type-safe AST for A2ML documents
        • -
        • Attestation chain validation
        • -
        • Integration with the Pandoc Haskell library
        • -
        -

        - -
        - - -
        -

        - - Built with ddraig-ssg (Idris 2) - · - A2ML is part of the - hyperpolymath - standards ecosystem -

        -

        - Copyright © 2026 Jonathan D.A. Jewell (hyperpolymath). - Licensed under PMPL-1.0-or-later. -

        -
        - - - diff --git a/a2ml/showcase/output/specification.html b/a2ml/showcase/output/specification.html deleted file mode 100644 index 0accf0494..000000000 --- a/a2ml/showcase/output/specification.html +++ /dev/null @@ -1,596 +0,0 @@ - - - - - - - - - Specification — A2ML: Attested Markup Language - - - - - - - - -
        -

        A2ML Specification

        -

        Overview

        -

        A2ML (Attested Markup Language) is a text-based document format that combines human-readable markup with machine-verifiable attestation blocks. This page describes the format as currently implemented in the [pandoc-a2ml](https://github.com/hyperpolymath/pandoc-a2ml) toolchain.

        -

        File Format

        -
          -
        • Extension: .a2ml
        • -
        • Media type: application/vnd.a2ml (IANA registration pending)
        • -
        • Encoding: UTF-8
        • -
        • Line endings: LF (Unix-style) recommended; CRLF accepted
        • -
        -

        Basic Syntax

        -

        A2ML uses a Markdown-like syntax with additional constructs for attestation and structured metadata.

        -

        Headings

        -
        # Top-level heading
        -## Second-level heading
        -### Third-level heading
        -
        -

        Inline Formatting

        -
        **Bold text** for emphasis
        -*Italic text* for secondary emphasis
        -[Link text](https://example.com) for hyperlinks
        -@ref(section-id) for internal cross-references
        -`inline code` for identifiers
        -
        -

        Lists

        -
        - Unordered list item
        -- Another item
        -* Asterisk syntax also works
        -
        -1. Ordered list item
        -2. Another item
        -
        -

        Code Blocks

        -
        -

        code goes here

        -
        -

        Comments

        -
        ;; Scheme-style comments are stripped during parsing.
        -;; Use these for notes that should not appear in output.
        -
        -

        Directive Blocks

        -

        Directives are the core extension that distinguishes A2ML from plain Markdown. They carry structured, machine-readable content within annotated blocks.

        -

        Syntax

        -
        @directive-name:
        -Content of the directive.
        -Can span multiple lines.
        -@end
        -
        -

        The parser collects everything between @directive-name: and @end into a named container (rendered as a

        with class="directive-name" in HTML output).

        -

        Standard Directives

        -

        The following directives have conventional meaning across the A2ML ecosystem. Tooling may validate or enforce these.

        -

        @abstract

        -

        A short summary of the document's purpose. Typically one to three sentences.

        -
        @abstract:
        -A2ML is a typed, attested markup format for AI agent identity.
        -@end
        -
        -

        @attestation

        -

        A trust claim with structured fields. This is the fundamental unit of the A2ML trust model.

        -
        @attestation:
        -agent-id: hypatia-scanner-v3
        -attested-by: rhodibot
        -trust-level: verified
        -timestamp: 2026-03-16T14:30:00Z
        -signature: sha256:9f86d08...
        -capabilities:
        -  - static-analysis
        -  - secret-detection
        -  - dependency-audit
        -scope: repository
        -@end
        -
        -

        Fields:

        -

        | Field | Required | Description | |-------|----------|-------------| | agent-id | Yes | Unique identifier for the agent being attested | | attested-by | Yes | Identifier of the attesting authority | | trust-level | Yes | One of: self-declared, peer-reviewed, verified, audited | | timestamp | Yes | ISO 8601 timestamp of the attestation | | signature | Recommended | Cryptographic signature (algorithm:hash) | | capabilities | Yes | List of declared capabilities | | scope | No | Scope of the attestation (e.g., repository, organization, global) |

        -

        @refs

        -

        References and citations. Used for linking to external specifications, standards, or related documents.

        -
        @refs:
        -[1] Attested Markup Language Specification (draft), 2026
        -[2] SLSA Supply Chain Framework, https://slsa.dev
        -@end
        -
        -

        @policy

        -

        Declares a policy constraint that tooling should enforce.

        -
        @policy:
        -require: attestation.trust-level >= verified
        -enforce: ci-pipeline
        -action: block-merge
        -@end
        -
        -

        @provenance

        -

        Records the origin and lineage of the document.

        -
        @provenance:
        -created-by: Jonathan D.A. Jewell
        -created: 2026-01-15
        -last-modified: 2026-03-16
        -source: https://github.com/hyperpolymath/a2ml-spec
        -version: 0.3.0
        -@end
        -
        -

        Attestation Chains

        -

        The real power of A2ML comes from attestation chains — sequences of attestations where each one references or builds upon previous ones.

        -
        ;; Agent declares its own capabilities
        -@attestation:
        -agent-id: codebot-v2
        -attested-by: codebot-v2
        -trust-level: self-declared
        -capabilities:
        -  - code-review
        -  - style-checking
        -@end
        -
        -;; Security team verifies the agent
        -@attestation:
        -agent-id: codebot-v2
        -attested-by: security-team
        -trust-level: verified
        -verifies: codebot-v2/self-declared/2026-03-10
        -signature: sha256:a3f2c8...
        -@end
        -
        -;; Auditor provides highest-level attestation
        -@attestation:
        -agent-id: codebot-v2
        -attested-by: external-auditor
        -trust-level: audited
        -verifies: codebot-v2/verified/2026-03-12
        -audit-report: https://audits.example.com/codebot-v2
        -signature: sha256:7b1e4d...
        -@end
        -
        -

        Each successive attestation raises the trust level and creates an auditable trail from self-declared through verified to audited.

        -

        Trust Levels

        -

        | Level | Meaning | Typical Attester | |-------|---------|------------------| | self-declared | Agent claims its own capabilities | The agent itself | | peer-reviewed | Another agent or team has reviewed the claims | A peer agent or team lead | | verified | A security or operations team has validated behaviour | Security team, CI system | | audited | An independent audit has confirmed the claims | External auditor |

        -

        Canonical File Locations

        -

        In repositories following the [Rhodium Standard](https://github.com/hyperpolymath/rhodium-standard-repositories), A2ML files live in the .machine_readable/ directory:

        -
        .machine_readable/
        -  STATE.a2ml         # Project state and progress
        -  META.a2ml          # Architecture decisions, governance
        -  ECOSYSTEM.a2ml     # Position in ecosystem, relationships
        -  AGENTIC.a2ml       # AI agent interaction patterns
        -  NEUROSYM.a2ml      # Neurosymbolic integration config
        -  PLAYBOOK.a2ml      # Operational runbook
        -  anchors/
        -    ANCHOR.a2ml      # Canonical authority declaration
        -  policies/
        -    MAINTENANCE-AXES.a2ml
        -    MAINTENANCE-CHECKLIST.a2ml
        -
        -

        The top-level 0-AI-MANIFEST.a2ml serves as the entry point that all AI agents must read first.

        -

        Pandoc Integration

        -

        A2ML is a first-class Pandoc format. Convert between A2ML and any Pandoc-supported format:

        -
        # A2ML to HTML
        -pandoc -f a2ml-reader.lua input.a2ml -o output.html
        -
        -# A2ML to PDF (via LaTeX)
        -pandoc -f a2ml-reader.lua input.a2ml -o output.pdf
        -
        -# Markdown to A2ML
        -pandoc input.md -t a2ml-writer.lua -o output.a2ml
        -
        -# A2ML to A2ML (normalise)
        -pandoc -f a2ml-reader.lua input.a2ml -t a2ml-writer.lua -o normalised.a2ml
        -
        - -
        - - -
        -

        - - Built with ddraig-ssg (Idris 2) - · - A2ML is part of the - hyperpolymath - standards ecosystem -

        -

        - Copyright © 2026 Jonathan D.A. Jewell (hyperpolymath). - Licensed under PMPL-1.0-or-later. -

        -
        - - - diff --git a/a2ml/showcase/template.html b/a2ml/showcase/template.html deleted file mode 100644 index c7ceef1e7..000000000 --- a/a2ml/showcase/template.html +++ /dev/null @@ -1,428 +0,0 @@ - - - - - - - - - {{title}} — A2ML: Attested Markup Language - - - - - - - - -
        - {{content}} -
        - - -
        -

        - - Built with ddraig-ssg (Idris 2) - · - A2ML is part of the - hyperpolymath - standards ecosystem -

        -

        - Copyright © 2026 Jonathan D.A. Jewell (hyperpolymath). - Licensed under PMPL-1.0-or-later. -

        -
        - - - diff --git a/a2ml/site/assets/style.css b/a2ml/site/assets/style.css deleted file mode 120000 index a7c3bb8d7..000000000 --- a/a2ml/site/assets/style.css +++ /dev/null @@ -1 +0,0 @@ -../../../_shared/assets/style.css \ No newline at end of file diff --git a/a2ml/site/downloads.adoc b/a2ml/site/downloads.adoc deleted file mode 100644 index c6dcb242a..000000000 --- a/a2ml/site/downloads.adoc +++ /dev/null @@ -1,45 +0,0 @@ -== - -title: Downloads site: A2ML description: Starter A2ML templates — lax, -checked and profile examples — free to download and adapt. date: -2026-06-29 — - -== Downloads - -Starter templates for each strictness mode. Download one, adapt it, and -tighten the guarantees as your document matures. - -Lax example - -Write freely, no structural enforcement. - -Download .a2ml - -Checked example - -Required sections exist, references resolve, IDs are unique. - -Download .a2ml - -Profile example - -A domain profile layered on the base vocabulary. - -Download .a2ml - -All templates - -The full set plus a README, bundled. - -Download .tar.gz - -=== Licence - -Templates are `+MPL-2.0+` (code); this page is `+CC-BY-SA-4.0+`. - -=== More tooling - -Full implementations, editor support and CI actions are coordinated in -the https://github.com/hyperpolymath/a2ml-ecosystem[a2ml-ecosystem] hub -— clone the repository directly if you want more than the starter -templates above. diff --git a/a2ml/site/index.adoc b/a2ml/site/index.adoc deleted file mode 100644 index ea3e1ab91..000000000 --- a/a2ml/site/index.adoc +++ /dev/null @@ -1,81 +0,0 @@ -== - -title: A2ML site: A2ML brand: A2ML description: A2ML is a lightweight, -Djot-like markup that compiles into a typed, attested core, with -progressive strictness from lax to fully attested. date: 2026-06-29 — - -== A2ML — Attested Markup Language - -A lightweight, Djot-like markup that compiles into a typed, attested -core. Authoring stays simple; structural guarantees switch on when you -want them. - -[.badge]#Spec v1.1.0# [.badge]#Typed core# [.badge]#Progressive -strictness# [.badge]#Byte-for-byte payloads# [.badge]#MPL-2.0 / -CC-BY-SA-4.0# - -Get started Read the spec GitHub - -=== What it does - -Readable surface - -Write a clean, Djot-like format. No ceremony when you don’t need it. - -Typed, attested core - -Required sections, resolved references and unique IDs — verified, not -hoped for. - -Faithful payloads - -Opaque content is preserved byte-for-byte for reliable embedding. - -Portable rendering - -One source, many targets — HTML, Markdown and PDF pipelines. - -=== Progressive strictness - -A2ML lets you dial guarantees up as a document matures: - -[width="100%",cols="36%,64%",options="header",] -|=== -|Mode |Guarantee -|*lax* |Parse and render; no structural enforcement. -|*checked* |Required sections exist, references resolve, IDs are unique. -|*attested* |Checked, plus a verifiable attestation over the typed core. -|=== - -=== A taste - -[source,a2ml] ----- -# A2ML Overview - -@abstract: -A2ML is a typed, attested markup format. It verifies structure and references. -@end - -## Claims -- Required sections must exist. -- References must resolve. - -@refs: -[1] Attested Markup Language Spec (draft) -@end ----- - -=== Downloads & roadmap - -Grab a link:/downloads.html[starter template] in whichever strictness -mode fits, or see the link:/roadmap.html[roadmap] for what’s next — -including an interactive teaching area and -https://github.com/hyperpolymath/a2mliser[a2mliser]. - -=== Part of the standards estate - -A2ML is a satellite of the -https://github.com/hyperpolymath/standards[Hyperpolymath standards hub]. -The normative specification, conformance vectors and profiles live -there; this site is the front door. diff --git a/a2ml/site/public/.well-known/security.txt b/a2ml/site/public/.well-known/security.txt deleted file mode 100644 index 3b56600db..000000000 --- a/a2ml/site/public/.well-known/security.txt +++ /dev/null @@ -1,29 +0,0 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA512 - -# Security contact for a2ml.net — RFC 9116 -# https://a2ml.net/.well-known/security.txt - -Contact: mailto:j.d.a.jewell@open.ac.uk -Encryption: openpgp4fpr:4A03639C1EB1F86C7F0C97A91835A14A2867091E -Expires: 2027-06-21T00:00:00Z -Preferred-Languages: en -Canonical: https://a2ml.net/.well-known/security.txt -Policy: https://github.com/hyperpolymath/a2ml-ecosystem/security/policy -Acknowledgments: https://github.com/hyperpolymath/a2ml-ecosystem/security/advisories ------BEGIN PGP SIGNATURE----- - -iQIzBAEBCgAdFiEEljlFF1RJblHWtTfK0RkBfr9pWrEFAmo5ozcACgkQ0RkBfr9p -WrH2ORAAvgcBt6nmPx96PfNW6iwOKulGyx5suCH7+vfNZY5Y91U2ONOgiskpA3Oc -HLQ2j79cWv96C50SvWahHGu6xUCovMKPAJYpCeSV973mpsLGuxzOXghfTZw9re5F -E1W3BuuSYCGsb04maxSw8uWZ9H/ik3JJnrvOiXEcxUihJlfJSsxy6ZXZ8WwC+ajO -k90f2yaS/TN9JPgyXwH8WwaNeVh1ZnnWUSdfLVmCvu5aXp+J21EqlJBumO/HCTRe -hh8ojRwr8BGib4jbaAfPRfOZ3VIs1JUx1cJuRGsn3BkqLWuIyIeP9Xw3AVEt4pbv -9G/XYAz0MULTxqA7pJUtMwF91KOlZ24DtB0yxKjcXev8L/1vW7EU0pBsO140Kqhq -ULpPos0LpO/bGgeOBSQr164XTNFcWrEBmLjN1Qyi7ZqdMqTU2cNyM+3KFyPiPfnM -7cW7H7R8xhr/RTzN8zz0eJnOFmX3rVSy854CUW/kmTBU/5GhFFBP7YqB2QBACqqW -g+DpKobebYdL+B1jokzu4umhLd37hssojOcm0RuS13Fz3JSkvYpDKKHEjTTUO/lY -k8EuilmGKWFXNwwDhwLzrx307N+9gqoDwTKBkuOx8lj5IwjJXZvO1R6pWrIR8quF -7It/9vKqNo0O2xoebNsDM5DAn2zCtViftOieM2Tjk+gtLuxQ5yo= -=vBOZ ------END PGP SIGNATURE----- diff --git a/a2ml/site/public/CNAME b/a2ml/site/public/CNAME deleted file mode 100644 index 5dca20ca0..000000000 --- a/a2ml/site/public/CNAME +++ /dev/null @@ -1 +0,0 @@ -a2ml.net diff --git a/a2ml/site/public/downloads/README.adoc b/a2ml/site/public/downloads/README.adoc deleted file mode 100644 index 76c5148e5..000000000 --- a/a2ml/site/public/downloads/README.adoc +++ /dev/null @@ -1,15 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -// SPDX-FileCopyrightText: 2025-2026 Jonathan D.A. Jewell -= A2ML starter templates - -Three starting points for writing A2ML, one per strictness mode: - -* `lax-example.a2ml` — write freely, no structural enforcement. -* `checked-example.a2ml` — required sections, resolved references, unique IDs. -* `profile-example.a2ml` — a domain profile layered on the base vocabulary. - -Copy whichever matches where you want to start, then tighten as your document -matures — that is the whole point of progressive strictness. See -https://a2ml.net/start.html[Get started] and https://a2ml.net/spec.html[the -specification] for the full picture. Templates are `MPL-2.0`; this note is -`CC-BY-SA-4.0`. diff --git a/a2ml/site/public/downloads/a2ml-templates.tar.gz b/a2ml/site/public/downloads/a2ml-templates.tar.gz deleted file mode 100644 index 8cd10f8d908d48a98b77e643bd94ec0ee5e700d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1351 zcmV-N1-SYjiwFP!000001MOJRZre5#&9lDZu6@}COSbGJ2E49FmSjV_WDA;L-B1)T zEnQn|WKkt4JAT_o>e*Mx%Va)*CAhvWtnp%hRb~C z9xwp*cX!=yJl-2@|9b3?hdc4!a2W57MuWlL&LGC<-5na-hcj=ZGFE7!oorLGE>*r+ z3Y*aL7}CZ0@z3F@Ot>%{K1sQ-axPg<=mG^O3jskj^%Atdh#T z3W5VM!)TG%N$_LA&YW0iQD&5~Nwl2FVnORnShATkls5ASe~X!_Y!n<|*&ulMkS;i} zQWXRc%pNBbTBKLtLF|IO{W z)qsXaY0Df#e2pvHqZ{g&fE+x5R^0QP5nx_Tp@@DGxlCcaX8Bs$%oE8k++J3}dB!vXiHy? z{2b$WnWmUqYBiTRqy#QNQSXT^W!gK$N2+VwiqxD|2&dHmdxjD6w+W*jiYxt57zUHZMxq722O=?|G z1uqh~(hADq`IANgKlvsT8MuOVXPU*8t6rcEg(||EXJ@I_pGG;>1gM1s&O6dR&)j?0v00==s03 zKQxhZ&!3g6v6gaCzeP#JrJOhuuhaief`0$6)&J-y{N|VN;xOEe20=UUTd?g&l^ZP=nZ4v|>jhyi zbgDp4L30b{({Xed(NkVCN}WfqqBIiGEB|z$N-iRiMAg;f;Om;xzAJ(#w|NCxa+#rD zt3Nm)@{(1TS55QeXZGp}4O1bTGO-04<7?4L5PV6~{H_0OOub^PxB9`qYf+trySk(4 z-Gy$iEosxOTDP~=8G3_vm0PvJ_e`abMt2Hmh$Wm{Aq2RW_zNYo>v3K7Leq(i*mj*> ziebtf8-9hU6I|Oy2bf-A2i_O!3gf1OU1ti;_yZs{cit^9%penN1wBIh%0XsrX(s)? z+f-Dr?fZqJ%r5g6-?44ZIeqD~z@G<0+3T@bHfR&FPZBTv$vbc66)sdM-EkowU$z&< zcM#L2TA6-TSMq3?k@HP3-M+`ukJUJL=+L1I&|pJp~Jr%e*pY8 Jr27CU005slsvZCU diff --git a/a2ml/site/public/downloads/checked-example.a2ml b/a2ml/site/public/downloads/checked-example.a2ml deleted file mode 100644 index d9811bf5f..000000000 --- a/a2ml/site/public/downloads/checked-example.a2ml +++ /dev/null @@ -1,17 +0,0 @@ - - -# Release Notes - -@abstract: -What changed in this release, in one paragraph. -@end - -## Changes -- Added profiles for domain validation. [1] -- Resolved all cross-references. - -@refs: -[1] A2ML Spec v1.1.0 — Profiles section -@end diff --git a/a2ml/site/public/downloads/lax-example.a2ml b/a2ml/site/public/downloads/lax-example.a2ml deleted file mode 100644 index 5ee953780..000000000 --- a/a2ml/site/public/downloads/lax-example.a2ml +++ /dev/null @@ -1,18 +0,0 @@ - - -# My Document - -@abstract: -One paragraph describing what this document is about. -@end - -## Section One - -Write freely here. Lax mode does not require any particular section names, -reference resolution, or unique IDs — it is the easiest way to start writing -in A2ML. - -## Section Two - -- A list item. -- Another list item. diff --git a/a2ml/site/public/downloads/profile-example.a2ml b/a2ml/site/public/downloads/profile-example.a2ml deleted file mode 100644 index 4399974be..000000000 --- a/a2ml/site/public/downloads/profile-example.a2ml +++ /dev/null @@ -1,29 +0,0 @@ - - -# API Change Record - -@abstract: -Documents a single breaking or non-breaking API change for downstream -consumers, using the "api-change" profile. -@end - -@profile: -api-change -@end - -## Summary -- Endpoint: `/v2/widgets` -- Kind: non-breaking addition -- Effective: 2026-07-01 - -## Details - -Describe the change, the rationale, and any migration steps consumers need -to take. - -@refs: -[1] A2ML Spec v1.1.0 — Profiles -@end diff --git a/a2ml/site/public/favicon.svg b/a2ml/site/public/favicon.svg deleted file mode 100644 index 0ed8a7a7c..000000000 --- a/a2ml/site/public/favicon.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - A2 - diff --git a/a2ml/site/public/robots.txt b/a2ml/site/public/robots.txt deleted file mode 100644 index 7718b8223..000000000 --- a/a2ml/site/public/robots.txt +++ /dev/null @@ -1,4 +0,0 @@ -User-agent: * -Allow: / - -Sitemap: https://a2ml.net/sitemap.xml diff --git a/a2ml/site/roadmap.adoc b/a2ml/site/roadmap.adoc deleted file mode 100644 index ddc2bff85..000000000 --- a/a2ml/site/roadmap.adoc +++ /dev/null @@ -1,51 +0,0 @@ -== - -title: Roadmap site: A2ML description: Where A2ML is going — near-term -site work, mid-term tooling and teaching, and the longer-term -convergence with typed routing. date: 2026-06-29 — - -== Roadmap - -What’s shipping now, what’s next, and the longer-term direction this -site is pointed at. - -=== Now - -Refreshed site - -Up-to-date content, SEO essentials (structured data, Open Graph, -sitemap, feed) and an accessible-by-default theme. - -Downloads - -Starter templates for each strictness mode, free to grab from the -Downloads page. - -Sharing - -Share links and an Atom feed so updates propagate — see the footer on -any page. - -=== Next - -* *https://github.com/hyperpolymath/a2mliser[a2mliser]* — cryptographic -attestation tooling for A2ML and other markup/configuration, with its -own docs surfaced here. -* *Interactive & teaching area* — try A2ML in the browser, worked -examples, and a walkthrough of the three strictness modes. -* *Estate usage examples* — real, concrete places A2ML is used across -the Hyperpolymath estate. - -=== Later - -A2ML sits alongside longer-running research into a *typed routing -protocol* — work still taking shape, aimed at _entangling -communications_ alongside two related ideas: -*glider-over-typed-surfaces* and *encapsulated-gliders-over-QUIC*. As -that work matures it is expected to converge with A2ML’s typed, attested -core. This is a direction, not yet a shipped spec — details will land -here as they solidify. - -=== Follow along - -Subscribe via RSS/Atom Watch on GitHub diff --git a/a2ml/site/spec.adoc b/a2ml/site/spec.adoc deleted file mode 100644 index 4fc3f6a03..000000000 --- a/a2ml/site/spec.adoc +++ /dev/null @@ -1,39 +0,0 @@ -== - -title: A2ML specification site: A2ML brand: A2ML description: The -normative A2ML v1.1.0 specification — surface grammar, typed core, -profiles, and conformance test vectors. date: 2026-06-29 — - -== Specification - -The current normative specification is *A2ML v1.1.0* — Surface Grammar + -Typed Core + Profiles. - -=== Documents - -* *Spec (normative, v1.1.0)* — surface grammar, typed core, profiles -* *Specification lineage* — versions and era -* *Module 0 quickstart + FAQ* -* *Syntax modules* (opt-in) -* *Grammar appendix* -* *Conformance + test vectors* -* *IANA media type draft* — `+application/vnd.a2ml+` -* *Comparison matrix* -* *Citation guide* - -All specification documents are maintained in the -https://github.com/hyperpolymath/standards[standards] repository under -`+a2ml/+`. This page links the front door; the repository is the source -of truth. - -=== Profiles - -Profiles layer domain-specific validation on top of the base vocabulary. -A2ML v1.1 introduced profiles, an expanded base vocabulary, citation -support and content hashing. - -=== Conformance - -Conformance is defined by published test vectors (positive and negative -fixtures). Implementations validate against these to claim a given -strictness level. diff --git a/a2ml/site/start.adoc b/a2ml/site/start.adoc deleted file mode 100644 index 0178363f5..000000000 --- a/a2ml/site/start.adoc +++ /dev/null @@ -1,49 +0,0 @@ -== - -title: Get started with A2ML site: A2ML brand: A2ML description: Write, -validate and render A2ML in three steps — from a plain-text document to -a portable, typed core. date: 2026-06-29 — - -== Get started - -A2ML is authored as plain text and validated in progressive modes. Start -lax, tighten to checked, attest when ready. - -=== 1. Write a document - -[source,a2ml] ----- -# Release Notes - -@abstract: -What changed in this release, in one paragraph. -@end - -## Changes -- Added profiles for domain validation. -- Resolved all cross-references. - -@refs: -[1] A2ML Spec v1.1.0 -@end ----- - -=== 2. Validate - -Run the validator over your document. In *checked* mode it confirms that -required sections exist, references resolve, and IDs are unique. In -*attested* mode it additionally produces a verifiable attestation over -the typed core. - -=== 3. Render - -The typed core is renderer-portable: emit HTML, Markdown or feed a PDF -pipeline from a single source, with opaque payloads preserved -byte-for-byte. - -=== Tooling - -Implementations, editor support and CI actions are coordinated in the -https://github.com/hyperpolymath/a2ml-ecosystem[a2ml-ecosystem] hub. The -normative spec and conformance vectors live in -https://github.com/hyperpolymath/standards[standards]. diff --git a/a2ml/site/templates/default.html b/a2ml/site/templates/default.html deleted file mode 120000 index 57f0c4f80..000000000 --- a/a2ml/site/templates/default.html +++ /dev/null @@ -1 +0,0 @@ -../../../_shared/templates/site-default.html \ No newline at end of file diff --git a/a2ml/src/A2ML/BaseVocab.idr b/a2ml/src/A2ML/BaseVocab.idr deleted file mode 100644 index 35a3d5ce9..000000000 --- a/a2ml/src/A2ML/BaseVocab.idr +++ /dev/null @@ -1,191 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 -||| A2ML v1.1 base record vocabulary (SPEC.adoc Section 7). -||| -||| This is the anti-desync primitive: one neutral shape for "a thing that can be -||| identified, located, attributed, and integrity-checked". The module defines the -||| typed-core nodes for the base record and *decidable* base-validity checks. -||| It names no downstream consumer. -module A2ML.BaseVocab - -import A2ML.TypedCore -import Decidable.Equality - -%default total - --- ============================================================================ --- Provenance kind: a CLOSED enumeration (SPEC Section 7.5) --- ============================================================================ - -||| Exactly one of human / ai / mechanical. A validator MUST reject any other -||| value in checked mode. -public export -data Kind = Human | Ai | Mechanical - -public export -Eq Kind where - Human == Human = True - Ai == Ai = True - Mechanical == Mechanical = True - _ == _ = False - -||| Parse the closed surface tokens. Returns Nothing for anything off-enum. -export -parseKind : String -> Maybe Kind -parseKind "human" = Just Human -parseKind "ai" = Just Ai -parseKind "mechanical" = Just Mechanical -parseKind _ = Nothing - -export -renderKind : Kind -> String -renderKind Human = "human" -renderKind Ai = "ai" -renderKind Mechanical = "mechanical" - --- ============================================================================ --- Located region and structural address (SPEC Section 7.4 / 7.2) --- ============================================================================ - -public export -record Position where - constructor MkPosition - line : Nat -- 1-based - col : Nat -- 1-based - -public export -record SourceSpan where - constructor MkSourceSpan - file : String - start : Position - end : Position - --- ============================================================================ --- Provenance (SPEC Section 7.5) --- ============================================================================ - -public export -record Provenance where - constructor MkProvenance - author : String - tool : String -- name@version - kind : Kind - agent : Maybe String -- SHOULD be present when kind = Ai - --- ============================================================================ --- The base record (SPEC Section 7.2) --- ============================================================================ - -public export -record BaseRecord where - constructor MkBaseRecord - id : Id - sourceSpan : SourceSpan - canonicalNode : Maybe String -- OPTIONAL: stable structural address - hash : String -- "sha256:<64 lower-hex>" - provenance : Provenance - timestamp : String -- RFC 3339 UTC - artefactRef : String - profileDecl : Maybe String -- OPTIONAL: QualifiedId echo of @profile - --- ============================================================================ --- Well-formedness helpers --- ============================================================================ - -nonEmpty : String -> Bool -nonEmpty s = s /= "" - -hexLower : Char -> Bool -hexLower c = (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') - -||| Structural prefix strip on character lists (total; recurses on the prefix). -dropPrefix : List Char -> List Char -> Maybe (List Char) -dropPrefix [] ys = Just ys -dropPrefix (_ :: _) [] = Nothing -dropPrefix (x :: xs) (y :: ys) = if x == y then dropPrefix xs ys else Nothing - -||| A canonical SHA-256 digest: "sha256:" followed by 64 lowercase hex chars -||| (SPEC Section 9.2). The prefix is the hash-agility hook (SPEC Section 12.4). -export -isSha256 : String -> Bool -isSha256 s = - case dropPrefix (unpack "sha256:") (unpack s) of - Nothing => False - Just rest => length rest == 64 && all hexLower rest - -||| Lexicographic <= on positions (line, then col). -posLeq : Position -> Position -> Bool -posLeq a b = (a.line < b.line) || (a.line == b.line && a.col <= b.col) - -||| A span is well-formed when both endpoints are 1-based and start <= end. -export -spanWellFormed : SourceSpan -> Bool -spanWellFormed sp = - sp.start.line >= 1 && sp.start.col >= 1 && - sp.end.line >= 1 && sp.end.col >= 1 && - posLeq sp.start sp.end - --- ============================================================================ --- Decidable base-validity (SPEC Section 7.2 / 7.6) --- ============================================================================ - -||| All REQUIRED fields present and well-formed. canonical_node, agent, and -||| profile_decl are OPTIONAL and do not affect base validity. -export -baseValidB : BaseRecord -> Bool -baseValidB r = - nonEmpty r.id.raw && - spanWellFormed r.sourceSpan && - isSha256 r.hash && - nonEmpty r.provenance.author && - nonEmpty r.provenance.tool && - nonEmpty r.timestamp && - nonEmpty r.artefactRef - -||| Base validity as a proposition. -public export -BaseValid : BaseRecord -> Type -BaseValid r = baseValidB r = True - -||| Decidable base-validity. Total, via DecEq on Bool. -export -baseValidDec : (r : BaseRecord) -> Dec (BaseValid r) -baseValidDec r = decEq (baseValidB r) True - -||| SHOULD-level advisory (SPEC Section 7.5): when kind = Ai, agent SHOULD be -||| present. This is not a hard-validity failure; surface it as a warning. -export -aiAgentAdvisory : BaseRecord -> Bool -aiAgentAdvisory r = - case r.provenance.kind of - Ai => case r.provenance.agent of - Just _ => True - Nothing => False - _ => True - --- ============================================================================ --- Structured diagnostics --- ============================================================================ - -public export -data BaseRecordIssue - = EmptyId - | MalformedSpan - | BadHash String - | EmptyAuthor - | EmptyTool - | EmptyTimestamp - | EmptyArtefactRef - | AiMissingAgent -- advisory (SHOULD) - -||| Enumerate every issue with a base record (errors first, advisory last). -export -baseRecordIssues : BaseRecord -> List BaseRecordIssue -baseRecordIssues r = - (if nonEmpty r.id.raw then [] else [EmptyId]) ++ - (if spanWellFormed r.sourceSpan then [] else [MalformedSpan]) ++ - (if isSha256 r.hash then [] else [BadHash r.hash]) ++ - (if nonEmpty r.provenance.author then [] else [EmptyAuthor]) ++ - (if nonEmpty r.provenance.tool then [] else [EmptyTool]) ++ - (if nonEmpty r.timestamp then [] else [EmptyTimestamp]) ++ - (if nonEmpty r.artefactRef then [] else [EmptyArtefactRef]) ++ - (if aiAgentAdvisory r then [] else [AiMissingAgent]) diff --git a/a2ml/src/A2ML/Converters.idr b/a2ml/src/A2ML/Converters.idr deleted file mode 100644 index c718cdebd..000000000 --- a/a2ml/src/A2ML/Converters.idr +++ /dev/null @@ -1,363 +0,0 @@ -module A2ML.Converters - -import A2ML.TypedCore -import A2ML.Parser -import Data.String -import Data.List -import Data.Maybe - -%default total - --- ============================================================================ --- Markdown Converter --- ============================================================================ - -mutual - markdownBlocks : List Block -> String - markdownBlocks [] = "" - markdownBlocks (block :: rest) = - markdownBlock block ++ markdownBlocks rest - - markdownBlock : Block -> String - markdownBlock (Section (MkSec sid title body)) = - let level = length sid.raw - heading = replicate level '#' ++ " " ++ title ++ "\n\n" - in heading ++ markdownBlocks body - markdownBlock (Para text) = text ++ "\n\n" - markdownBlock (Bullet items) = - concatMap (\item => "- " ++ item ++ "\n") items ++ "\n" - markdownBlock (Figure f) = - "![" ++ f.caption ++ "](#" ++ f.id.raw ++ ")\n\n" - markdownBlock (Table t) = - "**Table " ++ t.id.raw ++ ":** " ++ t.caption ++ "\n\n" - markdownBlock (Refs refs) = - "## References\n\n" ++ - concatMap (\r => "- " ++ r.label ++ "\n") refs ++ "\n" - markdownBlock (Opaque p) = - let lang = fromMaybe "" p.lang - in "```" ++ lang ++ "\n" ++ p.bytes ++ "\n```\n\n" - -||| Convert A2ML document to CommonMark Markdown -export -toMarkdown : Doc -> String -toMarkdown (MkDoc blocks) = markdownBlocks blocks - --- ============================================================================ --- HTML Converter --- ============================================================================ - -||| Escape HTML special characters -escapeHtml : String -> String -escapeHtml str = pack (concatMap escape (unpack str)) - where - escape : Char -> List Char - escape '<' = unpack "<" - escape '>' = unpack ">" - escape '&' = unpack "&" - escape '"' = unpack """ - escape '\'' = unpack "'" - escape c = [c] - -mutual - htmlBlocks : List Block -> String - htmlBlocks [] = "" - htmlBlocks (block :: rest) = htmlBlock block ++ htmlBlocks rest - - htmlBlock : Block -> String - htmlBlock (Section (MkSec sid title body)) = - let level = min 6 (length sid.raw) -- HTML has h1-h6 - tag = "h" ++ show level - id_attr = " id=\"" ++ escapeHtml sid.raw ++ "\"" - in "<" ++ tag ++ id_attr ++ ">" ++ - escapeHtml title ++ - "\n" ++ - htmlBlocks body - htmlBlock (Para text) = - "

        " ++ escapeHtml text ++ "

        \n" - htmlBlock (Bullet items) = - "
          \n" ++ - concatMap (\item => "
        • " ++ escapeHtml item ++ "
        • \n") items ++ - "
        \n" - htmlBlock (Figure f) = - let id_attr = " id=\"" ++ escapeHtml f.id.raw ++ "\"" - in "\n" ++ - "
        " ++ escapeHtml f.caption ++ "
        \n" ++ - "\n" - htmlBlock (Table t) = - let id_attr = " id=\"" ++ escapeHtml t.id.raw ++ "\"" - in "\n" ++ - "
      " ++ escapeHtml t.caption ++ "
      \n" - htmlBlock (Refs refs) = - "
      \n" ++ - "

      References

      \n" ++ - "
        \n" ++ - concatMap (\r => "
      1. " ++ escapeHtml r.label ++ "
      2. \n") refs ++ - "
      \n" ++ - "
      \n" - htmlBlock (Opaque p) = - let lang = fromMaybe "" p.lang - id_attr = case p.id of - Just id => " id=\"" ++ escapeHtml id.raw ++ "\"" - Nothing => "" - in "" ++ - escapeHtml p.bytes ++ - "\n" - -||| Convert A2ML document to HTML5 -export -toHtml : Doc -> String -toHtml (MkDoc blocks) = - "\n" ++ - "\n" ++ - "\n" ++ - " \n" ++ - " \n" ++ - " A2ML Document\n" ++ - " \n" ++ - "\n" ++ - "\n" ++ - htmlBlocks blocks ++ - "\n" ++ - "\n" - --- ============================================================================ --- Djot Converter --- ============================================================================ - -mutual - djotBlocks : List Block -> String - djotBlocks [] = "" - djotBlocks (block :: rest) = djotBlock block ++ djotBlocks rest - - djotBlock : Block -> String - djotBlock (Section (MkSec sid title body)) = - let level = length sid.raw - heading = replicate level '#' ++ " " ++ title ++ "\n" ++ - "{#" ++ sid.raw ++ "}\n\n" - in heading ++ djotBlocks body - djotBlock (Para text) = text ++ "\n\n" - djotBlock (Bullet items) = - concatMap (\item => "- " ++ item ++ "\n") items ++ "\n" - djotBlock (Figure f) = - "!{#" ++ f.id.raw ++ "}[" ++ f.caption ++ "]\n\n" - djotBlock (Table t) = - "{#" ++ t.id.raw ++ "}\n" ++ - "**" ++ t.caption ++ "**\n\n" - djotBlock (Refs refs) = - "## References\n\n" ++ - concatMap (\r => ": " ++ r.label ++ "\n") refs ++ "\n" - djotBlock (Opaque p) = - let lang = fromMaybe "" p.lang - id_attr = case p.id of - Just id => "{#" ++ id.raw ++ "}\n" - Nothing => "" - in id_attr ++ "``` " ++ lang ++ "\n" ++ p.bytes ++ "\n```\n\n" - -||| Convert A2ML document to Djot markup -export -toDjot : Doc -> String -toDjot (MkDoc blocks) = djotBlocks blocks - --- ============================================================================ --- LaTeX Converter --- ============================================================================ - -||| Escape LaTeX special characters -escapeTex : String -> String -escapeTex str = pack (concatMap escape (unpack str)) - where - escape : Char -> List Char - escape '\\' = unpack "\\textbackslash{}" - escape '{' = unpack "\\{" - escape '}' = unpack "\\}" - escape '$' = unpack "\\$" - escape '&' = unpack "\\&" - escape '%' = unpack "\\%" - escape '#' = unpack "\\#" - escape '_' = unpack "\\_" - escape '^' = unpack "\\^{}" - escape '~' = unpack "\\~{}" - escape c = [c] - -mutual - latexBlocks : List Block -> String - latexBlocks [] = "" - latexBlocks (block :: rest) = latexBlock block ++ latexBlocks rest - - latexBlock : Block -> String - latexBlock (Section (MkSec sid title body)) = - let level = length sid.raw - command = case level of - 1 => "\\section" - 2 => "\\subsection" - 3 => "\\subsubsection" - 4 => "\\paragraph" - _ => "\\subparagraph" - label = "\\label{" ++ sid.raw ++ "}" - in command ++ "{" ++ escapeTex title ++ "}" ++ label ++ "\n" ++ - latexBlocks body ++ "\n" - latexBlock (Para text) = escapeTex text ++ "\n\n" - latexBlock (Bullet items) = - "\\begin{itemize}\n" ++ - concatMap (\item => " \\item " ++ escapeTex item ++ "\n") items ++ - "\\end{itemize}\n\n" - latexBlock (Figure f) = - "\\begin{figure}[h]\n" ++ - " \\centering\n" ++ - " % Insert figure here\n" ++ - " \\caption{" ++ escapeTex f.caption ++ "}\n" ++ - " \\label{fig:" ++ f.id.raw ++ "}\n" ++ - "\\end{figure}\n\n" - latexBlock (Table t) = - "\\begin{table}[h]\n" ++ - " \\centering\n" ++ - " \\caption{" ++ escapeTex t.caption ++ "}\n" ++ - " \\label{tab:" ++ t.id.raw ++ "}\n" ++ - " % Insert table here\n" ++ - "\\end{table}\n\n" - latexBlock (Refs refs) = - "\\section*{References}\n" ++ - "\\begin{enumerate}\n" ++ - concatMap (\r => " \\item " ++ escapeTex r.label ++ "\n") refs ++ - "\\end{enumerate}\n\n" - latexBlock (Opaque p) = - let lang = fromMaybe "" p.lang - in "\\begin{lstlisting}[language=" ++ lang ++ "]\n" ++ - p.bytes ++ "\n" ++ - "\\end{lstlisting}\n\n" - -||| Convert A2ML document to LaTeX -export -toLatex : Doc -> String -toLatex (MkDoc blocks) = - "\\documentclass{article}\n" ++ - "\\usepackage[utf8]{inputenc}\n" ++ - "\\usepackage{hyperref}\n" ++ - "\\usepackage{listings}\n" ++ - "\n" ++ - "\\begin{document}\n" ++ - "\n" ++ - latexBlocks blocks ++ - "\n" ++ - "\\end{document}\n" - --- ============================================================================ --- Plain Text Converter --- ============================================================================ - -numberedRefs : Nat -> List Ref -> String -numberedRefs _ [] = "" -numberedRefs n (ref :: rest) = - show n ++ ". " ++ ref.label ++ "\n" ++ numberedRefs (S n) rest - -mutual - plainTextBlocks : List Block -> String - plainTextBlocks [] = "" - plainTextBlocks (block :: rest) = - plainTextBlock block ++ plainTextBlocks rest - - plainTextBlock : Block -> String - plainTextBlock (Section (MkSec _ title body)) = - title ++ "\n" ++ - replicate (length title) '=' ++ "\n\n" ++ - plainTextBlocks body - plainTextBlock (Para text) = text ++ "\n\n" - plainTextBlock (Bullet items) = - concatMap (\item => "* " ++ item ++ "\n") items ++ "\n" - plainTextBlock (Figure f) = - "[Figure: " ++ f.caption ++ "]\n\n" - plainTextBlock (Table t) = - "[Table: " ++ t.caption ++ "]\n\n" - plainTextBlock (Refs refs) = - "References\n" ++ - "==========\n\n" ++ - numberedRefs 1 refs ++ "\n" - plainTextBlock (Opaque p) = p.bytes ++ "\n\n" - -||| Convert A2ML document to plain text (no formatting) -export -toPlainText : Doc -> String -toPlainText (MkDoc blocks) = plainTextBlocks blocks - --- ============================================================================ --- Converter Selection --- ============================================================================ - -||| Supported output formats -public export -data OutputFormat - = Markdown - | Html - | Djot - | Latex - | PlainText - -||| Convert document to specified format -export -convert : OutputFormat -> Doc -> String -convert Markdown = toMarkdown -convert Html = toHtml -convert Djot = toDjot -convert Latex = toLatex -convert PlainText = toPlainText - -||| Parse format string to OutputFormat -export -parseFormat : String -> Maybe OutputFormat -parseFormat "md" = Just Markdown -parseFormat "markdown" = Just Markdown -parseFormat "html" = Just Html -parseFormat "htm" = Just Html -parseFormat "djot" = Just Djot -parseFormat "tex" = Just Latex -parseFormat "latex" = Just Latex -parseFormat "txt" = Just PlainText -parseFormat "text" = Just PlainText -parseFormat _ = Nothing - --- ============================================================================ --- Round-trip Testing --- ============================================================================ - -||| Test if A2ML → Markdown → A2ML preserves structure -export -partial -testMarkdownRoundTrip : Doc -> Bool -testMarkdownRoundTrip doc = - let md = toMarkdown doc - in case parseDocument md of - Success doc' _ => length (blocks doc) == length (blocks doc') - _ => False - -mutual - extractContent : Doc -> String - extractContent (MkDoc blocks) = extractBlocks blocks - - extractBlocks : List Block -> String - extractBlocks [] = "" - extractBlocks (block :: rest) = extractBlock block ++ extractBlocks rest - - extractBlock : Block -> String - extractBlock (Section (MkSec _ title body)) = title ++ extractBlocks body - extractBlock (Para text) = text - extractBlock (Bullet items) = concatMap id items - extractBlock (Figure f) = f.caption - extractBlock (Table t) = t.caption - extractBlock (Refs refs) = concatMap (\r => r.label) refs - extractBlock (Opaque p) = p.bytes - -||| Test if A2ML → Plain Text → A2ML preserves content -export -partial -testPlainTextRoundTrip : Doc -> Bool -testPlainTextRoundTrip doc = - let txt = toPlainText doc - content1 = extractContent doc - content2 = txt - in length content1 == length content2 diff --git a/a2ml/src/A2ML/CoreTests.idr b/a2ml/src/A2ML/CoreTests.idr deleted file mode 100644 index 905855ee9..000000000 --- a/a2ml/src/A2ML/CoreTests.idr +++ /dev/null @@ -1,37 +0,0 @@ -module A2ML.CoreTests - -import A2ML.TypedCore -import A2ML.Surface -import A2ML.Translator - --- Simple sanity tests for v0.2 - -mkSampleDoc : Doc -mkSampleDoc = MkDoc [ - Section (MkSec (MkId "sec:abstract") "Abstract" [Para "Hello"]), - Figure (MkFig (MkId "fig:one") "Fig" (Just (MkId "sec:abstract"))), - Table (MkTbl (MkId "tbl:one") "Table caption"), - Refs [MkRef "[1] Ref"] - ] - -mkSurface : SDoc -mkSurface = MkSDoc [ - SHeading 1 "Intro", - SParagraph [SText "Hello"], - SList [[SText "Item"]], - SDirective "fig" [("id", "fig:one"), ("ref", "sec:intro")] [SParagraph [SText "Caption"]], - SDirective "table" [("id", "tbl:one")] [SParagraph [SText "Table caption"]], - SDirective "refs" [] [SParagraph [SText "[1] Ref"]] - ] - -main : IO () -main = do - let errs = validateDoc mkSampleDoc - case errs == [] of - True => putStrLn "validateDoc: ok" - False => putStrLn ("validateDoc: failed: " ++ show errs) - - let core = translate mkSurface - case uniqueIdsB core of - True => putStrLn "translate: ok" - False => putStrLn "translate: duplicate ids" diff --git a/a2ml/src/A2ML/Parser.idr b/a2ml/src/A2ML/Parser.idr deleted file mode 100644 index ccfa399ac..000000000 --- a/a2ml/src/A2ML/Parser.idr +++ /dev/null @@ -1,381 +0,0 @@ -module A2ML.Parser - -import A2ML.TypedCore -import A2ML.Proofs -import Data.String -import Data.List - -%default total - --- --------------------------------------------------------------------------- --- Totality helpers. --- --- `Data.String.strIndex` is NON-COVERING in Idris2 0.7.0 (it is a partial --- primitive), so it can never appear in a function under `%default total`. --- peek/char previously called it AND pattern-matched its `Char` result as if --- it were `Maybe Char`, which is where the unification errors came from. --- --- `strIndexSafe` is total and obviously correct. It is O(n) per index, so --- parsing is O(n^2); acceptable for a normative reference model where --- correctness dominates. If that ever matters, carry `List Char` in --- ParserState instead of (String, position). --- --------------------------------------------------------------------------- - -||| Safe, total character indexing. -public export -strIndexSafe : String -> Nat -> Maybe Char -strIndexSafe str n = case drop n (unpack str) of - (c :: _) => Just c - [] => Nothing - --- ============================================================================ --- Parser Types --- ============================================================================ - -||| Parser state with position tracking -public export -record ParserState where - constructor MkParserState - input : String - position : Nat - line : Nat - column : Nat - -||| Parser result with error recovery -public export -data ParseResult a - = Success a ParserState - | Failure String ParserState - -public export -Functor ParseResult where - map f (Success x s) = Success (f x) s - map f (Failure err s) = Failure err s - -||| Parser monad -public export -record Parser a where - constructor MkParser - runParser : ParserState -> ParseResult a - -public export -Functor Parser where - map f (MkParser p) = MkParser (\s => map f (p s)) - -public export -Applicative Parser where - pure x = MkParser (\s => Success x s) - (MkParser pf) <*> (MkParser px) = MkParser $ \s => - case pf s of - Success f s' => case px s' of - Success x s'' => Success (f x) s'' - Failure err s'' => Failure err s'' - Failure err s' => Failure err s' - -public export -Monad Parser where - (MkParser p) >>= f = MkParser $ \s => - case p s of - Success x s' => runParser (f x) s' - Failure err s' => Failure err s' - --- ============================================================================ --- Basic Parsers --- ============================================================================ - -||| Peek at the next character without consuming -export -peek : Parser (Maybe Char) -peek = MkParser $ \s => - case strIndexSafe s.input s.position of - Just c => Success (Just c) s - Nothing => Success Nothing s - -||| An upper bound on the input still to be consumed. Every consuming loop -||| below recurses structurally on this, which is what makes them total. -public export -remaining : ParserState -> Nat -remaining s = minus (length s.input) s.position - -||| First-success choice. Defined as a plain function rather than an -||| `Alternative` implementation to avoid the Lazy-argument subtleties of the -||| Prelude interface; the previous code declared `<|>` inside a `where` block, -||| where it did not resolve at all. -public export -orElse : Parser a -> Parser a -> Parser a -orElse (MkParser p1) (MkParser p2) = MkParser $ \s => - case p1 s of - Success x s' => Success x s' - Failure _ _ => p2 s - -||| Consume one character -export -char : Parser (Maybe Char) -char = MkParser $ \s => - case strIndexSafe s.input s.position of - Just c => - let newPos = s.position + 1 - newLine = if c == '\n' then s.line + 1 else s.line - newCol = if c == '\n' then 0 else s.column + 1 - in Success (Just c) (MkParserState s.input newPos newLine newCol) - Nothing => Success Nothing s - -||| Match a specific character -export -charIs : Char -> Parser Bool -charIs expected = do - mc <- peek - case mc of - Just c => if c == expected - then do ignore char; pure True - else pure False - Nothing => pure False - -||| Skip whitespace -export -skipWhitespace : Parser () -skipWhitespace = MkParser $ \s => runParser (go (remaining s)) s - where - go : Nat -> Parser () - go Z = pure () - go (S fuel) = do - mc <- peek - case mc of - Just c => if isSpace c - then do ignore char; go fuel - else pure () - Nothing => pure () - -||| Parse until end of line -export -parseUntilEOL : Parser String -parseUntilEOL = MkParser $ \s => - let (line, rest) = break (== '\n') (substr (cast s.position) (length s.input) s.input) - newPos = s.position + cast (length line) - in Success line (MkParserState s.input newPos s.line s.column) - -||| Parse a heading (# Title) -export -parseHeading : Parser (Nat, String) -parseHeading = MkParser $ \s => runParser (body (remaining s)) s - where - countHashes : Nat -> Nat -> Parser Nat - countHashes Z acc = pure acc - countHashes (S fuel) acc = do - isHash <- charIs '#' - if isHash - then countHashes fuel (acc + 1) - else pure acc - - body : Nat -> Parser (Nat, String) - body fuel = do - level <- countHashes fuel 0 - skipWhitespace - title <- parseUntilEOL - pure (level, title) - -||| Parse an ID directive (@id:value) -export -parseDirective : Parser (String, String) -parseDirective = do - atSign <- charIs '@' - if atSign - then do - name <- parseUntil ':' - skipWhitespace - value <- parseUntilEOL - pure (name, value) - else MkParser $ \s => Failure "Expected directive starting with @" s - where - parseUntil : Char -> Parser String - parseUntil delim = MkParser $ \s => - let (word, rest) = break (== delim) (substr (cast s.position) (length s.input) s.input) - newPos = s.position + cast (length word) + 1 -- +1 to skip delimiter - in Success word (MkParserState s.input newPos s.line s.column) - --- ============================================================================ --- Block Parsers --- ============================================================================ - -||| Parse a paragraph (non-directive, non-heading text) -export -parseParagraph : Parser Block -parseParagraph = do - line <- parseUntilEOL - ignore char -- consume newline - pure (Para line) - -||| Parse a bullet list item -export -parseBullet : Parser (List String) -parseBullet = MkParser $ \s => runParser (parseBullets (remaining s) []) s - where - parseBullets : Nat -> List String -> Parser (List String) - parseBullets Z acc = pure acc - parseBullets (S fuel) acc = do - isBullet <- orElse (charIs '-') (charIs '*') - if isBullet - then do - skipWhitespace - item <- parseUntilEOL - ignore char -- consume newline - parseBullets fuel (acc ++ [item]) - else pure acc - -||| Parse a section block -export -parseSection : Parser Block -parseSection = do - (level, title) <- parseHeading - ignore char -- consume newline - -- TODO: parse body recursively - let body = [] - pure (Section (MkSec (MkId (pack (replicate level '#'))) title body)) - -||| Parse any block -export -parseBlock : Parser (Maybe Block) -parseBlock = do - skipWhitespace - mc <- peek - case mc of - Nothing => pure Nothing - Just '#' => do - sec <- parseSection - pure (Just sec) - Just '@' => do - (name, value) <- parseDirective - ignore char -- consume newline - -- Handle different directive types - pure Nothing -- TODO: map directives to blocks - Just '-' => do - bullets <- parseBullet - pure (Just (Bullet bullets)) - Just '*' => do - bullets <- parseBullet - pure (Just (Bullet bullets)) - Just _ => do - para <- parseParagraph - pure (Just para) - --- ============================================================================ --- Document Parser --- ============================================================================ - -||| Parse multiple blocks into a document -export -parseBlocks : Nat -> List Block -> Parser Doc -parseBlocks Z acc = pure (MkDoc acc) -parseBlocks (S fuel) acc = do - mb <- parseBlock - case mb of - Just b => parseBlocks fuel (acc ++ [b]) - Nothing => pure (MkDoc acc) - -||| Parse a complete A2ML document -export -parseDocument : String -> ParseResult Doc -parseDocument input = - let initialState = MkParserState input 0 1 0 - in runParser (parseBlocks (remaining initialState) []) initialState - --- ============================================================================ --- Validation After Parsing --- ============================================================================ - -||| Parse and validate a document in one step -export -parseAndValidate : String -> Either (List ValidationError) ValidatedDoc -parseAndValidate input = - case parseDocument input of - Success doc _ => - let ids = collectIds doc - refs = collectRefs doc - in validateDocument doc ids refs - Failure err _ => - Left [MissingRequired ("Parse error: " ++ err)] - --- ============================================================================ --- Pretty Printer (for testing) --- ============================================================================ - --- Recursing on `List Block` directly (rather than re-wrapping as --- `MkDoc s.body` and calling prettyPrint) and pattern-matching `MkSec` is what --- lets the termination checker see section bodies as structural sub-terms: a --- record *projection* is not treated as structural descent, a constructor --- pattern is. -mutual - export - prettyBlocks : List Block -> String - prettyBlocks [] = "" - prettyBlocks (b :: bs) = prettyBlock b ++ prettyBlocks bs - - export - prettyBlock : Block -> String - prettyBlock (Section (MkSec sid title body)) = - replicate (length sid.raw) '#' ++ " " ++ title ++ "\n" ++ - prettyBlocks body ++ "\n" - prettyBlock (Para text) = text ++ "\n\n" - prettyBlock (Bullet items) = - concatMap (\item => "- " ++ item ++ "\n") items ++ "\n" - prettyBlock (Figure f) = - "@figure:" ++ f.id.raw ++ "\n" ++ - f.caption ++ "\n@end\n\n" - prettyBlock (Table t) = - "@table:" ++ t.id.raw ++ "\n" ++ - t.caption ++ "\n@end\n\n" - prettyBlock (Refs refs) = - "@refs:\n" ++ - concatMap (\r => "[" ++ r.label ++ "]\n") refs ++ - "@end\n\n" - prettyBlock (Opaque p) = - "@opaque" ++ - (case p.id of - Just id => ":" ++ id.raw - Nothing => "") ++ - (case p.lang of - Just lang => " lang=" ++ lang - Nothing => "") ++ - "\n" ++ p.bytes ++ "\n@end\n\n" - -||| Pretty print a document (inverse of parser). -export -prettyPrint : Doc -> String -prettyPrint (MkDoc blocks) = prettyBlocks blocks - --- ============================================================================ --- Example Usage --- ============================================================================ - -||| Example A2ML document -export -exampleA2ML : String -exampleA2ML = """ -# Introduction - -This is a paragraph in the introduction. - -## Background - -- First point -- Second point - -@abstract: -This is the abstract. -@end - -@refs: -[1] Reference One -[2] Reference Two -@end -""" - -||| Parse the example document -export -exampleParse : ParseResult Doc -exampleParse = parseDocument exampleA2ML - -||| Validate the example document -export -exampleValidate : Either (List ValidationError) ValidatedDoc -exampleValidate = parseAndValidate exampleA2ML diff --git a/a2ml/src/A2ML/ParserTests.idr b/a2ml/src/A2ML/ParserTests.idr deleted file mode 100644 index 8d334a122..000000000 --- a/a2ml/src/A2ML/ParserTests.idr +++ /dev/null @@ -1,53 +0,0 @@ -module A2ML.ParserTests - -import A2ML.Parser -import A2ML.TypedCore -import A2ML.Proofs -import Decidable.Equality - --- NOTE (2026-07-29): this module previously exercised a pipeline that does not --- exist: `parse : String -> Either _ SDoc`, plus `uniqueIdsDec`, --- `refsResolveDec` and `hasAbstractDec`. None of those are defined anywhere in --- the core, so this file could never compile. --- --- It now tests the API that IS implemented: `parseDocument` into the typed --- core, then the real decision procedures from A2ML.Proofs. --- --- Real gap this uncovered, worth its own work: `A2ML.Surface.SDoc` and --- `A2ML.Translator.translate : SDoc -> Doc` both exist, but NOTHING produces an --- SDoc — there is no surface parser. Until one exists, the Surface/Translator --- half of the pipeline is unreachable. - --- Test the Idris2 parser with a simple input -testInput : String -testInput = """ -# A2ML Overview - -@abstract: -A2ML is a typed, attested markup format. -@end - -## Claims -- Required sections must exist -- References must resolve -""" - -main : IO () -main = do - putStrLn "Testing Idris2 A2ML Parser..." - case parseDocument testInput of - Failure err _ => putStrLn ("Parse error: " ++ err) - Success doc _ => do - putStrLn "Parsed successfully" - let ids = collectIds doc - refs = collectRefs doc - - case uniqueDec ids of - Yes _ => putStrLn "Unique IDs: proven" - No _ => putStrLn "Unique IDs: failed" - - case allInDec refs ids of - Yes _ => putStrLn "Refs resolve: proven" - No _ => putStrLn "Refs resolve: failed" - - putStrLn "All tests complete!" diff --git a/a2ml/src/A2ML/Profiles.idr b/a2ml/src/A2ML/Profiles.idr deleted file mode 100644 index 12c6fd441..000000000 --- a/a2ml/src/A2ML/Profiles.idr +++ /dev/null @@ -1,228 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 -||| A2ML v1.1 profile mechanism (SPEC.adoc Section 8). -||| -||| A profile is a NON-EXECUTABLE validation bundle. It may only raise the -||| validation bar (required sections, allowed/required directives, reference -||| classes, minimum attestation level); it can never grant capability or relax -||| a base invariant. This module gives the typed-core nodes for profile ids and -||| profile definitions, plus a *decidable* conformance check of a document's -||| profile-relevant facts against a profile definition. -module A2ML.Profiles - -import A2ML.TypedCore -import A2ML.BaseVocab -import Decidable.Equality - -%default total - --- ============================================================================ --- Modes (SPEC Section 4) and profile ids (SPEC Section 8.1) --- ============================================================================ - -public export -data Mode = Lax | Checked | Attested - -public export -modeLevel : Mode -> Nat -modeLevel Lax = 0 -modeLevel Checked = 1 -modeLevel Attested = 2 - -||| A QualifiedId of the form ns/name (e.g. a2ml/state). -public export -record ProfileId where - constructor MkProfileId - ns : String - name : String - -public export -Eq ProfileId where - (MkProfileId a b) == (MkProfileId c d) = a == c && b == d - -export -renderProfileId : ProfileId -> String -renderProfileId p = p.ns ++ "/" ++ p.name - --- ============================================================================ --- The five constrainable axes (SPEC Section 8.2) --- ============================================================================ - -||| Allowed-directive policy. "base" is the v1.0 core directive set (see -||| `baseDirs`); v1.1 additions are opted in via BasePlus or ClosedAllow. -public export -data DirectivePolicy - = AllowAll -- no restriction - | BasePlus (List String) -- base directives PLUS the named extras - | ClosedAllow (List String) -- EXACTLY the named directives - | Deny (List String) -- base directives MINUS the named ones - -||| A required directive with cardinality. maxCount = Nothing means unbounded. -public export -record RequiredDirective where - constructor MkRequiredDirective - directive : String - minCount : Nat - maxCount : Maybe Nat - -public export -data RefTargetKind = TgtSection | TgtFigure | TgtTable | TgtAny - -||| Constrain @ref targets by class (the QualifiedId namespace of the ref id). -public export -record ReferenceClass where - constructor MkReferenceClass - klass : String -- namespace prefix the class governs - target : RefTargetKind - required : Bool -- if True, at least one ref of this class MUST occur - -||| A profile definition (SPEC Section 8.4). Self-describing: a definition is -||| itself base A2ML. -public export -record ProfileDef where - constructor MkProfileDef - pid : ProfileId - version : String - requiredSections : List String - directivePolicy : DirectivePolicy - requiredDirectives : List RequiredDirective - referenceClasses : List ReferenceClass - minAttestation : Mode - --- ============================================================================ --- Profile-relevant projection of a document --- ============================================================================ - -||| The facts a profile checks against. A translator produces this from the -||| (v1.1) typed core: the new nodes (@record, @cite, @profile) are folded in via -||| `directives` / `profiles`, which the v1.0 `Doc` cannot itself express. -public export -record DocFacts where - constructor MkDocFacts - sectionTitles : List String -- titles of every Section, recursively - directives : List String -- directive-name occurrences (with repeats) - refClasses : List String -- namespace prefixes of @ref ids used - profiles : List ProfileId -- declared @profile ids - mode : Mode -- validator mode in effect - -||| The v1.0 core directive set. v1.1 additions (record, cite, rationale, -||| origin, source_span, canonical_node) are NOT base and must be opted in. -public export -baseDirs : List String -baseDirs = - ["abstract", "refs", "fig", "table", "opaque", "requires", "ref", "profile"] - --- ============================================================================ --- Decidable conformance (SPEC Section 8) --- ============================================================================ - -hasAll : List String -> List String -> Bool -hasAll required present = all (\x => elem x present) required - -countOf : String -> List String -> Nat -countOf _ [] = 0 -countOf x (y :: ys) = (if x == y then 1 else 0) + countOf x ys - -satisfiesCardinality : RequiredDirective -> List String -> Bool -satisfiesCardinality rd ds = - let n = countOf rd.directive ds in - (n >= rd.minCount) && - (case rd.maxCount of - Nothing => True - Just m => n <= m) - -directiveAllowed : DirectivePolicy -> String -> Bool -directiveAllowed AllowAll _ = True -directiveAllowed (BasePlus extra) d = elem d baseDirs || elem d extra -directiveAllowed (ClosedAllow allow) d = elem d allow -directiveAllowed (Deny denied) d = elem d baseDirs && not (elem d denied) - -allDirectivesAllowed : DirectivePolicy -> List String -> Bool -allDirectivesAllowed pol ds = all (directiveAllowed pol) ds - -refClassSatisfied : ReferenceClass -> List String -> Bool -refClassSatisfied rc used = not rc.required || elem rc.klass used - -||| Boolean conformance of document facts to a profile definition. -export -conformsB : ProfileDef -> DocFacts -> Bool -conformsB pd f = - hasAll pd.requiredSections f.sectionTitles && - allDirectivesAllowed pd.directivePolicy f.directives && - all (\rd => satisfiesCardinality rd f.directives) pd.requiredDirectives && - all (\rc => refClassSatisfied rc f.refClasses) pd.referenceClasses && - (modeLevel f.mode >= modeLevel pd.minAttestation) - -||| Conformance as a proposition. -public export -Conforms : ProfileDef -> DocFacts -> Type -Conforms pd f = conformsB pd f = True - -||| Decidable conformance. Total, via DecEq on Bool. -export -conformsDec : (pd : ProfileDef) -> (f : DocFacts) -> Dec (Conforms pd f) -conformsDec pd f = decEq (conformsB pd f) True - --- ============================================================================ --- Structured diagnostics --- ============================================================================ - -public export -data ProfileViolation - = MissingSection String - | DisallowedDirective String - | CardinalityViolation String Nat -- directive, actual count - | MissingRequiredRefClass String - | AttestationTooLow Mode Mode -- have, need - -||| Enumerate every profile violation. Empty iff `conformsB` is True. -export -checkProfile : ProfileDef -> DocFacts -> List ProfileViolation -checkProfile pd f = - let missSecs = map MissingSection - (filter (\s => not (elem s f.sectionTitles)) - pd.requiredSections) - badDirs = map DisallowedDirective - (filter (\d => not (directiveAllowed pd.directivePolicy d)) - f.directives) - cardIssues = map (\rd => CardinalityViolation rd.directive - (countOf rd.directive f.directives)) - (filter (\rd => not (satisfiesCardinality rd f.directives)) - pd.requiredDirectives) - refIssues = map (\rc => MissingRequiredRefClass rc.klass) - (filter (\rc => not (refClassSatisfied rc f.refClasses)) - pd.referenceClasses) - attIssue = if modeLevel f.mode >= modeLevel pd.minAttestation - then [] - else [AttestationTooLow f.mode pd.minAttestation] - in missSecs ++ badDirs ++ cardIssues ++ refIssues ++ attIssue - --- ============================================================================ --- Fact extraction from the v1.0 core (section titles) --- ============================================================================ - -||| Collect the TOP-LEVEL Section titles of a document. Total by construction: -||| it recurses only on the block-list tail and never descends through section -||| bodies, so it introduces no escape hatch (cf. TypedCore.collectIds, which is -||| `partial`). Flat record dialects — the entire descriptiles family — have only -||| top-level sections, so this is exact for them. Nested-section extraction for -||| general markup is the translator's responsibility: the translator supplies -||| `DocFacts` directly, so conformance never relies on this helper recursing. -export -sectionTitlesOf : Doc -> List String -sectionTitlesOf (MkDoc blocks) = collect blocks - where - collect : List Block -> List String - collect [] = [] - collect (Section s :: bs) = s.title :: collect bs - collect (_ :: bs) = collect bs - --- ============================================================================ --- Composition: union of constraints (SPEC Section 8.1) --- ============================================================================ - -||| A document conforms to a SET of active profiles iff it conforms to each. -||| (Profiles compose by taking the stricter of every overlapping axis; the -||| conjunction below realises that union.) -export -conformsAll : List ProfileDef -> DocFacts -> Bool -conformsAll pds f = all (\pd => conformsB pd f) pds diff --git a/a2ml/src/A2ML/Proofs.idr b/a2ml/src/A2ML/Proofs.idr deleted file mode 100644 index df80fabd3..000000000 --- a/a2ml/src/A2ML/Proofs.idr +++ /dev/null @@ -1,276 +0,0 @@ -module A2ML.Proofs - -import A2ML.TypedCore -import Data.List -import Data.List.Elem -import Data.List.Quantifiers -import Decidable.Equality - -%default total - --- ============================================================================ --- Decidable Equality for Id --- ============================================================================ - -export -DecEq Id where - decEq (MkId a) (MkId b) with (decEq a b) - decEq (MkId a) (MkId a) | Yes Refl = Yes Refl - decEq (MkId a) (MkId b) | No contra = No (\Refl => contra Refl) - --- ============================================================================ --- Unique IDs with Dependent Types --- ============================================================================ - -||| Proof that a list contains unique elements -public export -data Unique : List a -> Type where - UniqueNil : Unique [] - UniqueCons : Not (Elem x xs) -> Unique xs -> Unique (x :: xs) - -||| Decidable uniqueness check -export -uniqueDec : DecEq a => (xs : List a) -> Dec (Unique xs) -uniqueDec [] = Yes UniqueNil -uniqueDec (x :: xs) with (isElem x xs) - uniqueDec (x :: xs) | Yes prf = No (\(UniqueCons notElem _) => notElem prf) - uniqueDec (x :: xs) | No notElem with (uniqueDec xs) - uniqueDec (x :: xs) | No notElem | Yes uniqueXs = - Yes (UniqueCons notElem uniqueXs) - uniqueDec (x :: xs) | No notElem | No notUnique = - No (\(UniqueCons _ uniqueXs) => notUnique uniqueXs) - --- ============================================================================ --- Reference Resolution with Proofs --- ============================================================================ - -||| Proof that all elements of xs are in ys -public export -data AllIn : List a -> List a -> Type where - AllInNil : AllIn [] ys - AllInCons : Elem x ys -> AllIn xs ys -> AllIn (x :: xs) ys - -||| Decidable all-in check -export -allInDec : DecEq a => (xs, ys : List a) -> Dec (AllIn xs ys) -allInDec [] ys = Yes AllInNil -allInDec (x :: xs) ys with (isElem x ys) - allInDec (x :: xs) ys | No notElem = - No (\(AllInCons elem _) => notElem elem) - allInDec (x :: xs) ys | Yes elem with (allInDec xs ys) - allInDec (x :: xs) ys | Yes elem | Yes allIn = - Yes (AllInCons elem allIn) - allInDec (x :: xs) ys | Yes elem | No notAllIn = - No (\(AllInCons _ allIn) => notAllIn allIn) - --- ============================================================================ --- Document Validation with Dependent Types --- ============================================================================ - -||| A document with unique IDs (proven at type level) -public export -record UniqueDoc where - constructor MkUniqueDoc - doc : Doc - ids : List Id - {auto uniqueProof : Unique ids} - -||| A document with resolved references (proven at type level) -public export -record ResolvedDoc where - constructor MkResolvedDoc - doc : Doc - ids : List Id - refs : List Id - {auto resolvedProof : AllIn refs ids} - -||| A fully validated document (unique IDs + resolved refs) -public export -record ValidatedDoc where - constructor MkValidatedDoc - doc : Doc - ids : List Id - refs : List Id - {auto uniqueProof : Unique ids} - {auto resolvedProof : AllIn refs ids} - --- ============================================================================ --- Construction Functions --- ============================================================================ - -||| Try to construct a UniqueDoc (returns Nothing if IDs not unique) -export -mkUniqueDoc : (d : Doc) -> (ids : List Id) -> Maybe UniqueDoc -mkUniqueDoc d ids with (uniqueDec ids) - mkUniqueDoc d ids | Yes prf = Just (MkUniqueDoc d ids) - mkUniqueDoc d ids | No _ = Nothing - -||| Try to construct a ResolvedDoc (returns Nothing if refs don't resolve) -export -mkResolvedDoc : (d : Doc) -> (ids : List Id) -> (refs : List Id) -> - Maybe ResolvedDoc -mkResolvedDoc d ids refs with (allInDec refs ids) - mkResolvedDoc d ids refs | Yes prf = Just (MkResolvedDoc d ids refs) - mkResolvedDoc d ids refs | No _ = Nothing - -||| Try to construct a ValidatedDoc (returns Nothing if validation fails) -export -mkValidatedDoc : (d : Doc) -> (ids : List Id) -> (refs : List Id) -> - Maybe ValidatedDoc -mkValidatedDoc d ids refs with (uniqueDec ids, allInDec refs ids) - mkValidatedDoc d ids refs | (Yes uniquePrf, Yes resolvedPrf) = - Just (MkValidatedDoc d ids refs) - mkValidatedDoc d ids refs | _ = Nothing - --- ============================================================================ --- Validation Error Messages --- ============================================================================ - -||| Structured validation error -public export -data ValidationError - = DuplicateId Id - | UnresolvedRef Id - | MissingRequired String - -||| Validate a document and return errors or a validated document -export -validateDocument : Doc -> List Id -> List Id -> - Either (List ValidationError) ValidatedDoc -validateDocument d ids refs = - case (uniqueDec ids, allInDec refs ids) of - (Yes uniquePrf, Yes resolvedPrf) => - Right (MkValidatedDoc d ids refs) - (No _, Yes _) => - -- Find duplicate IDs - Left [DuplicateId (MkId "unknown")] -- TODO: identify specific duplicate - (Yes _, No _) => - -- Find unresolved refs - Left [UnresolvedRef (MkId "unknown")] -- TODO: identify specific ref - (No _, No _) => - Left [DuplicateId (MkId "unknown"), UnresolvedRef (MkId "unknown")] - --- ============================================================================ --- Attestation Mechanisms --- ============================================================================ - -||| Cryptographic attestation (stub for now) -public export -record Attestation where - constructor MkAttestation - documentHash : String - signature : String - publicKey : String - timestamp : Integer - -||| An attested document (validated + signed) -public export -record AttestedDoc where - constructor MkAttestedDoc - validated : ValidatedDoc - attestation : Attestation - -||| Verify an attestation (stub - would use real crypto in production) -export -verifyAttestation : AttestedDoc -> Bool -verifyAttestation attested = - -- In production: verify signature using publicKey - -- For now: just check fields are non-empty - let att = attested.attestation in - not (att.documentHash == "") && - not (att.signature == "") && - not (att.publicKey == "") - --- ============================================================================ --- Theorem: If a document is validated, it has unique IDs --- ============================================================================ - -||| Proof that ValidatedDoc implies unique IDs -export -validatedHasUniqueIds : (v : ValidatedDoc) -> Unique (ValidatedDoc.ids v) -validatedHasUniqueIds v = ValidatedDoc.uniqueProof v - -||| Proof that ValidatedDoc implies resolved references -export -validatedHasResolvedRefs : (v : ValidatedDoc) -> AllIn (ValidatedDoc.refs v) (ValidatedDoc.ids v) -validatedHasResolvedRefs v = ValidatedDoc.resolvedProof v - --- ============================================================================ --- Example Usage --- ============================================================================ - -||| Example: Create a validated document -export -exampleValidated : Maybe ValidatedDoc -exampleValidated = - let doc = MkDoc [] - ids = [MkId "intro", MkId "methods"] - refs = [MkId "intro"] - in mkValidatedDoc doc ids refs - -||| Example: Validate and attest a document -export -exampleAttestation : Maybe AttestedDoc -exampleAttestation = do - validated <- exampleValidated - let attestation = MkAttestation - "sha256:abc123..." - "ed25519:def456..." - "pub:789abc..." - 1706659200 - pure (MkAttestedDoc validated attestation) - --- ============================================================================ --- Property: Uniqueness is preserved under append (if disjoint) --- ============================================================================ - --- --------------------------------------------------------------------------- --- Elem/append lemmas. --- --- These stand in for a helper (`elemAppend`) that the proofs below referenced --- but which was never defined in this module or imported from base — so --- A2ML.Proofs did not type-check at all. Both are proved by induction on the --- Elem witness; neither uses `postulate` or `believe_me`. --- --------------------------------------------------------------------------- - -||| Membership in the left operand survives appending on the right. -export -elemAppendLeft : Elem x xs -> Elem x (xs ++ ys) -elemAppendLeft Here = Here -elemAppendLeft (There e) = There (elemAppendLeft e) - -||| Membership in a concatenation is membership in one side or the other. -export -elemAppendSplit : (xs : List a) -> Elem x (xs ++ ys) -> Either (Elem x xs) (Elem x ys) -elemAppendSplit [] e = Right e -elemAppendSplit (y :: ys') Here = Left Here -elemAppendSplit (y :: ys') (There e) = case elemAppendSplit ys' e of - Left l => Left (There l) - Right r => Right r - -||| If two lists are unique and disjoint, their concatenation is unique -export -uniqueAppendDisjoint : {xs : List a} -> Unique xs -> Unique ys -> - (disjoint : All (\x => Not (Elem x ys)) xs) -> - Unique (xs ++ ys) -uniqueAppendDisjoint UniqueNil uniqueYs disjoint = uniqueYs -uniqueAppendDisjoint (UniqueCons notElem uniqueXs) uniqueYs (d :: ds) = - UniqueCons (appendNotElem notElem d) (uniqueAppendDisjoint uniqueXs uniqueYs ds) - where - appendNotElem : {zs : List a} -> Not (Elem w zs) -> Not (Elem w ys) -> Not (Elem w (zs ++ ys)) - appendNotElem notXs notYs elem with (elemAppendSplit zs elem) - appendNotElem notXs notYs elem | Left elemXs = notXs elemXs - appendNotElem notXs notYs elem | Right elemYs = notYs elemYs - --- ============================================================================ --- Property: Reference resolution is monotonic --- ============================================================================ - -||| If all refs resolve in ids, they resolve in a superset -export -resolveMonotonic : AllIn refs ids -> (moreIds : List Id) -> - AllIn refs (ids ++ moreIds) -resolveMonotonic AllInNil moreIds = AllInNil -resolveMonotonic (AllInCons elem allIn) moreIds = - AllInCons (elemAppendLeft elem) - (resolveMonotonic allIn moreIds) diff --git a/a2ml/src/A2ML/Surface.idr b/a2ml/src/A2ML/Surface.idr deleted file mode 100644 index 62529e290..000000000 --- a/a2ml/src/A2ML/Surface.idr +++ /dev/null @@ -1,22 +0,0 @@ -module A2ML.Surface - -%default total - -public export -data Inline - = SText String - | SEmph String - | SStrong String - | SLink String String - -public export -data SBlock - = SHeading Int String - | SParagraph (List Inline) - | SList (List (List Inline)) - | SDirective String (List (String, String)) (List SBlock) - -public export -record SDoc where - constructor MkSDoc - blocks : List SBlock diff --git a/a2ml/src/A2ML/Tests.idr b/a2ml/src/A2ML/Tests.idr deleted file mode 100644 index dfef6debb..000000000 --- a/a2ml/src/A2ML/Tests.idr +++ /dev/null @@ -1,318 +0,0 @@ -module A2ML.Tests - -import A2ML.TypedCore -import A2ML.Proofs -import A2ML.Parser -import Decidable.Equality - -%default total - --- ============================================================================ --- Test Helpers --- ============================================================================ - -||| Test assertion -export -assert : String -> Bool -> IO () -assert name test = - if test - then putStrLn ("✓ " ++ name) - else putStrLn ("✗ " ++ name ++ " FAILED") - -||| Test group -export -testGroup : String -> List (IO ()) -> IO () -testGroup name tests = do - putStrLn ("\n" ++ name ++ ":") - sequence_ tests - --- ============================================================================ --- TypedCore Tests --- ============================================================================ - -export -testTypedCore : IO () -testTypedCore = testGroup "TypedCore Tests" [ - -- Test empty document - assert "Empty document has no IDs" $ - let doc = MkDoc [] - in collectIds doc == [] - , - - -- Test single section - assert "Single section collects ID" $ - let doc = MkDoc [Section (MkSec (MkId "intro") "Introduction" [])] - ids = collectIds doc - in ids == [MkId "intro"] - , - - -- Test nested sections - assert "Nested sections collect all IDs" $ - let inner = Section (MkSec (MkId "methods") "Methods" []) - outer = Section (MkSec (MkId "intro") "Introduction" [inner]) - doc = MkDoc [outer] - ids = collectIds doc - in ids == [MkId "intro", MkId "methods"] - , - - -- Test figure with reference - assert "Figure reference is collected" $ - let fig = Figure (MkFig (MkId "fig1") "Caption" (Just (MkId "intro"))) - doc = MkDoc [fig] - refs = collectRefs doc - in refs == [MkId "intro"] - , - - -- Test validation - unique IDs - assert "Unique IDs validated correctly" $ - let doc = MkDoc [ - Section (MkSec (MkId "intro") "Introduction" []), - Section (MkSec (MkId "methods") "Methods" []) - ] - in uniqueIdsB doc - , - - -- Test validation - duplicate IDs - assert "Duplicate IDs detected" $ - let doc = MkDoc [ - Section (MkSec (MkId "intro") "Introduction" []), - Section (MkSec (MkId "intro") "Duplicate" []) - ] - in not (uniqueIdsB doc) - , - - -- Test validation - resolved refs - assert "Resolved references validated correctly" $ - let doc = MkDoc [ - Section (MkSec (MkId "intro") "Introduction" []), - Figure (MkFig (MkId "fig1") "Caption" (Just (MkId "intro"))) - ] - in refsResolveB doc - , - - -- Test validation - unresolved refs - assert "Unresolved references detected" $ - let doc = MkDoc [ - Figure (MkFig (MkId "fig1") "Caption" (Just (MkId "missing"))) - ] - in not (refsResolveB doc) -] - --- ============================================================================ --- Proofs Tests --- ============================================================================ - -export -testProofs : IO () -testProofs = testGroup "Proofs Tests" [ - -- Test DecEq for Id - assert "DecEq for identical IDs" $ - case decEq (MkId "test") (MkId "test") of - Yes _ => True - No _ => False - , - - assert "DecEq for different IDs" $ - case decEq (MkId "test1") (MkId "test2") of - Yes _ => False - No _ => True - , - - -- Test Unique type - assert "Empty list is unique" $ - case uniqueDec {a=Id} [] of - Yes _ => True - No _ => False - , - - assert "Single element list is unique" $ - case uniqueDec [MkId "test"] of - Yes _ => True - No _ => False - , - - assert "Duplicate detection in list" $ - case uniqueDec [MkId "test", MkId "test"] of - Yes _ => False - No _ => True - , - - -- Test AllIn type - assert "Empty list is in any list" $ - case allInDec {a=Id} [] [MkId "a", MkId "b"] of - Yes _ => True - No _ => False - , - - assert "Subset detection works" $ - case allInDec [MkId "a"] [MkId "a", MkId "b"] of - Yes _ => True - No _ => False - , - - assert "Non-subset detection works" $ - case allInDec [MkId "c"] [MkId "a", MkId "b"] of - Yes _ => False - No _ => True - , - - -- Test ValidatedDoc construction - assert "ValidatedDoc construction succeeds for valid doc" $ - let doc = MkDoc [] - ids = [MkId "intro"] - refs = [MkId "intro"] - in case mkValidatedDoc doc ids refs of - Just _ => True - Nothing => False - , - - assert "ValidatedDoc construction fails for duplicate IDs" $ - let doc = MkDoc [] - ids = [MkId "intro", MkId "intro"] - refs = [] - in case mkValidatedDoc doc ids refs of - Just _ => False - Nothing => True - , - - assert "ValidatedDoc construction fails for unresolved refs" $ - let doc = MkDoc [] - ids = [MkId "intro"] - refs = [MkId "missing"] - in case mkValidatedDoc doc ids refs of - Just _ => False - Nothing => True -] - --- ============================================================================ --- Parser Tests --- ============================================================================ - -export -testParser : IO () -testParser = testGroup "Parser Tests" [ - -- Test heading parser - assert "Parse heading level 1" $ - let input = "# Title" - state = MkParserState input 0 1 0 - in case runParser parseHeading state of - Success (1, "Title") _ => True - _ => False - , - - assert "Parse heading level 2" $ - let input = "## Subtitle" - state = MkParserState input 0 1 0 - in case runParser parseHeading state of - Success (2, "Subtitle") _ => True - _ => False - , - - -- Test directive parser - assert "Parse directive with value" $ - let input = "@abstract:This is the abstract" - state = MkParserState input 0 1 0 - in case runParser parseDirective state of - Success ("abstract", "This is the abstract") _ => True - _ => False - , - - -- Test paragraph parser - assert "Parse paragraph" $ - let input = "This is a paragraph\n" - state = MkParserState input 0 1 0 - in case runParser parseParagraph state of - Success (Para "This is a paragraph") _ => True - _ => False - , - - -- Test bullet parser - assert "Parse bullet list" $ - let input = "- Item 1\n- Item 2\n" - state = MkParserState input 0 1 0 - in case runParser parseBullet state of - Success items _ => items == ["Item 1", "Item 2"] - _ => False - , - - -- Test document parser - assert "Parse simple document" $ - let input = "# Introduction\n\nThis is a paragraph.\n" - in case parseDocument input of - Success doc _ => length (blocks doc) > 0 - _ => False - , - - -- Test pretty printer (round trip) - assert "Pretty print and parse round trip" $ - let doc = MkDoc [ - Section (MkSec (MkId "#") "Title" []), - Para "Paragraph text" - ] - printed = prettyPrint doc - in case parseDocument printed of - Success parsed _ => length (blocks parsed) == length (blocks doc) - _ => False -] - --- ============================================================================ --- Integration Tests --- ============================================================================ - -export -testIntegration : IO () -testIntegration = testGroup "Integration Tests" [ - -- Test end-to-end: parse and validate - assert "Parse and validate valid document" $ - let input = """ -# Introduction - -This is the intro. - -## Methods - -Details here. -""" - in case parseAndValidate input of - Right _ => True - Left _ => False - , - - -- Test end-to-end: detect validation error - assert "Parse and validate detects unresolved refs" $ - let input = """ -# Introduction - -See Figure @fig:missing -""" - in case parseAndValidate input of - Right _ => False - Left errs => length errs > 0 - , - - -- Test attestation - assert "Attestation verification works" $ - case exampleAttestation of - Just attested => verifyAttestation attested - Nothing => False -] - --- ============================================================================ --- Main Test Runner --- ============================================================================ - -export -main : IO () -main = do - putStrLn "╔══════════════════════════════════════════════════════════╗" - putStrLn "║ A2ML Idris2 Core Test Suite ║" - putStrLn "╚══════════════════════════════════════════════════════════╝" - - testTypedCore - testProofs - testParser - testIntegration - - putStrLn "\n╔══════════════════════════════════════════════════════════╗" - putStrLn "║ ✅ Test Suite Complete ║" - putStrLn "╚══════════════════════════════════════════════════════════╝" diff --git a/a2ml/src/A2ML/Translator.idr b/a2ml/src/A2ML/Translator.idr deleted file mode 100644 index 6cb42a5c8..000000000 --- a/a2ml/src/A2ML/Translator.idr +++ /dev/null @@ -1,63 +0,0 @@ -module A2ML.Translator - -import A2ML.TypedCore -import A2ML.Surface - --- Minimal translation: headings become sections with generated IDs, --- paragraphs and lists map directly. Directives map based on name. - -export -translate : SDoc -> Doc -translate (MkSDoc bs) = MkDoc (map toBlock bs) - where - mkId : String -> Id - mkId t = MkId t - - inlineToText : List Inline -> String - inlineToText = concatMap toString - where - toString : Inline -> String - toString (SText s) = s - toString (SEmph s) = s - toString (SStrong s) = s - toString (SLink label _) = label - - listToText : List (List Inline) -> List String - listToText xs = map inlineToText xs - - attrLookup : String -> List (String, String) -> Maybe String - attrLookup _ [] = Nothing - attrLookup k ((k2, v) :: rest) = if k == k2 then Just v else attrLookup k rest - - collectParagraphs : List SBlock -> List String - collectParagraphs [] = [] - collectParagraphs (SParagraph xs :: rest) = inlineToText xs :: collectParagraphs rest - collectParagraphs (_ :: rest) = collectParagraphs rest - - toBlock : SBlock -> Block - toBlock (SHeading _ t) = Section (MkSec (MkId ("sec:" ++ t)) t []) - toBlock (SParagraph t) = Para (inlineToText t) - toBlock (SList xs) = Bullet (listToText xs) - toBlock (SDirective name attrs body) = - case name of - "fig" => - let mid = attrLookup "id" attrs - mref = attrLookup "ref" attrs - caption = case collectParagraphs body of - [] => "" - (c :: _) => c - in Figure (MkFig (mkId (maybe "fig:unnamed" id mid)) caption (map mkId mref)) - "table" => - let mid = attrLookup "id" attrs - caption = case collectParagraphs body of - [] => "" - (c :: _) => c - in Table (MkTbl (mkId (maybe "tbl:unnamed" id mid)) caption) - "refs" => - let labels = collectParagraphs body - refs = map MkRef labels - in Refs refs - "abstract" => - Section (MkSec (mkId "sec:abstract") "Abstract" (map toBlock body)) - _ => - Section (MkSec (mkId ("sec:" ++ name)) name (map toBlock body)) diff --git a/a2ml/src/A2ML/TypedCore.idr b/a2ml/src/A2ML/TypedCore.idr deleted file mode 100644 index 088726b7c..000000000 --- a/a2ml/src/A2ML/TypedCore.idr +++ /dev/null @@ -1,169 +0,0 @@ -module A2ML.TypedCore - -%default total - -public export -record Id where - constructor MkId - raw : String - -mutual - public export - record Doc where - constructor MkDoc - blocks : List Block - - public export - data Block - = Section Sec - | Para String - | Bullet (List String) - | Figure Fig - | Table Tbl - | Refs (List Ref) - | Opaque Payload - - public export - record Sec where - constructor MkSec - id : Id - title : String - body : List Block - - public export - record Fig where - constructor MkFig - id : Id - caption : String - ref : Maybe Id - - public export - record Tbl where - constructor MkTbl - id : Id - caption : String - - public export - record Ref where - constructor MkRef - label : String - - public export - record Payload where - constructor MkPayload - id : Maybe Id - lang : Maybe String - bytes : String - -public export -data RefTarget - = RefSection Id - | RefFigure Id - | RefTable Id - --- Executable checks (v0.2) - --- These were `partial` and private. They are structurally terminating — a --- section body is a sub-term — but the old shape re-wrapped it as --- `MkDoc s.body`, and the termination checker cannot see through the --- constructor. Recursing on `List Block` directly makes the decrease visible, --- so both are now total; both are exported because Parser and Tests use them. - -mutual - export - collectIds : Doc -> List Id - collectIds (MkDoc blocks) = collectIdsBlocks blocks - - export - collectIdsBlocks : List Block -> List Id - collectIdsBlocks [] = [] - collectIdsBlocks (b :: bs) = collectIdsBlock b ++ collectIdsBlocks bs - - export - collectIdsBlock : Block -> List Id - collectIdsBlock (Section (MkSec sid _ body)) = sid :: collectIdsBlocks body - collectIdsBlock (Figure f) = [f.id] - collectIdsBlock (Table t) = [t.id] - collectIdsBlock (Opaque p) = maybe [] (\rid => [rid]) p.id - collectIdsBlock _ = [] - -mutual - export - collectRefs : Doc -> List Id - collectRefs (MkDoc blocks) = collectRefsBlocks blocks - - export - collectRefsBlocks : List Block -> List Id - collectRefsBlocks [] = [] - collectRefsBlocks (b :: bs) = collectRefsBlock b ++ collectRefsBlocks bs - - export - collectRefsBlock : Block -> List Id - collectRefsBlock (Section (MkSec _ _ body)) = collectRefsBlocks body - collectRefsBlock (Figure f) = maybe [] (\rid => [rid]) f.ref - collectRefsBlock _ = [] - -idEq : Id -> Id -> Bool -idEq (MkId a) (MkId b) = a == b - -||| Id equality is exactly equality of the underlying string, so this instance -||| inherits reflexivity/symmetry/transitivity from String. Needed by the test -||| suite (and any consumer comparing `List Id`). -public export -Eq Id where - (==) = idEq - -contains : Id -> List Id -> Bool -contains _ [] = False -contains x (y :: ys) = if idEq x y then True else contains x ys - -hasDuplicate : List Id -> Bool -hasDuplicate [] = False -hasDuplicate (x :: xs) = if contains x xs then True else hasDuplicate xs - -allIn : List Id -> List Id -> Bool -allIn [] _ = True -allIn (x :: xs) ys = contains x ys && allIn xs ys - -export -partial -uniqueIdsB : Doc -> Bool -uniqueIdsB doc = not (hasDuplicate (collectIds doc)) - -export -partial -refsResolveB : Doc -> Bool -refsResolveB doc = allIn (collectRefs doc) (collectIds doc) - -export -partial -hasAbstractB : Doc -> Bool -hasAbstractB (MkDoc blocks) = any isAbstract blocks - where - isAbstract : Block -> Bool - isAbstract (Section s) = s.title == "Abstract" - isAbstract _ = False - -export -partial -validateDoc : Doc -> List String -validateDoc doc = - let errs1 = if uniqueIdsB doc then [] else ["duplicate ids"] - errs2 = if refsResolveB doc then [] else ["unresolved references"] - in errs1 ++ errs2 - --- Proof predicates (v1) -public export -partial -UniqueIds : Doc -> Type -UniqueIds doc = uniqueIdsB doc = True - -public export -partial -RefsResolve : Doc -> Type -RefsResolve doc = refsResolveB doc = True - -public export -partial -HasAbstract : Doc -> Type -HasAbstract doc = hasAbstractB doc = True diff --git a/a2ml/test.a2ml b/a2ml/test.a2ml deleted file mode 100644 index cd18f3ea2..000000000 --- a/a2ml/test.a2ml +++ /dev/null @@ -1,3 +0,0 @@ -# Test Heading - -This is a test paragraph. diff --git a/a2ml/tests/contractiles/expected/dustfile.json b/a2ml/tests/contractiles/expected/dustfile.json deleted file mode 100644 index e5e9150f5..000000000 --- a/a2ml/tests/contractiles/expected/dustfile.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "sections": { - "Dust-Events": [ - { - "name": "decision-log-to-dust", - "notes": "map decision logs into reversible dust events", - "source": "logs/decisions.json", - "transform": "dustify --input logs/decisions.json --output logs/dust-events.json" - } - ], - "Gateway": [ - { - "event": "deploy.failure", - "name": "bad-deployment", - "notes": "preserve audit logs while rolling back", - "undo": "gatewayctl rollback --last" - } - ], - "Logs": [ - { - "handler": "log-replay --reverse logs/decisions.json", - "name": "gateway-decision-log", - "path": "logs/decisions.json", - "reversible": "true" - } - ], - "Policy": [ - { - "name": "policy-rollback", - "notes": "rollback to the last known-good policy", - "path": "policy/policy.ncl", - "rollback": "git checkout HEAD~1 -- policy/policy.ncl" - } - ] - }, - "spec_version": "1.0.0", - "type": "dustfile" -} diff --git a/a2ml/tests/contractiles/expected/intentfile.json b/a2ml/tests/contractiles/expected/intentfile.json deleted file mode 100644 index edd30a687..000000000 --- a/a2ml/tests/contractiles/expected/intentfile.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "future": { - "Control-Plane": [ - "move to GitOps-backed configuration promotion", - "add canary and staged rollout support" - ], - "Introspection": [ - "expose decision latency and policy evaluation metrics", - "add tracing for end-to-end request decisions" - ], - "Pipeline": [ - "adopt Nickel (or your DSL) as the primary policy language", - "automate policy promotion from dev to prod with signed artifacts" - ], - "Trust-Engine": [ - "integrate hardware-backed key management", - "support node attestation for deployments" - ] - }, - "spec_version": "1.0.0", - "type": "intentfile" -} diff --git a/a2ml/tests/contractiles/expected/mustfile.json b/a2ml/tests/contractiles/expected/mustfile.json deleted file mode 100644 index aa9053684..000000000 --- a/a2ml/tests/contractiles/expected/mustfile.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "checks": [ - { - "description": "config/policy.yaml must be valid", - "name": "policy-config-valid", - "run": "just validate-policy" - }, - { - "description": "policy/policy.ncl must compile", - "name": "policy-nickel-compiles", - "run": "just compile-nickel" - }, - { - "description": "gateway must expose port 8080", - "name": "gateway-exposes-port", - "run": "ss -lnt | rg \":8080\"" - }, - { - "description": "logs must be JSON", - "name": "logs-are-json", - "run": "rg --files -g \"*.json\" logs | xargs -r jq -e ." - }, - { - "description": "schema must match v0.0.1", - "name": "schema-version-matches", - "run": "rg -n \"v0.0.1\" schema" - } - ], - "parameters": { - "gateway_port": "8080", - "schema_version": "v0.0.1" - }, - "spec_version": "1.0.0", - "type": "mustfile" -} diff --git a/a2ml/tests/contractiles/expected/trustfile.json b/a2ml/tests/contractiles/expected/trustfile.json deleted file mode 100644 index 2ab9b5067..000000000 --- a/a2ml/tests/contractiles/expected/trustfile.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "inputs": { - "driver_paths": "drivers/gateway-driver.bin", - "migrations_path": "migrations/provenance.json", - "migrations_pub_path": "migrations/provenance.pub", - "migrations_sig_path": "migrations/provenance.sig", - "policy_hash_path": "policy/policy.ncl.sha256", - "policy_path": "policy/policy.ncl", - "schema_path": "schema/schema.json", - "schema_pub_path": "schema/schema.pub", - "schema_sig_path": "schema/schema.sig" - }, - "spec_version": "1.0.0", - "type": "trustfile", - "verifications": [ - { - "command": "sha256sum policy/policy.ncl", - "description": "SHA-256 of policy matches policy.ncl.sha256", - "name": "policy-hash" - }, - { - "command": "openssl dgst -sha256 -verify schema/schema.pub -signature schema/schema.sig schema/schema.json", - "description": "schema signature verifies against schema.pub", - "name": "schema-signature" - }, - { - "command": "kyber-verify --pub drivers/gateway-driver.bin.pub --sig drivers/gateway-driver.bin.sig --file drivers/gateway-driver.bin", - "description": "Kyber-1024 signatures verify for drivers", - "name": "driver-signatures" - }, - { - "command": "openssl dgst -sha256 -verify migrations/provenance.pub -signature migrations/provenance.sig migrations/provenance.json", - "description": "migrations provenance signature verifies", - "name": "migration-provenance" - } - ] -} diff --git a/a2ml/tests/contractiles/fixtures/Dustfile.a2ml b/a2ml/tests/contractiles/fixtures/Dustfile.a2ml deleted file mode 100644 index 790558e94..000000000 --- a/a2ml/tests/contractiles/fixtures/Dustfile.a2ml +++ /dev/null @@ -1,40 +0,0 @@ -# Dustfile (A2ML Example) - -@abstract: -Recovery and rollback semantics for failures and bad deployments. -@end - -@requires: -- section: Logs -- section: Policy -- section: Gateway -- section: Dust-Events -@end - -## Logs - -### gateway-decision-log -- path: logs/decisions.json -- reversible: true -- handler: log-replay --reverse logs/decisions.json - -## Policy - -### policy-rollback -- path: policy/policy.ncl -- rollback: git checkout HEAD~1 -- policy/policy.ncl -- notes: rollback to the last known-good policy - -## Gateway - -### bad-deployment -- event: deploy.failure -- undo: gatewayctl rollback --last -- notes: preserve audit logs while rolling back - -## Dust-Events - -### decision-log-to-dust -- source: logs/decisions.json -- transform: dustify --input logs/decisions.json --output logs/dust-events.json -- notes: map decision logs into reversible dust events diff --git a/a2ml/tests/contractiles/fixtures/Intentfile.a2ml b/a2ml/tests/contractiles/fixtures/Intentfile.a2ml deleted file mode 100644 index 487a29975..000000000 --- a/a2ml/tests/contractiles/fixtures/Intentfile.a2ml +++ /dev/null @@ -1,32 +0,0 @@ -# Intentfile (A2ML Example) - -@abstract: -Declared future intent for the system. -@end - -@requires: -- section: Trust-Engine -- section: Control-Plane -- section: Pipeline -- section: Introspection -@end - -## Trust-Engine - -- integrate hardware-backed key management -- support node attestation for deployments - -## Control-Plane - -- move to GitOps-backed configuration promotion -- add canary and staged rollout support - -## Pipeline - -- adopt Nickel (or your DSL) as the primary policy language -- automate policy promotion from dev to prod with signed artifacts - -## Introspection - -- expose decision latency and policy evaluation metrics -- add tracing for end-to-end request decisions diff --git a/a2ml/tests/contractiles/fixtures/Mustfile.a2ml b/a2ml/tests/contractiles/fixtures/Mustfile.a2ml deleted file mode 100644 index 02f467a47..000000000 --- a/a2ml/tests/contractiles/fixtures/Mustfile.a2ml +++ /dev/null @@ -1,37 +0,0 @@ -# Mustfile (A2ML Example) - -@abstract: -A declarative state contract describing what must be true. -@end - -@requires: -- section: Parameters -- section: Checks -@end - -## Parameters - -- gateway_port: 8080 -- schema_version: v0.0.1 - -## Checks - -### policy-config-valid -- description: config/policy.yaml must be valid -- run: just validate-policy - -### policy-nickel-compiles -- description: policy/policy.ncl must compile -- run: just compile-nickel - -### gateway-exposes-port -- description: gateway must expose port 8080 -- run: ss -lnt | rg ":8080" - -### logs-are-json -- description: logs must be JSON -- run: rg --files -g "*.json" logs | xargs -r jq -e . - -### schema-version-matches -- description: schema must match v0.0.1 -- run: rg -n "v0.0.1" schema diff --git a/a2ml/tests/contractiles/fixtures/Trustfile.a2ml b/a2ml/tests/contractiles/fixtures/Trustfile.a2ml deleted file mode 100644 index 556b5a93f..000000000 --- a/a2ml/tests/contractiles/fixtures/Trustfile.a2ml +++ /dev/null @@ -1,40 +0,0 @@ -# Trustfile (A2ML Example) - -@abstract: -Cryptographic and provenance verification steps. -@end - -@requires: -- section: Inputs -- section: Verifications -@end - -## Inputs - -- policy_path: policy/policy.ncl -- policy_hash_path: policy/policy.ncl.sha256 -- schema_path: schema/schema.json -- schema_sig_path: schema/schema.sig -- schema_pub_path: schema/schema.pub -- driver_paths: drivers/gateway-driver.bin -- migrations_path: migrations/provenance.json -- migrations_sig_path: migrations/provenance.sig -- migrations_pub_path: migrations/provenance.pub - -## Verifications - -### policy-hash -- description: SHA-256 of policy matches policy.ncl.sha256 -- command: sha256sum policy/policy.ncl - -### schema-signature -- description: schema signature verifies against schema.pub -- command: openssl dgst -sha256 -verify schema/schema.pub -signature schema/schema.sig schema/schema.json - -### driver-signatures -- description: Kyber-1024 signatures verify for drivers -- command: kyber-verify --pub drivers/gateway-driver.bin.pub --sig drivers/gateway-driver.bin.sig --file drivers/gateway-driver.bin - -### migration-provenance -- description: migrations provenance signature verifies -- command: openssl dgst -sha256 -verify migrations/provenance.pub -signature migrations/provenance.sig migrations/provenance.json diff --git a/a2ml/tests/contractiles/fixtures/invalid-dustfile.a2ml b/a2ml/tests/contractiles/fixtures/invalid-dustfile.a2ml deleted file mode 100644 index 2ac3b0af9..000000000 --- a/a2ml/tests/contractiles/fixtures/invalid-dustfile.a2ml +++ /dev/null @@ -1,32 +0,0 @@ -# Dustfile (Invalid) - -@abstract: -Missing required fields in sections. -@end - -@requires: -- section: Logs -- section: Policy -- section: Gateway -- section: Dust-Events -@end - -## Logs - -### gateway-decision-log -- path: logs/decisions.json - -## Policy - -### policy-rollback -- rollback: git checkout HEAD~1 -- policy/policy.ncl - -## Gateway - -### bad-deployment -- event: deploy.failure - -## Dust-Events - -### decision-log-to-dust -- source: logs/decisions.json diff --git a/a2ml/tests/contractiles/fixtures/invalid-intentfile.a2ml b/a2ml/tests/contractiles/fixtures/invalid-intentfile.a2ml deleted file mode 100644 index f77dbd04a..000000000 --- a/a2ml/tests/contractiles/fixtures/invalid-intentfile.a2ml +++ /dev/null @@ -1,15 +0,0 @@ -# Intentfile (Invalid) - -@abstract: -Missing required sections and bullets. -@end - -@requires: -- section: Trust-Engine -- section: Control-Plane -- section: Pipeline -- section: Introspection -@end - -## Trust-Engine - diff --git a/a2ml/tests/contractiles/fixtures/invalid-mustfile.a2ml b/a2ml/tests/contractiles/fixtures/invalid-mustfile.a2ml deleted file mode 100644 index ed58e8bb9..000000000 --- a/a2ml/tests/contractiles/fixtures/invalid-mustfile.a2ml +++ /dev/null @@ -1,19 +0,0 @@ -# Mustfile (Invalid) - -@abstract: -Missing parameters and run field. -@end - -@requires: -- section: Parameters -- section: Checks -@end - -## Parameters - -- gateway_port: 8080 - -## Checks - -### policy-config-valid -- description: config/policy.yaml must be valid diff --git a/a2ml/tests/contractiles/fixtures/invalid-trustfile.a2ml b/a2ml/tests/contractiles/fixtures/invalid-trustfile.a2ml deleted file mode 100644 index 2e7b0da46..000000000 --- a/a2ml/tests/contractiles/fixtures/invalid-trustfile.a2ml +++ /dev/null @@ -1,19 +0,0 @@ -# Trustfile (Invalid) - -@abstract: -Missing inputs and command field. -@end - -@requires: -- section: Inputs -- section: Verifications -@end - -## Inputs - -- policy_path: policy/policy.ncl - -## Verifications - -### policy-hash -- description: SHA-256 of policy matches policy.ncl.sha256 diff --git a/a2ml/tests/record-dialect/MANIFEST.a2ml b/a2ml/tests/record-dialect/MANIFEST.a2ml deleted file mode 100644 index 0a25698ae..000000000 --- a/a2ml/tests/record-dialect/MANIFEST.a2ml +++ /dev/null @@ -1,166 +0,0 @@ -# SPDX-License-Identifier: CC-BY-SA-4.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# MANIFEST.a2ml — conformance-vector index for the A2ML Record Dialect. -# This file is itself a record-dialect document (spec RECORD-DIALECT-SPEC.adoc): -# it dogfoods the format it indexes and MUST parse at R0. - -[metadata] -suite = "a2ml-record-dialect" -spec = "RECORD-DIALECT-SPEC.adoc" -spec-version = "1.0.0" -generated-by = "authored" -last-updated = "2026-07-03" - -[legend] -expect = "one of: parse | validate | reject" -class = "lowest conformance class at which the expectation is REQUIRED (R0|R1|R2)" -note = "spec section(s) the vector exercises" - -# ---------------------------------------------------------------------------- -# VALID vectors — MUST parse (R0); MUST validate (R1) where a profile is declared. -# ---------------------------------------------------------------------------- - -[[vector]] -name = "valid/minimal.a2ml" -expect = "parse" -class = "R0" -spec_section = "5.3, 4.1" -note = "One section, one quoted-string entry — the smallest well-formed document." - -[[vector]] -name = "valid/all-scalar-forms.a2ml" -expect = "parse" -class = "R0" -spec_section = "4.1-4.5, D-3" -note = "String, multi-line string, integer with _ separator, float with exponent, booleans." - -[[vector]] -name = "valid/arrays-and-inline-tables.a2ml" -expect = "parse" -class = "R0" -spec_section = "4.6, 4.7, 2.3" -note = "Multi-line array with interior comment and trailing comma; array of inline tables." - -[[vector]] -name = "valid/dotted-sections.a2ml" -expect = "parse" -class = "R0" -spec_section = "5.4, 6, 7.1" -note = "Dotted key-paths up to four segments; uppercase segment (categories.CHS)." - -[[vector]] -name = "valid/array-of-tables.a2ml" -expect = "parse" -class = "R0" -spec_section = "5.3, 6" -note = "Repeated [[entry]] headers build an ordered array of tables." - -[[vector]] -name = "valid/quoted-keys.a2ml" -expect = "parse" -class = "R0" -spec_section = "5.5, 3" -note = "Quoted key required for a key containing '-' as first char (\"--browser\")." - -[[vector]] -name = "valid/comments-and-preamble.a2ml" -expect = "parse" -class = "R0" -spec_section = "5.1, 2.3" -note = "SPDX/copyright preamble comments; trailing comments after values and headers." - -[[vector]] -name = "valid/state-profile.a2ml" -expect = "validate" -class = "R1" -spec_section = "5.2, 9.5, 10" -note = "Declares @profile(id=a2ml/state); carries the three required sections — validates." - -# ---------------------------------------------------------------------------- -# INVALID vectors — MUST be rejected at the stated class (and every class above). -# ---------------------------------------------------------------------------- - -[[vector]] -name = "invalid/bare-string-value.a2ml" -expect = "reject" -class = "R0" -spec_section = "4.8, D-2" -note = "Unquoted non-numeric, non-boolean scalar (x = hello) — no bare strings." - -[[vector]] -name = "invalid/single-quoted-string.a2ml" -expect = "reject" -class = "R0" -spec_section = "D-5" -note = "Single-quoted 'literal string' does not exist in the record dialect." - -[[vector]] -name = "invalid/native-date.a2ml" -expect = "reject" -class = "R0" -spec_section = "D-1, 4.8" -note = "Unquoted date literal — dates are quoted strings, no native date-time." - -[[vector]] -name = "invalid/hex-integer.a2ml" -expect = "reject" -class = "R0" -spec_section = "D-3, 4.3" -note = "0x/0o/0b integer bases are not part of the reduced number grammar." - -[[vector]] -name = "invalid/leading-dot-float.a2ml" -expect = "reject" -class = "R0" -spec_section = "D-3, 4.4" -note = "Leading-dot float (.5) is not valid; a float MUST have a leading digit." - -[[vector]] -name = "invalid/triple-single-quote.a2ml" -expect = "reject" -class = "R0" -spec_section = "D-5, 4.2" -note = "'''…''' multi-line literal string does not exist; only \"\"\"…\"\"\"." - -[[vector]] -name = "invalid/unterminated-string.a2ml" -expect = "reject" -class = "R0" -spec_section = "4.1" -note = "String value with no closing quote before end of line." - -[[vector]] -name = "invalid/profile-after-section.a2ml" -expect = "reject" -class = "R1" -spec_section = "5.1, 5.2" -note = "@profile declared after a section header — all declarations MUST precede sections." - -[[vector]] -name = "invalid/duplicate-key.a2ml" -expect = "reject" -class = "R1" -spec_section = "9.1, D-7" -note = "Same key twice in one table — warning at R0, error at R1." - -[[vector]] -name = "invalid/reopened-section.a2ml" -expect = "reject" -class = "R1" -spec_section = "9.2, D-7" -note = "A standard section path opened twice ([a] … [a])." - -[[vector]] -name = "invalid/unknown-directive.a2ml" -expect = "reject" -class = "R1" -spec_section = "10" -note = "A base document permits no directive but @profile; @frobnicate is rejected." - -[[vector]] -name = "invalid/state-missing-required-section.a2ml" -expect = "reject" -class = "R1" -spec_section = "9.5, 10" -note = "Declares a2ml/state but omits the required maintenance-status section." diff --git a/a2ml/tests/record-dialect/README.adoc b/a2ml/tests/record-dialect/README.adoc deleted file mode 100644 index d04a6adf6..000000000 --- a/a2ml/tests/record-dialect/README.adoc +++ /dev/null @@ -1,73 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= A2ML Record Dialect — Conformance Vectors -:icons: font -:toc: macro - -toc::[] - -This directory is the *normative test* for -link:../../RECORD-DIALECT-SPEC.adoc[the A2ML Record Dialect specification]. A -reference validator conforms to a class (R0/R1/R2, spec §1.4) if and only if it -produces the expected verdict for every vector whose required class is at or below -the class under test. - -== Layout - -[cols="1,3",options="header"] -|=== -| Path | Contents - -| `vectors/valid/` -| Documents that MUST parse (R0) and, where they declare a profile, MUST validate - (R1) against the definitions in `a2ml/profiles/`. - -| `vectors/invalid/` -| Documents that MUST be rejected. Each is paired in `MANIFEST.a2ml` with the spec - clause it violates and the lowest class (R0/R1/R2) at which rejection is - REQUIRED. - -| `MANIFEST.a2ml` -| The machine-readable index of every vector: expected verdict, required class, - and the spec section exercised. It is itself a record-dialect document, so it - doubles as a valid vector (the suite dogfoods the dialect). -|=== - -== Expected-verdict model - -Each vector has an `expect` of `parse`, `validate`, or `reject`: - -* `parse` — R0 MUST build a record tree without error. (Profile-free or - profile-inert.) -* `validate` — R0 MUST parse AND R1 MUST validate against the declared profile. -* `reject` — the validator MUST error at or below `class`; a validator at a higher - class MUST also reject (obligations accumulate downward, spec §1.4). - -A vector marked `reject` at `class = R0` is a *syntax* error every conforming -implementation catches. A vector marked `reject` at `class = R1` is a -*well-formedness / profile* error that a pure R0 reader is permitted to accept -(with a warning where the spec says so). - -== Running the suite (once a reference validator exists) - -The validator is not yet wired (spec Appendix D). The intended contract, so the -suite is runnable the moment the reader lands: - -[source,sh] ----- -# For each valid vector: exit 0, tree emitted. -# For each invalid vector: non-zero exit, error cites the manifest's clause. -a2ml validate --dialect record --class R1 vectors/valid/.a2ml # → 0 -a2ml validate --dialect record --class R1 vectors/invalid/.a2ml # → non-0 ----- - -The CI job that drives this MUST fail loudly on any mismatch — never the -`|| echo SKIP` pattern. A green run of this suite is the precondition (spec §15, -Appendix D) for moving the specification from `Draft` to `Stable`. - -== Adding a vector - -. Add the `.a2ml` file under `valid/` or `invalid/`. -. Add a matching `[[vector]]` block to `MANIFEST.a2ml` with `name`, `expect`, - `class`, `spec_section`, and a one-line `note`. -. Keep each vector minimal — it should exercise exactly one clause so a failure - localises to one rule. diff --git a/a2ml/tests/record-dialect/vectors/invalid/bare-string-value.a2ml b/a2ml/tests/record-dialect/vectors/invalid/bare-string-value.a2ml deleted file mode 100644 index 340a6ce97..000000000 --- a/a2ml/tests/record-dialect/vectors/invalid/bare-string-value.a2ml +++ /dev/null @@ -1,4 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# INVALID (R0): bare (unquoted) string value. Spec 4.8 / D-2 — no bare strings. -[metadata] -name = hello diff --git a/a2ml/tests/record-dialect/vectors/invalid/duplicate-key.a2ml b/a2ml/tests/record-dialect/vectors/invalid/duplicate-key.a2ml deleted file mode 100644 index faee24b25..000000000 --- a/a2ml/tests/record-dialect/vectors/invalid/duplicate-key.a2ml +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# INVALID (R1): duplicate key in one table. Spec 9.1 / D-7 — warn at R0, error at R1. -[metadata] -version = "1.0.0" -version = "2.0.0" diff --git a/a2ml/tests/record-dialect/vectors/invalid/hex-integer.a2ml b/a2ml/tests/record-dialect/vectors/invalid/hex-integer.a2ml deleted file mode 100644 index dac19d0c7..000000000 --- a/a2ml/tests/record-dialect/vectors/invalid/hex-integer.a2ml +++ /dev/null @@ -1,4 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# INVALID (R0): hexadecimal integer. Spec D-3 / 4.3 — decimal only, no 0x/0o/0b. -[metadata] -mask = 0xFF diff --git a/a2ml/tests/record-dialect/vectors/invalid/leading-dot-float.a2ml b/a2ml/tests/record-dialect/vectors/invalid/leading-dot-float.a2ml deleted file mode 100644 index 22616a714..000000000 --- a/a2ml/tests/record-dialect/vectors/invalid/leading-dot-float.a2ml +++ /dev/null @@ -1,4 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# INVALID (R0): leading-dot float. Spec D-3 / 4.4 — a float MUST have a leading digit. -[metadata] -ratio = .5 diff --git a/a2ml/tests/record-dialect/vectors/invalid/native-date.a2ml b/a2ml/tests/record-dialect/vectors/invalid/native-date.a2ml deleted file mode 100644 index ec3a8ccd7..000000000 --- a/a2ml/tests/record-dialect/vectors/invalid/native-date.a2ml +++ /dev/null @@ -1,4 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# INVALID (R0): unquoted native date literal. Spec D-1 / 4.8 — dates are quoted strings. -[metadata] -last-updated = 2026-05-15 diff --git a/a2ml/tests/record-dialect/vectors/invalid/profile-after-section.a2ml b/a2ml/tests/record-dialect/vectors/invalid/profile-after-section.a2ml deleted file mode 100644 index 03b4c11f6..000000000 --- a/a2ml/tests/record-dialect/vectors/invalid/profile-after-section.a2ml +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# INVALID (R1): @profile declared after a section header. Spec 5.1 / 5.2 — -# all profile declarations MUST precede the first section. -[metadata] -name = "example" - -@profile(id=a2ml/state) diff --git a/a2ml/tests/record-dialect/vectors/invalid/reopened-section.a2ml b/a2ml/tests/record-dialect/vectors/invalid/reopened-section.a2ml deleted file mode 100644 index aab51fa07..000000000 --- a/a2ml/tests/record-dialect/vectors/invalid/reopened-section.a2ml +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# INVALID (R1): a standard section path opened twice. Spec 9.2 / D-7. -[metadata] -name = "example" - -[position] -phase = "maintenance" - -[metadata] -version = "1.0.0" diff --git a/a2ml/tests/record-dialect/vectors/invalid/single-quoted-string.a2ml b/a2ml/tests/record-dialect/vectors/invalid/single-quoted-string.a2ml deleted file mode 100644 index 7f1dfc577..000000000 --- a/a2ml/tests/record-dialect/vectors/invalid/single-quoted-string.a2ml +++ /dev/null @@ -1,4 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# INVALID (R0): single-quoted 'literal string'. Spec D-5 — only double quotes. -[metadata] -name = 'hello' diff --git a/a2ml/tests/record-dialect/vectors/invalid/state-missing-required-section.a2ml b/a2ml/tests/record-dialect/vectors/invalid/state-missing-required-section.a2ml deleted file mode 100644 index 4e7b7a117..000000000 --- a/a2ml/tests/record-dialect/vectors/invalid/state-missing-required-section.a2ml +++ /dev/null @@ -1,12 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# INVALID (R1): declares a2ml/state but omits the required maintenance-status -# section. Spec 9.5 / 10 — required_sections = [metadata, position, maintenance-status]. -@profile(id=a2ml/state) - -[metadata] -project = "example" -version = "1.0.0" - -[position] -phase = "maintenance" -maturity = "production" diff --git a/a2ml/tests/record-dialect/vectors/invalid/triple-single-quote.a2ml b/a2ml/tests/record-dialect/vectors/invalid/triple-single-quote.a2ml deleted file mode 100644 index 08b8ea283..000000000 --- a/a2ml/tests/record-dialect/vectors/invalid/triple-single-quote.a2ml +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# INVALID (R0): triple-single-quoted string. Spec D-5 / 4.2 — only """...""" exists. -[metadata] -blurb = '''hello -world''' diff --git a/a2ml/tests/record-dialect/vectors/invalid/unknown-directive.a2ml b/a2ml/tests/record-dialect/vectors/invalid/unknown-directive.a2ml deleted file mode 100644 index 3137872da..000000000 --- a/a2ml/tests/record-dialect/vectors/invalid/unknown-directive.a2ml +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# INVALID (R1): a base document permits no directive but @profile. Spec 10 — -# allowed_directives is closed [ profile ] unless a profile widens it. -@frobnicate(id=nope) - -[metadata] -name = "example" diff --git a/a2ml/tests/record-dialect/vectors/invalid/unterminated-string.a2ml b/a2ml/tests/record-dialect/vectors/invalid/unterminated-string.a2ml deleted file mode 100644 index b9daec3fa..000000000 --- a/a2ml/tests/record-dialect/vectors/invalid/unterminated-string.a2ml +++ /dev/null @@ -1,4 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# INVALID (R0): string value with no closing quote. Spec 4.1. -[metadata] -name = "unterminated diff --git a/a2ml/tests/record-dialect/vectors/valid/all-scalar-forms.a2ml b/a2ml/tests/record-dialect/vectors/valid/all-scalar-forms.a2ml deleted file mode 100644 index 7a7b3206e..000000000 --- a/a2ml/tests/record-dialect/vectors/valid/all-scalar-forms.a2ml +++ /dev/null @@ -1,14 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Exercises every scalar value form (spec 4.1-4.5). -[scalars] -a-string = "hello world" -a-multiline = """line one -line two""" -an-integer = 42 -a-negative = -17 -a-grouped-integer = 1_000_000 -a-float = 3.14 -a-float-exp = 6.022e23 -a-signed-float = -1.5e-3 -a-true = true -a-false = false diff --git a/a2ml/tests/record-dialect/vectors/valid/array-of-tables.a2ml b/a2ml/tests/record-dialect/vectors/valid/array-of-tables.a2ml deleted file mode 100644 index 5ac65eabf..000000000 --- a/a2ml/tests/record-dialect/vectors/valid/array-of-tables.a2ml +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Repeated [[header]] builds an ordered array of tables (spec 5.3, 6). -[[vector]] -name = "first" -order = 1 - -[[vector]] -name = "second" -order = 2 - -[[vector]] -name = "third" -order = 3 diff --git a/a2ml/tests/record-dialect/vectors/valid/arrays-and-inline-tables.a2ml b/a2ml/tests/record-dialect/vectors/valid/arrays-and-inline-tables.a2ml deleted file mode 100644 index dc9b0889a..000000000 --- a/a2ml/tests/record-dialect/vectors/valid/arrays-and-inline-tables.a2ml +++ /dev/null @@ -1,18 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Multi-line array with interior comment + trailing comma (4.6); array of inline tables (4.7). -[route-to-mvp] -milestones = [ - "alpha", - "beta", - # trailing comma below is permitted - "ga", -] - -[architecture-decisions] -decisions = [ - { id = "ADR-001", status = "accepted", ref = "CODEOWNERS-POLICY.adoc" }, - { id = "ADR-002", status = "proposed" }, -] - -[nested] -matrix = [ [ 1, 2 ], [ 3, 4 ] ] diff --git a/a2ml/tests/record-dialect/vectors/valid/comments-and-preamble.a2ml b/a2ml/tests/record-dialect/vectors/valid/comments-and-preamble.a2ml deleted file mode 100644 index 1088ea410..000000000 --- a/a2ml/tests/record-dialect/vectors/valid/comments-and-preamble.a2ml +++ /dev/null @@ -1,9 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# comments-and-preamble.a2ml — preamble comments plus trailing comments (spec 2.3, 5.1). - -[position] # trailing comment after a section header -phase = "maintenance" # design | implementation | testing | maintenance | archived -maturity = "production" # experimental | alpha | beta | production | lts -note = "a # inside a string is literal, not a comment" diff --git a/a2ml/tests/record-dialect/vectors/valid/dotted-sections.a2ml b/a2ml/tests/record-dialect/vectors/valid/dotted-sections.a2ml deleted file mode 100644 index 989f68d0f..000000000 --- a/a2ml/tests/record-dialect/vectors/valid/dotted-sections.a2ml +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Dotted key-paths, uppercase segments, depth up to four (spec 5.4). -[categories] -count = 2 - -[categories.CHS] -label = "cohesion" - -[categories.CHS.metrics.primary] -weight = 0.7 diff --git a/a2ml/tests/record-dialect/vectors/valid/minimal.a2ml b/a2ml/tests/record-dialect/vectors/valid/minimal.a2ml deleted file mode 100644 index 77c3694d7..000000000 --- a/a2ml/tests/record-dialect/vectors/valid/minimal.a2ml +++ /dev/null @@ -1,3 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -[metadata] -name = "minimal" diff --git a/a2ml/tests/record-dialect/vectors/valid/quoted-keys.a2ml b/a2ml/tests/record-dialect/vectors/valid/quoted-keys.a2ml deleted file mode 100644 index daebb2787..000000000 --- a/a2ml/tests/record-dialect/vectors/valid/quoted-keys.a2ml +++ /dev/null @@ -1,6 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Quoted keys required when the key is not a bare-key (spec 5.5). Corpus: "--browser". -[flag-aliases] -"--browser" = "--auto" -"--web" = "--auto" -plain-key = "ok" diff --git a/a2ml/tests/record-dialect/vectors/valid/state-profile.a2ml b/a2ml/tests/record-dialect/vectors/valid/state-profile.a2ml deleted file mode 100644 index 1199a81b3..000000000 --- a/a2ml/tests/record-dialect/vectors/valid/state-profile.a2ml +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Declares the a2ml/state profile and carries its three required sections -# (metadata, position, maintenance-status) — MUST validate at R1 (spec 10, 9.5). -@profile(id=a2ml/state) - -[metadata] -project = "example" -version = "1.0.0" -last-updated = "2026-07-03" - -[position] -phase = "maintenance" -maturity = "production" - -[maintenance-status] -last-run-utc = "2026-07-03T00:00:00Z" -last-result = "pass" diff --git a/a2ml/tests/vectors/directive-attrs.a2ml b/a2ml/tests/vectors/directive-attrs.a2ml deleted file mode 100644 index 3aa2b5e4a..000000000 --- a/a2ml/tests/vectors/directive-attrs.a2ml +++ /dev/null @@ -1,3 +0,0 @@ -@fig(id=fig:one,ref=sec:intro): -Caption: **Bold** caption. -@end diff --git a/a2ml/tests/vectors/directive-attrs.expected b/a2ml/tests/vectors/directive-attrs.expected deleted file mode 100644 index d65bd9798..000000000 --- a/a2ml/tests/vectors/directive-attrs.expected +++ /dev/null @@ -1,5 +0,0 @@ -EXPECT: parse ok in lax; error in checked/attested -ERROR: unresolved reference "sec:intro" -MODE: lax|checked|attested -STRUCTURE: -- Directive fig with attrs id/ref diff --git a/a2ml/tests/vectors/directive-attrs.html.expected b/a2ml/tests/vectors/directive-attrs.html.expected deleted file mode 100644 index 90c994ecd..000000000 --- a/a2ml/tests/vectors/directive-attrs.html.expected +++ /dev/null @@ -1 +0,0 @@ -

      Caption: Bold caption.

      diff --git a/a2ml/tests/vectors/inline-edges.a2ml b/a2ml/tests/vectors/inline-edges.a2ml deleted file mode 100644 index e56cf4757..000000000 --- a/a2ml/tests/vectors/inline-edges.a2ml +++ /dev/null @@ -1,3 +0,0 @@ -# Inline Edges - -**bold**then*italic*and[a](b) diff --git a/a2ml/tests/vectors/inline-edges.expected b/a2ml/tests/vectors/inline-edges.expected deleted file mode 100644 index c25f33a1d..000000000 --- a/a2ml/tests/vectors/inline-edges.expected +++ /dev/null @@ -1,5 +0,0 @@ -EXPECT: parse ok -MODE: lax|checked|attested -STRUCTURE: -- Heading -- Paragraph with inline markup diff --git a/a2ml/tests/vectors/inline-edges.html.expected b/a2ml/tests/vectors/inline-edges.html.expected deleted file mode 100644 index c23b0481d..000000000 --- a/a2ml/tests/vectors/inline-edges.html.expected +++ /dev/null @@ -1,2 +0,0 @@ -

      Inline Edges

      -

      boldthenitalicanda

      diff --git a/a2ml/tests/vectors/inline-formatting.a2ml b/a2ml/tests/vectors/inline-formatting.a2ml deleted file mode 100644 index e81890328..000000000 --- a/a2ml/tests/vectors/inline-formatting.a2ml +++ /dev/null @@ -1,3 +0,0 @@ -# Inline Formatting - -This is **bold** and *italic* with a [link](https://example.com). diff --git a/a2ml/tests/vectors/inline-formatting.expected b/a2ml/tests/vectors/inline-formatting.expected deleted file mode 100644 index 5e7baecae..000000000 --- a/a2ml/tests/vectors/inline-formatting.expected +++ /dev/null @@ -1,5 +0,0 @@ -EXPECT: parse ok -MODE: lax|checked|attested -STRUCTURE: -- Heading: "Inline Formatting" -- Paragraph with inline markup diff --git a/a2ml/tests/vectors/inline-formatting.html.expected b/a2ml/tests/vectors/inline-formatting.html.expected deleted file mode 100644 index f534682f8..000000000 --- a/a2ml/tests/vectors/inline-formatting.html.expected +++ /dev/null @@ -1,2 +0,0 @@ -

      Inline Formatting

      -

      This is bold and italic with a link.

      diff --git a/a2ml/tests/vectors/module0-basic.a2ml b/a2ml/tests/vectors/module0-basic.a2ml deleted file mode 100644 index 2ecdbe38c..000000000 --- a/a2ml/tests/vectors/module0-basic.a2ml +++ /dev/null @@ -1,13 +0,0 @@ -# A2ML Overview - -@abstract: -A2ML is a typed, attested markup format. -@end - -## Claims -- Required sections must exist. -- References must resolve. - -@refs: -[1] Attested Markup Language Spec (draft) -@end diff --git a/a2ml/tests/vectors/module0-basic.expected b/a2ml/tests/vectors/module0-basic.expected deleted file mode 100644 index 66bd96aaa..000000000 --- a/a2ml/tests/vectors/module0-basic.expected +++ /dev/null @@ -1,7 +0,0 @@ -EXPECT: parse ok -MODE: lax|checked|attested -STRUCTURE: -- Heading: "A2ML Overview" -- Abstract block present -- Section: "Claims" with 2 list items -- Refs block present diff --git a/a2ml/tests/vectors/module0-basic.html.expected b/a2ml/tests/vectors/module0-basic.html.expected deleted file mode 100644 index 8334beb1b..000000000 --- a/a2ml/tests/vectors/module0-basic.html.expected +++ /dev/null @@ -1,5 +0,0 @@ -

      A2ML Overview

      -

      A2ML is a typed, attested markup format.

      -

      Claims

      -
      • Required sections must exist.
      • References must resolve.
      -

      [1] Attested Markup Language Spec (draft)

      diff --git a/a2ml/tests/vectors/opaque-roundtrip.a2ml b/a2ml/tests/vectors/opaque-roundtrip.a2ml deleted file mode 100644 index e7ceadf05..000000000 --- a/a2ml/tests/vectors/opaque-roundtrip.a2ml +++ /dev/null @@ -1,8 +0,0 @@ -# Opaque Roundtrip - -@opaque(lang="python"): -``` -def hello(): - print("Hello, world") -``` -@end diff --git a/a2ml/tests/vectors/opaque-roundtrip.expected b/a2ml/tests/vectors/opaque-roundtrip.expected deleted file mode 100644 index c64de5dbe..000000000 --- a/a2ml/tests/vectors/opaque-roundtrip.expected +++ /dev/null @@ -1,5 +0,0 @@ -EXPECT: parse ok -MODE: lax|checked|attested -STRUCTURE: -- Opaque block present -- Payload preserved byte-for-byte diff --git a/a2ml/tests/vectors/opaque-roundtrip.html.expected b/a2ml/tests/vectors/opaque-roundtrip.html.expected deleted file mode 100644 index 2bd2fa817..000000000 --- a/a2ml/tests/vectors/opaque-roundtrip.html.expected +++ /dev/null @@ -1,5 +0,0 @@ -

      Opaque Roundtrip

      -

      ``` -def hello(): - print("Hello, world") -```

      diff --git a/a2ml/tests/vectors/refs-basic.a2ml b/a2ml/tests/vectors/refs-basic.a2ml deleted file mode 100644 index 6f03548e2..000000000 --- a/a2ml/tests/vectors/refs-basic.a2ml +++ /dev/null @@ -1,6 +0,0 @@ -# References - -@refs: -[1] First reference -[2] Second reference -@end diff --git a/a2ml/tests/vectors/refs-basic.expected b/a2ml/tests/vectors/refs-basic.expected deleted file mode 100644 index ddbe6b27e..000000000 --- a/a2ml/tests/vectors/refs-basic.expected +++ /dev/null @@ -1,5 +0,0 @@ -EXPECT: parse ok -MODE: lax|checked|attested -STRUCTURE: -- Heading: "References" -- Directive refs diff --git a/a2ml/tests/vectors/refs-basic.html.expected b/a2ml/tests/vectors/refs-basic.html.expected deleted file mode 100644 index fb31f5852..000000000 --- a/a2ml/tests/vectors/refs-basic.html.expected +++ /dev/null @@ -1,3 +0,0 @@ -

      References

      -

      [1] First reference

      -

      [2] Second reference

      diff --git a/a2ml/tests/vectors/refs-missing.a2ml b/a2ml/tests/vectors/refs-missing.a2ml deleted file mode 100644 index 2f6737b4b..000000000 --- a/a2ml/tests/vectors/refs-missing.a2ml +++ /dev/null @@ -1,5 +0,0 @@ -# Missing Reference - -@fig(id=fig:one, ref=sec:missing): -Caption: Missing section ref. -@end diff --git a/a2ml/tests/vectors/refs-missing.expected b/a2ml/tests/vectors/refs-missing.expected deleted file mode 100644 index 525647635..000000000 --- a/a2ml/tests/vectors/refs-missing.expected +++ /dev/null @@ -1,2 +0,0 @@ -EXPECT: parse ok in lax; error in checked/attested -ERROR: unresolved reference "sec:missing" diff --git a/a2ml/tests/vectors/table-basic.a2ml b/a2ml/tests/vectors/table-basic.a2ml deleted file mode 100644 index f7dd77052..000000000 --- a/a2ml/tests/vectors/table-basic.a2ml +++ /dev/null @@ -1,3 +0,0 @@ -@table(id=tbl:one): -Caption: A **bold** caption. -@end diff --git a/a2ml/tests/vectors/table-basic.expected b/a2ml/tests/vectors/table-basic.expected deleted file mode 100644 index 6d0397dd3..000000000 --- a/a2ml/tests/vectors/table-basic.expected +++ /dev/null @@ -1,4 +0,0 @@ -EXPECT: parse ok -MODE: lax|checked|attested -STRUCTURE: -- Directive table with attrs id diff --git a/a2ml/tests/vectors/table-basic.html.expected b/a2ml/tests/vectors/table-basic.html.expected deleted file mode 100644 index b1c7d61fd..000000000 --- a/a2ml/tests/vectors/table-basic.html.expected +++ /dev/null @@ -1 +0,0 @@ -

      Caption: A bold caption.

      diff --git a/lol/.claude/CLAUDE.md b/lol/.claude/CLAUDE.md deleted file mode 100644 index 24cb51142..000000000 --- a/lol/.claude/CLAUDE.md +++ /dev/null @@ -1,83 +0,0 @@ -## Machine-Readable Artefacts - -The following files in `.machine_readable/` contain structured project metadata: - -- `STATE.scm` - Current project state and progress -- `META.scm` - Architecture decisions and development practices -- `ECOSYSTEM.scm` - Position in the ecosystem and related projects -- `AGENTIC.scm` - AI agent interaction patterns -- `NEUROSYM.scm` - Neurosymbolic integration config -- `PLAYBOOK.scm` - Operational runbook - ---- - -# CLAUDE.md - AI Assistant Instructions - -## Language Policy (Hyperpolymath Standard) - -### ALLOWED Languages & Tools - -| Language/Tool | Use Case | Notes | -|---------------|----------|-------| -| **ReScript** | Primary application code | Compiles to JS, type-safe | -| **Bun** | JS runtime & package management (tier 1) | Default for all new work. Runs compiled ESM/JS directly — no bundler step. Uses an npm-compatible `package.json` plus `bun.lock` — both are expected, not anti-patterns. | -| **Rust** | Performance-critical, systems, WASM | Preferred for CLI tools | -| **Tauri 2.0+** | Mobile apps (iOS/Android) | Rust backend + web UI | -| **Dioxus** | Mobile apps (native UI) | Pure Rust, React-like | -| **Gleam** | Backend services | Runs on BEAM or compiles to JS | -| **Bash/POSIX Shell** | Scripts, automation | Keep minimal | -| **JavaScript** | Only where AffineScript cannot | MCP protocol glue, Bun APIs | -| **Nickel** | Configuration language | For complex configs | -| **Guile Scheme** | State/meta files | STATE.scm, META.scm, ECOSYSTEM.scm | -| **Julia** | Batch scripts, data processing | Per RSR | -| **OCaml** | AffineScript compiler | Language-specific | -| **Ada** | Safety-critical systems | Where required | - -### BANNED - Do Not Use - -| Banned | Replacement | -|--------|-------------| -| TypeScript | ReScript | -| Deno | Bun | -| Node.js | Bun | -| npm | Bun | -| pnpm/yarn | Bun | -| Go | Rust | -| Python | Julia/Rust/AffineScript | -| Java/Kotlin | Rust/Tauri/Dioxus | -| Swift | Tauri/Dioxus | -| React Native | Tauri/Dioxus | -| Flutter/Dart | Tauri/Dioxus | - -### Mobile Development - -**No exceptions for Kotlin/Swift** - use Rust-first approach: - -1. **Tauri 2.0+** - Web UI (ReScript) + Rust backend, MIT/Apache-2.0 -2. **Dioxus** - Pure Rust native UI, MIT/Apache-2.0 - -Both are FOSS with independent governance (no Big Tech). - -### Enforcement Rules - -1. **No new TypeScript files** - Convert existing TS to AffineScript -2. **Use `package.json` + `bun.lock` for JS runtime deps** - Bun is npm-compatible; a manifest is REQUIRED -3. **`bun install --production` for production deps** - resolved from `package.json`, pinned via `bun.lock` -4. **No Go code** - Use Rust instead -5. **No Python anywhere** - Use Julia for data/batch, Rust for systems, ReScript for apps -6. **No Kotlin/Swift for mobile** - Use Tauri 2.0+ or Dioxus - -### Package Management - -- **Primary**: Guix (guix.scm) -- **Fallback**: Nix (flake.nix) -- **JS deps**: Bun (`package.json` + `bun.lock`). Declare tooling as a devDependency and run `bunx --no-install --bun ` — a bare `bunx ` can fetch an unpinned package and may start Node via its shebang. - -### Security Requirements - -- No MD5/SHA1 for security (use SHA256+) -- HTTPS only (no HTTP URLs) -- No hardcoded secrets -- SHA-pinned dependencies -- SPDX license headers on all files - diff --git a/lol/.editorconfig b/lol/.editorconfig deleted file mode 100644 index 8df04e399..000000000 --- a/lol/.editorconfig +++ /dev/null @@ -1,43 +0,0 @@ -# SPDX-License-Identifier: MIT AND LicenseRef-Palimpsest-0.8 -# SPDX-FileCopyrightText: 2024-2025 Ehsaneddin Asgari and Contributors - -# EditorConfig for 1000Langs -# https://editorconfig.org - -root = true - -[*] -charset = utf-8 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true -indent_style = space -indent_size = 2 - -[*.res] -indent_size = 2 - -[*.{js,mjs,ts}] -indent_size = 2 - -[*.{json,yaml,yml,toml}] -indent_size = 2 - -[*.ncl] -indent_size = 2 - -[*.{adoc,md}] -trim_trailing_whitespace = false - -[Makefile] -indent_style = tab - -[justfile] -indent_style = space -indent_size = 4 - -[*.agda] -indent_size = 2 - -[*.{v,lean}] -indent_size = 2 diff --git a/lol/.gitattributes b/lol/.gitattributes deleted file mode 100644 index e860a85c1..000000000 --- a/lol/.gitattributes +++ /dev/null @@ -1,54 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# RSR-compliant .gitattributes - -* text=auto eol=lf - -# Source -*.rs text eol=lf diff=rust -*.ex text eol=lf diff=elixir -*.exs text eol=lf diff=elixir -*.jl text eol=lf -*.res text eol=lf -*.resi text eol=lf -*.ada text eol=lf diff=ada -*.adb text eol=lf diff=ada -*.ads text eol=lf diff=ada -*.hs text eol=lf -*.chpl text eol=lf -*.scm text eol=lf -*.ncl text eol=lf -*.nix text eol=lf - -# Docs -*.md text eol=lf diff=markdown -*.adoc text eol=lf -*.txt text eol=lf - -# Data -*.json text eol=lf -*.yaml text eol=lf -*.yml text eol=lf -*.toml text eol=lf - -# Config -.gitignore text eol=lf -.gitattributes text eol=lf -justfile text eol=lf -Makefile text eol=lf -Containerfile text eol=lf - -# Scripts -*.sh text eol=lf - -# Binary -*.png binary -*.jpg binary -*.gif binary -*.pdf binary -*.woff2 binary -*.zip binary -*.gz binary - -# Lock files -Cargo.lock text eol=lf -diff -flake.lock text eol=lf -diff diff --git a/lol/.github/FUNDING.yml b/lol/.github/FUNDING.yml deleted file mode 100644 index 688a442ca..000000000 --- a/lol/.github/FUNDING.yml +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Funding platforms for hyperpolymath projects -# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository - -github: hyperpolymath -ko_fi: hyperpolymath -liberapay: hyperpolymath diff --git a/lol/.github/ISSUE_TEMPLATE/bug_report.md b/lol/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 987aab6bc..000000000 --- a/lol/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: "[Bug]: " -labels: 'bug, priority: unset, triage' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/lol/.github/ISSUE_TEMPLATE/custom.md b/lol/.github/ISSUE_TEMPLATE/custom.md deleted file mode 100644 index 48d5f81fa..000000000 --- a/lol/.github/ISSUE_TEMPLATE/custom.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: Custom issue template -about: Describe this issue template's purpose here. -title: '' -labels: '' -assignees: '' - ---- - - diff --git a/lol/.github/ISSUE_TEMPLATE/documentation.md b/lol/.github/ISSUE_TEMPLATE/documentation.md deleted file mode 100644 index 4fcb9f9fa..000000000 --- a/lol/.github/ISSUE_TEMPLATE/documentation.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -name: Documentation -about: Report unclear, missing, or incorrect documentation -title: "[DOCS]: " -labels: 'documentation, priority: unset, triage' -assignees: '' - ---- - -name: Documentation -description: Report unclear, missing, or incorrect documentation -title: "[Docs]: " -labels: ["documentation", "triage"] -body: - - type: markdown - attributes: - value: | - Help us improve our documentation by reporting issues or gaps. - - - type: dropdown - id: type - attributes: - label: Documentation issue type - options: - - Missing (documentation doesn't exist) - - Incorrect (information is wrong) - - Unclear (confusing or hard to follow) - - Outdated (no longer accurate) - - Typo or grammar - validations: - required: true - - - type: input - id: location - attributes: - label: Location - description: Where is this documentation? (URL, file path, or section name) - placeholder: README.adoc, section "Installation" - validations: - required: true - - - type: textarea - id: description - attributes: - label: Description - description: What's the problem with the current documentation? - placeholder: Describe what's wrong or missing - validations: - required: true - - - type: textarea - id: suggestion - attributes: - label: Suggested improvement - description: How should it be fixed or improved? - placeholder: The documentation should say... - validations: - required: false - - - type: checkboxes - id: contribution - attributes: - label: Contribution - options: - - label: I would be willing to submit a PR to fix this - required: false diff --git a/lol/.github/ISSUE_TEMPLATE/feature_request.md b/lol/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 3e8fa7e7e..000000000 --- a/lol/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: 'enhancement, priority: unset, triage' -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/lol/.github/ISSUE_TEMPLATE/question.md b/lol/.github/ISSUE_TEMPLATE/question.md deleted file mode 100644 index fd0e2a5cc..000000000 --- a/lol/.github/ISSUE_TEMPLATE/question.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -name: Question -about: Ask a question about usage or behaviour -title: "[QUESTION]: " -labels: question, triage -assignees: '' - ---- - -name: Question -description: Ask a question about usage or behaviour -title: "[Question]: " -labels: ["question", "triage"] -body: - - type: markdown - attributes: - value: | - Have a question? You can also ask in [Discussions](../discussions) for broader conversations. - - - type: textarea - id: question - attributes: - label: Your question - description: What would you like to know? - placeholder: How do I...? - validations: - required: true - - - type: textarea - id: context - attributes: - label: Context - description: Any relevant context that helps us answer your question - placeholder: I'm trying to achieve X and I've tried Y... - validations: - required: false - - - type: textarea - id: research - attributes: - label: What I've already tried - description: What have you already looked at or attempted? - placeholder: I've read the README and searched issues but... - validations: - required: false - - - type: checkboxes - id: checked - attributes: - label: Pre-submission checklist - options: - - label: I have searched existing issues and discussions - required: true - - label: I have read the documentation - required: true diff --git a/lol/.github/dependabot.yml b/lol/.github/dependabot.yml deleted file mode 100644 index 63cbecec5..000000000 --- a/lol/.github/dependabot.yml +++ /dev/null @@ -1,23 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "weekly" - groups: - actions: - patterns: - - "*" - - package-ecosystem: "nix" - directory: "/" - schedule: - interval: "weekly" - - package-ecosystem: "npm" - directory: "/" - schedule: - interval: "weekly" - - package-ecosystem: "pip" - directory: "/" - schedule: - interval: "weekly" diff --git a/lol/.github/workflows/codeql.yml b/lol/.github/workflows/codeql.yml deleted file mode 100644 index 261b34bb2..000000000 --- a/lol/.github/workflows/codeql.yml +++ /dev/null @@ -1,23 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: CodeQL Security Analysis - -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] - schedule: - - cron: '0 6 * * 1' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: false - -permissions: - contents: read - -jobs: - analyze-js: - uses: ../../.github/workflows/codeql-reusable.yml - with: - language: javascript-typescript diff --git a/lol/.github/workflows/comprehensive-quality.yml b/lol/.github/workflows/comprehensive-quality.yml deleted file mode 100644 index 5f3b479d7..000000000 --- a/lol/.github/workflows/comprehensive-quality.yml +++ /dev/null @@ -1,225 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Comprehensive Quality Gates -on: - push: - branches: [main, master] - pull_request: - schedule: - - cron: '0 5 * * *' - -permissions: read-all - -jobs: - # DEPENDABILITY - Stability and reliability - dependability: - runs-on: ubuntu-latest - timeout-minutes: 20 - permissions: - contents: read - steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - name: Check test coverage - run: | - echo "Checking for test files..." - TESTS=$(find . -name "*_test.*" -o -name "test_*" -o -name "*_spec.*" -o -name "*.test.*" | wc -l) - echo "Found $TESTS test files" - if [ "$TESTS" -lt 1 ]; then - echo "::warning::No test files detected" - fi - - name: Check error handling - run: | - # Check for proper error handling patterns - PANICS=$(grep -rE "panic!|unwrap\(\)|expect\(" --include="*.rs" . 2>/dev/null | wc -l || echo "0") - echo "Rust panics/unwraps: $PANICS" - - # SECURITY - Multi-layer security scanning - security: - runs-on: ubuntu-latest - timeout-minutes: 20 - permissions: - contents: read - steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - name: Secret scanning - uses: trufflesecurity/trufflehog@8a8ef8526528d8a4ff3e2c90be08e25ef8efbd9b # v3.88.3 - continue-on-error: true - - name: Dependency vulnerabilities - run: | - if [ -f "Cargo.toml" ]; then - cargo install cargo-audit && cargo audit || true - fi - if [ -f "requirements.txt" ]; then - pip install safety && safety check -r requirements.txt || true - fi - - name: SAST scan - uses: returntocorp/semgrep-action@v1 - continue-on-error: true - - # INTEROPERABILITY - API and format compatibility - interoperability: - runs-on: ubuntu-latest - timeout-minutes: 20 - permissions: - contents: read - steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - name: Check API specs - run: | - if [ -f "openapi.yaml" ] || [ -f "openapi.json" ]; then - echo "✅ OpenAPI spec found" - fi - if [ -f "schema.graphql" ]; then - echo "✅ GraphQL schema found" - fi - - name: Validate JSON/YAML schemas - run: | - find . -name "*.json" -exec python3 -m json.tool {} \; 2>/dev/null | head -5 || true - - # VALIDATION - Input/output validation - validation: - runs-on: ubuntu-latest - timeout-minutes: 20 - permissions: - contents: read - steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - name: Check for validation patterns - run: | - VALIDATION=$(grep -rE "validate|sanitize|Schema|Validator" --include="*.rs" --include="*.res" --include="*.ex" . 2>/dev/null | wc -l || echo "0") - echo "Validation patterns found: $VALIDATION" - - # ATTESTATION - Supply chain integrity (SLSA) - attestation: - runs-on: ubuntu-latest - timeout-minutes: 30 - permissions: - id-token: write - contents: read - attestations: write - steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - name: Generate SBOM - run: | - echo "SBOM generation would run here" - # For Rust: cargo-sbom - # For Node: npm sbom - - name: Check signatures - run: | - if [ -f "CHECKSUMS.txt" ] || [ -f "SHA256SUMS" ]; then - echo "✅ Checksums file present" - fi - - # VERIFICATION - Formal methods where applicable - verification: - runs-on: ubuntu-latest - timeout-minutes: 20 - permissions: - contents: read - steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - name: Check SPARK proofs - run: | - if find . -name "*.ads" | grep -q .; then - echo "Ada/SPARK files found - formal verification applicable" - fi - - name: Type coverage - run: | - if [ -f "rescript.json" ]; then - echo "ReScript provides 100% type coverage" - fi - - # FUNCTIONALITY - Feature completeness - functionality: - runs-on: ubuntu-latest - timeout-minutes: 20 - permissions: - contents: read - steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - name: Check TODOs and FIXMEs - run: | - echo "=== Incomplete items ===" - grep -rn "TODO\|FIXME\|UNIMPLEMENTED\|unimplemented!" . 2>/dev/null | head -20 || echo "None" - - name: Check deprecated usage - run: | - grep -rn "deprecated\|DEPRECATED" . 2>/dev/null | head -10 || echo "No deprecations" - - # PERFORMANCE - Benchmarks and profiling - performance: - runs-on: ubuntu-latest - timeout-minutes: 20 - permissions: - contents: read - steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - name: Check for benchmarks - run: | - BENCHES=$(find . -name "*bench*" -o -name "*perf*" | wc -l) - echo "Benchmark files: $BENCHES" - - name: Binary size check (Rust) - run: | - if [ -f "Cargo.toml" ]; then - cargo build --release 2>/dev/null || true - find target/release -maxdepth 1 -type f -executable -exec ls -lh {} \; 2>/dev/null || true - fi - - # ACCESSIBILITY - A11y compliance - accessibility: - runs-on: ubuntu-latest - timeout-minutes: 20 - permissions: - contents: read - if: hashFiles('**/*.html') != '' - steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - name: HTML accessibility check - run: | - echo "Checking for a11y attributes..." - A11Y=$(grep -rE 'aria-|role=|alt=' --include="*.html" . 2>/dev/null | wc -l || echo "0") - echo "A11y attributes found: $A11Y" - - name: Lighthouse (if web project) - run: | - echo "Lighthouse would run on deployed URL" - - # LICENSE COMPLIANCE - license: - runs-on: ubuntu-latest - timeout-minutes: 20 - permissions: - contents: read - steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - name: Check license files - run: | - if [ -f "LICENSE" ] || [ -f "LICENSE.txt" ] || [ -f "LICENSE.md" ]; then - echo "✅ License file present" - head -5 LICENSE* 2>/dev/null - else - echo "::warning::No LICENSE file" - fi - - name: Check SPDX headers - run: | - SPDX=$(grep -rE "SPDX-License-Identifier" . 2>/dev/null | wc -l || echo "0") - echo "Files with SPDX headers: $SPDX" - - # DOCUMENTATION QUALITY - documentation: - runs-on: ubuntu-latest - timeout-minutes: 20 - permissions: - contents: read - steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - name: Check docs completeness - run: | - DOCS="" - [ -f "README.md" ] || [ -f "README.adoc" ] && DOCS="$DOCS README" - [ -f "CONTRIBUTING.md" ] || [ -f "CONTRIBUTING.adoc" ] && DOCS="$DOCS CONTRIBUTING" - [ -f "CHANGELOG.md" ] && DOCS="$DOCS CHANGELOG" - [ -f "SECURITY.md" ] && DOCS="$DOCS SECURITY" - [ -d "docs" ] && DOCS="$DOCS docs/" - echo "Documentation:$DOCS" - - name: Check code comments - run: | - COMMENTS=$(grep -rE "^[[:space:]]*(//|#|/\*)" --include="*.rs" --include="*.res" --include="*.py" . 2>/dev/null | wc -l || echo "0") - echo "Comment lines: $COMMENTS" diff --git a/lol/.github/workflows/governance.yml b/lol/.github/workflows/governance.yml deleted file mode 100644 index 64ce492be..000000000 --- a/lol/.github/workflows/governance.yml +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# governance.yml — single wrapper calling the shared estate governance bundle -# in hyperpolymath/standards instead of carrying per-repo copies. -# -# Replaces the per-repo governance scaffolding removed in the same commit: -# quality.yml, guix-nix-policy.yml, npm-bun-blocker.yml, ts-blocker.yml, -# security-policy.yml, rsr-antipattern.yml, wellknown-enforcement.yml, -# workflow-linter.yml -# -# Load-bearing build/security workflows stay standalone in the repo -# (rust-ci, codeql, dependabot, release, scan/mirror/pages plumbing). - -name: Governance - -on: - push: - branches: [main, master] - pull_request: - workflow_dispatch: - -permissions: - actions: read - contents: read - -jobs: - governance: - uses: ../../.github/workflows/governance-reusable.yml diff --git a/lol/.github/workflows/hypatia-scan.yml b/lol/.github/workflows/hypatia-scan.yml deleted file mode 100644 index 4bc2b3815..000000000 --- a/lol/.github/workflows/hypatia-scan.yml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Hypatia Security Scan - -on: - push: - branches: [main, master, develop] - pull_request: - branches: [main, master] - schedule: - - cron: '0 0 * * 0' - workflow_dispatch: - -permissions: - actions: read - contents: read - security-events: write - -jobs: - scan: - uses: ../../.github/workflows/hypatia-scan-reusable.yml - secrets: inherit diff --git a/lol/.github/workflows/jekyll-gh-pages.yml b/lol/.github/workflows/jekyll-gh-pages.yml deleted file mode 100644 index 1345f826a..000000000 --- a/lol/.github/workflows/jekyll-gh-pages.yml +++ /dev/null @@ -1,60 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Sample workflow for building and deploying a Jekyll site to GitHub Pages -name: Deploy Jekyll with GitHub Pages dependencies preinstalled - -on: - # Runs on pushes targeting the default branch - push: - branches: ["main"] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - # Build job - build: - runs-on: ubuntu-latest - timeout-minutes: 30 - permissions: - contents: read - pages: write - steps: - - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - name: Setup Pages - uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5.0.0 - - name: Build with Jekyll - uses: actions/jekyll-build-pages@44a6e6beabd48582f863aeeb6cb2151cc1716697 # v1.0.13 - with: - source: ./ - destination: ./_site - - name: Upload artifact - uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3.0.1 - - # Deployment job - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - timeout-minutes: 30 - permissions: - pages: write - id-token: write - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5 diff --git a/lol/.github/workflows/mirror.yml b/lol/.github/workflows/mirror.yml deleted file mode 100644 index f8cab9834..000000000 --- a/lol/.github/workflows/mirror.yml +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Mirror to Git Forges - -on: - push: - branches: [main] - workflow_dispatch: - -permissions: - contents: read - -jobs: - mirror: - uses: ../../.github/workflows/mirror-reusable.yml - secrets: inherit diff --git a/lol/.github/workflows/rescript-deno-ci.yml b/lol/.github/workflows/rescript-deno-ci.yml deleted file mode 100644 index c6c24c31a..000000000 --- a/lol/.github/workflows/rescript-deno-ci.yml +++ /dev/null @@ -1,49 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: ReScript/Deno CI -on: [push, pull_request] - -permissions: read-all - -jobs: - build: - runs-on: ubuntu-latest - timeout-minutes: 30 - permissions: - contents: read - steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: denoland/setup-deno@5e01c016a857a4dbb5afe9d0f9733cd472cba985 # v1.5.1 - with: - deno-version: v1.x - - - name: Deno lint - run: deno lint - - - name: Deno fmt check - run: deno fmt --check - - - name: Deno test - run: deno test --allow-all --coverage=coverage - - - name: ReScript build - run: | - if [ -f "rescript.json" ] || [ -f "bsconfig.json" ]; then - npm install - npx rescript - fi - - - name: Type check - run: deno check **/*.ts || true - - security: - runs-on: ubuntu-latest - timeout-minutes: 20 - permissions: - contents: read - steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: denoland/setup-deno@5e01c016a857a4dbb5afe9d0f9733cd472cba985 # v1.5.1 - - name: Check permissions - run: | - # Audit for dangerous permissions - grep -rE "allow-run|allow-write|allow-env" . || echo "No dangerous permissions" diff --git a/lol/.github/workflows/scorecard-enforcer.yml b/lol/.github/workflows/scorecard-enforcer.yml deleted file mode 100644 index eb4e48ead..000000000 --- a/lol/.github/workflows/scorecard-enforcer.yml +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Prevention workflow - runs OpenSSF Scorecard and fails on low scores -name: OpenSSF Scorecard Enforcer - -on: - push: - branches: [main] - schedule: - - cron: '0 6 * * 1' - workflow_dispatch: - -permissions: - contents: read - -jobs: - scorecard: - uses: ../../.github/workflows/scorecard-reusable.yml diff --git a/lol/.github/workflows/scorecard.yml b/lol/.github/workflows/scorecard.yml deleted file mode 100644 index 7a3b59079..000000000 --- a/lol/.github/workflows/scorecard.yml +++ /dev/null @@ -1,24 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: OSSF Scorecard - -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] - schedule: - - cron: '0 4 * * *' - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - actions: read - contents: read - -jobs: - scorecard: - uses: ../../.github/workflows/scorecard-reusable.yml - secrets: inherit diff --git a/lol/.github/workflows/secret-scanner.yml b/lol/.github/workflows/secret-scanner.yml deleted file mode 100644 index b3cca405d..000000000 --- a/lol/.github/workflows/secret-scanner.yml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -name: Secret Scanner - -on: - pull_request: - push: - branches: [main] - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - scan: - permissions: - contents: read - uses: ../../.github/workflows/secret-scanner-reusable.yml - secrets: inherit diff --git a/lol/.gitignore b/lol/.gitignore deleted file mode 100644 index 89e666126..000000000 --- a/lol/.gitignore +++ /dev/null @@ -1,90 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# RSR-compliant .gitignore - -# OS & Editor -.DS_Store -Thumbs.db -*.swp -*.swo -*~ -.idea/ -.vscode/ - -# Build -/target/ -/_build/ -/build/ -/dist/ -/out/ - -# Dependencies -/node_modules/ -/vendor/ -/deps/ -/.elixir_ls/ - -# Rust -# Cargo.lock # Keep for binaries - -# Elixir -/cover/ -/doc/ -*.ez -erl_crash.dump - -# Julia -*.jl.cov -*.jl.mem -/Manifest.toml - -# ReScript -/lib/bs/ -/.bsb.lock - -# Python (SaltStack only) -__pycache__/ -*.py[cod] -.venv/ - -# Ada/SPARK -*.ali -/obj/ -/bin/ - -# Haskell -/.stack-work/ -/dist-newstyle/ - -# Zig -zig-cache/ -.zig-cache/ -zig-out/ - -# Idris2 -build/ -*.ibc -*.ttc -*.ttm - -# Chapel -*.chpl.tmp.* - -# Secrets -.env -.env.* -*.pem -*.key -secrets/ - -# Test/Coverage -/coverage/ -htmlcov/ - -# Logs -*.log -/logs/ - -# Temp -/tmp/ -*.tmp -*.bak diff --git a/lol/.gitlab-ci.yml b/lol/.gitlab-ci.yml deleted file mode 100644 index 3c57a9637..000000000 --- a/lol/.gitlab-ci.yml +++ /dev/null @@ -1,235 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2025 Ehsaneddin Asgari and Contributors -# -# 1000Langs GitLab CI/CD Configuration -# ===================================== -# RSR Gold Compliant CI Pipeline - -stages: - - validate - - build - - test - - verify - - security - - deploy - -variables: - NODE_VERSION: "20" - CONTAINER_REGISTRY: $CI_REGISTRY - CONTAINER_IMAGE: $CI_REGISTRY_IMAGE - -# ============================================================================= -# Templates -# ============================================================================= - -.node-template: &node-template - image: node:${NODE_VERSION}-alpine - cache: - key: - files: - - package.json - paths: - - node_modules/ - before_script: - - npm ci - -.nix-template: &nix-template - image: nixos/nix:latest - before_script: - - nix-env -iA nixpkgs.just nixpkgs.nickel - -# ============================================================================= -# Validation Stage -# ============================================================================= - -lint: - <<: *node-template - stage: validate - script: - - npm run lint - rules: - - if: $CI_PIPELINE_SOURCE == "merge_request_event" - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - -format-check: - <<: *node-template - stage: validate - script: - - npm run format -- --check - rules: - - if: $CI_PIPELINE_SOURCE == "merge_request_event" - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - -typecheck: - <<: *node-template - stage: validate - script: - - npm run build - rules: - - if: $CI_PIPELINE_SOURCE == "merge_request_event" - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - -nickel-validate: - <<: *nix-template - stage: validate - script: - - nickel eval config/main.ncl > /dev/null - rules: - - if: $CI_PIPELINE_SOURCE == "merge_request_event" - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - -spdx-check: - stage: validate - image: alpine:latest - script: - - apk add --no-cache grep findutils - - | - find src test -name "*.res" -exec grep -L "SPDX-License-Identifier" {} \; | { - FILES=$(cat) - if [ -n "$FILES" ]; then - echo "Missing SPDX headers in:" - echo "$FILES" - exit 1 - fi - } - rules: - - if: $CI_PIPELINE_SOURCE == "merge_request_event" - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - -# ============================================================================= -# Build Stage -# ============================================================================= - -build: - <<: *node-template - stage: build - script: - - npm run build - artifacts: - paths: - - dist/ - - src/**/*.res.mjs - expire_in: 1 day - rules: - - if: $CI_COMMIT_BRANCH - -# ============================================================================= -# Test Stage -# ============================================================================= - -unit-tests: - <<: *node-template - stage: test - needs: ["build"] - script: - - npm test - coverage: '/All files[^|]*\|[^|]*\s+([\d\.]+)/' - artifacts: - reports: - junit: junit.xml - coverage_report: - coverage_format: cobertura - path: coverage/cobertura-coverage.xml - rules: - - if: $CI_PIPELINE_SOURCE == "merge_request_event" - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - -integration-tests: - <<: *node-template - stage: test - needs: ["build"] - script: - - npm test -- test/integration - rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - -# ============================================================================= -# Verification Stage -# ============================================================================= - -rsr-audit: - stage: verify - image: alpine:latest - script: - - echo "Running RSR compliance audit..." - # - ./scripts/rsr-audit.sh . json > rsr-report.json - - echo '{"compliance_level": "gold", "score": 100}' > rsr-report.json - artifacts: - paths: - - rsr-report.json - reports: - dotenv: rsr-report.json - rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - -proof-verification: - <<: *nix-template - stage: verify - script: - - echo "Proof verification would run here" - allow_failure: true - rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - -# ============================================================================= -# Security Stage -# ============================================================================= - -dependency-scan: - <<: *node-template - stage: security - script: - - npm audit --audit-level=high - allow_failure: true - rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - -container-scan: - stage: security - image: - name: aquasec/trivy:latest - entrypoint: [""] - variables: - TRIVY_NO_PROGRESS: "true" - TRIVY_CACHE_DIR: ".trivycache/" - cache: - paths: - - .trivycache/ - script: - - trivy filesystem --exit-code 0 --severity HIGH,CRITICAL . - allow_failure: true - rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - -# ============================================================================= -# Deploy Stage -# ============================================================================= - -build-container: - stage: deploy - image: - name: quay.io/podman/stable:latest - entrypoint: [""] - script: - - podman build -t $CONTAINER_IMAGE:$CI_COMMIT_SHA -f Containerfile . - - podman tag $CONTAINER_IMAGE:$CI_COMMIT_SHA $CONTAINER_IMAGE:latest - - echo "$CI_REGISTRY_PASSWORD" | podman login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY - - podman push $CONTAINER_IMAGE:$CI_COMMIT_SHA - - podman push $CONTAINER_IMAGE:latest - rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - when: manual - -pages: - <<: *node-template - stage: deploy - script: - - npm run build - - mkdir -p public - - cp -r docs/* public/ || true - - asciidoctor README.adoc -o public/index.html || true - artifacts: - paths: - - public - rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH diff --git a/lol/.machine_readable/descriptiles/AGENTIC.a2ml b/lol/.machine_readable/descriptiles/AGENTIC.a2ml deleted file mode 100644 index 1699fe4a2..000000000 --- a/lol/.machine_readable/descriptiles/AGENTIC.a2ml +++ /dev/null @@ -1,34 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# AGENTIC.a2ml — AI agent constraints and capabilities -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[agent-permissions] -can-edit-source = true -can-edit-tests = true -can-edit-docs = true -can-edit-config = true -can-create-files = true - -[agent-constraints] -# What AI agents must NOT do: -# - Never use banned language patterns (believe_me, unsafeCoerce, etc.) -# - Never commit secrets or credentials -# - Never use banned languages (TypeScript, Python, Go, etc.) -# - Never place state files in repository root (must be in .machine_readable/) -# - Never use AGPL license (use PMPL-1.0-or-later) - -[maintenance-integrity] -fail-closed = true -require-evidence-per-step = true -allow-silent-skip = false -require-rerun-after-fix = true -release-claim-requires-hard-pass = true - -[automation-hooks] -# on-enter: Read 0-AI-MANIFEST.a2ml, then STATE.a2ml -# on-exit: Update STATE.a2ml with session outcomes -# on-commit: Run just validate-rsr diff --git a/lol/.machine_readable/descriptiles/ECOSYSTEM.a2ml b/lol/.machine_readable/descriptiles/ECOSYSTEM.a2ml deleted file mode 100644 index 3a771c977..000000000 --- a/lol/.machine_readable/descriptiles/ECOSYSTEM.a2ml +++ /dev/null @@ -1,20 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# ECOSYSTEM.a2ml — Lol ecosystem position -[metadata] -version = "1.0" -last-updated = "2026-04-11" - -[project] -name = "Lol" -purpose = "Super-parallel corpus crawler and analyzer for 1500+ languages from Bible translations" -role = "application" - -[position-in-ecosystem] -category = "nlp-tools" - -[related-projects] -projects = [ - # No related projects recorded -] diff --git a/lol/.machine_readable/descriptiles/META.a2ml b/lol/.machine_readable/descriptiles/META.a2ml deleted file mode 100644 index 2e564acfe..000000000 --- a/lol/.machine_readable/descriptiles/META.a2ml +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# META.a2ml — Lol meta-level information -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[project-info] -license = "MPL-2.0" -author = "Jonathan D.A. Jewell (hyperpolymath)" - -[architecture-decisions] -decisions = [ - # No ADRs recorded -] - -[development-practices] -versioning = "SemVer" -documentation = "AsciiDoc" -build-tool = "just" - -[maintenance-axes] -scoping-first = true -axis-1 = "must > intend > like" -axis-2 = "corrective > adaptive > perfective" -axis-3 = "systems > compliance > effects" diff --git a/lol/.machine_readable/descriptiles/NEUROSYM.a2ml b/lol/.machine_readable/descriptiles/NEUROSYM.a2ml deleted file mode 100644 index e1d34c090..000000000 --- a/lol/.machine_readable/descriptiles/NEUROSYM.a2ml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# NEUROSYM.a2ml — Neurosymbolic integration metadata -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[hypatia-config] -scan-enabled = true -scan-depth = "standard" # quick | standard | deep -report-format = "logtalk" - -[symbolic-rules] -# Custom symbolic rules for this project -# - { name = "no-unsafe-ffi", pattern = "believe_me|unsafeCoerce", severity = "critical" } - -[neural-config] -# Neural pattern detection settings -# confidence-threshold = 0.85 -# model = "hypatia-v2" diff --git a/lol/.machine_readable/descriptiles/PLAYBOOK.a2ml b/lol/.machine_readable/descriptiles/PLAYBOOK.a2ml deleted file mode 100644 index 5003fd08b..000000000 --- a/lol/.machine_readable/descriptiles/PLAYBOOK.a2ml +++ /dev/null @@ -1,26 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# PLAYBOOK.a2ml — Operational playbook -[metadata] -version = "0.1.0" -last-updated = "2026-04-11" - -[deployment] -# method = "gitops" # gitops | manual | ci-triggered -# target = "container" # container | binary | library | wasm - -[incident-response] -# 1. Check .machine_readable/STATE.a2ml for current status -# 2. Review recent commits and CI results -# 3. Run `just validate` to check compliance -# 4. Run `just security` to audit for vulnerabilities - -[release-process] -# 1. Update version in STATE.a2ml, META.a2ml -# 2. Run `just release-preflight` (validate + quality + security + maint-hard-pass) -# 3. Tag and push - -[maintenance-operations] -# Baseline audit: just maint-audit -# Hard release gate: just maint-hard-pass diff --git a/lol/.machine_readable/descriptiles/STATE.a2ml b/lol/.machine_readable/descriptiles/STATE.a2ml deleted file mode 100644 index 6d4e4cf62..000000000 --- a/lol/.machine_readable/descriptiles/STATE.a2ml +++ /dev/null @@ -1,44 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# STATE.a2ml — Lol project state -[metadata] -project = "lol" -version = "0.1.0" -last-updated = "2026-02-08" -status = "active" -session = "converted from scheme — 2026-04-11" - -[project-context] -name = "Lol" -purpose = """Super-parallel corpus crawler for 1500+ languages""" -completion-percentage = 30 - -[position] -phase = "active-development" # design | implementation | testing | maintenance | archived -maturity = "experimental" # experimental | alpha | beta | production | lts - -[route-to-mvp] -milestones = [ - # No milestones recorded -] - -[blockers-and-issues] -issues = [ - # No blockers recorded -] - -[critical-next-actions] -actions = [ - "Run deno install to verify ReScript builds with Deno", - "Configure API keys for bible.cloud", - "Integration test: crawl eng from bible.cloud end-to-end", - "Run Julia tests to verify analysis modules", - "Crawl first 100 languages", - "Generate first language distance matrix", - "Connect to verisimdb-data pipeline", -] - -[maintenance-status] -last-run-utc = "2026-02-08T00:00:00Z" -last-result = "unknown" # unknown | pass | warn | fail diff --git a/lol/.nojekyll b/lol/.nojekyll deleted file mode 100644 index e69de29bb..000000000 diff --git a/lol/0-AI-MANIFEST.a2ml b/lol/0-AI-MANIFEST.a2ml deleted file mode 100644 index 3aaf69cb0..000000000 --- a/lol/0-AI-MANIFEST.a2ml +++ /dev/null @@ -1,116 +0,0 @@ -# ⚠️ STOP - CRITICAL READING REQUIRED - -**THIS FILE MUST BE READ FIRST BY ALL AI AGENTS** - -## WHAT IS THIS? - -This is the AI manifest for **lol**. It declares: -- Canonical file locations (where things MUST be, and nowhere else) -- Critical invariants (rules that must NEVER be violated) -- Repository structure and organization - -## CANONICAL LOCATIONS (UNIVERSAL RULE) - -### Machine-Readable Metadata: `.machine_readable/` ONLY - -These 6 SCM files MUST exist in `.machine_readable/` directory ONLY: -1. **STATE.scm** - Project state, progress, blockers -2. **META.scm** - Architecture decisions, governance -3. **ECOSYSTEM.scm** - Position in ecosystem, relationships -4. **AGENTIC.scm** - AI agent interaction patterns -5. **NEUROSYM.scm** - Neurosymbolic integration config -6. **PLAYBOOK.scm** - Operational runbook - -**CRITICAL:** If ANY of these files exist in the root directory, this is an ERROR. - -### Bot Directives: `.bot_directives/` ONLY - -Bot-specific instructions for: -- rhodibot - Git operations -- echidnabot - Code quality -- sustainabot - Dependency updates -- glambot - Documentation -- seambot - Integration -- finishbot - Task completion - -### Agent Instructions - -- `.claude/CLAUDE.md` - Claude-specific patterns (if exists) -- `0-AI-MANIFEST.a2ml` - THIS FILE (universal entry point) - -## CORE INVARIANTS - -1. **No SCM duplication** - Root must NOT contain STATE.scm, META.scm, etc. -2. **Single source of truth** - `.machine_readable/` is authoritative -3. **No stale metadata** - If root SCMs exist, they are OUT OF DATE -4. **License consistency** - All code PMPL-1.0-or-later unless platform requires MPL-2.0 -5. **Author attribution** - Always "Jonathan D.A. Jewell " - -## REPOSITORY STRUCTURE - - - -This repo contains: - -``` -lol/ -├── 0-AI-MANIFEST.a2ml # THIS FILE (start here) -├── README.md # Project overview -├── [your source files] # Main code -├── .machine_readable/ # SCM files (6 files) -│ ├── STATE.scm -│ ├── META.scm -│ ├── ECOSYSTEM.scm -│ ├── AGENTIC.scm -│ ├── NEUROSYM.scm -│ └── PLAYBOOK.scm -└── .bot_directives/ # Bot instructions -``` - -## SESSION STARTUP CHECKLIST - -✅ Read THIS file (0-AI-MANIFEST.a2ml) first -✅ Understand canonical locations (.machine_readable/, .bot_directives/) -✅ Know the invariants (no SCM duplication, etc.) -✅ Check for MCP enforcement (if applicable) -✅ Read `.machine_readable/STATE.scm` for current status -✅ Read `.machine_readable/AGENTIC.scm` for interaction patterns - -## LIFECYCLE HOOKS - -### on-enter (Session Start) - -When starting a new session: - -1. Read and acknowledge this manifest -2. Log session start (optional but recommended) - - Format: `[YYYY-MM-DD HH:MM:SS] Session started: [agent-name]` - - Location: `.machine_readable/session-log.txt` -3. Read `.machine_readable/STATE.scm` -4. Check for blockers -5. State understanding of canonical locations - -### on-exit (Session End) - -When ending a session: - -1. Update `.machine_readable/STATE.scm` if changes made -2. Log session end (optional but recommended) - - Format: `[YYYY-MM-DD HH:MM:SS] Session ended: [summary]` - - Location: `.machine_readable/session-log.txt` -3. Document new blockers -4. Summarize outcomes - -## ATTESTATION PROOF - -After reading this file, demonstrate understanding by stating: - -**"I have read the AI manifest. SCM files are located in `.machine_readable/` ONLY, bot directives in `.bot_directives/`, and I will not create duplicate files in the root directory."** - -## META - -- **Format Version:** 1.0.0 -- **Created:** [DATE] -- **Maintained By:** [YOUR-NAME/ORG] -- **License:** PMPL-1.0-or-later -- **Protocol:** https://github.com/hyperpolymath/0-ai-gatekeeper-protocol diff --git a/lol/ABI-FFI-README.adoc b/lol/ABI-FFI-README.adoc deleted file mode 100644 index b58d06c01..000000000 --- a/lol/ABI-FFI-README.adoc +++ /dev/null @@ -1,234 +0,0 @@ -== LOL i18n Service — ABI/FFI/API Triple Documentation - -=== Overview - -The LOL (Language of Languages) i18n service follows the *Hyperpolymath -ABI/FFI/API Triple Standard*: - -* *ABI (Application Binary Interface)* defined in *Idris2* with formal -proofs -* *FFI (Foreign Function Interface)* implemented in *Zig* for C -compatibility -* *API* exposed via a *Zig* gateway (REST/gRPC/GraphQL) for idiomatic -high-level access - -LOL is always called as a service, never embedded. Consumers initialise -with `+lol_init()+`, perform translation lookups and plural form -selection across 1500+ languages, then clean up with `+lol_free()+`. - -____ -*Note:* V-lang was the previous API layer and was banned estate-wide on -2026-04-10. The sidelined V-lang wrappers under `+api/v-lol/+` and -`+api/v-gateway/+` remain only for historical reference. See their -respective `+MIGRATION.adoc+` files for details. -____ - -=== Architecture - -.... -┌─────────────────────────────────────────────────┐ -│ ABI Definitions (Idris2) │ -│ src/abi/ │ -│ - Types.idr (Result, Handle, enums) │ -│ - Layout.idr (Memory layout proofs) │ -│ - Locale.idr (BCP-47 validated locale) │ -│ - TranslationKey.idr (Type-safe key proofs) │ -│ - PluralForm.idr (CLDR rules + coverage) │ -│ - I18nStore.idr (Store interface + proofs)│ -│ - Foreign.idr (FFI declarations) │ -└─────────────────┬───────────────────────────────┘ - │ - │ generates - ▼ -┌─────────────────────────────────────────────────┐ -│ C Headers (auto-generated) │ -│ generated/abi/lol.h │ -│ - lol_result_t, lol_plural_category_t │ -│ - lol_locale_t, lol_translation_result_t │ -│ - lol_language_info_t, lol_plural_rule_t │ -│ - All function prototypes │ -└─────────────────┬───────────────────────────────┘ - │ - │ implemented by - ▼ -┌─────────────────────────────────────────────────┐ -│ FFI Implementation (Zig) │ -│ ffi/zig/src/ │ -│ - main.zig (C ABI exports, service state) │ -│ - locale.zig (BCP 47 parse, validate, norm) │ -│ - store.zig (HashMap store, fallback chains) │ -│ - plural.zig (CLDR plural rule engine) │ -│ - ffi.zig (Module re-exports, FFI index) │ -└─────────────────┬───────────────────────────────┘ - │ - │ linked by (-llol) - ▼ -┌─────────────────────────────────────────────────┐ -│ Zig API Gateway (REST/gRPC/GraphQL) │ -│ api/zig-gateway/src/ │ -│ - main.zig (HTTP gateway, triple endpoints,│ -│ REST 7800 / gRPC 7801 / GQL │ -│ 7802; REST+gRPC+GraphQL │ -│ handlers; domain I/O) │ -│ - types.zig (public domain types; replaces │ -│ v-lol/src/types.v) │ -│ - lol_ffi.zig (Zig wrapper around liblol; │ -│ replaces v-lol/src/lol.v + │ -│ ffi.v) │ -└─────────────────────────────────────────────────┘ -.... - -=== Directory Structure - -.... -lol/ -├── src/ -│ └── abi/ # ABI definitions (Idris2) -│ ├── Types.idr # Core types with formal proofs -│ ├── Layout.idr # Memory layout verification -│ ├── Locale.idr # BCP-47 locale with validation proofs -│ ├── TranslationKey.idr # Type-safe translation key proofs -│ ├── PluralForm.idr # CLDR plural rules + coverage proofs -│ ├── I18nStore.idr # Store interface with lookup proofs -│ └── Foreign.idr # FFI function declarations -├── ffi/ -│ └── zig/ # FFI implementation (Zig) -│ ├── build.zig # Build configuration -│ ├── src/ -│ │ ├── main.zig # C ABI exports + service state -│ │ ├── locale.zig # Locale parse/validate/normalise -│ │ ├── store.zig # Translation store with fallback -│ │ ├── plural.zig # CLDR plural rule engine -│ │ └── ffi.zig # Module re-exports + FFI index -│ └── test/integration_test.zig# Integration tests -├── generated/ -│ └── abi/ -│ └── lol.h # Auto-generated C header -├── api/ -│ ├── zig-gateway/ # Canonical API gateway (REST/gRPC/GraphQL) -│ │ ├── build.zig # Build configuration (links liblol) -│ │ └── src/ -│ │ ├── main.zig # HTTP gateway: REST/gRPC/GraphQL handlers + domain I/O -│ │ ├── types.zig # Public domain types (replaces v-lol/src/types.v) -│ │ └── lol_ffi.zig # Zig liblol wrapper (replaces v-lol/src/lol.v + ffi.v) -│ ├── v-lol/ # DEPRECATED — see MIGRATION.adoc -│ │ ├── v.mod -│ │ └── src/ -│ └── v-gateway/ # DEPRECATED — see MIGRATION.adoc -│ └── src/ -└── ABI-FFI-README.md # This file -.... - -=== Key Types - -[cols=",,",options="header",] -|=== -|Type |Idris2 |C -|Result codes |`+Result+` |`+lol_result_t+` -|Plural category |`+PluralCategory+` |`+lol_plural_category_t+` -|Locale |`+Locale+` |`+lol_locale_t+` -|Translation |`+TranslationResult+` |`+lol_translation_result_t+` -|Language info |`+LanguageInfo+` |`+lol_language_info_t+` -|Plural rule |`+PluralRule+` |`+lol_plural_rule_t+` -|=== - -=== Formal Proofs (Idris2 ABI) - -The Idris2 ABI layer provides the following compile-time guarantees: - -[arabic] -. *Result code round-trip*: `+resultFromInt (resultToInt r) = Just r+` -for all `+r+` -. *Plural category round-trip*: -`+pluralFromInt (pluralToInt p) = Just p+` for all `+p+` -. *Result code injectivity*: distinct results map to distinct integer -codes -. *Handle non-null*: the `+Handle+` type cannot wrap a null pointer -(enforced by `+So+`) -. *Struct alignment*: all C struct layouts are proven to have correctly -aligned fields -. *Plural form count bounds*: `+PluralRule.formCount+` is proven to be -in range 1-6 -. *BCP-47 validation*: `+ValidLocale+` proves tag structure at -construction (Locale.idr) -. *Translation key validity*: `+ValidKey+` proves non-empty -dot-separated segments (TranslationKey.idr) -. *Plural coverage*: `+eastAsianPluralConstant+` proves East Asian -always returns Other (PluralForm.idr) -. *Plural FFI bounds*: `+pluralToIntBounded+` proves category integers -stay in 0-5 range -. *Store lookup guarantee*: `+CorrectStore+` interface proves key-exists -implies non-empty result (I18nStore.idr) -. *Fallback chain contract*: `+lookupWithFallback+` walks chain with -locale/key pair, resolves or returns Nothing - -No `+believe_me+`, `+assert_total+`, or other escape hatches are used. - -=== Building - -==== Idris2 ABI - -[source,bash] ----- -idris2 --check lol-abi.ipkg # Type-check all ABI definitions and proofs -idris2 --build lol-abi.ipkg # Build (optional, ABI is specification-only) ----- - -==== Zig FFI - -[source,bash] ----- -cd ffi/zig -zig build # Builds liblol.so and liblol.a -zig build test # Runs unit tests -zig build test-integration # Runs integration tests ----- - -==== Zig API Gateway - -[source,bash] ----- -cd api/zig-gateway -zig build -./zig-out/bin/lol-gateway ----- - -Default base port is 7800. Configure via `+LOL_PORT+` environment -variable. Corpus data directory defaults to `+corpus+`; set via -`+LOL_DATA_DIR+`. - -=== Usage (Zig gateway, HTTP) - -The Zig API gateway exposes three endpoint families: - -*REST API* (HTTP on port 7800): - -[source,bash] ----- -curl http://localhost:7800/api/v1/languages -curl http://localhost:7800/api/v1/corpus/stats ----- - -*gRPC JSON-compatible* (on port 7801): - -[source,bash] ----- -curl -X POST http://localhost:7801/lol.TranslationService/Translate \ - -H "Content-Type: application/json" \ - -d '{"locale":"en-US","key":"app.greeting"}' ----- - -*GraphQL* (on port 7802, endpoint `+/graphql+`): - -[source,bash] ----- -curl -X POST http://localhost:7802/graphql \ - -H "Content-Type: application/json" \ - -d '{"query":"{ languages { code name } }"}' ----- - -=== License - -SPDX-License-Identifier: MPL-2.0 - -Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) diff --git a/lol/CHANGELOG.adoc b/lol/CHANGELOG.adoc deleted file mode 100644 index 08c80f693..000000000 --- a/lol/CHANGELOG.adoc +++ /dev/null @@ -1,46 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -== [Unreleased] - -=== Added -- Complete rewrite from Python to ReScript for type safety -- RSR Gold compliance infrastructure -- Echidna integration for mathematical proofs -- OpenCyc integration for semantic grounding -- Nickel-based configuration system -- Podman containerization (replacing Docker) -- Comprehensive Justfile with 70+ recipes -- Nix flake for reproducible development -- Full test suite with Vitest -- AsciiDoc documentation - -=== Changed -- Migrated from Python to ReScript -- Replaced requirements.txt with package.json -- Switched from Apache 2.0 to MIT + Palimpsest dual license -- Documentation format from Markdown to AsciiDoc (except SECURITY.md) - -=== Removed -- All Python code and dependencies -- Docker support (replaced with Podman) -- Legacy crawler implementations - -== [0.0.1] - 2018-XX-XX - -=== Added -- Initial Python implementation -- Support for bible.cloud, bible.com, pngscriptures.org -- ISO 639-3 language code support -- Basic corpus alignment functionality -- Apache 2.0 license - ---- - -[Unreleased]: https://github.com/Hyperpolymath/1000Langs/compare/v0.0.1...HEAD -[0.0.1]: https://github.com/Hyperpolymath/1000Langs/releases/tag/v0.0.1 diff --git a/lol/CODE_OF_CONDUCT.adoc b/lol/CODE_OF_CONDUCT.adoc deleted file mode 100644 index 7081e8ab3..000000000 --- a/lol/CODE_OF_CONDUCT.adoc +++ /dev/null @@ -1,133 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -// SPDX-FileCopyrightText: 2024-2025 Ehsaneddin Asgari and Contributors -= Code of Conduct -:toc: -:toclevels: 2 - -== Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -== Our Standards - -=== Examples of behavior that contributes to a positive environment - -* Demonstrating empathy and kindness toward other people -* Being respectful of differing opinions, viewpoints, and experiences -* Giving and gracefully accepting constructive feedback -* Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -* Focusing on what is best not just for us as individuals, but for the overall - community -* Using welcoming and inclusive language -* Respecting the time and attention of maintainers and other contributors - -=== Examples of unacceptable behavior - -* The use of sexualized language or imagery, and sexual attention or advances - of any kind -* Trolling, insulting or derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or email address, - without their explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting -* Demanding immediate responses or attention from maintainers -* Dismissing or attacking constructive criticism - -== Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards -of acceptable behavior and will take appropriate and fair corrective action -in response to any behavior that they deem inappropriate, threatening, -offensive, or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for -moderation decisions when appropriate. - -== Scope - -This Code of Conduct applies within all community spaces, and also applies -when an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail -address, posting via an official social media account, or acting as an -appointed representative at an online or offline event. - -== Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at the project -repository. - -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of -the reporter of any incident. - -== Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -=== 1. Correction - -*Community Impact*: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -*Consequence*: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -=== 2. Warning - -*Community Impact*: A violation through a single incident or series of actions. - -*Consequence*: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external -channels like social media. Violating these terms may lead to a temporary -or permanent ban. - -=== 3. Temporary Ban - -*Community Impact*: A serious violation of community standards, including -sustained inappropriate behavior. - -*Consequence*: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public -or private interaction with the people involved, including unsolicited -interaction with those enforcing the Code of Conduct, is allowed during -this period. Violating these terms may lead to a permanent ban. - -=== 4. Permanent Ban - -*Community Impact*: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -*Consequence*: A permanent ban from any sort of public interaction within -the community. - -== Attribution - -This Code of Conduct is adapted from the https://www.contributor-covenant.org[Contributor Covenant], -version 2.1, available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -Community Impact Guidelines were inspired by -https://github.com/mozilla/diversity[Mozilla's code of conduct enforcement ladder]. - -For answers to common questions about this code of conduct, see the FAQ at -https://www.contributor-covenant.org/faq. Translations are available at -https://www.contributor-covenant.org/translations. diff --git a/lol/CONTRIBUTING.adoc b/lol/CONTRIBUTING.adoc deleted file mode 100644 index 0b3e7f8c3..000000000 --- a/lol/CONTRIBUTING.adoc +++ /dev/null @@ -1,286 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -// SPDX-FileCopyrightText: 2024-2025 Ehsaneddin Asgari and Contributors -= Contributing to 1000Langs -:toc: -:toclevels: 3 -:icons: font - -Thank you for your interest in contributing to 1000Langs! This document -provides guidelines and information for contributors. - -== Tri-Perimeter Contribution Framework (TPCF) - -This project uses a graduated trust model for contributions: - -=== Perimeter 1: Core - -* *Who*: Project maintainers only -* *Access*: Direct commit to main branch -* *Scope*: Architecture decisions, security-critical code, release management -* *Review*: Self-review with documentation - -=== Perimeter 2: Expert - -* *Who*: Trusted contributors with demonstrated expertise -* *Access*: Protected branches, requires 1 maintainer review -* *Scope*: Feature development, complex bug fixes, performance optimizations -* *Review*: Code review by Perimeter 1 member - -=== Perimeter 3: Community - -* *Who*: All contributors -* *Access*: Fork and pull request -* *Scope*: Bug fixes, documentation, tests, minor features -* *Review*: Code review by Perimeter 2+ member - -== Getting Started - -=== Prerequisites - -* Node.js 20+ -* Just command runner -* Nix (recommended) or npm -* Git - -=== Development Setup - -[source,bash] ----- -# Clone your fork -git clone https://github.com/YOUR_USERNAME/1000Langs.git -cd 1000Langs - -# Add upstream remote -git remote add upstream https://github.com/Hyperpolymath/1000Langs.git - -# Enter development environment -nix develop # or: npm install - -# Run tests to verify setup -just test ----- - -== Development Workflow - -=== 1. Create a Branch - -[source,bash] ----- -# Update main -git checkout main -git pull upstream main - -# Create feature branch -git checkout -b feature/your-feature-name ----- - -=== 2. Make Changes - -* Write code following the style guide -* Add tests for new functionality -* Update documentation as needed -* Ensure SPDX headers are present - -=== 3. Test Your Changes - -[source,bash] ----- -# Run all checks -just check - -# Or individually: -just lint # Check code style -just typecheck # Type checking -just test # Run tests -just prove # Verify proofs ----- - -=== 4. Commit Your Changes - -We follow conventional commits: - -[source] ----- -type(scope): description - -[optional body] - -[optional footer] ----- - -Types: - -* `feat`: New feature -* `fix`: Bug fix -* `docs`: Documentation changes -* `style`: Code style changes (formatting, etc.) -* `refactor`: Code refactoring -* `test`: Adding or updating tests -* `chore`: Maintenance tasks -* `perf`: Performance improvements -* `proof`: Proof additions or updates - -Example: - -[source] ----- -feat(crawler): add support for ebible.org source - -Implements the eBible crawler with support for USFM and USX formats. -Includes rate limiting and retry logic. - -Closes #42 ----- - -=== 5. Push and Create Pull Request - -[source,bash] ----- -git push origin feature/your-feature-name ----- - -Then create a pull request on GitHub. - -== Code Style - -=== ReScript - -* Use descriptive module and function names -* Prefer pattern matching over if/else chains -* Use labeled arguments for functions with multiple parameters -* Add SPDX headers to all source files - -[source,rescript] ----- -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2025 Ehsaneddin Asgari and Contributors - -/** - * Module documentation goes here. - */ -module MyModule = { - // ... -} ----- - -=== Documentation - -* Use AsciiDoc for documentation (not Markdown, except SECURITY.md) -* Include code examples where helpful -* Keep documentation close to the code - -== Testing Guidelines - -=== Unit Tests - -* Test one thing per test -* Use descriptive test names -* Mock external dependencies - -[source,rescript] ----- -describe("Iso639.Validation", () => { - test("isValidIso639_3 returns true for valid codes", () => { - expect(Iso639.Validation.isValidIso639_3("eng"))->toBe(true) - }) - - test("isValidIso639_3 returns false for invalid codes", () => { - expect(Iso639.Validation.isValidIso639_3("english"))->toBe(false) - }) -}) ----- - -=== Integration Tests - -* Test interactions between modules -* Use realistic test data -* Clean up after tests - -=== Proof Tests - -* Verify mathematical properties -* Document proof obligations -* Link to formal specifications - -== Pull Request Guidelines - -=== Before Submitting - -* [ ] All tests pass (`just test`) -* [ ] Code is formatted (`just format`) -* [ ] No linting errors (`just lint`) -* [ ] Types check (`just typecheck`) -* [ ] Documentation updated if needed -* [ ] SPDX headers present on new files -* [ ] Conventional commit messages used - -=== PR Description Template - -[source,markdown] ----- -## Summary - -Brief description of changes. - -## Changes - -- Change 1 -- Change 2 - -## Testing - -How was this tested? - -## Checklist - -- [ ] Tests added/updated -- [ ] Documentation updated -- [ ] CHANGELOG.md updated ----- - -=== Review Process - -1. Automated checks must pass -2. At least one approval from appropriate perimeter -3. All comments addressed -4. Squash merge preferred - -== Reporting Issues - -=== Bug Reports - -Include: - -* ReScript/Node.js version -* Operating system -* Steps to reproduce -* Expected vs actual behavior -* Error messages/logs - -=== Feature Requests - -Include: - -* Use case description -* Proposed solution -* Alternatives considered -* Willingness to implement - -== Security Issues - -**Do not report security vulnerabilities through public issues.** - -See link:SECURITY.md[SECURITY.md] for responsible disclosure guidelines. - -== License - -By contributing to 1000Langs, you agree that your contributions will be -licensed under the project's dual MIT + Palimpsest v0.8 license. - -== Questions? - -* Open a discussion on GitHub -* Check existing issues and discussions -* Review the documentation - -Thank you for contributing! diff --git a/lol/Containerfile b/lol/Containerfile deleted file mode 100644 index 982d73956..000000000 --- a/lol/Containerfile +++ /dev/null @@ -1,90 +0,0 @@ -# SPDX-License-Identifier: MIT AND LicenseRef-Palimpsest-0.8 -# SPDX-FileCopyrightText: 2024-2025 Ehsaneddin Asgari and Contributors -# -# 1000Langs Containerfile (Podman-native) -# ======================================= -# OCI-compliant container image for the parallel corpus crawler - -# Build stage -FROM docker.io/library/node:20-alpine AS builder - -LABEL org.opencontainers.image.title="1000Langs" -LABEL org.opencontainers.image.description="Super-parallel corpus crawler for multilingual NLP research" -LABEL org.opencontainers.image.source="https://github.com/Hyperpolymath/1000Langs" -LABEL org.opencontainers.image.licenses="MIT AND LicenseRef-Palimpsest-0.8" -LABEL org.opencontainers.image.vendor="Hyperpolymath" - -WORKDIR /build - -# Install build dependencies -RUN apk add --no-cache \ - python3 \ - make \ - g++ \ - git - -# Copy package files -COPY package.json package-lock.json* rescript.json ./ - -# Install dependencies -RUN npm ci --ignore-scripts - -# Copy source files -COPY src/ ./src/ -COPY test/ ./test/ - -# Build ReScript -RUN npm run build - -# Prune dev dependencies -RUN npm prune --production - -# ============================================================================ -# Production stage -# ============================================================================ -FROM docker.io/library/node:20-alpine AS production - -LABEL org.opencontainers.image.title="1000Langs" -LABEL org.opencontainers.image.description="Super-parallel corpus crawler for multilingual NLP research" -LABEL org.opencontainers.image.source="https://github.com/Hyperpolymath/1000Langs" -LABEL org.opencontainers.image.licenses="MIT AND LicenseRef-Palimpsest-0.8" -LABEL org.opencontainers.image.vendor="Hyperpolymath" - -# Security: Create non-root user -RUN addgroup -g 1000 -S langs && \ - adduser -u 1000 -S langs -G langs - -WORKDIR /app - -# Copy built artifacts and production dependencies -COPY --from=builder --chown=langs:langs /build/node_modules ./node_modules -COPY --from=builder --chown=langs:langs /build/src/*.mjs ./dist/ -COPY --from=builder --chown=langs:langs /build/src/**/*.mjs ./dist/ - -# Copy static assets -COPY --chown=langs:langs meta/ ./meta/ -COPY --chown=langs:langs config/ ./config/ - -# Create data directories -RUN mkdir -p /app/data /app/output /app/logs && \ - chown -R langs:langs /app - -# Security hardening -USER langs - -# Environment -ENV NODE_ENV=production -ENV DATA_DIR=/app/data -ENV OUTPUT_DIR=/app/output -ENV LOG_DIR=/app/logs - -# Health check -HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ - CMD node -e "console.log('healthy')" || exit 1 - -# Volumes for persistent data -VOLUME ["/app/data", "/app/output", "/app/logs"] - -# Entry point -ENTRYPOINT ["node", "dist/Lang1000.res.mjs"] -CMD ["--help"] diff --git a/lol/FUTURE.adoc b/lol/FUTURE.adoc deleted file mode 100644 index b86880641..000000000 --- a/lol/FUTURE.adoc +++ /dev/null @@ -1,164 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -// SPDX-FileCopyrightText: 2024-2025 Ehsaneddin Asgari and Contributors -= Future Roadmap -:toc: -:toclevels: 2 -:icons: font - -This document outlines planned features and integrations for 1000Langs. - -== GIS Integration: Languages Meet Geography - -=== Overview - -A significant planned enhancement is connecting the multilingual corpus with -geographic data to visualize language distribution and typological features -on interactive maps. - -=== Proposed Architecture - -[source] ----- - ┌─────────────────────┐ - │ OpenLiteSpeed │ - │ Web Server │ - └──────────┬──────────┘ - │ - ┌────────────────────┼────────────────────┐ - │ │ │ - ▼ ▼ ▼ -┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ -│ ReScript UI │ │ ArcGIS/Leaflet │ │ 1000Langs API │ -│ (CSS-first) │ │ Map Services │ │ (Corpus Data) │ -└────────┬────────┘ └────────┬────────┘ └────────┬────────┘ - │ │ │ - └────────────────────┼────────────────────┘ - │ - ┌─────────▼─────────┐ - │ Language Data │ - │ + Coordinates │ - │ (Glottolog) │ - └───────────────────┘ ----- - -=== Data Sources - -* *Glottolog*: Language coordinates and genealogical classification -* *WALS*: Typological feature data -* *Ethnologue*: Speaker population estimates -* *1000Langs Corpus*: Actual text availability - -=== Visualization Layers - -1. **Language Distribution Map** - * Point markers for each language - * Color-coded by language family - * Size by number of speakers - -2. **Corpus Coverage Map** - * Choropleth showing translation availability - * Filter by source (Bible.cloud, Bible.com, etc.) - * Interactive language selection - -3. **Typological Feature Maps** - * Word order distribution - * Phonological inventories - * Morphological types - -4. **Historical Spread Animation** - * Language family expansion over time - * Migration patterns - * Script adoption - -=== Technology Stack - -* **Server**: OpenLiteSpeed (as requested) -* **Mapping**: ArcGIS or Leaflet (open-source alternative) -* **Frontend**: ReScript with CSS-first approach -* **API**: RESTful endpoints for corpus data -* **Data Format**: GeoJSON for geographic features - -=== Implementation Phases - -==== Phase 1: Basic Map (2-3 weeks effort) -* Set up OpenLiteSpeed server -* Integrate Leaflet for maps -* Display language points from Glottolog -* Basic filtering by language family - -==== Phase 2: Corpus Integration (2-3 weeks effort) -* Connect to 1000Langs corpus data -* Show translation availability per language -* Add source filtering -* Implement search functionality - -==== Phase 3: Advanced Features (3-4 weeks effort) -* WALS typological feature overlay -* OpenCyc reasoning integration -* Custom visualization layers -* Export functionality - -==== Phase 4: Analytics (2-3 weeks effort) -* Corpus statistics dashboard -* Coverage gap analysis -* Typological clustering visualizations -* API for external integrations - -=== Scope Notes - -**Complexity**: Medium-High - -**Dependencies**: -* Glottolog data import -* WALS feature mapping -* OpenLiteSpeed configuration -* ArcGIS licensing (or Leaflet as OSS alternative) - -**Considerations**: -* ArcGIS requires licensing; Leaflet + MapLibre is fully open-source -* OpenLiteSpeed provides excellent performance for static + dynamic content -* GeoJSON is the standard format for web mapping - -== Enhanced OpenCyc Integration - -=== Planned Features - -* Automatic language classification -* Common-sense inference about language relationships -* Script compatibility reasoning -* Geographic plausibility checks - -== Additional Corpus Sources - -=== Planned Integrations - -* *unfoldingWord*: Open-licensed translations -* *Door43*: Translation resources -* *Paratext*: Professional translation data -* *OPUS*: Parallel corpus collection - -== Machine Learning Features - -=== Planned Capabilities - -* Language identification -* Script detection -* Translation quality estimation -* Corpus alignment refinement - -== Research Tools - -=== Planned Features - -* Typological analysis toolkit -* Phylogenetic tree construction -* Lexical similarity computation -* Cross-linguistic pattern search - -== Contributing to Future Development - -Interested in helping implement these features? See: - -* link:CONTRIBUTING.adoc[Contributing Guide] -* GitHub Issues with "enhancement" label -* Discussion forum for design proposals diff --git a/lol/Justfile b/lol/Justfile deleted file mode 100644 index 8af58b497..000000000 --- a/lol/Justfile +++ /dev/null @@ -1,513 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors -# -# 1000Langs Justfile - RSR Gold Compliant -# ======================================== -# Comprehensive task automation for the super-parallel corpus crawler -# Runtime: Deno | Languages: ReScript, Elixir, Julia - -set shell := ["bash", "-euo", "pipefail", "-c"] -set positional-arguments := true -set dotenv-load := true - -# Default recipe - show help -default: help - -# ============================================================================ -# HELP & DOCUMENTATION -# ============================================================================ - -# Show all available recipes with descriptions -help: - @just --list --unsorted - -# Show detailed help for a specific recipe -help-recipe RECIPE: - @just --show {{RECIPE}} - -# Generate documentation for all recipes -docs: - @echo "Generating recipe documentation..." - @just --list --list-heading $'# Available Recipes\n\n' --list-prefix '- ' > docs/RECIPES.md - -# ============================================================================ -# DEVELOPMENT ENVIRONMENT -# ============================================================================ - -# Enter Nix development shell -shell: - nix develop - -# Install all dependencies (Deno + ReScript) -install: - deno install - -# Update all dependencies -update: - deno install - nix flake update - -# Clean all build artifacts -clean: - deno task clean - rm -rf node_modules/.cache - rm -rf coverage - rm -rf .vitest - -# Deep clean including node_modules -clean-all: clean - rm -rf node_modules - rm -rf .rescript - -# ============================================================================ -# BUILD & COMPILE -# ============================================================================ - -# Build ReScript to JavaScript -build: - deno task build - -# Build with watch mode -watch: - deno task build:watch - -# Build for production (optimized) -build-prod: - NODE_ENV=production deno task build - -# Type check without building -typecheck: - npx rescript build -warn-error - -# Build documentation -build-docs: - asciidoctor docs/*.adoc -D docs/html - -# ============================================================================ -# TESTING -# ============================================================================ - -# Run all tests -test: - deno task test - -# Run tests with watch mode -test-watch: - deno task test:watch - -# Run tests with coverage -test-coverage: - deno task test:coverage - -# Run specific test file -test-file FILE: - deno run -A npm:vitest run {{FILE}} - -# Run tests matching pattern -test-grep PATTERN: - deno run -A npm:vitest run -t "{{PATTERN}}" - -# Run unit tests only -test-unit: - deno run -A npm:vitest run test/unit - -# Run integration tests only -test-integration: - deno run -A npm:vitest run test/integration - -# Run proof verification tests -test-proofs: - deno run -A npm:vitest run test/proofs - -# ============================================================================ -# CODE QUALITY -# ============================================================================ - -# Run linter -lint: - deno task lint - -# Fix linting issues automatically -lint-fix: - deno run -A npm:@biomejs/biome check --write . - -# Format code -format: - deno task fmt - -# Check formatting without changes -format-check: - deno run -A npm:@biomejs/biome format --check . - -# Run all quality checks -check: lint format-check typecheck test - -# Pre-commit checks -pre-commit: lint-fix format check - -# ============================================================================ -# PROOFS & VERIFICATION -# ============================================================================ - -# Run Echidna proof verification -prove: - @echo "Running Echidna proof verification..." - cd proofs && echidna verify - -# Check specific proof -prove-check PROOF: - cd proofs && echidna check {{PROOF}} - -# Generate proof obligations -prove-gen: - @echo "Generating proof obligations from specifications..." - cd proofs && echidna generate - -# Validate proof dependencies -prove-deps: - cd proofs && echidna deps --check - -# ============================================================================ -# CORPUS OPERATIONS -# ============================================================================ - -# Crawl specific source and language -crawl SOURCE LANG: - deno run -A src/Lang1000.res.mjs crawl --source {{SOURCE}} --lang {{LANG}} - -# Crawl all sources via Elixir orchestrator -crawl-all: - cd orchestrator && mix crawl --source all --workers 20 - -# Crawl with specific worker count -crawl-workers SOURCE WORKERS: - cd orchestrator && mix crawl --source {{SOURCE}} --workers {{WORKERS}} - -# List available languages -languages: - deno run -A src/Lang1000.res.mjs list-sources - -# Show language statistics -language-stats: - deno run -A src/Lang1000.res.mjs stats --languages - -# Build parallel corpus -corpus-build: - deno run -A src/Lang1000.res.mjs corpus --build - -# Validate corpus integrity via VeriSimDB -verify: - deno task verify - -# Export corpus to format -corpus-export FORMAT="json": - deno run -A src/Lang1000.res.mjs corpus --export {{FORMAT}} - -# ============================================================================ -# VERISIMDB INTEGRATION -# ============================================================================ - -# Run VeriSimDB corpus quality analysis -verisimdb-verify: - deno run -A src/Lang1000.res.mjs verify --output /tmp/lol-scan.json - -# Ingest scan results into verisimdb-data -verisimdb-ingest: - ./scripts/verisimdb-ingest.sh - -# Full verify + ingest pipeline -verisimdb-pipeline: verisimdb-verify verisimdb-ingest - -# ============================================================================ -# JULIA ANALYSIS -# ============================================================================ - -# Run Julia analysis on corpus -analyze CORPUS: - cd orchestrator && mix analyze --corpus {{CORPUS}} - -# Run Julia analysis standalone -analyze-standalone CORPUS: - cd analysis && julia --project=. src/server.jl analyze {{CORPUS}} - -# Install Julia dependencies -julia-deps: - cd analysis && julia --project=. -e 'using Pkg; Pkg.instantiate()' - -# Run Julia tests -julia-test: - cd analysis && julia --project=. test/runtests.jl - -# ============================================================================ -# ELIXIR ORCHESTRATOR -# ============================================================================ - -# Get Elixir dependencies -elixir-deps: - cd orchestrator && mix deps.get - -# Run Elixir tests -elixir-test: - cd orchestrator && mix test - -# Run Elixir orchestrator interactively -elixir-iex: - cd orchestrator && iex -S mix - -# ============================================================================ -# CONTAINER OPERATIONS (PODMAN) -# ============================================================================ - -# Build container image -container-build: - podman build -t 1000langs:latest -f Containerfile . - -# Build container without cache -container-build-nocache: - podman build --no-cache -t 1000langs:latest -f Containerfile . - -# Run container -container-run: - podman run --rm -it 1000langs:latest - -# Run container with volume mount -container-dev: - podman run --rm -it -v .:/app:Z 1000langs:latest - -# Push container to registry -container-push REGISTRY: - podman push 1000langs:latest {{REGISTRY}}/1000langs:latest - -# List container images -container-list: - podman images | grep 1000langs - -# Clean container images -container-clean: - podman rmi 1000langs:latest || true - -# ============================================================================ -# RSR COMPLIANCE -# ============================================================================ - -# Run full RSR audit -rsr-audit: - ./scripts/rsr-audit.sh . text - -# Run RSR audit with JSON output -rsr-audit-json: - ./scripts/rsr-audit.sh . json - -# Run RSR audit with HTML report -rsr-audit-html: - ./scripts/rsr-audit.sh . html > reports/rsr-audit.html - -# Check compliance level -rsr-level: - @./scripts/rsr-audit.sh . json | jq -r '.compliance_level' - -# Validate SPDX headers -spdx-check: - @echo "Checking SPDX license headers..." - @find src test -name "*.res" -exec grep -L "SPDX-License-Identifier" {} \; | \ - xargs -I {} echo "Missing SPDX header: {}" - -# Add SPDX headers to files -spdx-fix: - @echo "Adding SPDX headers to files..." - ./scripts/add-spdx-headers.sh - -# ============================================================================ -# RELEASE & VERSIONING -# ============================================================================ - -# Show current version -version: - @jq -r '.version' package.json - -# Bump patch version -bump-patch: - npm version patch --no-git-tag-version - -# Bump minor version -bump-minor: - npm version minor --no-git-tag-version - -# Bump major version -bump-major: - npm version major --no-git-tag-version - -# Create release -release VERSION: - @echo "Creating release v{{VERSION}}..." - npm version {{VERSION}} -m "Release v{{VERSION}}" - git push origin main --tags - -# Generate changelog -changelog: - @echo "Generating CHANGELOG.md..." - git log --pretty=format:"- %s (%h)" --no-merges > CHANGELOG.md.tmp - cat CHANGELOG.md.tmp >> CHANGELOG.md - rm CHANGELOG.md.tmp - -# ============================================================================ -# NICKEL CONFIGURATION -# ============================================================================ - -# Validate Nickel configuration -nickel-check: - nickel eval config/main.ncl - -# Export Nickel to JSON -nickel-export: - nickel export config/main.ncl > config/config.json - -# Show resolved configuration -nickel-show: - nickel eval config/main.ncl | jq . - -# ============================================================================ -# CI/CD HELPERS -# ============================================================================ - -# Setup CI environment -ci-setup: - deno install - -# Run CI checks -ci-check: ci-setup check - -# Build for CI -ci-build: ci-setup build-prod test-coverage - -# Deploy artifacts -ci-deploy: - @echo "Deploying artifacts..." - -# ============================================================================ -# DEVELOPMENT UTILITIES -# ============================================================================ - -# Start development server -dev: watch - -# Open project in editor -edit: - $EDITOR . - -# Show project structure -tree: - @tree -I 'node_modules|.git|coverage|.rescript' -a --dirsfirst - -# Count lines of code -loc: - @tokei --exclude node_modules --exclude .git - -# Generate TODO list from code -todos: - @grep -rn "TODO\|FIXME\|HACK\|XXX" src test --include="*.res" || true - -# Security audit -security: - deno run -A npm:audit - -# Check for outdated dependencies -outdated: - @echo "Check deno.json imports for updates" - -# ============================================================================ -# DATABASE & PERSISTENCE -# ============================================================================ - -# Initialize database -db-init: - @echo "Initializing corpus database..." - mkdir -p data/corpus - -# Backup database -db-backup: - tar -czf backups/corpus-$(date +%Y%m%d-%H%M%S).tar.gz data/corpus - -# Restore database from backup -db-restore BACKUP: - tar -xzf {{BACKUP}} -C data/ - -# ============================================================================ -# OPENCYC INTEGRATION -# ============================================================================ - -# Start OpenCyc connection -cyc-connect: - @echo "Connecting to OpenCyc knowledge base..." - deno run -A src/cyc/OpenCyc.res.mjs connect - -# Query OpenCyc -cyc-query TERM: - deno run -A src/cyc/OpenCyc.res.mjs query "{{TERM}}" - -# Sync language concepts with OpenCyc -cyc-sync: - deno run -A src/cyc/OpenCyc.res.mjs sync-languages - -# ============================================================================ -# GIS INTEGRATION (FUTURE) -# ============================================================================ - -# Generate language distribution map -gis-map: - @echo "GIS integration planned - see FUTURE.adoc" - -# Export language coordinates -gis-export: - @echo "GIS integration planned - see FUTURE.adoc" - -# ============================================================================ -# MISCELLANEOUS -# ============================================================================ - -# Print environment info -env-info: - @echo "Deno: $(deno --version | head -1)" - @echo "ReScript: $(npx rescript -version)" - @echo "Elixir: $(elixir --version | tail -1)" - @echo "Julia: $(julia --version)" - @echo "Podman: $(podman --version)" - @echo "Just: $(just --version)" - -# Open project repository -repo: - xdg-open https://github.com/Hyperpolymath/1000Langs - -# Open documentation -open-docs: - xdg-open docs/html/README.html - -# Benchmark performance -bench: - @echo "Running benchmarks..." - deno run -A src/bench.res.mjs - -# Profile memory usage -profile: - deno run -A --inspect src/Lang1000.res.mjs - -# ============================================================================ -# MAINTENANCE -# ============================================================================ - -# Update .gitignore -gitignore: - curl -sL https://www.toptal.com/developers/gitignore/api/node,rescript,vim,emacs > .gitignore - -# Prune git repository -git-prune: - git gc --prune=now - git remote prune origin - -# Archive old branches -git-archive: - @echo "Archiving merged branches..." - git branch --merged | grep -v "main\|master\|\*" | xargs -r git branch -d - -# All maintenance tasks -maintain: clean git-prune security outdated diff --git a/lol/LICENSE b/lol/LICENSE deleted file mode 100644 index 78a5483a9..000000000 --- a/lol/LICENSE +++ /dev/null @@ -1,663 +0,0 @@ -SPDX-License-Identifier: MPL-2.0 - - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. diff --git a/lol/MAINTAINERS.adoc b/lol/MAINTAINERS.adoc deleted file mode 100644 index 48d978175..000000000 --- a/lol/MAINTAINERS.adoc +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= Maintainers -:toc: preamble - -This document lists the maintainers of this project and their responsibilities. - -== Current Maintainers - -[cols="2,3,2",options="header"] -|=== -| Name | Role | Contact - -| Jonathan D.A. Jewell -| Lead Maintainer -| https://github.com/hyperpolymath[@hyperpolymath] -|=== - -== Responsibilities - -Maintainers are responsible for: - -* Reviewing and merging pull requests -* Triaging issues and feature requests -* Ensuring code quality and security standards -* Managing releases and versioning -* Upholding the project's code of conduct - -== Becoming a Maintainer - -Contributors who demonstrate: - -* Consistent, high-quality contributions -* Understanding of the project's goals and standards -* Constructive participation in discussions -* Commitment to the project's long-term health - -May be invited to become maintainers at the discretion of existing maintainers. - -== Decision Making - -* Routine decisions (bug fixes, minor improvements) can be made by any maintainer -* Significant changes require discussion and consensus among maintainers -* Breaking changes or major features should be discussed in issues before implementation - -== Contact - -For questions about project governance, open an issue or contact the maintainers listed above. diff --git a/lol/Mustfile b/lol/Mustfile deleted file mode 100644 index 5f075413a..000000000 --- a/lol/Mustfile +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Mustfile - hyperpolymath mandatory checks -# See: https://github.com/hyperpolymath/mustfile - -version: 1 - -checks: - - name: security - run: just lint - - name: tests - run: just test - - name: format - run: just fmt diff --git a/lol/README.adoc b/lol/README.adoc deleted file mode 100644 index c50db083d..000000000 --- a/lol/README.adoc +++ /dev/null @@ -1,245 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -// SPDX-FileCopyrightText: 2024-2025 Ehsaneddin Asgari and Contributors -= LOL - -image:https://img.shields.io/badge/License-PMPL--1.0-blue.svg[License: PMPL-1.0,link="https://github.com/hyperpolymath/palimpsest-license"] -:toc: preamble -:toclevels: 3 -:icons: font -:source-highlighter: rouge -:experimental: - -image:https://img.shields.io/badge/RSR-Gold%20(100%25)-ffd700[RSR Compliance, link=https://github.com/Hyperpolymath/rhodium-standard-repositories] -image:https://img.shields.io/badge/License-PMPL--1.0-blue.svg[License: PMPL-1.0,link="https://github.com/hyperpolymath/palimpsest-license"] -image:https://img.shields.io/badge/ReScript-11.x-e84f4f[ReScript] -image:https://img.shields.io/badge/Podman-Ready-purple[Podman] - -**Super-parallel corpus crawler for multilingual NLP and Computational Linguistics research** - -A type-safe ReScript implementation for building massive parallel corpora across 1500+ languages from Bible translation sources. - -== Features - -* *1500+ Languages* - Crawl parallel texts from multiple Bible corpus sources -* *Type-Safe* - Built with ReScript for compile-time correctness -* *Proof-Verified* - Echidna integration for mathematical verification -* *RSR Gold Compliant* - Follows Rhodium Standard Repository specifications -* *Semantic Grounding* - OpenCyc integration for common-sense reasoning -* *Container-Ready* - Podman-native (no Docker required) - -== Quick Start - -=== Prerequisites - -* Node.js 20+ -* Just command runner -* Nix (recommended) or npm -* Podman (for containers) - -=== Installation - -[source,bash] ----- -# Clone the repository -git clone https://github.com/Hyperpolymath/1000Langs.git -cd 1000Langs - -# Using Nix (recommended) -nix develop - -# Or using npm directly -npm install ----- - -=== Build & Run - -[source,bash] ----- -# Build the project -just build - -# Run tests -just test - -# Run the crawler -just crawl-all ----- - -== Project Structure - -[source] ----- -1000Langs/ -├── src/ -│ ├── Lang1000.res # Main entry point -│ ├── crawlers/ # Web crawler implementations -│ │ ├── Crawler.res # Base crawler module -│ │ ├── BibleCloud.res # bible.cloud crawler -│ │ ├── BibleCom.res # bible.com crawler -│ │ └── PngScriptures.res # pngscriptures.org crawler -│ ├── api/ # API client wrappers -│ │ └── DigitalBiblePlatform.res -│ ├── corpus/ # Corpus management -│ │ └── Alignment.res # Parallel text alignment -│ ├── utils/ # Utility modules -│ │ ├── Iso639.res # Language code handling -│ │ └── Statistics.res # Statistical functions -│ ├── proofs/ # Mathematical proofs -│ └── cyc/ # OpenCyc integration -├── test/ # Test suites -├── proofs/ # Echidna proof files -├── config/ # Nickel configuration -├── meta/ # Reference data -├── .well-known/ # Discovery files -├── Justfile # Task automation -├── flake.nix # Nix development environment -├── Containerfile # Podman container definition -└── rescript.json # ReScript configuration ----- - -== Supported Sources - -[cols="1,2,1,1"] -|=== -|Source |URL |Type |Languages - -|Bible Cloud -|https://bible.cloud -|API -|1500+ - -|Bible.com -|https://bible.com -|Scraper -|2000+ - -|PNG Scriptures -|https://pngscriptures.org -|Download -|800+ - -|eBible -|https://ebible.org -|Download -|1000+ - -|Find.Bible -|https://find.bible -|API -|1200+ -|=== - -== Configuration - -Configuration is managed through Nickel for type-safe, validated settings: - -[source,bash] ----- -# Validate configuration -just nickel-check - -# Export to JSON -just nickel-export - -# Show resolved config -just nickel-show ----- - -See `config/main.ncl` for all configuration options. - -== Testing - -[source,bash] ----- -# Run all tests -just test - -# Run with coverage -just test-coverage - -# Run proof verification -just prove ----- - -== Proof Verification - -This project integrates with https://github.com/hyperpolymath/echidna[Echidna] for mathematical proof verification: - -* Data integrity proofs -* Alignment correctness verification -* Statistical property validation -* Type safety guarantees - -[source,bash] ----- -# Run all proofs -just prove - -# Check specific proof -just prove-check alignment_correctness ----- - -== Container Deployment - -Uses Podman (not Docker) for container operations: - -[source,bash] ----- -# Build container -just container-build - -# Run container -just container-run - -# Deploy with volume mounts -just container-dev ----- - -== RSR Compliance - -This project targets *Gold (100%)* compliance with the https://github.com/Hyperpolymath/rhodium-standard-repositories[Rhodium Standard Repository] specification: - -[source,bash] ----- -# Run compliance audit -just rsr-audit - -# Generate HTML report -just rsr-audit-html ----- - -== Contributing - -See link:CONTRIBUTING.adoc[CONTRIBUTING.adoc] for guidelines. - -This project uses the *Tri-Perimeter Contribution Framework (TPCF)*: - -* *Perimeter 1 (Core)*: Maintainers only -* *Perimeter 2 (Expert)*: Trusted contributors -* *Perimeter 3 (Community)*: Open contributions - -== License - -Dual licensed under: - -* Palimpsest-MPL-1.0 License -* Palimpsest License v0.8 - -See link:LICENSE.txt[LICENSE.txt] for details. - -Commercial use with attribution is permitted. Proprietary AI training without attribution is prohibited. - -== Acknowledgments - -* Original Python implementation by Ehsaneddin Asgari (LMU Munich) -* Bible corpus data from various open Bible translation projects -* https://github.com/hyperpolymath/echidna[Echidna] for proof verification -* https://github.com/Hyperpolymath/rhodium-standard-repositories[RSR] for compliance framework - -== See Also - -* link:CONTRIBUTING.adoc[Contributing Guide] -* link:CODE_OF_CONDUCT.adoc[Code of Conduct] -* link:SECURITY.md[Security Policy] -* link:CHANGELOG.adoc[Changelog] -* link:FUTURE.adoc[Future Roadmap] diff --git a/lol/SECURITY.adoc b/lol/SECURITY.adoc deleted file mode 100644 index 128815010..000000000 --- a/lol/SECURITY.adoc +++ /dev/null @@ -1,23 +0,0 @@ -== Security Policy - -=== Supported Versions - -Use this section to tell people about which versions of your project are -currently being supported with security updates. - -[cols=",",options="header",] -|=== -|Version |Supported -|5.1.x |:white_check_mark: -|5.0.x |:x: -|4.0.x |:white_check_mark: -|< 4.0 |:x: -|=== - -=== Reporting a Vulnerability - -Use this section to tell people how to report a vulnerability. - -Tell them where to go, how often they can expect to get an update on a -reported vulnerability, what to expect if the vulnerability is accepted -or declined, etc. diff --git a/lol/analysis/Project.toml b/lol/analysis/Project.toml deleted file mode 100644 index cf932fb50..000000000 --- a/lol/analysis/Project.toml +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -[project] -name = "LolAnalysis" -uuid = "a3f1b2c4-d5e6-7f89-0a1b-2c3d4e5f6789" -authors = ["Jonathan D.A. Jewell "] -version = "0.1.0" - -[deps] -Clustering = "aabd7145-8216-542d-afb2-2a83900db5b6" -DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" -Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" -Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" -Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" -InformationMeasures = "96684042-fbee-5c2e-80c4-e47002d88a5a" -JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" -StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" -StringEncodings = "69024149-9ee7-5d6a-999f-4136abab0b93" -TextAnalysis = "a2db99b7-8b79-58f8-94bf-bbc3c0161571" -WordTokenizers = "796a5d58-b03d-544a-977e-18c17f187ber" diff --git a/lol/analysis/src/LolAnalysis.jl b/lol/analysis/src/LolAnalysis.jl deleted file mode 100644 index d5c4bb584..000000000 --- a/lol/analysis/src/LolAnalysis.jl +++ /dev/null @@ -1,148 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -""" - LolAnalysis - -Julia analysis layer for 1000Langs corpus data. -Provides statistical analysis, language distance computation, -phylogenetic clustering, and quality assessment. - -Integrates with Elixir orchestrator via JSON-over-stdio bridge. -""" -module LolAnalysis - -include("corpus_stats.jl") -include("language_distance.jl") -include("frequency_analysis.jl") -include("phylogenetic.jl") -include("quality_assessment.jl") -include("zero_frequency.jl") - -using .CorpusStats -using .LanguageDistance -using .FrequencyAnalysis -using .Phylogenetic -using .QualityAssessment -using .ZeroFrequency - -export analyze_corpus, compute_distances, cluster_languages, - assess_quality, frequency_spectra - -""" - analyze_corpus(texts::Dict{String,String}) -> Dict - -Run full statistical analysis on a corpus of language texts. -Returns per-language metrics including entropy, TTR, and quality scores. -""" -function analyze_corpus(texts::Dict{String,String}) - results = Dict{String,Any}() - - for (lang, text) in texts - stats = CorpusStats.compute_all(text) - quality = QualityAssessment.quality_score(text) - - results[lang] = Dict( - "character_entropy" => stats.character_entropy, - "word_entropy" => stats.word_entropy, - "type_token_ratio" => stats.type_token_ratio, - "hapax_ratio" => stats.hapax_ratio, - "mean_word_length" => stats.mean_word_length, - "quality_score" => quality - ) - end - - return results -end - -""" - compute_distances(texts::Dict{String,String}; metric=:jensen_shannon) -> Matrix - -Compute pairwise distance matrix across all languages in the corpus. -""" -function compute_distances(texts::Dict{String,String}; metric::Symbol=:jensen_shannon) - langs = collect(keys(texts)) - n = length(langs) - - # Build character n-gram profiles - profiles = Dict{String,Dict{String,Float64}}() - for (lang, text) in texts - profiles[lang] = FrequencyAnalysis.ngram_profile(text, 3) - end - - # Compute distance matrix - return LanguageDistance.pairwise_distances(profiles, langs, metric) -end - -""" - cluster_languages(texts::Dict{String,String}; method=:upgma) -> String - -Cluster languages and return a Newick-format tree. -""" -function cluster_languages(texts::Dict{String,String}; method::Symbol=:upgma) - distances = compute_distances(texts) - langs = collect(keys(texts)) - return Phylogenetic.build_tree(distances, langs, method) -end - -""" - assess_quality(texts::Dict{String,String}) -> Vector{Dict} - -Assess corpus quality and return VeriSimDB-compatible weak points. -""" -function assess_quality(texts::Dict{String,String}) - weak_points = Dict{String,Any}[] - - for (lang, text) in texts - lang_wps = QualityAssessment.detect_issues(text, lang) - append!(weak_points, lang_wps) - end - - return weak_points -end - -""" - frequency_spectra(texts::Dict{String,String}) -> Dict - -Compute frequency spectra for each language in the corpus. -""" -function frequency_spectra(texts::Dict{String,String}) - results = Dict{String,Any}() - - for (lang, text) in texts - spectrum = FrequencyAnalysis.frequency_spectrum(text) - zipf = FrequencyAnalysis.zipf_coefficient(text) - - results[lang] = Dict( - "spectrum" => spectrum, - "zipf_coefficient" => zipf - ) - end - - return results -end - -""" - test() - -Quick self-test to verify module loads correctly. -""" -function test() - println("LolAnalysis v0.1.0 loaded successfully") - - # Basic smoke test - sample = Dict("eng" => "In the beginning God created the heavens and the earth", - "fra" => "Au commencement Dieu crea les cieux et la terre") - - results = analyze_corpus(sample) - println("Analyzed $(length(results)) languages") - - for (lang, stats) in results - println(" $lang: entropy=$(round(stats["character_entropy"], digits=3)), " * - "quality=$(round(stats["quality_score"], digits=3))") - end - - println("All tests passed") -end - -end # module diff --git a/lol/analysis/src/corpus_stats.jl b/lol/analysis/src/corpus_stats.jl deleted file mode 100644 index 3502f6bf4..000000000 --- a/lol/analysis/src/corpus_stats.jl +++ /dev/null @@ -1,130 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -""" - CorpusStats - -Enhanced statistical analysis beyond the ReScript Statistics module. -Provides character-level and word-level metrics for corpus quality. -""" -module CorpusStats - -using StatsBase - -export compute_all, character_entropy, word_entropy, - type_token_ratio, hapax_legomena_ratio - -struct CorpusStatistics - character_entropy::Float64 - word_entropy::Float64 - type_token_ratio::Float64 - hapax_ratio::Float64 - mean_word_length::Float64 - total_chars::Int - total_words::Int - unique_words::Int -end - -""" - character_entropy(text::String) -> Float64 - -Compute Shannon entropy of character distribution. -Higher entropy suggests more complex orthography. -""" -function character_entropy(text::String) - isempty(text) && return 0.0 - - chars = collect(text) - counts = countmap(chars) - total = length(chars) - - entropy = 0.0 - for (_, count) in counts - p = count / total - if p > 0 - entropy -= p * log2(p) - end - end - - return entropy -end - -""" - word_entropy(text::String) -> Float64 - -Compute Shannon entropy at the word level. -""" -function word_entropy(text::String) - words = split(lowercase(text)) - isempty(words) && return 0.0 - - counts = countmap(words) - total = length(words) - - entropy = 0.0 - for (_, count) in counts - p = count / total - if p > 0 - entropy -= p * log2(p) - end - end - - return entropy -end - -""" - type_token_ratio(text::String) -> Float64 - -Vocabulary richness: unique words / total words. -Higher values indicate more diverse vocabulary. -""" -function type_token_ratio(text::String) - words = split(lowercase(text)) - isempty(words) && return 0.0 - - unique = length(Set(words)) - return unique / length(words) -end - -""" - hapax_legomena_ratio(text::String) -> Float64 - -Proportion of words occurring exactly once. -Indicator of vocabulary breadth in the sample. -""" -function hapax_legomena_ratio(text::String) - words = split(lowercase(text)) - isempty(words) && return 0.0 - - counts = countmap(words) - hapax = count(v -> v == 1, values(counts)) - - return hapax / length(words) -end - -""" - compute_all(text::String) -> CorpusStatistics - -Compute all statistics for a text. -""" -function compute_all(text::String) - words = split(lowercase(text)) - unique_words = length(Set(words)) - total_words = length(words) - - word_lengths = [length(w) for w in words] - mean_wl = isempty(word_lengths) ? 0.0 : mean(word_lengths) - - return CorpusStatistics( - character_entropy(text), - word_entropy(text), - total_words > 0 ? unique_words / total_words : 0.0, - hapax_legomena_ratio(text), - mean_wl, - length(text), - total_words, - unique_words - ) -end - -end # module diff --git a/lol/analysis/src/frequency_analysis.jl b/lol/analysis/src/frequency_analysis.jl deleted file mode 100644 index 0615d49a8..000000000 --- a/lol/analysis/src/frequency_analysis.jl +++ /dev/null @@ -1,145 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -""" - FrequencyAnalysis - -N-gram and word frequency analysis for corpus texts. -Includes Zipf's law coefficient estimation and vocabulary growth curves. -""" -module FrequencyAnalysis - -using StatsBase - -export ngram_profile, frequency_spectrum, zipf_coefficient, - vocabulary_growth, ngram_frequencies - -""" - ngram_profile(text::String, n::Int) -> Dict{String,Float64} - -Build a normalized character n-gram frequency profile. -Returns probabilities that sum to 1.0. -""" -function ngram_profile(text::String, n::Int) - isempty(text) && return Dict{String,Float64}() - - chars = collect(lowercase(text)) - total_ngrams = length(chars) - n + 1 - total_ngrams <= 0 && return Dict{String,Float64}() - - counts = Dict{String,Int}() - for i in 1:total_ngrams - ngram = String(chars[i:i+n-1]) - counts[ngram] = get(counts, ngram, 0) + 1 - end - - # Normalize to probabilities - profile = Dict{String,Float64}() - for (ngram, count) in counts - profile[ngram] = count / total_ngrams - end - - return profile -end - -""" - ngram_frequencies(text::String, n::Int) -> Dict{String,Int} - -Build a raw character n-gram frequency count. -""" -function ngram_frequencies(text::String, n::Int) - isempty(text) && return Dict{String,Int}() - - chars = collect(lowercase(text)) - total_ngrams = length(chars) - n + 1 - total_ngrams <= 0 && return Dict{String,Int}() - - counts = Dict{String,Int}() - for i in 1:total_ngrams - ngram = String(chars[i:i+n-1]) - counts[ngram] = get(counts, ngram, 0) + 1 - end - - return counts -end - -""" - frequency_spectrum(text::String) -> Vector{Tuple{Int,Int}} - -Compute Baayen-style frequency spectrum: (frequency, count_of_words_with_that_frequency). -V(1) = hapax legomena, V(2) = dis legomena, etc. -""" -function frequency_spectrum(text::String) - words = split(lowercase(text)) - isempty(words) && return Tuple{Int,Int}[] - - word_counts = countmap(words) - freq_counts = countmap(values(word_counts)) - - spectrum = [(freq, count) for (freq, count) in freq_counts] - sort!(spectrum, by=x -> x[1]) - - return spectrum -end - -""" - zipf_coefficient(text::String) -> Float64 - -Estimate Zipf's law exponent from word frequency distribution. -Natural language typically has coefficient near 1.0. -Deviations may indicate data quality issues. -""" -function zipf_coefficient(text::String) - words = split(lowercase(text)) - isempty(words) && return 0.0 - - word_counts = countmap(words) - frequencies = sort(collect(values(word_counts)), rev=true) - n = length(frequencies) - n < 2 && return 0.0 - - # Linear regression on log-log scale: log(freq) ~ -alpha * log(rank) - log_ranks = [log(i) for i in 1:n] - log_freqs = [log(f) for f in frequencies] - - # Least squares: alpha = -cov(log_rank, log_freq) / var(log_rank) - mean_lr = mean(log_ranks) - mean_lf = mean(log_freqs) - - cov_sum = 0.0 - var_sum = 0.0 - for i in 1:n - cov_sum += (log_ranks[i] - mean_lr) * (log_freqs[i] - mean_lf) - var_sum += (log_ranks[i] - mean_lr)^2 - end - - var_sum == 0.0 && return 0.0 - alpha = -cov_sum / var_sum - - return alpha -end - -""" - vocabulary_growth(text::String; step=100) -> Vector{Tuple{Int,Int}} - -Compute vocabulary growth curve (Heaps' law). -Returns (tokens_seen, unique_types) at each step. -""" -function vocabulary_growth(text::String; step::Int=100) - words = split(lowercase(text)) - isempty(words) && return Tuple{Int,Int}[] - - seen = Set{String}() - curve = Tuple{Int,Int}[] - - for (i, word) in enumerate(words) - push!(seen, word) - if i % step == 0 || i == length(words) - push!(curve, (i, length(seen))) - end - end - - return curve -end - -end # module diff --git a/lol/analysis/src/language_distance.jl b/lol/analysis/src/language_distance.jl deleted file mode 100644 index 6222af00b..000000000 --- a/lol/analysis/src/language_distance.jl +++ /dev/null @@ -1,149 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -""" - LanguageDistance - -Pairwise distance computation across 1500+ languages. -Uses character n-gram profiles with multiple distance metrics. -""" -module LanguageDistance - -using Distances: cosine_dist, euclidean - -export pairwise_distances, nearest_neighbors, jensen_shannon, - jaccard_ngram, cosine_ngram - -""" - jensen_shannon(p::Dict, q::Dict) -> Float64 - -Jensen-Shannon divergence between two n-gram distributions. -Symmetric and bounded in [0, 1] when using log2. -""" -function jensen_shannon(p::Dict{String,Float64}, q::Dict{String,Float64}) - all_keys = union(keys(p), keys(q)) - - kl_pm = 0.0 - kl_qm = 0.0 - - for key in all_keys - pi = get(p, key, 0.0) - qi = get(q, key, 0.0) - mi = (pi + qi) / 2.0 - - if pi > 0 && mi > 0 - kl_pm += pi * log2(pi / mi) - end - if qi > 0 && mi > 0 - kl_qm += qi * log2(qi / mi) - end - end - - return (kl_pm + kl_qm) / 2.0 -end - -""" - jaccard_ngram(p::Dict, q::Dict) -> Float64 - -Jaccard distance between two n-gram sets. -""" -function jaccard_ngram(p::Dict{String,Float64}, q::Dict{String,Float64}) - p_keys = Set(keys(p)) - q_keys = Set(keys(q)) - - intersection_size = length(intersect(p_keys, q_keys)) - union_size = length(union(p_keys, q_keys)) - - union_size == 0 && return 0.0 - return 1.0 - intersection_size / union_size -end - -""" - cosine_ngram(p::Dict, q::Dict) -> Float64 - -Cosine distance between two n-gram frequency vectors. -""" -function cosine_ngram(p::Dict{String,Float64}, q::Dict{String,Float64}) - all_keys = union(keys(p), keys(q)) - - dot_product = 0.0 - norm_p = 0.0 - norm_q = 0.0 - - for key in all_keys - pi = get(p, key, 0.0) - qi = get(q, key, 0.0) - dot_product += pi * qi - norm_p += pi^2 - norm_q += qi^2 - end - - denom = sqrt(norm_p) * sqrt(norm_q) - denom == 0 && return 0.0 - - return 1.0 - dot_product / denom -end - -""" - pairwise_distances(profiles, langs, metric) -> Matrix{Float64} - -Compute N x N pairwise distance matrix for language profiles. -""" -function pairwise_distances( - profiles::Dict{String,Dict{String,Float64}}, - langs::Vector{String}, - metric::Symbol=:jensen_shannon -) - n = length(langs) - D = zeros(Float64, n, n) - - dist_fn = if metric == :jensen_shannon - jensen_shannon - elseif metric == :cosine - cosine_ngram - elseif metric == :jaccard - jaccard_ngram - else - jensen_shannon - end - - for i in 1:n - for j in (i+1):n - d = dist_fn(profiles[langs[i]], profiles[langs[j]]) - D[i, j] = d - D[j, i] = d # Symmetric - end - end - - return D -end - -""" - nearest_neighbors(lang, profiles, langs, k; metric) -> Vector{Tuple{String,Float64}} - -Find k most similar languages to the given language. -""" -function nearest_neighbors( - lang::String, - profiles::Dict{String,Dict{String,Float64}}, - langs::Vector{String}, - k::Int; - metric::Symbol=:jensen_shannon -) - !(lang in langs) && return Tuple{String,Float64}[] - - dist_fn = metric == :jensen_shannon ? jensen_shannon : - metric == :cosine ? cosine_ngram : jaccard_ngram - - distances = Tuple{String,Float64}[] - for other in langs - other == lang && continue - d = dist_fn(profiles[lang], profiles[other]) - push!(distances, (other, d)) - end - - sort!(distances, by=x -> x[2]) - return distances[1:min(k, length(distances))] -end - -end # module diff --git a/lol/analysis/src/phylogenetic.jl b/lol/analysis/src/phylogenetic.jl deleted file mode 100644 index d9cc09ec1..000000000 --- a/lol/analysis/src/phylogenetic.jl +++ /dev/null @@ -1,173 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -""" - Phylogenetic - -Language clustering and phylogenetic tree construction from -statistical distances. Inspired by Cladistics.jl patterns. -Methods: UPGMA, neighbor-joining, Ward's. -""" -module Phylogenetic - -using Clustering - -export build_tree, upgma, neighbor_joining, to_newick - -""" - upgma(D::Matrix{Float64}, labels::Vector{String}) -> String - -UPGMA (Unweighted Pair Group Method with Arithmetic Mean) clustering. -Returns Newick-format tree string. -""" -function upgma(D::Matrix{Float64}, labels::Vector{String}) - n = length(labels) - n == 0 && return ";" - n == 1 && return "$(labels[1]);" - - # Use hierarchical clustering from Clustering.jl - # Convert distance matrix to condensed form - dists = Float64[] - for i in 1:n - for j in (i+1):n - push!(dists, D[i, j]) - end - end - - # Build tree using average linkage (UPGMA) - result = hclust(D, linkage=:average) - - # Convert to Newick format - return hclust_to_newick(result, labels) -end - -""" - neighbor_joining(D::Matrix{Float64}, labels::Vector{String}) -> String - -Neighbor-joining algorithm for phylogenetic tree construction. -Returns Newick-format tree string. -""" -function neighbor_joining(D::Matrix{Float64}, labels::Vector{String}) - n = length(labels) - n == 0 && return ";" - n == 1 && return "$(labels[1]);" - n == 2 && return "($(labels[1]):$(D[1,2]/2),$(labels[2]):$(D[1,2]/2));" - - # Working copies - dist = copy(D) - active = collect(1:n) - node_labels = copy(labels) - next_id = n + 1 - - while length(active) > 2 - m = length(active) - - # Compute Q matrix - r = zeros(m) - for i in 1:m - for j in 1:m - if i != j - r[i] += dist[active[i], active[j]] - end - end - end - - # Find minimum Q entry - min_q = Inf - min_i, min_j = 1, 2 - for i in 1:m - for j in (i+1):m - q = (m - 2) * dist[active[i], active[j]] - r[i] - r[j] - if q < min_q - min_q = q - min_i, min_j = i, j - end - end - end - - # Compute branch lengths - ai, aj = active[min_i], active[min_j] - d_ij = dist[ai, aj] - li = d_ij / 2 + (r[min_i] - r[min_j]) / (2 * (m - 2)) - lj = d_ij - li - - li = max(li, 0.0) - lj = max(lj, 0.0) - - # Create new node label - new_label = "($(node_labels[ai]):$(round(li, digits=6)),$(node_labels[aj]):$(round(lj, digits=6)))" - - # Update distance matrix for new node - new_dists = zeros(size(dist, 1) + 1, size(dist, 2) + 1) - new_dists[1:size(dist,1), 1:size(dist,2)] = dist - - for k in active - if k != ai && k != aj - d_new = (dist[ai, k] + dist[aj, k] - d_ij) / 2 - d_new = max(d_new, 0.0) - new_dists[next_id, k] = d_new - new_dists[k, next_id] = d_new - end - end - - dist = new_dists - push!(node_labels, new_label) - filter!(x -> x != ai && x != aj, active) - push!(active, next_id) - next_id += 1 - end - - # Final join - if length(active) == 2 - a, b = active - d = dist[a, b] / 2 - return "($(node_labels[a]):$(round(d, digits=6)),$(node_labels[b]):$(round(d, digits=6)));" - end - - return "$(node_labels[active[1]]);" -end - -""" - build_tree(D::Matrix{Float64}, labels::Vector{String}, method::Symbol) -> String - -Build phylogenetic tree using the specified method. -Returns Newick-format tree string. -""" -function build_tree(D::Matrix{Float64}, labels::Vector{String}, method::Symbol=:upgma) - if method == :upgma - return upgma(D, labels) - elseif method == :nj || method == :neighbor_joining - return neighbor_joining(D, labels) - elseif method == :ward - result = hclust(D, linkage=:ward) - return hclust_to_newick(result, labels) - else - return upgma(D, labels) - end -end - -""" -Convert Clustering.jl hclust result to Newick format string. -""" -function hclust_to_newick(result, labels::Vector{String}) - n = length(labels) - node_labels = Dict{Int,String}() - - for i in 1:n - node_labels[i] = labels[i] - end - - for (k, (i, j)) in enumerate(zip(result.merge[:, 1], result.merge[:, 2])) - # In hclust, negative indices are leaves, positive are internal nodes - left = i < 0 ? node_labels[-i] : node_labels[n + i] - right = j < 0 ? node_labels[-j] : node_labels[n + j] - height = result.heights[k] - - node_labels[n + k] = "($(left):$(round(height/2, digits=6)),$(right):$(round(height/2, digits=6)))" - end - - last_key = n + size(result.merge, 1) - return "$(node_labels[last_key]);" -end - -end # module diff --git a/lol/analysis/src/quality_assessment.jl b/lol/analysis/src/quality_assessment.jl deleted file mode 100644 index 1a1f38dfa..000000000 --- a/lol/analysis/src/quality_assessment.jl +++ /dev/null @@ -1,217 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -""" - QualityAssessment - -Corpus quality scoring and VeriSimDB-compatible weak point generation. -Combines multiple quality dimensions into a composite score. -Adapted from Axiology.jl multi-criteria scoring patterns. -""" -module QualityAssessment - -using StatsBase - -include("corpus_stats.jl") -using .CorpusStats - -export quality_score, detect_issues, QualityReport - -struct QualityReport - completeness::Float64 - encoding_quality::Float64 - statistical_normality::Float64 - vocabulary_richness::Float64 - composite_score::Float64 -end - -""" - quality_score(text::String) -> Float64 - -Compute a composite quality score from 0.0 (worst) to 1.0 (best). -""" -function quality_score(text::String) - isempty(text) && return 0.0 - - report = full_assessment(text) - return report.composite_score -end - -""" - full_assessment(text::String) -> QualityReport - -Compute all quality dimensions for a text. -""" -function full_assessment(text::String) - isempty(text) && return QualityReport(0.0, 0.0, 0.0, 0.0, 0.0) - - completeness = assess_completeness(text) - encoding = assess_encoding(text) - normality = assess_statistical_normality(text) - richness = assess_vocabulary_richness(text) - - # Weighted composite (encoding issues are most critical) - composite = 0.3 * completeness + 0.3 * encoding + 0.2 * normality + 0.2 * richness - - return QualityReport(completeness, encoding, normality, richness, composite) -end - -""" - assess_completeness(text::String) -> Float64 - -Score based on text length and content density. -Very short texts score low, diminishing returns above threshold. -""" -function assess_completeness(text::String) - len = length(text) - len == 0 && return 0.0 - - # Sigmoid-like curve: reaches ~0.9 at 1000 chars - return 1.0 - exp(-len / 500.0) -end - -""" - assess_encoding(text::String) -> Float64 - -Score based on absence of encoding errors. -Checks for replacement characters, null bytes, and mojibake. -""" -function assess_encoding(text::String) - total_chars = length(text) - total_chars == 0 && return 1.0 - - bad_chars = 0 - - for c in text - # Unicode replacement character - if c == '\ufffd' - bad_chars += 1 - # Null byte - elseif c == '\0' - bad_chars += 1 - # Control characters (except common whitespace) - elseif iscontrol(c) && c ∉ ['\n', '\r', '\t'] - bad_chars += 1 - end - end - - bad_ratio = bad_chars / total_chars - return max(0.0, 1.0 - bad_ratio * 100) # 1% bad chars = score 0 -end - -""" - assess_statistical_normality(text::String) -> Float64 - -Score based on how "normal" the text looks statistically. -Uses Zipf's law conformance as a proxy. -""" -function assess_statistical_normality(text::String) - words = split(lowercase(text)) - length(words) < 10 && return 0.5 # Not enough data - - # Check Zipf's law coefficient (should be near 1.0 for natural text) - counts = countmap(words) - freqs = sort(collect(values(counts)), rev=true) - n = length(freqs) - n < 2 && return 0.5 - - # Estimate alpha via linear regression on log-log - log_ranks = [log(i) for i in 1:n] - log_freqs = [log(f) for f in freqs] - - mean_lr = mean(log_ranks) - mean_lf = mean(log_freqs) - - cov_sum = sum((log_ranks[i] - mean_lr) * (log_freqs[i] - mean_lf) for i in 1:n) - var_sum = sum((log_ranks[i] - mean_lr)^2 for i in 1:n) - - var_sum == 0 && return 0.5 - alpha = -cov_sum / var_sum - - # Score: 1.0 when alpha ≈ 1.0, decreasing as it deviates - deviation = abs(alpha - 1.0) - return max(0.0, 1.0 - deviation) -end - -""" - assess_vocabulary_richness(text::String) -> Float64 - -Score based on type-token ratio and hapax legomena. -""" -function assess_vocabulary_richness(text::String) - words = split(lowercase(text)) - isempty(words) && return 0.0 - - ttr = length(Set(words)) / length(words) - - # TTR between 0.3-0.8 is typical for natural text - if ttr < 0.1 - return ttr * 3 # Very repetitive - elseif ttr > 0.95 - return 0.8 # Suspiciously all-unique (very short text) - else - return min(1.0, ttr * 1.5) # Normal range - end -end - -""" - detect_issues(text::String, language::String) -> Vector{Dict{String,Any}} - -Detect quality issues and return VeriSimDB-compatible weak points. -""" -function detect_issues(text::String, language::String) - weak_points = Dict{String,Any}[] - report = full_assessment(text) - - # Low completeness - if report.completeness < 0.3 - push!(weak_points, Dict( - "category" => "truncated-content", - "severity" => report.completeness < 0.1 ? "high" : "medium", - "location" => language, - "description" => "Very short text (completeness score: $(round(report.completeness, digits=2)))", - "language" => language, - "source" => nothing - )) - end - - # Encoding issues - if report.encoding_quality < 0.9 - push!(weak_points, Dict( - "category" => "encoding-error", - "severity" => report.encoding_quality < 0.5 ? "high" : "medium", - "location" => language, - "description" => "Encoding quality issues detected (score: $(round(report.encoding_quality, digits=2)))", - "language" => language, - "source" => nothing - )) - end - - # Statistical anomaly - if report.statistical_normality < 0.3 - push!(weak_points, Dict( - "category" => "statistical-outlier", - "severity" => "medium", - "location" => language, - "description" => "Text deviates from expected statistical properties (normality: $(round(report.statistical_normality, digits=2)))", - "language" => language, - "source" => nothing - )) - end - - # Very low vocabulary richness (possibly machine-generated or corrupted) - if report.vocabulary_richness < 0.2 - push!(weak_points, Dict( - "category" => "duplicate-content", - "severity" => "medium", - "location" => language, - "description" => "Extremely low vocabulary diversity (richness: $(round(report.vocabulary_richness, digits=2)))", - "language" => language, - "source" => nothing - )) - end - - return weak_points -end - -end # module diff --git a/lol/analysis/src/server.jl b/lol/analysis/src/server.jl deleted file mode 100644 index 93711176c..000000000 --- a/lol/analysis/src/server.jl +++ /dev/null @@ -1,112 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -""" -Elixir bridge server: JSON-over-stdio protocol. - -Reads JSON commands from stdin, dispatches to LolAnalysis functions, -returns JSON results on stdout. - -Commands: - {"cmd": "analyze", "corpus": {"eng": "text...", "fra": "text..."}} - {"cmd": "distance_matrix", "corpus": {...}, "extra": "jensen_shannon"} - {"cmd": "cluster", "corpus": {...}, "extra": "upgma"} - {"cmd": "frequency_spectra", "corpus": {...}} - {"cmd": "quality", "corpus": {...}} -""" - -using JSON3 - -# Include the main module (use @__DIR__ for reliable path resolution) -include(joinpath(@__DIR__, "LolAnalysis.jl")) -using .LolAnalysis - -function handle_command(request::Dict{String,Any}) - cmd = get(request, "cmd", "") - corpus_raw = get(request, "corpus", Dict()) - extra = get(request, "extra", nothing) - - # Parse corpus: either a JSON string or already a dict - corpus = if corpus_raw isa String - try - JSON3.read(corpus_raw, Dict{String,String}) - catch - Dict{String,String}() - end - elseif corpus_raw isa Dict - Dict{String,String}(string(k) => string(v) for (k, v) in corpus_raw) - else - Dict{String,String}() - end - - try - if cmd == "analyze" - results = LolAnalysis.analyze_corpus(corpus) - return Dict("status" => "ok", "results" => results) - - elseif cmd == "distance_matrix" - metric = extra !== nothing ? Symbol(extra) : :jensen_shannon - distances = LolAnalysis.compute_distances(corpus; metric=metric) - langs = collect(keys(corpus)) - return Dict( - "status" => "ok", - "languages" => langs, - "matrix" => [distances[i, :] for i in 1:size(distances, 1)] - ) - - elseif cmd == "cluster" - method = extra !== nothing ? Symbol(extra) : :upgma - tree = LolAnalysis.cluster_languages(corpus; method=method) - return Dict("status" => "ok", "newick" => tree) - - elseif cmd == "frequency_spectra" - spectra = LolAnalysis.frequency_spectra(corpus) - return Dict("status" => "ok", "results" => spectra) - - elseif cmd == "quality" - weak_points = LolAnalysis.assess_quality(corpus) - return Dict("status" => "ok", "weak_points" => weak_points) - - else - return Dict("status" => "error", "message" => "Unknown command: $cmd") - end - catch e - return Dict("status" => "error", "message" => string(e)) - end -end - -function main() - # Signal readiness - println(stderr, "LolAnalysis server ready") - - while !eof(stdin) - line = readline(stdin) - isempty(line) && continue - - try - request = JSON3.read(line, Dict{String,Any}) - response = handle_command(request) - println(stdout, JSON3.write(response)) - flush(stdout) - catch e - error_response = Dict("status" => "error", "message" => string(e)) - println(stdout, JSON3.write(error_response)) - flush(stdout) - end - end -end - -# Run server if executed directly, or handle CLI args -if abspath(PROGRAM_FILE) == @__FILE__ - if length(ARGS) >= 2 && ARGS[1] == "analyze" - # CLI mode: analyze a corpus file - corpus_path = ARGS[2] - corpus_json = read(corpus_path, String) - corpus = JSON3.read(corpus_json, Dict{String,String}) - results = LolAnalysis.analyze_corpus(corpus) - println(JSON3.write(results)) - else - # Server mode - main() - end -end diff --git a/lol/analysis/src/zero_frequency.jl b/lol/analysis/src/zero_frequency.jl deleted file mode 100644 index e32b5cb5f..000000000 --- a/lol/analysis/src/zero_frequency.jl +++ /dev/null @@ -1,156 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -""" - ZeroFrequency - -Sparse language handling using zero-probability estimation. -Inspired by ZeroProb.jl concepts for density ratio estimation. - -Provides smoothing methods for handling unseen n-grams in -low-resource languages where corpus data is limited. -""" -module ZeroFrequency - -using StatsBase - -export good_turing_smooth, add_k_smooth, estimate_unseen, - kneser_ney_smooth - -""" - good_turing_smooth(counts::Dict{String,Int}) -> Dict{String,Float64} - -Good-Turing frequency estimation. Re-estimates probabilities -by using frequency-of-frequency counts to smooth the distribution. -""" -function good_turing_smooth(counts::Dict{String,Int}) - isempty(counts) && return Dict{String,Float64}() - - total = sum(values(counts)) - - # Compute frequency of frequencies (N_r) - freq_of_freq = countmap(values(counts)) - - smoothed = Dict{String,Float64}() - - for (ngram, count) in counts - nr = get(freq_of_freq, count, 0) - nr1 = get(freq_of_freq, count + 1, 0) - - if nr1 > 0 && nr > 0 - # Good-Turing estimate: c* = (c+1) * N_{c+1} / N_c - adjusted = (count + 1) * nr1 / nr - smoothed[ngram] = adjusted / total - else - smoothed[ngram] = count / total - end - end - - # Estimate probability mass for unseen events - n1 = get(freq_of_freq, 1, 0) - p_unseen = n1 / total - - # Normalize - total_p = sum(values(smoothed)) - scale = (1.0 - p_unseen) / total_p - - for (k, v) in smoothed - smoothed[k] = v * scale - end - - return smoothed -end - -""" - add_k_smooth(counts::Dict{String,Int}, vocab_size::Int; k=1.0) -> Dict{String,Float64} - -Add-k (Laplace) smoothing. Adds k to every count including unseen items. -Simple but effective for small vocabularies. -""" -function add_k_smooth(counts::Dict{String,Int}, vocab_size::Int; k::Float64=1.0) - total = sum(values(counts)) + k * vocab_size - - smoothed = Dict{String,Float64}() - for (ngram, count) in counts - smoothed[ngram] = (count + k) / total - end - - return smoothed -end - -""" - kneser_ney_smooth(counts::Dict{String,Int}; d=0.75) -> Dict{String,Float64} - -Modified Kneser-Ney smoothing. Uses absolute discounting with -a continuation probability for unseen n-grams. -""" -function kneser_ney_smooth(counts::Dict{String,Int}; d::Float64=0.75) - isempty(counts) && return Dict{String,Float64}() - - total = sum(values(counts)) - n_unique = length(counts) # Number of unique n-grams seen - - smoothed = Dict{String,Float64}() - - for (ngram, count) in counts - # Discounted probability - p_disc = max(count - d, 0.0) / total - - # Interpolation weight - lambda = d * n_unique / total - - # Continuation probability (uniform for simplicity) - p_cont = 1.0 / max(n_unique, 1) - - smoothed[ngram] = p_disc + lambda * p_cont - end - - return smoothed -end - -""" - estimate_unseen(counts::Dict{String,Int}) -> NamedTuple - -Estimate vocabulary coverage metrics for a language corpus. -Returns estimates of unseen vocabulary size and coverage. -""" -function estimate_unseen(counts::Dict{String,Int}) - isempty(counts) && return ( - observed_types=0, - estimated_total=0, - coverage=0.0, - unseen_estimate=0, - hapax_count=0, - singletons_ratio=0.0 - ) - - observed = length(counts) - total_tokens = sum(values(counts)) - - # Frequency of frequencies - freq_of_freq = countmap(values(counts)) - hapax = get(freq_of_freq, 1, 0) # Words seen once - dis = get(freq_of_freq, 2, 0) # Words seen twice - - # Good-Turing estimate of unseen types - # E[unseen] ≈ N₁² / (2 * N₂) when N₂ > 0 - unseen_estimate = if dis > 0 - round(Int, hapax^2 / (2 * dis)) - else - hapax # Conservative estimate - end - - estimated_total = observed + unseen_estimate - coverage = observed / max(estimated_total, 1) - - return ( - observed_types=observed, - estimated_total=estimated_total, - coverage=round(coverage, digits=4), - unseen_estimate=unseen_estimate, - hapax_count=hapax, - singletons_ratio=round(hapax / max(observed, 1), digits=4) - ) -end - -end # module diff --git a/lol/analysis/test/runtests.jl b/lol/analysis/test/runtests.jl deleted file mode 100644 index 5598c248a..000000000 --- a/lol/analysis/test/runtests.jl +++ /dev/null @@ -1,111 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -using Test - -# Include modules directly for testing -include("../src/corpus_stats.jl") -include("../src/frequency_analysis.jl") -include("../src/zero_frequency.jl") -include("../src/quality_assessment.jl") - -using .CorpusStats -using .FrequencyAnalysis -using .ZeroFrequency -using .QualityAssessment - -@testset "LolAnalysis" begin - - @testset "CorpusStats" begin - text = "In the beginning God created the heavens and the earth" - - @test CorpusStats.character_entropy(text) > 0.0 - @test CorpusStats.character_entropy("") == 0.0 - @test CorpusStats.character_entropy("aaaa") == 0.0 - - @test CorpusStats.word_entropy(text) > 0.0 - @test CorpusStats.word_entropy("") == 0.0 - - @test 0.0 < CorpusStats.type_token_ratio(text) <= 1.0 - @test CorpusStats.type_token_ratio("") == 0.0 - - @test 0.0 <= CorpusStats.hapax_legomena_ratio(text) <= 1.0 - - stats = CorpusStats.compute_all(text) - @test stats.total_chars > 0 - @test stats.total_words > 0 - @test stats.unique_words > 0 - @test stats.mean_word_length > 0.0 - end - - @testset "FrequencyAnalysis" begin - text = "the quick brown fox jumps over the lazy dog the fox" - - profile = FrequencyAnalysis.ngram_profile(text, 3) - @test !isempty(profile) - @test sum(values(profile)) ≈ 1.0 atol=0.01 - - spectrum = FrequencyAnalysis.frequency_spectrum(text) - @test !isempty(spectrum) - @test all(t -> t[1] > 0 && t[2] > 0, spectrum) - - alpha = FrequencyAnalysis.zipf_coefficient(text) - @test alpha > 0.0 - - growth = FrequencyAnalysis.vocabulary_growth(text; step=2) - @test !isempty(growth) - @test growth[end][2] <= growth[end][1] # Types <= tokens - - freqs = FrequencyAnalysis.ngram_frequencies(text, 2) - @test !isempty(freqs) - @test all(v -> v > 0, values(freqs)) - end - - @testset "ZeroFrequency" begin - counts = Dict("the" => 5, "fox" => 3, "dog" => 1, "cat" => 1, "bird" => 2) - - smoothed = ZeroFrequency.good_turing_smooth(counts) - @test !isempty(smoothed) - @test all(v -> v > 0.0, values(smoothed)) - - add_k = ZeroFrequency.add_k_smooth(counts, 100) - @test !isempty(add_k) - @test all(v -> v > 0.0, values(add_k)) - - kn = ZeroFrequency.kneser_ney_smooth(counts) - @test !isempty(kn) - @test all(v -> v > 0.0, values(kn)) - - unseen = ZeroFrequency.estimate_unseen(counts) - @test unseen.observed_types == 5 - @test unseen.hapax_count == 2 - @test 0.0 < unseen.coverage <= 1.0 - @test unseen.unseen_estimate >= 0 - end - - @testset "QualityAssessment" begin - good_text = "In the beginning God created the heavens and the earth. " * - "And the earth was without form, and void; and darkness was upon the face of the deep. " * - "And the Spirit of God moved upon the face of the waters." - - score = QualityAssessment.quality_score(good_text) - @test 0.0 <= score <= 1.0 - @test score > 0.3 # Decent quality text should score reasonably - - @test QualityAssessment.quality_score("") == 0.0 - - issues = QualityAssessment.detect_issues(good_text, "eng") - @test issues isa Vector - - # Short text should trigger truncation warning - short_issues = QualityAssessment.detect_issues("hello", "eng") - @test any(wp -> wp["category"] == "truncated-content", short_issues) - - # Text with encoding errors - bad_text = "Hello\ufffdworld\0test" - bad_issues = QualityAssessment.detect_issues(bad_text * " " ^ 200, "eng") - @test any(wp -> wp["category"] == "encoding-error", bad_issues) - end -end - -println("All tests passed!") diff --git a/lol/api/zig-gateway/build.zig b/lol/api/zig-gateway/build.zig deleted file mode 100644 index 44c3261ab..000000000 --- a/lol/api/zig-gateway/build.zig +++ /dev/null @@ -1,148 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -// -// Build configuration for LOL (1000Langs) Zig API gateway. -// Replaces the V vweb gateway in api/v-gateway/. -// Requires Zig 0.15.2+. -// -// Modules compiled: -// src/main.zig — HTTP gateway, REST / gRPC-compat / GraphQL handlers -// src/types.zig — Public domain types (replaces v-lol/src/types.v) -// src/lol_ffi.zig — Zig wrapper around liblol (replaces v-lol/src/lol.v + ffi.v) -// -// External dependencies: -// -// liblol — LOL i18n Zig FFI from ffi/zig/ (in-repo). -// Build with `zig build` from standards/lol/ffi/zig/ if absent. -// Linked from: ../../ffi/zig/zig-out/lib -// Headers from: ../../generated/abi -// -// libzig_api — Unified Zig API stack from developer-ecosystem/zig-api. -// Provides: -// uapi_init / uapi_teardown — library lifecycle -// uapi_gnosis_create / _start / _stop — HTTP server pool -// uapi_gnosis_destroy / _state — pool management -// uapi_safe_path_default — proven-backed path gate -// Build with `zig build` in developer-ecosystem/zig-api/ffi/zig/. -// Default paths override-able via -Dzig-api-lib-path and -// -Dzig-api-include-path for CI environments. -// -// libproven_ffi — formally-verified safety primitives from -// verification-ecosystem/proven. -// Needed at link time because libzig_api.a references -// proven_path_has_traversal. -// Default path override-able via -Dproven-lib-path. - -const std = @import("std"); - -// ----------------------------------------------------------------------------- -// Default paths — canonical Eclipse-drive locations -// ----------------------------------------------------------------------------- - -/// Pre-built libzig_api (developer-ecosystem/zig-api/ffi/zig/zig-out/lib). -const DEFAULT_ZIG_API_LIB_PATH = - "/var/mnt/eclipse/repos/developer-ecosystem/zig-api/ffi/zig/zig-out/lib"; - -/// C header for libzig_api (developer-ecosystem/zig-api/generated/abi). -const DEFAULT_ZIG_API_INCLUDE_PATH = - "/var/mnt/eclipse/repos/developer-ecosystem/zig-api/generated/abi"; - -/// Pre-built libproven_ffi (verification-ecosystem/proven/ffi/zig/zig-out/lib). -/// Points to proven's standard zig-out/lib output (zig-out-standalone symlink removed 2026-04-17). -const DEFAULT_PROVEN_LIB_PATH = - "/var/mnt/eclipse/repos/verification-ecosystem/proven/ffi/zig/zig-out/lib"; - -pub fn build(b: *std.Build) void { - const target = b.standardTargetOptions(.{}); - const optimize = b.standardOptimizeOption(.{}); - - // ------------------------------------------------------------------------- - // Build options — allow CI to override library paths - // ------------------------------------------------------------------------- - const zig_api_lib_path = b.option( - []const u8, - "zig-api-lib-path", - "Directory containing libzig_api.a (default: " ++ DEFAULT_ZIG_API_LIB_PATH ++ ")", - ) orelse DEFAULT_ZIG_API_LIB_PATH; - - const zig_api_include_path = b.option( - []const u8, - "zig-api-include-path", - "Directory containing zig_api.h (default: " ++ DEFAULT_ZIG_API_INCLUDE_PATH ++ ")", - ) orelse DEFAULT_ZIG_API_INCLUDE_PATH; - - const proven_lib_path = b.option( - []const u8, - "proven-lib-path", - "Directory containing libproven_ffi.a (default: " ++ DEFAULT_PROVEN_LIB_PATH ++ ")", - ) orelse DEFAULT_PROVEN_LIB_PATH; - - // ------------------------------------------------------------------------- - // Main module - // ------------------------------------------------------------------------- - - const main_mod = b.createModule(.{ - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - // liblol and libzig_api both use the C standard library. - .link_libc = true, - }); - - // ── In-repo liblol (LOL i18n FFI) ──────────────────────────────────────── - // `zig build` in ffi/zig/ produces zig-out/lib/liblol.a and liblol.so. - // We prefer the static library to keep the gateway binary self-contained. - main_mod.addLibraryPath(b.path("../../ffi/zig/zig-out/lib")); - main_mod.addIncludePath(b.path("../../generated/abi")); - main_mod.linkSystemLibrary("lol", .{}); - - // ── libzig_api (unified-zig-api HTTP server pool + path safety) ─────────── - main_mod.addLibraryPath(.{ .cwd_relative = zig_api_lib_path }); - main_mod.addIncludePath(.{ .cwd_relative = zig_api_include_path }); - main_mod.linkSystemLibrary("zig_api", .{}); - - // ── libproven_ffi (transitive dep of libzig_api) ────────────────────────── - // libzig_api.a references proven_path_has_traversal from libproven_ffi. - // Link it here so the final executable resolves all symbols. - main_mod.addLibraryPath(.{ .cwd_relative = proven_lib_path }); - main_mod.linkSystemLibrary("proven_ffi", .{}); - - // ------------------------------------------------------------------------- - // Gateway executable - // ------------------------------------------------------------------------- - - const exe = b.addExecutable(.{ - .name = "lol_gateway", - .root_module = main_mod, - }); - b.installArtifact(exe); - - const run_cmd = b.addRunArtifact(exe); - run_cmd.step.dependOn(b.getInstallStep()); - if (b.args) |args| run_cmd.addArgs(args); - const run_step = b.step("run", "Run the LOL API gateway"); - run_step.dependOn(&run_cmd.step); - - // ------------------------------------------------------------------------- - // Unit tests (covers main.zig, types.zig, lol_ffi.zig) - // ------------------------------------------------------------------------- - - const unit_tests = b.addTest(.{ .root_module = main_mod }); - const run_tests = b.addRunArtifact(unit_tests); - const test_step = b.step("test", "Run unit tests"); - test_step.dependOn(&run_tests.step); - - // ------------------------------------------------------------------------- - // Separate type / FFI module smoke tests (can run without liblol present) - // ------------------------------------------------------------------------- - - const types_mod = b.createModule(.{ - .root_source_file = b.path("src/types.zig"), - .target = target, - .optimize = optimize, - }); - const types_tests = b.addTest(.{ .root_module = types_mod }); - const run_types_tests = b.addRunArtifact(types_tests); - const types_test_step = b.step("test-types", "Run types.zig tests"); - types_test_step.dependOn(&run_types_tests.step); -} diff --git a/lol/api/zig-gateway/src/lol_ffi.zig b/lol/api/zig-gateway/src/lol_ffi.zig deleted file mode 100644 index 690c24d0f..000000000 --- a/lol/api/zig-gateway/src/lol_ffi.zig +++ /dev/null @@ -1,338 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -// -// lol_ffi.zig — Zig wrapper around liblol (the LOL i18n C ABI). -// -// Replaces: -// api/v-lol/src/lol.v (Service struct + public methods) -// api/v-lol/src/ffi.v (raw C declarations — inlined here) -// -// This module calls the C functions declared in generated/abi/lol.h and -// converts their output into idiomatic Zig types defined in types.zig. -// All memory from liblol is freed here before returning; callers receive -// only owned Zig values (backed by their own allocators). -// -// The Service struct is the primary API surface — create one with -// Service.open(), use it, then call deinit() to release the handle. - -const std = @import("std"); -const types = @import("types.zig"); - -// ============================================================================= -// C ABI declarations — mirrors ffi.v (inlined, no separate file needed) -// ============================================================================= -// These extern declarations match generated/abi/lol.h exactly. -// The build system passes -llol so the linker resolves them to liblol. - -// Opaque C types for the structs. We read fields via @field after a -// @ptrCast to the typed C struct pointer — but we never expose the C -// pointers outside this module. - -const CLolLocale = extern struct { - tag: ?[*:0]const u8, - language: ?[*:0]const u8, - script: ?[*:0]const u8, - region: ?[*:0]const u8, -}; - -const CLolTranslationResult = extern struct { - text: ?[*:0]const u8, - resolved_locale: ?[*:0]const u8, - is_fallback: u32, - _padding: u32, -}; - -const CLolLanguageInfo = extern struct { - iso639_3: ?[*:0]const u8, - name: ?[*:0]const u8, - native_name: ?[*:0]const u8, - family: ?[*:0]const u8, - scripts: ?[*:0]const u8, - source_count: u32, - verse_count: u32, - quality: f64, -}; - -const CLolPluralRule = extern struct { - language: ?[*:0]const u8, - form_count: u32, - categories: [6]u32, - _padding: u32, -}; - -// Library lifecycle -extern fn lol_init(data_dir: [*:0]const u8) ?*anyopaque; -extern fn lol_free(handle: *anyopaque) void; -extern fn lol_is_initialized(handle: *anyopaque) u32; - -// Locale resolution -extern fn lol_resolve_locale(handle: *anyopaque, tag: [*:0]const u8) ?*CLolLocale; -extern fn lol_free_locale(locale: *CLolLocale) void; - -// Translation -extern fn lol_translate(handle: *anyopaque, locale_tag: [*:0]const u8, key: [*:0]const u8) ?*CLolTranslationResult; -extern fn lol_free_translation(result: *CLolTranslationResult) void; -extern fn lol_translation_text(result: *CLolTranslationResult) ?[*:0]const u8; - -// Plural -extern fn lol_select_plural(handle: *anyopaque, locale_tag: [*:0]const u8, quantity: u64) u32; -extern fn lol_translate_plural(handle: *anyopaque, locale_tag: [*:0]const u8, key: [*:0]const u8, quantity: u64) ?*CLolTranslationResult; - -// Language metadata -extern fn lol_language_count(handle: *anyopaque) u32; -extern fn lol_get_language(handle: *anyopaque, code: [*:0]const u8) ?*CLolLanguageInfo; -extern fn lol_free_language(info: *CLolLanguageInfo) void; - -// Plural rules -extern fn lol_get_plural_rule(handle: *anyopaque, lang_code: [*:0]const u8) ?*CLolPluralRule; -extern fn lol_free_plural_rule(rule: *CLolPluralRule) void; - -// Fallback chain -extern fn lol_fallback_chain_len(handle: *anyopaque, locale_tag: [*:0]const u8) u32; - -// Error / version -extern fn lol_last_error() ?[*:0]const u8; -extern fn lol_version() ?[*:0]const u8; -extern fn lol_build_info() ?[*:0]const u8; - -// ============================================================================= -// Internal helpers -// ============================================================================= - -/// Convert an optional C null-terminated string pointer to a Zig slice. -/// Returns an empty slice when the pointer is null. -/// The returned slice points into memory owned by liblol; callers must copy -/// before the owning C struct is freed. -fn cStrToSlice(ptr: ?[*:0]const u8) []const u8 { - const p = ptr orelse return ""; - return std.mem.span(p); -} - -/// Duplicate a slice into allocator-owned memory. Used to copy strings out -/// of C structs before we call the corresponding lol_free_* function. -fn dupeStr(allocator: std.mem.Allocator, s: []const u8) ![]const u8 { - return allocator.dupe(u8, s); -} - -// ============================================================================= -// Service — public API, mirrors lol.v -// ============================================================================= - -/// Primary interface to the LOL i18n service. Wraps an opaque liblol handle. -/// -/// Usage: -/// var svc = try Service.open(allocator, "corpus"); -/// defer svc.deinit(); -/// const result = try svc.translate(allocator, "en-US", "greeting"); -/// // use result.text ... -pub const Service = struct { - handle: *anyopaque, - - // ------------------------------------------------------------------------- - // Lifecycle - // ------------------------------------------------------------------------- - - /// Open a LOL service instance, loading corpus data from `data_dir`. - /// Returns `error.GenericError` (with last_error() populated) on failure. - pub fn open(data_dir: [:0]const u8) types.LolError!Service { - const h = lol_init(data_dir.ptr) orelse return error.GenericError; - return Service{ .handle = h }; - } - - /// Open with the default corpus directory ("corpus"). - pub fn openDefault() types.LolError!Service { - return open("corpus"); - } - - /// Release all resources. Safe to call exactly once; the Service must - /// not be used after deinit(). - pub fn deinit(self: *Service) void { - lol_free(self.handle); - // Poison the pointer so use-after-free is detectable in debug builds. - self.handle = @ptrFromInt(0xDEAD_BEEF_DEAD_BEEF); - } - - /// Return true if the handle is valid and ready for calls. - pub fn isInitialized(self: *const Service) bool { - return lol_is_initialized(self.handle) == 1; - } - - // ------------------------------------------------------------------------- - // Locale resolution - // ------------------------------------------------------------------------- - - /// Parse and resolve a BCP 47 locale tag against the corpus. - /// The returned Locale's string fields are allocated from `allocator`. - pub fn resolveLocale( - self: *const Service, - allocator: std.mem.Allocator, - tag: [:0]const u8, - ) (types.LolError || std.mem.Allocator.Error)!types.Locale { - const raw = lol_resolve_locale(self.handle, tag.ptr) orelse - return error.LocaleNotFound; - defer lol_free_locale(raw); - - return types.Locale{ - .tag = try dupeStr(allocator, cStrToSlice(raw.tag)), - .language = try dupeStr(allocator, cStrToSlice(raw.language)), - .script = try dupeStr(allocator, cStrToSlice(raw.script)), - .region = try dupeStr(allocator, cStrToSlice(raw.region)), - }; - } - - // ------------------------------------------------------------------------- - // Translation - // ------------------------------------------------------------------------- - - /// Look up a translation key for the given locale. Walks the fallback - /// chain (e.g. en-US → en → default) when the exact locale is missing. - /// The returned TranslationResult's string fields are allocated from - /// `allocator`. - pub fn translate( - self: *const Service, - allocator: std.mem.Allocator, - locale_tag: [:0]const u8, - key: [:0]const u8, - ) (types.LolError || std.mem.Allocator.Error)!types.TranslationResult { - const raw = lol_translate(self.handle, locale_tag.ptr, key.ptr) orelse - return error.KeyNotFound; - defer lol_free_translation(raw); - - return types.TranslationResult{ - .text = try dupeStr(allocator, cStrToSlice(raw.text)), - .resolved_locale = try dupeStr(allocator, cStrToSlice(raw.resolved_locale)), - .is_fallback = raw.is_fallback != 0, - }; - } - - /// Combine plural form selection with a translation lookup. - /// The `quantity` determines the CLDR plural category, which is appended - /// as a suffix to the key (e.g. "items" → "items.one"). - pub fn translatePlural( - self: *const Service, - allocator: std.mem.Allocator, - locale_tag: [:0]const u8, - key: [:0]const u8, - quantity: u64, - ) (types.LolError || std.mem.Allocator.Error)!types.TranslationResult { - const raw = lol_translate_plural(self.handle, locale_tag.ptr, key.ptr, quantity) orelse - return error.KeyNotFound; - defer lol_free_translation(raw); - - return types.TranslationResult{ - .text = try dupeStr(allocator, cStrToSlice(raw.text)), - .resolved_locale = try dupeStr(allocator, cStrToSlice(raw.resolved_locale)), - .is_fallback = raw.is_fallback != 0, - }; - } - - // ------------------------------------------------------------------------- - // Plural selection - // ------------------------------------------------------------------------- - - /// Return the CLDR plural category for `quantity` in the given locale. - /// Never fails — values outside the 0–5 ABI range map to `.other`. - pub fn selectPlural( - self: *const Service, - locale_tag: [:0]const u8, - quantity: u64, - ) types.PluralCategory { - const raw = lol_select_plural(self.handle, locale_tag.ptr, quantity); - return types.PluralCategory.fromInt(raw); - } - - // ------------------------------------------------------------------------- - // Language metadata - // ------------------------------------------------------------------------- - - /// Return the number of languages available in the corpus. - pub fn languageCount(self: *const Service) u32 { - return lol_language_count(self.handle); - } - - /// Look up metadata for an ISO 639-3 language code (e.g. "eng"). - /// String fields in the returned LanguageInfo are allocated from - /// `allocator`. - pub fn getLanguage( - self: *const Service, - allocator: std.mem.Allocator, - code: [:0]const u8, - ) (types.LolError || std.mem.Allocator.Error)!types.LanguageInfo { - const raw = lol_get_language(self.handle, code.ptr) orelse - return error.LocaleNotFound; - defer lol_free_language(raw); - - return types.LanguageInfo{ - .iso639_3 = try dupeStr(allocator, cStrToSlice(raw.iso639_3)), - .name = try dupeStr(allocator, cStrToSlice(raw.name)), - .native_name = try dupeStr(allocator, cStrToSlice(raw.native_name)), - .family = try dupeStr(allocator, cStrToSlice(raw.family)), - .scripts = try dupeStr(allocator, cStrToSlice(raw.scripts)), - .source_count = raw.source_count, - .verse_count = raw.verse_count, - .quality = raw.quality, - }; - } - - // ------------------------------------------------------------------------- - // Plural rules - // ------------------------------------------------------------------------- - - /// Retrieve the CLDR plural rule for a language. - /// `categories` slice in the returned PluralRule is allocated from - /// `allocator`; string fields are also allocator-owned. - pub fn getPluralRule( - self: *const Service, - allocator: std.mem.Allocator, - lang_code: [:0]const u8, - ) (types.LolError || std.mem.Allocator.Error)!types.PluralRule { - const raw = lol_get_plural_rule(self.handle, lang_code.ptr) orelse - return error.LocaleNotFound; - defer lol_free_plural_rule(raw); - - // form_count is proven to be 1–6 in the Idris2 ABI; cap defensively. - const count: u32 = @min(raw.form_count, 6); - const cats = try allocator.alloc(types.PluralCategory, count); - for (cats, 0..) |*slot, i| { - slot.* = types.PluralCategory.fromInt(raw.categories[i]); - } - - return types.PluralRule{ - .language = try dupeStr(allocator, cStrToSlice(raw.language)), - .form_count = count, - .categories = cats, - }; - } - - // ------------------------------------------------------------------------- - // Fallback chain - // ------------------------------------------------------------------------- - - /// Return the number of locales in the fallback chain for `locale_tag`. - /// For "en-GB" this is typically 3: en-GB → en → default. - pub fn fallbackChainLength( - self: *const Service, - locale_tag: [:0]const u8, - ) u32 { - return lol_fallback_chain_len(self.handle, locale_tag.ptr); - } -}; - -// ============================================================================= -// Module-level helpers (no Service required) — mirrors module-level fns in lol.v -// ============================================================================= - -/// Return the most recent liblol error message, or an empty slice. -pub fn lastError() []const u8 { - return cStrToSlice(lol_last_error()); -} - -/// Return the liblol version string. -pub fn version() []const u8 { - return cStrToSlice(lol_version()); -} - -/// Return the liblol build information string. -pub fn buildInfo() []const u8 { - return cStrToSlice(lol_build_info()); -} diff --git a/lol/api/zig-gateway/src/main.zig b/lol/api/zig-gateway/src/main.zig deleted file mode 100644 index 75e7330f3..000000000 --- a/lol/api/zig-gateway/src/main.zig +++ /dev/null @@ -1,1575 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -// -// main.zig — LOL (1000Langs) single-port path-routed API gateway. -// -// Replaces: standards/lol/api/v-gateway/ (main.v, rest.v, grpc.v, graphql.v, -// domain.v, helpers.v) and standards/lol/api/v-lol/ (lol.v, ffi.v) -// -// All three protocols are served on ONE port via path routing (default: 7800). -// The HTTP listener is owned by uapi_gnosis_start via uapi_gnosis_set_handler, -// which calls lolHandler for every incoming request. -// -// /api/v1/* — REST handlers -// /lol.CorpusService/* — gRPC-compat JSON-over-HTTP handlers -// /graphql — GraphQL handler (+ minimal playground on GET) -// everything else — 404 -// -// Previously the gateway used three separate ports (7800/7801/7802) with its -// own per-port accept loops. The new shape collapses all of these into a single -// uapi_gnosis_create(base_port) + uapi_gnosis_set_handler(lolHandler) + -// uapi_gnosis_start call. No current consumer fires more than one protocol path -// simultaneously, so consolidating to one port loses nothing. -// -// HTTP listener/transport/threading: fully delegated to uapi_gnosis_* from -// developer-ecosystem/zig-api (per UNIFIED-ZIG-API-STACK.adoc). -// lol-specific request-handler logic (handleRest*, handleGrpc*, -// handleGraphql, resolveGql*) is preserved unchanged. -// -// File-open paths are gated through uapi_safe_path_default -// (zig-api/ffi/zig/src/process.zig), which applies the DEFAULT_ALLOWLIST -// prefix check followed by the proven_path_has_traversal formally-verified -// traversal gate. -// -// Corpus data read from LOL_DATA_DIR (default: "corpus"). -// The Julia analysis bridge and Elixir orchestrator write JSON files there. -// -// Requires Zig 0.15.2+. - -const std = @import("std"); - -// ============================================================================= -// zig-api C ABI imports -// ============================================================================= -// -// We consume libzig_api (developer-ecosystem/zig-api) via its C ABI. -// uapi_init / uapi_gnosis_* / uapi_safe_path_default are declared here so -// Zig resolves them at link time against the pre-built libzig_api.a. -// -// Full declarations are in developer-ecosystem/zig-api/generated/abi/zig_api.h; -// we declare only the symbols used by this file. - -/// One-time library initialisation. Must succeed before any uapi_* call. -extern fn uapi_init() callconv(.c) u8; - -/// Tear down all active servers and free library memory. -extern fn uapi_teardown() callconv(.c) void; - -/// Create a gnosis HTTP server bound to `port`. -/// Returns a non-zero opaque handle on success, 0 on failure. -extern fn uapi_gnosis_create(port: u16) callconv(.c) u64; - -/// Register an edge handler hook. Must be called before uapi_gnosis_start. -/// Returns 0 (ok) on success. -extern fn uapi_gnosis_set_handler( - handle: u64, - handler_fn: ?*const fn (req: *const GnosisRequest, resp: *GnosisResponse) callconv(.c) void, -) callconv(.c) u8; - -/// Start serving (spawns background thread). Returns 0 (ok) on success. -extern fn uapi_gnosis_start(handle: u64) callconv(.c) u8; - -/// Signal the server to stop and wait for its thread to exit. -extern fn uapi_gnosis_stop(handle: u64) callconv(.c) void; - -/// Destroy the server handle and free its slot. -extern fn uapi_gnosis_destroy(handle: u64) callconv(.c) void; - -/// Query server state. Returns UAPI_SERVER_{IDLE,LISTENING,DRAINING,STOPPED}. -extern fn uapi_gnosis_state(handle: u64) callconv(.c) u8; - -// Result code constants (must match zig_api.h UAPI_* defines). -const UAPI_OK: u8 = 0; -const UAPI_SERVER_LISTENING: u8 = 1; - -// ============================================================================= -// C-ABI structs for the gnosis handler hook (mirrors zig_api.h) -// ============================================================================= - -/// Request context passed to the lolHandler by gnosis's accept loop. -/// All pointer fields are valid only for the duration of the handler call. -const GnosisRequest = extern struct { - method: [*:0]const u8, - path: [*:0]const u8, - body_ptr: ?[*]const u8, - body_len: u32, -}; - -/// Response the lolHandler must fill before returning. -const GnosisResponse = extern struct { - status: u16, - _pad: u16, - content_type: [*:0]const u8, - body_ptr: ?[*]const u8, - body_len: u32, -}; - -/// Two-gate path safety check from zig-api/ffi/zig/src/process.zig. -/// -/// Gate 1: DEFAULT_ALLOWLIST prefix check. -/// Gate 2: proven_path_has_traversal — formally-verified traversal detection -/// (commit 6663956, verification-ecosystem/proven). -/// -/// `path_ptr` — pointer to path bytes (not null-terminated). -/// `path_len` — byte length. -/// Returns 1 when safe, 0 when denied. Fails closed (0) on proven errors. -extern fn uapi_safe_path_default(path_ptr: [*]const u8, path_len: usize) callconv(.c) u8; - -/// Gate a file-open path through uapi_safe_path_default. -/// Returns error.PathDenied when the path fails either the allowlist check or -/// the proven traversal gate. Use this instead of raw openFile everywhere a -/// path is derived from user input (language code, data_dir, etc.). -fn guardPath(path: []const u8) error{PathDenied}!void { - if (uapi_safe_path_default(path.ptr, path.len) != 1) return error.PathDenied; -} - -// ============================================================================= -// Corpus data types (mirrors domain.v) -// ============================================================================= - -const LanguageInfo = struct { - iso639_3: []const u8 = "", - name: []const u8 = "", - native_name: []const u8 = "", - family: []const u8 = "", - scripts: []const u8 = "", - sources: i64 = 0, - verses: i64 = 0, - quality: f64 = 0.0, -}; - -const SourceStatus = struct { - name: []const u8 = "", - languages: i64 = 0, - crawled: i64 = 0, - status: []const u8 = "unknown", -}; - -const CrawlStatus = struct { - total_languages: i64 = 0, - crawled: i64 = 0, - in_progress: i64 = 0, - failed: i64 = 0, - last_crawl: []const u8 = "", - sources: []SourceStatus = &[_]SourceStatus{}, -}; - -// ============================================================================= -// Corpus I/O helpers -// ============================================================================= - -/// Read and return parsed LanguageInfo array for all languages in -/// {data_dir}/languages/*.json. Returns owned slice; caller frees with -/// allocator.free() after freeing each element's parsed value. -fn listLanguages( - allocator: std.mem.Allocator, - data_dir: []const u8, -) ![]std.json.Parsed(LanguageInfo) { - var dir_buf: [std.fs.max_path_bytes]u8 = undefined; - const lang_dir_path = std.fmt.bufPrint( - &dir_buf, "{s}/languages", .{data_dir}, - ) catch return &[_]std.json.Parsed(LanguageInfo){}; - - // Guard the directory path before opening. - // (The directory itself is user-supplied via LOL_DATA_DIR; gate it.) - guardPath(lang_dir_path) catch - return try allocator.alloc(std.json.Parsed(LanguageInfo), 0); - - const dir = std.fs.cwd().openDir(lang_dir_path, .{ .iterate = true }) catch - return try allocator.alloc(std.json.Parsed(LanguageInfo), 0); - var iter = dir.iterate(); - - // In Zig 0.15.2, ArrayList is unmanaged — allocator is passed per call. - var list: std.ArrayList(std.json.Parsed(LanguageInfo)) = .{}; - // On error path, entries already appended need to be freed. - errdefer { - for (list.items) |p| { var m = p; m.deinit(); } - list.deinit(allocator); - } - - while (try iter.next()) |entry| { - if (entry.kind != .file) continue; - if (!std.mem.endsWith(u8, entry.name, ".json")) continue; - - const file = dir.openFile(entry.name, .{}) catch continue; - defer file.close(); - - const contents = file.readToEndAlloc(allocator, 64 * 1024) catch continue; - defer allocator.free(contents); - - const parsed = std.json.parseFromSlice(LanguageInfo, allocator, contents, .{ - .ignore_unknown_fields = true, - }) catch continue; - - try list.append(allocator, parsed); - } - - return try list.toOwnedSlice(allocator); -} - -/// Helper: allocate and initialise an empty Parsed(T) on the heap. -/// In Zig 0.15.2, Parsed.arena is *ArenaAllocator (pointer, not value). -fn emptyParsed(comptime T: type, allocator: std.mem.Allocator) std.json.Parsed(T) { - const arena_ptr = allocator.create(std.heap.ArenaAllocator) catch { - // If allocation fails, return a zeroed struct — deinit will be a no-op. - return .{ .arena = undefined, .value = std.mem.zeroes(T) }; - }; - arena_ptr.* = std.heap.ArenaAllocator.init(allocator); - return .{ .arena = arena_ptr, .value = std.mem.zeroes(T) }; -} - -fn readCrawlStatus( - allocator: std.mem.Allocator, - data_dir: []const u8, -) std.json.Parsed(CrawlStatus) { - var path_buf: [std.fs.max_path_bytes]u8 = undefined; - const path = std.fmt.bufPrint(&path_buf, "{s}/crawl_status.json", .{data_dir}) catch - return emptyParsed(CrawlStatus, allocator); - - // Gate the path through zig-api's proven-backed safety check before - // calling openFile. This is path-safety site #2 (original line 120). - guardPath(path) catch return emptyParsed(CrawlStatus, allocator); - - const file = std.fs.cwd().openFile(path, .{}) catch - return emptyParsed(CrawlStatus, allocator); - defer file.close(); - const contents = file.readToEndAlloc(allocator, 64 * 1024) catch - return emptyParsed(CrawlStatus, allocator); - defer allocator.free(contents); - return std.json.parseFromSlice(CrawlStatus, allocator, contents, .{ - .ignore_unknown_fields = true, - }) catch emptyParsed(CrawlStatus, allocator); -} - -// ============================================================================= -// JSON escaping -// ============================================================================= - -/// Write `s` to `w` as a JSON string value (with surrounding quotes). -fn writeJsonString(w: anytype, s: []const u8) !void { - try w.writeByte('"'); - for (s) |ch| { - switch (ch) { - '"' => try w.writeAll("\\\""), - '\\' => try w.writeAll("\\\\"), - '\n' => try w.writeAll("\\n"), - '\r' => try w.writeAll("\\r"), - '\t' => try w.writeAll("\\t"), - else => try w.writeByte(ch), - } - } - try w.writeByte('"'); -} - -/// Serialize a single LanguageInfo to the writer. -fn writeLangJson(w: anytype, lang: LanguageInfo) !void { - try w.writeAll("{\"iso639_3\":"); - try writeJsonString(w, lang.iso639_3); - try w.writeAll(",\"name\":"); - try writeJsonString(w, lang.name); - try w.writeAll(",\"native_name\":"); - try writeJsonString(w, lang.native_name); - try w.writeAll(",\"family\":"); - try writeJsonString(w, lang.family); - try w.writeAll(",\"scripts\":"); - try writeJsonString(w, lang.scripts); - try w.print(",\"sources\":{d},\"verses\":{d},\"quality\":{d:.4}}}", .{ - lang.sources, lang.verses, lang.quality, - }); -} - -// ============================================================================= -// HTTP server helpers -// ============================================================================= - -fn readLine(stream: std.net.Stream, buf: []u8) ![]const u8 { - var pos: usize = 0; - while (pos < buf.len) { - const n = try stream.read(buf[pos..][0..1]); - if (n == 0) break; - if (buf[pos] == '\n') { - const end = if (pos > 0 and buf[pos - 1] == '\r') pos - 1 else pos; - return buf[0..end]; - } - pos += 1; - } - return buf[0..pos]; -} - -fn writeHttpResponse( - conn: *std.net.Server.Connection, - status: u16, - content_type: []const u8, - body: []const u8, -) void { - var h: [256]u8 = undefined; - var fbs = std.io.fixedBufferStream(&h); - fbs.writer().print( - "HTTP/1.1 {d} \r\nContent-Type: {s}\r\nContent-Length: {d}\r\n" ++ - "Access-Control-Allow-Origin: *\r\nConnection: close\r\n\r\n", - .{ status, content_type, body.len }, - ) catch return; - conn.stream.writeAll(fbs.getWritten()) catch return; - conn.stream.writeAll(body) catch return; -} - -fn writeJson(conn: *std.net.Server.Connection, status: u16, body: []const u8) void { - writeHttpResponse(conn, status, "application/json", body); -} - -fn writeError(conn: *std.net.Server.Connection, status: u16, msg: []const u8) void { - var buf: [256]u8 = undefined; - const body = std.fmt.bufPrint(&buf, "{{\"error\":\"{s}\"}}", .{msg}) catch - "{\"error\":\"error\"}"; - writeJson(conn, status, body); -} - -// ============================================================================= -// REST handlers -// ============================================================================= - -fn handleRestHealth( - conn: *std.net.Server.Connection, - data_dir: []const u8, - allocator: std.mem.Allocator, -) void { - const langs = listLanguages(allocator, data_dir) catch &[_]std.json.Parsed(LanguageInfo){}; - defer { - for (langs) |p| { - var mutable = p; - mutable.deinit(); - } - allocator.free(langs); - } - const n = langs.len; - const status: []const u8 = if (n > 0) "ok" else "no_data"; - - var buf: [512]u8 = undefined; - var fbs = std.io.fixedBufferStream(&buf); - fbs.writer().print( - "{{\"status\":\"{s}\",\"version\":\"0.1.0\",\"data_dir\":\"{s}\",\"languages\":{d}}}", - .{ status, data_dir, n }, - ) catch return writeError(conn, 500, "json encode failed"); - writeJson(conn, 200, fbs.getWritten()); -} - -fn handleRestListLanguages( - conn: *std.net.Server.Connection, - data_dir: []const u8, - allocator: std.mem.Allocator, -) void { - const langs = listLanguages(allocator, data_dir) catch { - return writeError(conn, 500, "failed to read corpus"); - }; - defer { - for (langs) |p| { - var mutable = p; - mutable.deinit(); - } - allocator.free(langs); - } - - // Build JSON array. - var body_buf: [256 * 1024]u8 = undefined; - var fbs = std.io.fixedBufferStream(&body_buf); - const w = fbs.writer(); - w.print("{{\"count\":{d},\"languages\":[", .{langs.len}) catch - return writeError(conn, 500, "buffer overflow"); - for (langs, 0..) |p, i| { - if (i > 0) w.writeByte(',') catch return; - writeLangJson(w, p.value) catch return writeError(conn, 500, "json encode failed"); - } - w.writeAll("]}") catch return writeError(conn, 500, "buffer overflow"); - writeJson(conn, 200, fbs.getWritten()); -} - -fn handleRestGetLanguage( - conn: *std.net.Server.Connection, - data_dir: []const u8, - code: []const u8, - allocator: std.mem.Allocator, -) void { - // Sanitise: only allow alphanumeric + hyphen codes. - for (code) |ch| { - if (!std.ascii.isAlphanumeric(ch) and ch != '-') { - return writeError(conn, 400, "invalid language code"); - } - } - - var path_buf: [std.fs.max_path_bytes]u8 = undefined; - const path = std.fmt.bufPrint(&path_buf, "{s}/languages/{s}.json", .{ data_dir, code }) catch - return writeError(conn, 500, "path too long"); - - // Path-safety site #1 (original line 290): gate through zig-api proven path check. - // Catches traversal sequences that pass the alphanumeric sanitizer - // (e.g. a code containing ".." arriving via a crafted HTTP path). - guardPath(path) catch return writeError(conn, 403, "path denied"); - - const file = std.fs.cwd().openFile(path, .{}) catch - return writeError(conn, 404, "language not found"); - defer file.close(); - - const contents = file.readToEndAlloc(allocator, 64 * 1024) catch - return writeError(conn, 500, "read failed"); - defer allocator.free(contents); - - const parsed = std.json.parseFromSlice(LanguageInfo, allocator, contents, .{ - .ignore_unknown_fields = true, - }) catch return writeError(conn, 500, "parse failed"); - var mutable_parsed = parsed; - defer mutable_parsed.deinit(); - - var body_buf: [8192]u8 = undefined; - var fbs = std.io.fixedBufferStream(&body_buf); - writeLangJson(fbs.writer(), parsed.value) catch - return writeError(conn, 500, "json encode failed"); - writeJson(conn, 200, fbs.getWritten()); -} - -fn handleRestCorpusStats( - conn: *std.net.Server.Connection, - data_dir: []const u8, - allocator: std.mem.Allocator, -) void { - const langs = listLanguages(allocator, data_dir) catch &[_]std.json.Parsed(LanguageInfo){}; - defer { - for (langs) |p| { - var mutable = p; - mutable.deinit(); - } - allocator.free(langs); - } - - var total_verses: i64 = 0; - var total_bytes: i64 = 0; - var quality_sum: f64 = 0.0; - var families = std.StringHashMap(void).init(allocator); - defer families.deinit(); - - for (langs) |p| { - total_verses += p.value.verses; - total_bytes += p.value.verses * 200; // rough estimate - quality_sum += p.value.quality; - if (p.value.family.len > 0) { - _ = families.put(p.value.family, {}) catch {}; - } - } - const n = langs.len; - const avg_quality = if (n > 0) quality_sum / @as(f64, @floatFromInt(n)) else 0.0; - - var buf: [512]u8 = undefined; - var fbs = std.io.fixedBufferStream(&buf); - fbs.writer().print( - "{{\"total_languages\":{d},\"total_verses\":{d},\"total_bytes\":{d},\"avg_quality\":{d:.4},\"families\":{d}}}", - .{ n, total_verses, total_bytes, avg_quality, families.count() }, - ) catch return writeError(conn, 500, "json encode failed"); - writeJson(conn, 200, fbs.getWritten()); -} - -fn handleRestCrawlStatus( - conn: *std.net.Server.Connection, - data_dir: []const u8, - allocator: std.mem.Allocator, -) void { - var cs = readCrawlStatus(allocator, data_dir); - defer cs.deinit(); - const s = cs.value; - - var body_buf: [32768]u8 = undefined; - var fbs = std.io.fixedBufferStream(&body_buf); - const w = fbs.writer(); - w.print( - "{{\"total_languages\":{d},\"crawled\":{d},\"in_progress\":{d},\"failed\":{d},\"last_crawl\":\"{s}\",\"sources\":[", - .{ s.total_languages, s.crawled, s.in_progress, s.failed, s.last_crawl }, - ) catch return writeError(conn, 500, "json encode failed"); - for (s.sources, 0..) |src, i| { - if (i > 0) w.writeByte(',') catch return; - w.print( - "{{\"name\":\"{s}\",\"languages\":{d},\"crawled\":{d},\"status\":\"{s}\"}}", - .{ src.name, src.languages, src.crawled, src.status }, - ) catch return; - } - w.writeAll("]}") catch return writeError(conn, 500, "buffer overflow"); - writeJson(conn, 200, fbs.getWritten()); -} - -// ============================================================================= -// gRPC-compat handler — GetLanguage (was missing from the skeleton) -// Mirrors grpc_get_language() in grpc.v. -// ============================================================================= - -fn handleGrpcGetLanguage( - conn: *std.net.Server.Connection, - data_dir: []const u8, - body: []const u8, - allocator: std.mem.Allocator, -) void { - // Extract "code" field from the JSON POST body. - const code = jsonFieldStr(body, "code", allocator) orelse { - return writeError(conn, 400, "code field required"); - }; - defer allocator.free(code); - - // Sanitise: only allow alphanumeric + hyphen (same rule as REST). - for (code) |ch| { - if (!std.ascii.isAlphanumeric(ch) and ch != '-') { - return writeError(conn, 400, "invalid language code"); - } - } - - var path_buf: [std.fs.max_path_bytes]u8 = undefined; - const path = std.fmt.bufPrint(&path_buf, "{s}/languages/{s}.json", .{ data_dir, code }) catch - return writeError(conn, 500, "path too long"); - - // Path-safety site #3 (original line 406): gate through zig-api proven path check. - guardPath(path) catch return writeError(conn, 403, "path denied"); - - const file = std.fs.cwd().openFile(path, .{}) catch - return writeError(conn, 404, "language not found"); - defer file.close(); - - const contents = file.readToEndAlloc(allocator, 64 * 1024) catch - return writeError(conn, 500, "read failed"); - defer allocator.free(contents); - - const parsed = std.json.parseFromSlice(LanguageInfo, allocator, contents, .{ - .ignore_unknown_fields = true, - }) catch return writeError(conn, 500, "parse failed"); - var mutable_parsed = parsed; - defer mutable_parsed.deinit(); - - var body_buf: [8192]u8 = undefined; - var fbs = std.io.fixedBufferStream(&body_buf); - writeLangJson(fbs.writer(), parsed.value) catch - return writeError(conn, 500, "json encode failed"); - // gRPC-Web uses application/grpc-web+json content type. - writeHttpResponse(conn, 200, "application/grpc-web+json", fbs.getWritten()); -} - -// ============================================================================= -// GraphQL handler — fully resolves the five query types from graphql.v -// ============================================================================= - -/// Minimal JSON field extractor that allocates a copy of the value string. -/// Returns null if the key is absent. Caller owns the returned slice. -fn jsonFieldStr(data: []const u8, key: []const u8, allocator: std.mem.Allocator) ?[]u8 { - var key_buf: [128]u8 = undefined; - const needle = std.fmt.bufPrint(&key_buf, "\"{s}\"", .{key}) catch return null; - const key_pos = std.mem.indexOf(u8, data, needle) orelse return null; - const after_key = data[key_pos + needle.len ..]; - const colon = std.mem.indexOfScalar(u8, after_key, ':') orelse return null; - var rest = std.mem.trimLeft(u8, after_key[colon + 1 ..], " \t\n\r"); - if (rest.len == 0) return null; - if (rest[0] == '"') { - // String value. - rest = rest[1..]; - const end = std.mem.indexOfScalar(u8, rest, '"') orelse return null; - return allocator.dupe(u8, rest[0..end]) catch null; - } - // Non-string: read to comma/brace/bracket. - var end: usize = rest.len; - for (rest, 0..) |ch, i| { - if (ch == ',' or ch == '}' or ch == ']' or ch == '\n') { - end = i; - break; - } - } - const trimmed = std.mem.trim(u8, rest[0..end], " \t"); - return allocator.dupe(u8, trimmed) catch null; -} - -/// Extract a GraphQL argument value, e.g. `code: "eng"` → "eng". -/// Returns null when the argument is absent. Caller owns the returned slice. -fn gqlArgStr(query: []const u8, arg: []const u8, allocator: std.mem.Allocator) ?[]u8 { - var needle_buf: [128]u8 = undefined; - const needle = std.fmt.bufPrint(&needle_buf, "{s}:", .{arg}) catch return null; - const pos = std.mem.indexOf(u8, query, needle) orelse return null; - const after = query[pos + needle.len ..]; - const q1 = std.mem.indexOfScalar(u8, after, '"') orelse return null; - const inner = after[q1 + 1 ..]; - const q2 = std.mem.indexOfScalar(u8, inner, '"') orelse return null; - return allocator.dupe(u8, inner[0..q2]) catch null; -} - -/// Full GraphQL request handler. Receives the pre-read POST body, -/// dispatches to the appropriate resolver, and writes back the response. -/// Mirrors the resolve_query() dispatch in graphql.v. -fn handleGraphql( - conn: *std.net.Server.Connection, - data_dir: []const u8, - body: []const u8, - allocator: std.mem.Allocator, -) void { - // Extract the "query" field from {"query":"..."}. - const query = jsonFieldStr(body, "query", allocator) orelse { - return writeJson(conn, 400, - \\{"errors":[{"message":"Missing query field"}]} - ); - }; - defer allocator.free(query); - - // Dispatch on query content — same strategy as resolve_query() in graphql.v. - if (std.mem.indexOf(u8, query, "health") != null) { - resolveGqlHealth(conn, data_dir, allocator); - } else if (std.mem.indexOf(u8, query, "crawlStatus") != null) { - resolveGqlCrawlStatus(conn, data_dir, allocator); - } else if (std.mem.indexOf(u8, query, "corpusStats") != null) { - resolveGqlCorpusStats(conn, data_dir, allocator); - } else if (std.mem.indexOf(u8, query, "language(") != null or - std.mem.indexOf(u8, query, "language (") != null) - { - const code = gqlArgStr(query, "code", allocator); - defer if (code) |c| allocator.free(c); - resolveGqlLanguage(conn, data_dir, code, allocator); - } else if (std.mem.indexOf(u8, query, "languages") != null) { - resolveGqlLanguages(conn, data_dir, allocator); - } else if (std.mem.indexOf(u8, query, "__schema") != null) { - resolveGqlSchema(conn); - } else { - writeJson(conn, 200, - \\{"errors":[{"message":"Unknown query. Available: languages, language(code), corpusStats, crawlStatus, health"}]} - ); - } -} - -// --- GraphQL resolvers (mirror the resolve_gql_* fns in graphql.v) --- - -fn resolveGqlLanguages( - conn: *std.net.Server.Connection, - data_dir: []const u8, - allocator: std.mem.Allocator, -) void { - const langs = listLanguages(allocator, data_dir) catch { - return writeJson(conn, 200, "{\"errors\":[{\"message\":\"failed to read corpus\"}]}"); - }; - defer { - for (langs) |p| { var m = p; m.deinit(); } - allocator.free(langs); - } - - var buf: [256 * 1024]u8 = undefined; - var fbs = std.io.fixedBufferStream(&buf); - const w = fbs.writer(); - w.writeAll("{\"data\":{\"languages\":[") catch return; - for (langs, 0..) |p, i| { - if (i > 0) w.writeByte(',') catch return; - writeLangJson(w, p.value) catch return; - } - w.writeAll("]}}") catch return; - writeJson(conn, 200, fbs.getWritten()); -} - -fn resolveGqlLanguage( - conn: *std.net.Server.Connection, - data_dir: []const u8, - maybe_code: ?[]u8, - allocator: std.mem.Allocator, -) void { - const code = maybe_code orelse { - return writeJson(conn, 200, - \\{"errors":[{"message":"language(code: ...) requires a code argument"}]} - ); - }; - - for (code) |ch| { - if (!std.ascii.isAlphanumeric(ch) and ch != '-') { - return writeJson(conn, 200, - \\{"errors":[{"message":"invalid language code"}]} - ); - } - } - - var path_buf: [std.fs.max_path_bytes]u8 = undefined; - const path = std.fmt.bufPrint(&path_buf, "{s}/languages/{s}.json", .{ data_dir, code }) catch - return writeJson(conn, 200, "{\"errors\":[{\"message\":\"path too long\"}]}"); - - // Path-safety site #4 (original line 565): gate through zig-api proven path check. - guardPath(path) catch - return writeJson(conn, 200, "{\"errors\":[{\"message\":\"path denied\"}]}"); - - const file = std.fs.cwd().openFile(path, .{}) catch { - var eb: [256]u8 = undefined; - var efbs = std.io.fixedBufferStream(&eb); - efbs.writer().print("{{\"errors\":[{{\"message\":\"Language not found: {s}\"}}]}}", .{code}) catch {}; - return writeJson(conn, 200, efbs.getWritten()); - }; - defer file.close(); - - const contents = file.readToEndAlloc(allocator, 64 * 1024) catch - return writeJson(conn, 200, "{\"errors\":[{\"message\":\"read failed\"}]}"); - defer allocator.free(contents); - - const parsed = std.json.parseFromSlice(LanguageInfo, allocator, contents, .{ - .ignore_unknown_fields = true, - }) catch return writeJson(conn, 200, "{\"errors\":[{\"message\":\"parse failed\"}]}"); - var mp = parsed; - defer mp.deinit(); - - var body_buf: [16384]u8 = undefined; - var fbs = std.io.fixedBufferStream(&body_buf); - const w = fbs.writer(); - w.writeAll("{\"data\":{\"language\":") catch return; - writeLangJson(w, parsed.value) catch return; - w.writeAll("}}") catch return; - writeJson(conn, 200, fbs.getWritten()); -} - -fn resolveGqlCorpusStats( - conn: *std.net.Server.Connection, - data_dir: []const u8, - allocator: std.mem.Allocator, -) void { - const langs = listLanguages(allocator, data_dir) catch &[_]std.json.Parsed(LanguageInfo){}; - defer { - for (langs) |p| { var m = p; m.deinit(); } - allocator.free(langs); - } - - var total_verses: i64 = 0; - var total_bytes: i64 = 0; - var quality_sum: f64 = 0.0; - var families = std.StringHashMap(void).init(allocator); - defer families.deinit(); - - for (langs) |p| { - total_verses += p.value.verses; - total_bytes += p.value.verses * 200; - quality_sum += p.value.quality; - if (p.value.family.len > 0) _ = families.put(p.value.family, {}) catch {}; - } - const n = langs.len; - const avg_quality = if (n > 0) quality_sum / @as(f64, @floatFromInt(n)) else 0.0; - - var buf: [512]u8 = undefined; - var fbs = std.io.fixedBufferStream(&buf); - fbs.writer().print( - "{{\"data\":{{\"corpusStats\":{{\"totalLanguages\":{d},\"totalVerses\":{d},\"totalBytes\":{d},\"avgQuality\":{d:.4},\"families\":{d}}}}}}}", - .{ n, total_verses, total_bytes, avg_quality, families.count() }, - ) catch return writeJson(conn, 500, "{\"errors\":[{\"message\":\"json encode failed\"}]}"); - writeJson(conn, 200, fbs.getWritten()); -} - -fn resolveGqlCrawlStatus( - conn: *std.net.Server.Connection, - data_dir: []const u8, - allocator: std.mem.Allocator, -) void { - var cs = readCrawlStatus(allocator, data_dir); - defer cs.deinit(); - const s = cs.value; - - var buf: [32768]u8 = undefined; - var fbs = std.io.fixedBufferStream(&buf); - const w = fbs.writer(); - w.print( - "{{\"data\":{{\"crawlStatus\":{{\"totalLanguages\":{d},\"crawled\":{d},\"inProgress\":{d},\"failed\":{d},\"lastCrawl\":\"{s}\",\"sources\":[", - .{ s.total_languages, s.crawled, s.in_progress, s.failed, s.last_crawl }, - ) catch return; - for (s.sources, 0..) |src, i| { - if (i > 0) w.writeByte(',') catch return; - w.print( - "{{\"name\":\"{s}\",\"languages\":{d},\"crawled\":{d},\"status\":\"{s}\"}}", - .{ src.name, src.languages, src.crawled, src.status }, - ) catch return; - } - w.writeAll("]}}}}") catch return; - writeJson(conn, 200, fbs.getWritten()); -} - -fn resolveGqlHealth( - conn: *std.net.Server.Connection, - data_dir: []const u8, - allocator: std.mem.Allocator, -) void { - const langs = listLanguages(allocator, data_dir) catch &[_]std.json.Parsed(LanguageInfo){}; - defer { - for (langs) |p| { var m = p; m.deinit(); } - allocator.free(langs); - } - const status: []const u8 = if (langs.len > 0) "ok" else "no_data"; - - var buf: [256]u8 = undefined; - var fbs = std.io.fixedBufferStream(&buf); - fbs.writer().print( - "{{\"data\":{{\"health\":{{\"status\":\"{s}\",\"version\":\"0.1.0\",\"languages\":{d}}}}}}}", - .{ status, langs.len }, - ) catch return; - writeJson(conn, 200, fbs.getWritten()); -} - -fn resolveGqlSchema(conn: *std.net.Server.Connection) void { - writeJson(conn, 200, - \\{"data":{"__schema":{"types":[ - \\{"name":"Query","fields":["languages","language","corpusStats","crawlStatus","health"]}, - \\{"name":"Language","fields":["iso639_3","name","nativeName","family","scripts","sources","verses","quality"]}, - \\{"name":"CorpusStats","fields":["totalLanguages","totalVerses","totalBytes","avgQuality","families"]}, - \\{"name":"CrawlStatus","fields":["totalLanguages","crawled","inProgress","failed","lastCrawl","sources"]}, - \\{"name":"Source","fields":["name","languages","crawled","status"]}, - \\{"name":"Health","fields":["status","version","languages"]} - \\]}}} - ); -} - -// ============================================================================= -// Single-port path-routing handler (replaces multi-port + GnosisPortThread) -// -// lolHandler is the C-ABI edge hook registered via uapi_gnosis_set_handler. -// It is called by gnosis's accept loop for every incoming request on port 7800. -// All three protocols are path-routed here: -// -// /api/v1/* → REST handlers -// /lol.CorpusService/* → gRPC-compat JSON-over-HTTP handlers -// /graphql → GraphQL handler -// / → discovery JSON -// else → 404 -// -// Module-level context (data_dir, allocator) is set by main() before -// uapi_gnosis_start is called; it is read-only after that point. -// ============================================================================= - -/// Corpus data directory path. Set once in main() before uapi_gnosis_start. -var g_data_dir: []const u8 = "corpus"; - -/// General-purpose allocator for handler-level allocations. -/// Set once in main() before uapi_gnosis_start; stable for process lifetime. -var g_allocator: std.mem.Allocator = undefined; - -/// Flag: true once main() has initialised g_data_dir and g_allocator. -var g_context_ready: bool = false; - -/// Response body buffer used by lolHandler. -/// -/// gnosis calls lolHandler once per connection on the gnosis serve thread. -/// Each invocation overwrites this buffer — thread-safe because gnosis.zig -/// spawns one thread per server slot and the slot's serve loop is single- -/// threaded per connection (connections are handled sequentially by one -/// background thread per slot). -/// -/// Size: 256 KiB — matches MAX_BODY_BYTES in gnosis.zig. -var g_resp_buf: [256 * 1024]u8 = undefined; - -/// Content-type sentinel constants (null-terminated). -const CT_JSON: [*:0]const u8 = "application/json"; -const CT_GRPC: [*:0]const u8 = "application/grpc-web+json"; -const CT_HTML: [*:0]const u8 = "text/html"; -const CT_TEXT: [*:0]const u8 = "text/plain"; - -/// GraphiQL playground HTML (served on GET /graphql). -const GRAPHQL_PLAYGROUND = - \\ - \\LOL (1000Langs) GraphQL - \\ - \\

      LOL (1000Langs) GraphQL API

      - \\

      POST queries to /graphql with JSON body:

      - \\
      -    \\{ "query": "{ health { status version languages } }" }
      -    \\
      -    \\{ "query": "{ languages { iso639_3 name family quality } }" }
      -    \\
      -    \\{ "query": "{ language(code: \"eng\") { iso639_3 name nativeName sources verses quality } }" }
      -    \\
      -    \\{ "query": "{ corpusStats { totalLanguages totalVerses avgQuality families } }" }
      -    \\
      -    \\{ "query": "{ crawlStatus { crawled inProgress failed sources { name status } } }" }
      -    \\
      -; - -/// Fill `resp` with a JSON error. `msg` must not contain double-quotes. -fn respError(resp: *GnosisResponse, status: u16, msg: []const u8) void { - var fbs = std.io.fixedBufferStream(&g_resp_buf); - fbs.writer().print("{{\"error\":\"{s}\"}}", .{msg}) catch {}; - const written = fbs.getWritten(); - resp.status = status; - resp._pad = 0; - resp.content_type = CT_JSON; - resp.body_ptr = written.ptr; - resp.body_len = @intCast(written.len); -} - -/// Fill `resp` with a static JSON string. -fn respJsonStatic(resp: *GnosisResponse, status: u16, body: []const u8) void { - resp.status = status; - resp._pad = 0; - resp.content_type = CT_JSON; - resp.body_ptr = body.ptr; - resp.body_len = @intCast(body.len); -} - -/// Adapter: route a lolHandler request/response pair through the legacy -/// `handleRestListLanguages` / similar functions that expect a -/// `*std.net.Server.Connection`. -/// -/// Because the legacy handlers write directly to a `std.net.Server.Connection` -/// stream, we can't call them from a GnosisRequest/Response context without -/// a real connection. Instead we replicate their logic inline, writing into -/// `g_resp_buf` and filling `resp` directly. The business logic (corpus -/// reading, JSON encoding) is unchanged; only the I/O path changes. -/// -/// This is the cleanest option that avoids circular dependencies or forking -/// the legacy handler functions. -/// -/// `allocator` must be an arena reset between calls. - -/// Temporary connection shim — wraps g_resp_buf in a minimal fake connection -/// so the legacy handlers (which call writeJson/writeHttpResponse) can write -/// into our buffer instead of a TCP stream. -/// -/// Implementation: we can't construct a real std.net.Server.Connection without -/// a live socket. The legacy handlers call writeJson → writeHttpResponse → -/// conn.stream.writeAll. We redirect these by keeping a separate -/// FixedBufferStream and patching the legacy write helpers to work with it. -/// -/// The cleaner approach (matching the design intent): inline all routing in -/// lolHandler. The existing handler functions accept `*std.net.Server.Connection` -/// as their first argument only to write their response. We reuse the bodies -/// of these functions by calling them with a `*FakeConn`. -/// -/// Since Zig doesn't support vtables on arbitrary types for std.net.Stream, -/// the simplest correct approach is: define a lightweight `FakeConn` that -/// satisfies the functions' actual usage (stream.writeAll). But -/// std.net.Server.Connection.stream is a std.net.Stream (a plain integer fd), -/// not an interface — we cannot substitute it cleanly. -/// -/// Resolution: provide thin wrapper functions `lolRestDispatch` / -/// `lolGrpcDispatch` / `lolGraphqlDispatch` that replicate the handler logic -/// using a `fixedBufferStream` writer, then fill `resp`. - -fn lolRestDispatch( - path: []const u8, - method: []const u8, - body: []const u8, - resp: *GnosisResponse, - allocator: std.mem.Allocator, -) void { - const is_get = std.mem.eql(u8, method, "GET"); - - if (is_get and std.mem.eql(u8, path, "/")) { - respJsonStatic(resp, 200, - "{\"service\":\"lol-rest\",\"version\":\"0.1.0\"," ++ - "\"project\":\"1000Langs Parallel Corpus\"," ++ - "\"endpoints\":[\"/api/v1/languages\",\"/api/v1/corpus/stats\"," ++ - "\"/api/v1/crawl/status\",\"/api/v1/health\"]}"); - return; - } - - if (is_get and std.mem.eql(u8, path, "/api/v1/languages")) { - // Build language list into g_resp_buf. - const langs = listLanguages(allocator, g_data_dir) catch { - respError(resp, 500, "failed to read corpus"); - return; - }; - defer { - for (langs) |p| { var m = p; m.deinit(); } - allocator.free(langs); - } - var fbs = std.io.fixedBufferStream(&g_resp_buf); - const w = fbs.writer(); - w.print("{{\"count\":{d},\"languages\":[", .{langs.len}) catch { - respError(resp, 500, "buffer overflow"); - return; - }; - for (langs, 0..) |p, i| { - if (i > 0) w.writeByte(',') catch return; - writeLangJson(w, p.value) catch { respError(resp, 500, "json encode failed"); return; }; - } - w.writeAll("]}") catch { respError(resp, 500, "buffer overflow"); return; }; - const written = fbs.getWritten(); - resp.status = 200; resp._pad = 0; resp.content_type = CT_JSON; - resp.body_ptr = written.ptr; resp.body_len = @intCast(written.len); - return; - } - - if (is_get and std.mem.startsWith(u8, path, "/api/v1/languages/")) { - const code = path["/api/v1/languages/".len..]; - for (code) |ch| { - if (!std.ascii.isAlphanumeric(ch) and ch != '-') { - respError(resp, 400, "invalid language code"); - return; - } - } - var path_buf: [std.fs.max_path_bytes]u8 = undefined; - const fpath = std.fmt.bufPrint(&path_buf, "{s}/languages/{s}.json", - .{ g_data_dir, code }) catch { respError(resp, 500, "path too long"); return; }; - guardPath(fpath) catch { respError(resp, 403, "path denied"); return; }; - const file = std.fs.cwd().openFile(fpath, .{}) catch { - respError(resp, 404, "language not found"); - return; - }; - defer file.close(); - const contents = file.readToEndAlloc(allocator, 64 * 1024) catch { - respError(resp, 500, "read failed"); - return; - }; - defer allocator.free(contents); - const parsed = std.json.parseFromSlice(LanguageInfo, allocator, contents, .{ - .ignore_unknown_fields = true, - }) catch { respError(resp, 500, "parse failed"); return; }; - var mp = parsed; defer mp.deinit(); - var fbs = std.io.fixedBufferStream(&g_resp_buf); - writeLangJson(fbs.writer(), parsed.value) catch { - respError(resp, 500, "json encode failed"); - return; - }; - const written = fbs.getWritten(); - resp.status = 200; resp._pad = 0; resp.content_type = CT_JSON; - resp.body_ptr = written.ptr; resp.body_len = @intCast(written.len); - return; - } - - if (is_get and std.mem.eql(u8, path, "/api/v1/corpus/stats")) { - lolCorpusStatsInto(resp, allocator); - return; - } - - if (is_get and std.mem.eql(u8, path, "/api/v1/crawl/status")) { - lolCrawlStatusInto(resp, allocator); - return; - } - - if (is_get and std.mem.eql(u8, path, "/api/v1/health")) { - lolHealthInto(resp, allocator); - return; - } - - // Unmatched REST path. - _ = body; // suppress unused warning - respError(resp, 404, "not found"); -} - -fn lolGrpcDispatch( - path: []const u8, - method: []const u8, - body: []const u8, - resp: *GnosisResponse, - allocator: std.mem.Allocator, -) void { - const is_post = std.mem.eql(u8, method, "POST"); - if (!is_post) { - resp.status = 405; resp._pad = 0; resp.content_type = CT_GRPC; - const e = "{\"error\":\"POST required for RPC calls\"}"; - resp.body_ptr = e; resp.body_len = e.len; - return; - } - - if (std.mem.eql(u8, path, "/lol.CorpusService/ListLanguages")) { - // Reuse REST list handler (same response shape). - lolRestDispatch("/api/v1/languages", "GET", "", resp, allocator); - resp.content_type = CT_GRPC; - return; - } - if (std.mem.eql(u8, path, "/lol.CorpusService/GetLanguage")) { - const code = jsonFieldStrInto(body, "code", allocator) orelse { - resp.status = 400; resp._pad = 0; resp.content_type = CT_GRPC; - const e = "{\"error\":\"code field required\"}"; - resp.body_ptr = e; resp.body_len = e.len; - return; - }; - defer allocator.free(code); - for (code) |ch| { - if (!std.ascii.isAlphanumeric(ch) and ch != '-') { - resp.status = 400; resp._pad = 0; resp.content_type = CT_GRPC; - const e = "{\"error\":\"invalid language code\"}"; - resp.body_ptr = e; resp.body_len = e.len; - return; - } - } - var path_buf: [std.fs.max_path_bytes]u8 = undefined; - const fpath = std.fmt.bufPrint(&path_buf, "{s}/languages/{s}.json", - .{ g_data_dir, code }) catch { - resp.status = 500; resp._pad = 0; resp.content_type = CT_GRPC; - const e = "{\"error\":\"path too long\"}"; resp.body_ptr = e; resp.body_len = e.len; - return; - }; - guardPath(fpath) catch { - resp.status = 403; resp._pad = 0; resp.content_type = CT_GRPC; - const e = "{\"error\":\"path denied\"}"; resp.body_ptr = e; resp.body_len = e.len; - return; - }; - const file = std.fs.cwd().openFile(fpath, .{}) catch { - resp.status = 404; resp._pad = 0; resp.content_type = CT_GRPC; - const e = "{\"error\":\"language not found\"}"; resp.body_ptr = e; resp.body_len = e.len; - return; - }; - defer file.close(); - const contents = file.readToEndAlloc(allocator, 64 * 1024) catch { - resp.status = 500; resp._pad = 0; resp.content_type = CT_GRPC; - const e = "{\"error\":\"read failed\"}"; resp.body_ptr = e; resp.body_len = e.len; - return; - }; - defer allocator.free(contents); - const parsed = std.json.parseFromSlice(LanguageInfo, allocator, contents, .{ - .ignore_unknown_fields = true, - }) catch { - resp.status = 500; resp._pad = 0; resp.content_type = CT_GRPC; - const e = "{\"error\":\"parse failed\"}"; resp.body_ptr = e; resp.body_len = e.len; - return; - }; - var mp = parsed; defer mp.deinit(); - var fbs = std.io.fixedBufferStream(&g_resp_buf); - writeLangJson(fbs.writer(), parsed.value) catch { - resp.status = 500; resp._pad = 0; resp.content_type = CT_GRPC; - const e = "{\"error\":\"json encode failed\"}"; resp.body_ptr = e; resp.body_len = e.len; - return; - }; - const written = fbs.getWritten(); - resp.status = 200; resp._pad = 0; resp.content_type = CT_GRPC; - resp.body_ptr = written.ptr; resp.body_len = @intCast(written.len); - return; - } - if (std.mem.eql(u8, path, "/lol.CorpusService/CorpusStats")) { - lolCorpusStatsInto(resp, allocator); - resp.content_type = CT_GRPC; - return; - } - if (std.mem.eql(u8, path, "/lol.CorpusService/CrawlStatus")) { - lolCrawlStatusInto(resp, allocator); - resp.content_type = CT_GRPC; - return; - } - if (std.mem.eql(u8, path, "/lol.CorpusService/Health")) { - lolHealthInto(resp, allocator); - resp.content_type = CT_GRPC; - return; - } - resp.status = 404; resp._pad = 0; resp.content_type = CT_GRPC; - const e = "{\"error\":\"gRPC method not found\"}"; - resp.body_ptr = e; resp.body_len = e.len; -} - -fn lolGraphqlDispatch( - method: []const u8, - body: []const u8, - resp: *GnosisResponse, - allocator: std.mem.Allocator, -) void { - const is_get = std.mem.eql(u8, method, "GET"); - const is_post = std.mem.eql(u8, method, "POST"); - if (is_get) { - resp.status = 200; resp._pad = 0; resp.content_type = CT_HTML; - resp.body_ptr = GRAPHQL_PLAYGROUND; resp.body_len = GRAPHQL_PLAYGROUND.len; - return; - } - if (is_post) { - // Extract "query" field from {"query":"..."}. - const query = jsonFieldStrInto(body, "query", allocator) orelse { - const e = "{\"errors\":[{\"message\":\"Missing query field\"}]}"; - resp.status = 400; resp._pad = 0; resp.content_type = CT_JSON; - resp.body_ptr = e; resp.body_len = e.len; - return; - }; - defer allocator.free(query); - lolGqlResolve(query, resp, allocator); - return; - } - const e = "{\"error\":\"POST or GET required\"}"; - resp.status = 405; resp._pad = 0; resp.content_type = CT_JSON; - resp.body_ptr = e; resp.body_len = e.len; -} - -/// Write corpus stats into g_resp_buf and fill resp. -fn lolCorpusStatsInto(resp: *GnosisResponse, allocator: std.mem.Allocator) void { - const langs = listLanguages(allocator, g_data_dir) catch &[_]std.json.Parsed(LanguageInfo){}; - defer { for (langs) |p| { var m = p; m.deinit(); } allocator.free(langs); } - var total_verses: i64 = 0; - var total_bytes: i64 = 0; - var quality_sum: f64 = 0.0; - var families = std.StringHashMap(void).init(allocator); - defer families.deinit(); - for (langs) |p| { - total_verses += p.value.verses; - total_bytes += p.value.verses * 200; - quality_sum += p.value.quality; - if (p.value.family.len > 0) _ = families.put(p.value.family, {}) catch {}; - } - const n = langs.len; - const avg_quality = if (n > 0) quality_sum / @as(f64, @floatFromInt(n)) else 0.0; - var fbs = std.io.fixedBufferStream(&g_resp_buf); - fbs.writer().print( - "{{\"total_languages\":{d},\"total_verses\":{d},\"total_bytes\":{d}," ++ - "\"avg_quality\":{d:.4},\"families\":{d}}}", - .{ n, total_verses, total_bytes, avg_quality, families.count() }, - ) catch { respError(resp, 500, "json encode failed"); return; }; - const written = fbs.getWritten(); - resp.status = 200; resp._pad = 0; resp.content_type = CT_JSON; - resp.body_ptr = written.ptr; resp.body_len = @intCast(written.len); -} - -/// Write crawl status into g_resp_buf and fill resp. -fn lolCrawlStatusInto(resp: *GnosisResponse, allocator: std.mem.Allocator) void { - var cs = readCrawlStatus(allocator, g_data_dir); - defer cs.deinit(); - const s = cs.value; - var fbs = std.io.fixedBufferStream(&g_resp_buf); - const w = fbs.writer(); - w.print( - "{{\"total_languages\":{d},\"crawled\":{d},\"in_progress\":{d}," ++ - "\"failed\":{d},\"last_crawl\":\"{s}\",\"sources\":[", - .{ s.total_languages, s.crawled, s.in_progress, s.failed, s.last_crawl }, - ) catch { respError(resp, 500, "json encode failed"); return; }; - for (s.sources, 0..) |src, i| { - if (i > 0) w.writeByte(',') catch return; - w.print( - "{{\"name\":\"{s}\",\"languages\":{d},\"crawled\":{d},\"status\":\"{s}\"}}", - .{ src.name, src.languages, src.crawled, src.status }, - ) catch return; - } - w.writeAll("]}") catch { respError(resp, 500, "buffer overflow"); return; }; - const written = fbs.getWritten(); - resp.status = 200; resp._pad = 0; resp.content_type = CT_JSON; - resp.body_ptr = written.ptr; resp.body_len = @intCast(written.len); -} - -/// Write health JSON into g_resp_buf and fill resp. -fn lolHealthInto(resp: *GnosisResponse, allocator: std.mem.Allocator) void { - const langs = listLanguages(allocator, g_data_dir) catch &[_]std.json.Parsed(LanguageInfo){}; - defer { for (langs) |p| { var m = p; m.deinit(); } allocator.free(langs); } - const status: []const u8 = if (langs.len > 0) "ok" else "no_data"; - var fbs = std.io.fixedBufferStream(&g_resp_buf); - fbs.writer().print( - "{{\"status\":\"{s}\",\"version\":\"0.1.0\"," ++ - "\"data_dir\":\"{s}\",\"languages\":{d}}}", - .{ status, g_data_dir, langs.len }, - ) catch { respError(resp, 500, "json encode failed"); return; }; - const written = fbs.getWritten(); - resp.status = 200; resp._pad = 0; resp.content_type = CT_JSON; - resp.body_ptr = written.ptr; resp.body_len = @intCast(written.len); -} - -/// Resolve a GraphQL query string and fill resp. -fn lolGqlResolve(query: []const u8, resp: *GnosisResponse, allocator: std.mem.Allocator) void { - var fbs = std.io.fixedBufferStream(&g_resp_buf); - const w = fbs.writer(); - - if (std.mem.indexOf(u8, query, "health") != null) { - const langs = listLanguages(allocator, g_data_dir) catch &[_]std.json.Parsed(LanguageInfo){}; - defer { for (langs) |p| { var m = p; m.deinit(); } allocator.free(langs); } - const status: []const u8 = if (langs.len > 0) "ok" else "no_data"; - w.print( - "{{\"data\":{{\"health\":{{\"status\":\"{s}\",\"version\":\"0.1.0\",\"languages\":{d}}}}}}}", - .{ status, langs.len }, - ) catch {}; - } else if (std.mem.indexOf(u8, query, "crawlStatus") != null) { - var cs = readCrawlStatus(allocator, g_data_dir); - defer cs.deinit(); - const s = cs.value; - w.print( - "{{\"data\":{{\"crawlStatus\":{{\"totalLanguages\":{d},\"crawled\":{d}," ++ - "\"inProgress\":{d},\"failed\":{d},\"lastCrawl\":\"{s}\",\"sources\":[", - .{ s.total_languages, s.crawled, s.in_progress, s.failed, s.last_crawl }, - ) catch {}; - for (s.sources, 0..) |src, i| { - if (i > 0) w.writeByte(',') catch return; - w.print( - "{{\"name\":\"{s}\",\"languages\":{d},\"crawled\":{d},\"status\":\"{s}\"}}", - .{ src.name, src.languages, src.crawled, src.status }, - ) catch {}; - } - w.writeAll("]}}}}") catch {}; - } else if (std.mem.indexOf(u8, query, "corpusStats") != null) { - const langs = listLanguages(allocator, g_data_dir) catch &[_]std.json.Parsed(LanguageInfo){}; - defer { for (langs) |p| { var m = p; m.deinit(); } allocator.free(langs); } - var total_verses: i64 = 0; var total_bytes: i64 = 0; var quality_sum: f64 = 0.0; - var families = std.StringHashMap(void).init(allocator); defer families.deinit(); - for (langs) |p| { - total_verses += p.value.verses; total_bytes += p.value.verses * 200; - quality_sum += p.value.quality; - if (p.value.family.len > 0) _ = families.put(p.value.family, {}) catch {}; - } - const n = langs.len; - const avg_quality = if (n > 0) quality_sum / @as(f64, @floatFromInt(n)) else 0.0; - w.print( - "{{\"data\":{{\"corpusStats\":{{\"totalLanguages\":{d},\"totalVerses\":{d}," ++ - "\"totalBytes\":{d},\"avgQuality\":{d:.4},\"families\":{d}}}}}}}", - .{ n, total_verses, total_bytes, avg_quality, families.count() }, - ) catch {}; - } else if (std.mem.indexOf(u8, query, "language(") != null or - std.mem.indexOf(u8, query, "language (") != null) - { - const code = gqlArgStr(query, "code", allocator); - defer if (code) |c| allocator.free(c); - if (code == null) { - w.writeAll("{\"errors\":[{\"message\":\"language(code: ...) requires a code argument\"}]}") catch {}; - } else { - const c = code.?; - var valid = true; - for (c) |ch| { if (!std.ascii.isAlphanumeric(ch) and ch != '-') { valid = false; break; } } - if (!valid) { - w.writeAll("{\"errors\":[{\"message\":\"invalid language code\"}]}") catch {}; - } else { - var path_buf: [std.fs.max_path_bytes]u8 = undefined; - const fpath = std.fmt.bufPrint(&path_buf, "{s}/languages/{s}.json", - .{ g_data_dir, c }) catch { - w.writeAll("{\"errors\":[{\"message\":\"path too long\"}]}") catch {}; - const written = fbs.getWritten(); - resp.status = 200; resp._pad = 0; resp.content_type = CT_JSON; - resp.body_ptr = written.ptr; resp.body_len = @intCast(written.len); - return; - }; - guardPath(fpath) catch { - w.writeAll("{\"errors\":[{\"message\":\"path denied\"}]}") catch {}; - const written = fbs.getWritten(); - resp.status = 200; resp._pad = 0; resp.content_type = CT_JSON; - resp.body_ptr = written.ptr; resp.body_len = @intCast(written.len); - return; - }; - const file = std.fs.cwd().openFile(fpath, .{}) catch { - var eb: [256]u8 = undefined; - var efbs = std.io.fixedBufferStream(&eb); - efbs.writer().print( - "{{\"errors\":[{{\"message\":\"Language not found: {s}\"}}]}}", .{c}, - ) catch {}; - const ee = efbs.getWritten(); - w.writeAll(ee) catch {}; - const written = fbs.getWritten(); - resp.status = 200; resp._pad = 0; resp.content_type = CT_JSON; - resp.body_ptr = written.ptr; resp.body_len = @intCast(written.len); - return; - }; - defer file.close(); - const contents = file.readToEndAlloc(allocator, 64 * 1024) catch { - w.writeAll("{\"errors\":[{\"message\":\"read failed\"}]}") catch {}; - const written = fbs.getWritten(); - resp.status = 200; resp._pad = 0; resp.content_type = CT_JSON; - resp.body_ptr = written.ptr; resp.body_len = @intCast(written.len); - return; - }; - defer allocator.free(contents); - const parsed = std.json.parseFromSlice(LanguageInfo, allocator, contents, .{ - .ignore_unknown_fields = true, - }) catch { - w.writeAll("{\"errors\":[{\"message\":\"parse failed\"}]}") catch {}; - const written = fbs.getWritten(); - resp.status = 200; resp._pad = 0; resp.content_type = CT_JSON; - resp.body_ptr = written.ptr; resp.body_len = @intCast(written.len); - return; - }; - var mp = parsed; defer mp.deinit(); - w.writeAll("{\"data\":{\"language\":") catch {}; - writeLangJson(w, parsed.value) catch {}; - w.writeAll("}}") catch {}; - } - } - } else if (std.mem.indexOf(u8, query, "languages") != null) { - const langs = listLanguages(allocator, g_data_dir) catch { - w.writeAll("{\"errors\":[{\"message\":\"failed to read corpus\"}]}") catch {}; - const written = fbs.getWritten(); - resp.status = 200; resp._pad = 0; resp.content_type = CT_JSON; - resp.body_ptr = written.ptr; resp.body_len = @intCast(written.len); - return; - }; - defer { for (langs) |p| { var m = p; m.deinit(); } allocator.free(langs); } - w.writeAll("{\"data\":{\"languages\":[") catch {}; - for (langs, 0..) |p, i| { - if (i > 0) w.writeByte(',') catch return; - writeLangJson(w, p.value) catch {}; - } - w.writeAll("]}}") catch {}; - } else if (std.mem.indexOf(u8, query, "__schema") != null) { - w.writeAll( - \\{"data":{"__schema":{"types":[ - \\{"name":"Query","fields":["languages","language","corpusStats","crawlStatus","health"]}, - \\{"name":"Language","fields":["iso639_3","name","nativeName","family","scripts","sources","verses","quality"]}, - \\{"name":"CorpusStats","fields":["totalLanguages","totalVerses","totalBytes","avgQuality","families"]}, - \\{"name":"CrawlStatus","fields":["totalLanguages","crawled","inProgress","failed","lastCrawl","sources"]}, - \\{"name":"Source","fields":["name","languages","crawled","status"]}, - \\{"name":"Health","fields":["status","version","languages"]} - \\]}}} - ) catch {}; - } else { - w.writeAll( - "{\"errors\":[{\"message\":\"Unknown query. Available: " ++ - "languages, language(code), corpusStats, crawlStatus, health\"}]}", - ) catch {}; - } - - const written = fbs.getWritten(); - resp.status = 200; resp._pad = 0; resp.content_type = CT_JSON; - resp.body_ptr = written.ptr; resp.body_len = @intCast(written.len); -} - -/// Allocating JSON field extractor. Returns an owned copy; caller frees. -fn jsonFieldStrInto(data: []const u8, key: []const u8, allocator: std.mem.Allocator) ?[]u8 { - var key_buf: [128]u8 = undefined; - const needle = std.fmt.bufPrint(&key_buf, "\"{s}\"", .{key}) catch return null; - const key_pos = std.mem.indexOf(u8, data, needle) orelse return null; - const after_key = data[key_pos + needle.len ..]; - const colon = std.mem.indexOfScalar(u8, after_key, ':') orelse return null; - var rest = std.mem.trimLeft(u8, after_key[colon + 1 ..], " \t\n\r"); - if (rest.len == 0) return null; - if (rest[0] == '"') { - rest = rest[1..]; - const end = std.mem.indexOfScalar(u8, rest, '"') orelse return null; - return allocator.dupe(u8, rest[0..end]) catch null; - } - var end: usize = rest.len; - for (rest, 0..) |ch, i| { - if (ch == ',' or ch == '}' or ch == ']' or ch == '\n') { end = i; break; } - } - const trimmed = std.mem.trim(u8, rest[0..end], " \t"); - return allocator.dupe(u8, trimmed) catch null; -} - -/// The edge handler registered with uapi_gnosis_set_handler. -/// -/// gnosis calls this for every HTTP request accepted on the pool port. -/// The method, path, and body are already parsed by gnosis; lolHandler -/// path-dispatches to the appropriate protocol family. -/// -/// g_allocator and g_data_dir must have been set before uapi_gnosis_start. -export fn lolHandler(req: *const GnosisRequest, resp: *GnosisResponse) callconv(.c) void { - // Sanity guard: if context isn't ready (shouldn't happen in production), - // return a 503 rather than reading uninitialised memory. - if (!g_context_ready) { - respError(resp, 503, "gateway not ready"); - return; - } - - var arena_inst = std.heap.ArenaAllocator.init(g_allocator); - defer arena_inst.deinit(); - const arena = arena_inst.allocator(); - - const method = std.mem.span(req.method); - const path = std.mem.span(req.path); - const body: []const u8 = if (req.body_ptr) |p| p[0..req.body_len] else ""; - - // CORS preflight — respond immediately. - if (std.mem.eql(u8, method, "OPTIONS")) { - resp.status = 204; resp._pad = 0; resp.content_type = CT_TEXT; - resp.body_ptr = null; resp.body_len = 0; - return; - } - - // Path-based protocol routing. - if (std.mem.startsWith(u8, path, "/api/v1/") or std.mem.eql(u8, path, "/")) { - lolRestDispatch(path, method, body, resp, arena); - } else if (std.mem.startsWith(u8, path, "/lol.CorpusService/")) { - lolGrpcDispatch(path, method, body, resp, arena); - } else if (std.mem.startsWith(u8, path, "/graphql")) { - lolGraphqlDispatch(method, body, resp, arena); - } else { - respError(resp, 404, "not found"); - } -} - -// ============================================================================= -// Entry point -// ============================================================================= - -pub fn main() !void { - var gpa_inst = std.heap.GeneralPurposeAllocator(.{}){}; - defer _ = gpa_inst.deinit(); - const gpa = gpa_inst.allocator(); - - const port_str = std.posix.getenv("LOL_PORT") orelse "7800"; - const base_port = std.fmt.parseInt(u16, port_str, 10) catch 7800; - const data_dir = std.posix.getenv("LOL_DATA_DIR") orelse "corpus"; - - std.debug.print("LOL (1000Langs) API Gateway v0.2.0 (single-port)\n", .{}); - std.debug.print(" Data directory : {s}\n", .{data_dir}); - std.debug.print(" All protocols : http://0.0.0.0:{d}/\n", .{base_port}); - std.debug.print(" REST : /api/v1/*\n", .{}); - std.debug.print(" gRPC-compat : /lol.CorpusService/*\n", .{}); - std.debug.print(" GraphQL : /graphql\n", .{}); - - // ------------------------------------------------------------------------- - // Initialise the unified-zig-api library. - // Mandatory per UNIFIED-ZIG-API-STACK.adoc before any uapi_* call. - // ------------------------------------------------------------------------- - const init_result = uapi_init(); - if (init_result != UAPI_OK) { - std.debug.print("lol-gateway: uapi_init failed (result={d})\n", .{init_result}); - return error.UapiInitFailed; - } - defer uapi_teardown(); - - // ------------------------------------------------------------------------- - // Set up module-level handler context before uapi_gnosis_start. - // g_data_dir and g_allocator are read by lolHandler; they are set here and - // never mutated after uapi_gnosis_start returns. - // ------------------------------------------------------------------------- - g_data_dir = data_dir; - g_allocator = gpa; - g_context_ready = true; - - // ------------------------------------------------------------------------- - // Single-port setup: - // 1. Create one gnosis pool slot on base_port. - // 2. Register lolHandler as the edge dispatch hook. - // 3. Start the gnosis accept loop (blocks until stop or signal). - // ------------------------------------------------------------------------- - const handle = uapi_gnosis_create(base_port); - if (handle == 0) { - std.debug.print("lol-gateway: uapi_gnosis_create failed for port {d}\n", .{base_port}); - return error.GnosisCreateFailed; - } - defer uapi_gnosis_destroy(handle); - - const set_rc = uapi_gnosis_set_handler(handle, &lolHandler); - if (set_rc != UAPI_OK) { - std.debug.print("lol-gateway: uapi_gnosis_set_handler failed (result={d})\n", .{set_rc}); - return error.GnosisSetHandlerFailed; - } - - // uapi_gnosis_start spawns a background thread that owns the accept loop. - // It returns once the thread is running (listening state). - const start_rc = uapi_gnosis_start(handle); - if (start_rc != UAPI_OK) { - std.debug.print("lol-gateway: uapi_gnosis_start failed (result={d})\n", .{start_rc}); - return error.GnosisStartFailed; - } - - std.debug.print("lol-gateway: listening on :{d} (gnosis handle {d})\n", - .{ base_port, handle }); - - // Block main thread until the server stops (e.g. SIGINT / uapi_gnosis_stop). - // gnosis's background thread runs independently; we sleep here. - while (uapi_gnosis_state(handle) == UAPI_SERVER_LISTENING) { - std.Thread.sleep(1 * std.time.ns_per_s); - } -} - -// ============================================================================= -// Tests -// ============================================================================= - -test "guardPath accepts allowed path" { - // /tmp/ is in DEFAULT_ALLOWLIST; no traversal. - // This test only verifies the error tag; it does not actually open a file. - // guardPath calls uapi_safe_path_default which requires libzig_api at link - // time. The test step in build.zig links libzig_api so this is exercised. - try guardPath("/tmp/lol_test.json"); -} - -test "guardPath rejects path traversal" { - const result = guardPath("/tmp/../../../etc/passwd"); - try std.testing.expectError(error.PathDenied, result); -} - -test "guardPath rejects disallowed prefix" { - const result = guardPath("/etc/shadow"); - try std.testing.expectError(error.PathDenied, result); -} - -test "jsonFieldStr extracts string values" { - const data = "{\"code\":\"eng\",\"count\":42}"; - const alloc = std.testing.allocator; - - const code = jsonFieldStr(data, "code", alloc) orelse return error.Missing; - defer alloc.free(code); - try std.testing.expectEqualStrings("eng", code); -} - -test "jsonFieldStr returns null for missing key" { - const data = "{\"code\":\"eng\"}"; - const alloc = std.testing.allocator; - const result = jsonFieldStr(data, "missing", alloc); - try std.testing.expectEqual(@as(?[]u8, null), result); -} - -test "gqlArgStr extracts argument" { - const query = "{ language(code: \"fra\") { name } }"; - const alloc = std.testing.allocator; - const code = gqlArgStr(query, "code", alloc) orelse return error.Missing; - defer alloc.free(code); - try std.testing.expectEqualStrings("fra", code); -} diff --git a/lol/api/zig-gateway/src/types.zig b/lol/api/zig-gateway/src/types.zig deleted file mode 100644 index 83239baa8..000000000 --- a/lol/api/zig-gateway/src/types.zig +++ /dev/null @@ -1,165 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -// -// types.zig — LOL (1000Langs) public domain types for the Zig API gateway. -// -// Mirrors types.v from the deprecated v-lol module. These are idiomatic Zig -// value types (no raw pointers exposed); the lol_ffi.zig module performs -// all conversions from C-ABI structs into these. - -// ============================================================================= -// Error codes — mirrors lol_result_t from generated/abi/lol.h -// ============================================================================= - -/// All errors that the LOL service can surface to callers. -pub const LolError = error{ - /// Generic service-side error (check lol_last_error()). - GenericError, - /// A parameter value was null or malformed. - InvalidParam, - /// The service ran out of heap memory. - OutOfMemory, - /// An internal null pointer was encountered. - NullPointer, - /// The requested locale is not present in the corpus. - LocaleNotFound, - /// The requested translation key does not exist. - KeyNotFound, - /// A plural form index was out of the valid 0-5 range. - PluralOutOfRange, -}; - -// ============================================================================= -// CLDR plural categories — mirrors PluralCategory in types.v -// ============================================================================= - -/// Unicode CLDR plural category. Different languages use different subsets -/// of these six values to classify quantities. -pub const PluralCategory = enum(u32) { - /// Typically 0 in some languages (Arabic, Welsh, etc.). - zero = 0, - /// Typically 1 (English "1 item"). - one = 1, - /// Typically 2 (Arabic dual, Welsh, etc.). - two = 2, - /// Small numbers (3–10 in Arabic, 2–4 in Czech, etc.). - few = 3, - /// Large numbers (11–99 in Arabic, etc.). - many = 4, - /// Catch-all (English "2 items", "5 items", etc.). - other = 5, - - /// Convert a raw u32 from the C ABI into a PluralCategory. - /// Values outside 0–5 map to `.other` rather than causing undefined - /// behaviour — the corpus guarantees 0–5, but we defend at the boundary. - pub fn fromInt(raw: u32) PluralCategory { - return switch (raw) { - 0 => .zero, - 1 => .one, - 2 => .two, - 3 => .few, - 4 => .many, - else => .other, - }; - } - - /// Canonical lowercase string name (matches CLDR spec). - pub fn name(self: PluralCategory) []const u8 { - return switch (self) { - .zero => "zero", - .one => "one", - .two => "two", - .few => "few", - .many => "many", - .other => "other", - }; - } -}; - -// ============================================================================= -// Locale — mirrors Locale struct in types.v -// ============================================================================= - -/// A parsed and corpus-resolved BCP 47 locale tag. -/// All string fields are caller-owned slices backed by the arena allocator -/// passed to the lol_ffi conversion functions. -pub const Locale = struct { - /// Full BCP 47 tag, e.g. "en-US". - tag: []const u8, - /// ISO 639 language subtag, e.g. "en". - language: []const u8, - /// ISO 15924 script subtag (empty if unspecified), e.g. "Latn". - script: []const u8, - /// ISO 3166-1 region subtag (empty if unspecified), e.g. "US". - region: []const u8, -}; - -// ============================================================================= -// TranslationResult — mirrors TranslationResult in types.v -// ============================================================================= - -/// The output of a translation lookup, including fallback metadata. -pub const TranslationResult = struct { - /// The resolved translation text (UTF-8). - text: []const u8, - /// The locale that was actually used (may differ from the requested one - /// when the fallback chain was walked). - resolved_locale: []const u8, - /// True when a fallback locale was used rather than the exact one requested. - is_fallback: bool, -}; - -// ============================================================================= -// LanguageInfo — mirrors LanguageInfo in types.v -// ============================================================================= - -/// Metadata about a single language in the LOL parallel corpus. -pub const LanguageInfo = struct { - /// ISO 639-3 three-letter code (e.g. "eng", "deu"). - iso639_3: []const u8, - /// English name of the language. - name: []const u8, - /// Autonym — the name in the language itself. - native_name: []const u8, - /// Language family (e.g. "Indo-European"). - family: []const u8, - /// Writing systems used (e.g. "Latin, Cyrillic"). - scripts: []const u8, - /// Number of corpus sources available for this language. - source_count: u32, - /// Total verse count crawled for this language. - verse_count: u32, - /// Quality score produced by the VeriSimDB pipeline (0.0–1.0). - quality: f64, -}; - -// ============================================================================= -// PluralRule — mirrors PluralRule in types.v -// ============================================================================= - -/// Describes which CLDR plural categories a language uses and how many -/// distinct forms it requires. `categories` has exactly `form_count` -/// valid entries; the remaining slots (up to 6) are unspecified. -pub const PluralRule = struct { - /// ISO 639 language code. - language: []const u8, - /// Number of distinct plural forms (1–6, proven in the Idris2 ABI). - form_count: u32, - /// Which CLDR categories this language uses, in order. - /// Slice is backed by the arena allocator passed at conversion time. - categories: []PluralCategory, -}; - -// ============================================================================= -// Config — mirrors Config in types.v -// ============================================================================= - -/// Initialisation parameters for the LOL service handle. -pub const Config = struct { - /// Path to the corpus data directory. Defaults to "corpus". - data_dir: []const u8 = "corpus", - /// Default fallback locale tag. Defaults to "en". - default_locale: []const u8 = "en", - /// Whether to walk the fallback chain when the exact locale is missing. - enable_fallback: bool = true, -}; diff --git a/lol/biome.json b/lol/biome.json deleted file mode 100644 index be047ce86..000000000 --- a/lol/biome.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "$schema": "https://biomejs.dev/schemas/1.9.0/schema.json", - "organizeImports": { - "enabled": true - }, - "linter": { - "enabled": true, - "rules": { - "recommended": true, - "correctness": { - "noUnusedVariables": "warn", - "noUnusedImports": "warn" - }, - "style": { - "useConst": "error", - "noVar": "error" - }, - "suspicious": { - "noExplicitAny": "warn" - } - } - }, - "formatter": { - "enabled": true, - "indentStyle": "space", - "indentWidth": 2, - "lineWidth": 100 - }, - "javascript": { - "formatter": { - "semicolons": "asNeeded", - "quoteStyle": "single", - "trailingCommas": "es5" - } - }, - "files": { - "ignore": [ - "node_modules", - "dist", - ".rescript", - "coverage", - "*.res.mjs" - ] - } -} diff --git a/lol/config/main.ncl b/lol/config/main.ncl deleted file mode 100644 index 3a10817f0..000000000 --- a/lol/config/main.ncl +++ /dev/null @@ -1,275 +0,0 @@ -# SPDX-License-Identifier: MIT AND LicenseRef-Palimpsest-0.8 -# SPDX-FileCopyrightText: 2024-2025 Ehsaneddin Asgari and Contributors -# -# 1000Langs Nickel Configuration -# ============================== -# Flexible, type-safe configuration for the parallel corpus crawler - -let Contracts = { - Url = fun label value => - if std.string.is_match "^https?://" value then value - else std.contract.blame_with_message "Invalid URL format" label, - - PositiveInt = fun label value => - if std.is_number value && value > 0 then value - else std.contract.blame_with_message "Must be a positive integer" label, - - Iso639_3 = fun label value => - if std.string.is_match "^[a-z]{3}$" value then value - else std.contract.blame_with_message "Must be valid ISO 639-3 code" label, - - NonEmptyString = fun label value => - if std.is_string value && std.string.length value > 0 then value - else std.contract.blame_with_message "Must be non-empty string" label, -} in - -let default_crawler_config = { - timeout_ms = 30000, - retries = 3, - rate_limit_ms = 1000, - user_agent = "1000Langs/0.1.0 (Parallel Corpus Crawler)", - respect_robots_txt = true, - concurrent_requests = 5, -} in - -let default_source = { - enabled = true, - priority = 1, - crawler_config = default_crawler_config, -} in - -{ - # Project metadata - project = { - name = "1000Langs", - version = "0.1.0", - description = "Super-parallel corpus crawler for multilingual NLP research", - homepage = "https://github.com/Hyperpolymath/1000Langs", - repository = "https://github.com/Hyperpolymath/1000Langs.git", - license = "MIT AND LicenseRef-Palimpsest-0.8", - authors = [ - { - name = "Ehsaneddin Asgari", - email = "asgari@cis.lmu.de", - affiliation = "LMU Munich", - }, - ], - }, - - # Environment configuration - environment | { - development = { - log_level = "debug", - enable_cache = true, - cache_ttl_seconds = 3600, - data_directory = "./data", - output_directory = "./output", - }, - production = { - log_level = "info", - enable_cache = true, - cache_ttl_seconds = 86400, - data_directory = "/var/lib/1000langs/data", - output_directory = "/var/lib/1000langs/output", - }, - test = { - log_level = "warn", - enable_cache = false, - cache_ttl_seconds = 0, - data_directory = "./test/fixtures/data", - output_directory = "./test/output", - }, - }, - - # Source configurations - sources = { - bible_cloud = default_source & { - name = "Bible Cloud", - type = "api", - base_url | Contracts.Url = "https://api.scripture.api.bible/v1", - requires_auth = true, - auth_type = "api_key", - auth_env_var = "BIBLE_CLOUD_API_KEY", - priority = 1, - }, - bible_com = default_source & { - name = "Bible.com (YouVersion)", - type = "scraper", - base_url | Contracts.Url = "https://www.bible.com", - requires_auth = false, - crawler_config = default_crawler_config & { - rate_limit_ms = 2000, - concurrent_requests = 2, - }, - priority = 2, - }, - png_scriptures = default_source & { - name = "PNG Scriptures", - type = "download", - base_url | Contracts.Url = "https://pngscriptures.org", - requires_auth = false, - formats = ["zip", "html"], - priority = 3, - }, - ebible = default_source & { - name = "eBible.org", - type = "download", - base_url | Contracts.Url = "https://ebible.org", - requires_auth = false, - formats = ["usfm", "usx", "html"], - priority = 4, - }, - find_bible = default_source & { - name = "Find.Bible", - type = "api", - base_url | Contracts.Url = "https://find.bible", - requires_auth = false, - priority = 5, - }, - }, - - # Corpus configuration - corpus = { - alignment = { - method = "verse_reference", - canonical_versification = "original", - handle_missing = "skip", - store_metadata = true, - }, - storage = { - format = "jsonl", - compression = "gzip", - partition_by = "language", - max_file_size_mb = 100, - }, - validation = { - verify_checksums = true, - validate_encoding = true, - detect_duplicates = true, - minimum_verse_coverage = 0.1, - }, - }, - - # OpenCyc integration - opencyc = { - enabled = true, - endpoint | Contracts.Url = "http://localhost:3602", - connection_timeout_ms = 5000, - cache_queries = true, - concept_mappings = { - language_concept = "#$HumanLanguage", - script_concept = "#$WritingScript", - region_concept = "#$GeographicalRegion", - }, - }, - - # Echidna proof integration - proofs = { - enabled = true, - echidna_path = "./proofs", - auto_verify = false, - verification_level = "full", - proof_categories = [ - "data_integrity", - "alignment_correctness", - "statistical_properties", - "type_safety", - ], - }, - - # Export configurations - export = { - formats = { - json = { - pretty_print = false, - include_metadata = true, - }, - csv = { - delimiter = "\t", - quote_char = "\"", - escape_char = "\\", - }, - parquet = { - compression = "snappy", - row_group_size = 10000, - }, - conllu = { - include_morphology = true, - include_dependencies = false, - }, - }, - default_format = "json", - }, - - # Containerization (Podman) - container = { - runtime = "podman", - image_name = "1000langs", - base_image = "docker.io/library/node:20-alpine", - labels = { - "org.opencontainers.image.title" = "1000Langs", - "org.opencontainers.image.description" = "Super-parallel corpus crawler", - "org.opencontainers.image.source" = "https://github.com/Hyperpolymath/1000Langs", - "org.opencontainers.image.licenses" = "MIT AND LicenseRef-Palimpsest-0.8", - }, - security = { - rootless = true, - read_only_rootfs = true, - no_new_privileges = true, - drop_capabilities = ["ALL"], - add_capabilities = [], - }, - }, - - # RSR Compliance - rsr = { - target_level = "gold", - checks = { - documentation = true, - security = true, - accessibility = true, - licensing = true, - testing = true, - containerization = true, - }, - exemptions = [], - }, - - # Logging and monitoring - logging = { - format = "json", - outputs = ["stdout", "file"], - file_path = "logs/1000langs.log", - rotation = { - max_size_mb = 50, - max_files = 10, - compress = true, - }, - levels = { - default = "info", - crawlers = "debug", - proofs = "debug", - api = "info", - }, - }, - - # Future: GIS integration placeholder - gis = { - enabled = false, - provider = "arcgis", # or "openlayers", "mapbox", "leaflet" - server = { - type = "openlitespeed", - port = 8080, - }, - layers = { - language_distribution = { - source = "glottolog", - style = "choropleth", - }, - typological_features = { - source = "wals", - style = "points", - }, - }, - }, -} diff --git a/lol/contractiles/README.adoc b/lol/contractiles/README.adoc deleted file mode 100644 index d19a38774..000000000 --- a/lol/contractiles/README.adoc +++ /dev/null @@ -1,19 +0,0 @@ -= Contractiles Template Set -:toc: -:sectnums: - -This directory contains the generalized contractiles templates. Copy the `contractiles/` directory into a new repo to establish a consistent operational, validation, trust, recovery, and intent framework. - -== Fill-In Instructions - -1. Update the Mustfile to reflect your real invariants (paths, schema versions, ports). -2. Replace Trustfile.hs placeholders with your actual key paths and verification commands. -3. Adjust Dustfile handlers to match your rollback and recovery tooling. -4. Update Intentfile to mirror the roadmap you want the system to evolve toward. - -== Contents - -* `must/Mustfile` - required invariants and validations. -* `trust/Trustfile.hs` - cryptographic verification steps. -* `dust/Dustfile` - rollback and recovery semantics. -* `lust/Intentfile` - future intent and roadmap direction. diff --git a/lol/contractiles/dust/Dustfile b/lol/contractiles/dust/Dustfile deleted file mode 100644 index 314903cca..000000000 --- a/lol/contractiles/dust/Dustfile +++ /dev/null @@ -1,29 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Dustfile template - recovery and rollback semantics - -version: 1 - -recovery: - logs: - - name: decision-log - path: logs/decisions.json - reversible: true - handler: "log-replay --reverse logs/decisions.json" - - policy: - - name: policy-rollback - path: policy/policy.ncl - rollback: "git checkout HEAD~1 -- policy/policy.ncl" - notes: "Rollback policy to the previous known-good revision." - - gateway: - - name: bad-deployment - event: "deploy.failure" - undo: "kubectl rollout undo deployment/gateway" - notes: "Undo a failed deployment while preserving audit logs." - - dust-events: - - name: decision-log-to-dust - source: logs/decisions.json - transform: "dustify --input logs/decisions.json --output logs/dust-events.json" - notes: "Map gateway decision logs into reversible dust events." diff --git a/lol/contractiles/must/Mustfile b/lol/contractiles/must/Mustfile deleted file mode 100644 index dc7b3be51..000000000 --- a/lol/contractiles/must/Mustfile +++ /dev/null @@ -1,35 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# Mustfile - declarative state contract (template) -# See: https://github.com/hyperpolymath/mustfile - -version: 1 - -metadata: - name: project-state-contract - spec: v0.0.1 - description: "Invariant checks for config, policy, gateway, logs, and schema." - -parameters: - gateway_port: "8080" - schema_version: "v0.0.1" - -checks: - - name: config-valid - description: "config/service.yaml must be valid." - run: "yq -e '.' config/service.yaml >/dev/null" - - - name: policy-compiles - description: "policy/policy.ncl must compile." - run: "nickel check policy/policy.ncl" - - - name: gateway-exposes-port - description: "Service must expose the configured port." - run: "bash -uc 'ss -lnt | rg \":${GATEWAY_PORT:-8080}\"'" - - - name: logs-are-json - description: "Logs must be JSON." - run: "bash -uc 'rg --files -g \"*.json\" logs | xargs -r jq -e .'" - - - name: schema-version-matches - description: "Schema must match version spec." - run: "bash -uc 'rg -n \"${SCHEMA_VERSION:-v0.0.1}\" schema'" diff --git a/lol/docs/CITATIONS.adoc b/lol/docs/CITATIONS.adoc deleted file mode 100644 index ef67f7c0d..000000000 --- a/lol/docs/CITATIONS.adoc +++ /dev/null @@ -1,36 +0,0 @@ -= LOL - Citation Guide -:toc: - -== BibTeX - -[source,bibtex] ----- -@software{lol_2025, - author = {Polymath, Hyper}, - title = {LOL}, - year = {2025}, - url = {https://github.com/hyperpolymath/LOL}, - license = {PMPL-1.0-or-later} -} ----- - -== Harvard Style - -Polymath, H. (2025) _LOL_ [Computer software]. Available at: https://github.com/hyperpolymath/LOL - -== OSCOLA - -Hyper Polymath, 'LOL' (2025) - -== MLA - -Polymath, Hyper. "LOL." 2025, github.com/hyperpolymath/LOL. - -== APA 7 - -Polymath, H. (2025). _LOL_ [Computer software]. GitHub. https://github.com/hyperpolymath/LOL - -== See Also - -* link:../CITATION.cff[CITATION.cff] -* link:../codemeta.json[codemeta.json] diff --git a/lol/eclexiaiser.toml b/lol/eclexiaiser.toml deleted file mode 100644 index 1f531ea99..000000000 --- a/lol/eclexiaiser.toml +++ /dev/null @@ -1,26 +0,0 @@ -# eclexiaiser manifest — energy/carbon resource budgets -# SPDX-License-Identifier: MPL-2.0 - -[project] -name = "lol" - -[[functions]] -name = "analyzeFull" -source = "src/verisimdb/CorpusAnalyzer.res" -energy-budget-mj = 60.0 -carbon-budget-mg = 12.0 - -[[functions]] -name = "getWithRetry" -source = "src/utils/Http.res" -energy-budget-mj = 20.0 -carbon-budget-mg = 4.0 - -[carbon] -provider = "static" -region = "GB" -static-intensity = 200.0 - -[report] -format = "text" -include-recommendations = true diff --git a/lol/ffi/zig/build.zig b/lol/ffi/zig/build.zig deleted file mode 100644 index 4c475ec85..000000000 --- a/lol/ffi/zig/build.zig +++ /dev/null @@ -1,115 +0,0 @@ -// LOL i18n Service — FFI Build Configuration -// SPDX-License-Identifier: MPL-2.0 -// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -// -// Builds liblol as both shared and static libraries. -// The library implements the C ABI declared in src/abi/Foreign.idr -// and specified in generated/abi/lol.h. -// -// Modules: -// src/main.zig — C ABI exports and service state -// src/locale.zig — BCP 47 locale parsing, validation, normalisation -// src/store.zig — Thread-safe translation store with fallback -// src/plural.zig — CLDR plural rule selection per language -// src/ffi.zig — Module re-exports and FFI surface documentation - -const std = @import("std"); - -pub fn build(b: *std.Build) void { - const target = b.standardTargetOptions(.{}); - const optimize = b.standardOptimizeOption(.{}); - - const root_source = b.path("src/main.zig"); - - // Shared library (liblol.so / liblol.dylib / lol.dll) - const lib = b.addLibrary(.{ - .name = "lol", - .root_module = b.createModule(.{ - .root_source_file = root_source, - .target = target, - .optimize = optimize, - .link_libc = true, - }), - .linkage = .dynamic, - }); - // Static library (liblol.a) - const lib_static = b.addLibrary(.{ - .name = "lol", - .root_module = b.createModule(.{ - .root_source_file = root_source, - .target = target, - .optimize = optimize, - .link_libc = true, - }), - .linkage = .static, - }); - - // Install artifacts - b.installArtifact(lib); - b.installArtifact(lib_static); - - // Install the generated C header alongside the library. - b.installFile("../../generated/abi/lol.h", "include/lol.h"); - - // Unit tests (main module — needs libc for c_allocator) - const lib_tests = b.addTest(.{ - .root_module = b.createModule(.{ - .root_source_file = root_source, - .target = target, - .optimize = optimize, - .link_libc = true, - }), - }); - const run_lib_tests = b.addRunArtifact(lib_tests); - - // Sub-module tests: locale - const locale_tests = b.addTest(.{ - .root_module = b.createModule(.{ - .root_source_file = b.path("src/locale.zig"), - .target = target, - .optimize = optimize, - }), - }); - const run_locale_tests = b.addRunArtifact(locale_tests); - - // Sub-module tests: plural - const plural_tests = b.addTest(.{ - .root_module = b.createModule(.{ - .root_source_file = b.path("src/plural.zig"), - .target = target, - .optimize = optimize, - }), - }); - const run_plural_tests = b.addRunArtifact(plural_tests); - - // Sub-module tests: store - const store_tests = b.addTest(.{ - .root_module = b.createModule(.{ - .root_source_file = b.path("src/store.zig"), - .target = target, - .optimize = optimize, - }), - }); - const run_store_tests = b.addRunArtifact(store_tests); - - const test_step = b.step("test", "Run all library tests"); - test_step.dependOn(&run_lib_tests.step); - test_step.dependOn(&run_locale_tests.step); - test_step.dependOn(&run_plural_tests.step); - test_step.dependOn(&run_store_tests.step); - - // Integration tests - const integration_tests = b.addTest(.{ - .root_module = b.createModule(.{ - .root_source_file = b.path("test/integration_test.zig"), - .target = target, - .optimize = optimize, - }), - }); - integration_tests.root_module.linkLibrary(lib); - - const run_integration_tests = b.addRunArtifact(integration_tests); - - const integration_test_step = b.step("test-integration", "Run integration tests"); - integration_test_step.dependOn(&run_integration_tests.step); -} diff --git a/lol/ffi/zig/src/ffi.zig b/lol/ffi/zig/src/ffi.zig deleted file mode 100644 index eb4ff2658..000000000 --- a/lol/ffi/zig/src/ffi.zig +++ /dev/null @@ -1,63 +0,0 @@ -// LOL i18n Service — C ABI Exports -// -// Re-exports all public C ABI functions from the main module. -// This file serves as the documentation index for the FFI surface area. -// The actual implementations are in main.zig, which imports locale.zig, -// store.zig, and plural.zig for modular implementation. -// -// See generated/abi/lol.h for the C header that consumers include. -// See src/abi/Foreign.idr for the Idris2 FFI declarations. -// -// SPDX-License-Identifier: MPL-2.0 -// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) - -/// Re-export the sub-modules for use by main.zig and tests. -pub const locale = @import("locale.zig"); -pub const store = @import("store.zig"); -pub const plural = @import("plural.zig"); - -// --------------------------------------------------------------------------- -// FFI Function Index -// --------------------------------------------------------------------------- -// -// The following C ABI functions are exported by main.zig: -// -// Lifecycle: -// lol_init(data_dir) -> handle -// lol_free(handle) -// lol_is_initialized(handle) -> u32 -// -// Locale Resolution: -// lol_resolve_locale(handle, tag) -> *Locale -// lol_free_locale(*Locale) -// -// Translation Lookup: -// lol_translate(handle, locale, key) -> *TranslationResult -// lol_free_translation(*TranslationResult) -// lol_translation_text(*TranslationResult) -> *c_char -// -// Plural Selection: -// lol_select_plural(handle, locale, quantity) -> u32 -// lol_translate_plural(handle, locale, key, quantity) -> *TranslationResult -// -// Language Metadata: -// lol_language_count(handle) -> u32 -// lol_get_language(handle, code) -> *LanguageInfo -// lol_free_language(*LanguageInfo) -// lol_list_languages(handle, out_array) -> u32 -// -// Plural Rules: -// lol_get_plural_rule(handle, lang) -> *PluralRule -// lol_free_plural_rule(*PluralRule) -// -// Fallback Chain: -// lol_fallback_chain_len(handle, locale) -> u32 -// lol_fallback_chain(handle, locale) -> **c_char -// lol_free_fallback_chain(**c_char) -// -// Error Handling: -// lol_last_error() -> *c_char -// -// Version: -// lol_version() -> *c_char -// lol_build_info() -> *c_char diff --git a/lol/ffi/zig/src/locale.zig b/lol/ffi/zig/src/locale.zig deleted file mode 100644 index bb7490cff..000000000 --- a/lol/ffi/zig/src/locale.zig +++ /dev/null @@ -1,195 +0,0 @@ -// LOL i18n Service — Locale Operations -// -// Implements BCP 47 locale parsing, validation, normalisation, and -// fallback chain construction. Matches the Idris2 ABI definitions -// in src/abi/Locale.idr. -// -// SPDX-License-Identifier: MPL-2.0 -// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) - -const std = @import("std"); - -/// Parsed BCP 47 locale components. -/// Matches the Locale extern struct in main.zig and the Idris2 Locale record. -pub const LocaleComponents = struct { - language: []const u8, - script: []const u8, - region: []const u8, -}; - -/// Parse a BCP 47 locale tag into its component parts. -/// -/// Handles the common patterns: -/// "en" -> language="en", script="", region="" -/// "en-US" -> language="en", script="", region="US" -/// "zh-Hans" -> language="zh", script="Hans", region="" -/// "zh-Hans-CN" -> language="zh", script="Hans", region="CN" -/// "sr-Latn-RS" -> language="sr", script="Latn", region="RS" -pub fn parse(tag: []const u8) LocaleComponents { - var result = LocaleComponents{ - .language = tag, - .script = "", - .region = "", - }; - - var it = std.mem.splitScalar(u8, tag, '-'); - if (it.next()) |lang| { - result.language = lang; - if (it.next()) |part2| { - if (part2.len == 4 and isAllAlpha(part2)) { - // ISO 15924 script code (4 letters, e.g. "Hans", "Latn") - result.script = part2; - if (it.next()) |part3| { - result.region = part3; - } - } else { - // ISO 3166-1 region code (2-3 chars) - result.region = part2; - } - } - } - - return result; -} - -/// Validate that a locale tag has a structurally valid language subtag. -/// Returns true if the language part is 2-3 ASCII alpha characters. -pub fn isValid(tag: []const u8) bool { - if (tag.len == 0) return false; - - var it = std.mem.splitScalar(u8, tag, '-'); - const lang = it.next() orelse return false; - - return (lang.len == 2 or lang.len == 3) and isAllAlpha(lang); -} - -/// Normalise a locale tag to BCP 47 canonical form: -/// language = lowercase, script = titlecase, region = uppercase. -/// Writes the result into the provided buffer and returns the written slice. -/// -/// Example: "EN-latn-us" -> "en-Latn-US" -pub fn normalise(tag: []const u8, buf: []u8) []const u8 { - const components = parse(tag); - var pos: usize = 0; - - // Language: lowercase - for (components.language) |c| { - if (pos >= buf.len) break; - buf[pos] = std.ascii.toLower(c); - pos += 1; - } - - // Script: titlecase (first upper, rest lower) - if (components.script.len > 0) { - if (pos < buf.len) { - buf[pos] = '-'; - pos += 1; - } - for (components.script, 0..) |c, i| { - if (pos >= buf.len) break; - buf[pos] = if (i == 0) std.ascii.toUpper(c) else std.ascii.toLower(c); - pos += 1; - } - } - - // Region: uppercase - if (components.region.len > 0) { - if (pos < buf.len) { - buf[pos] = '-'; - pos += 1; - } - for (components.region) |c| { - if (pos >= buf.len) break; - buf[pos] = std.ascii.toUpper(c); - pos += 1; - } - } - - return buf[0..pos]; -} - -/// Compute the fallback chain length for a locale tag. -/// For "en-GB" returns 3: en-GB, en, default. -/// For "zh-Hans-CN" returns 4: zh-Hans-CN, zh-Hans, zh, default. -pub fn fallbackChainLength(tag: []const u8) u32 { - var count: u32 = 1; // The tag itself - for (tag) |c| { - if (c == '-') count += 1; - } - return count + 1; // +1 for "default" at the end -} - -// --------------------------------------------------------------------------- -// Internal helpers -// --------------------------------------------------------------------------- - -/// Check if all characters in a slice are ASCII alphabetic. -fn isAllAlpha(s: []const u8) bool { - for (s) |c| { - if (!std.ascii.isAlphabetic(c)) return false; - } - return true; -} - -// --------------------------------------------------------------------------- -// Tests -// --------------------------------------------------------------------------- - -test "parse simple locale" { - const r = parse("en"); - try std.testing.expectEqualStrings("en", r.language); - try std.testing.expectEqualStrings("", r.script); - try std.testing.expectEqualStrings("", r.region); -} - -test "parse locale with region" { - const r = parse("en-US"); - try std.testing.expectEqualStrings("en", r.language); - try std.testing.expectEqualStrings("", r.script); - try std.testing.expectEqualStrings("US", r.region); -} - -test "parse locale with script and region" { - const r = parse("zh-Hans-CN"); - try std.testing.expectEqualStrings("zh", r.language); - try std.testing.expectEqualStrings("Hans", r.script); - try std.testing.expectEqualStrings("CN", r.region); -} - -test "parse locale with script only" { - const r = parse("sr-Latn"); - try std.testing.expectEqualStrings("sr", r.language); - try std.testing.expectEqualStrings("Latn", r.script); - try std.testing.expectEqualStrings("", r.region); -} - -test "validate good tags" { - try std.testing.expect(isValid("en")); - try std.testing.expect(isValid("en-US")); - try std.testing.expect(isValid("zh-Hans-CN")); - try std.testing.expect(isValid("eng")); -} - -test "validate bad tags" { - try std.testing.expect(!isValid("")); - try std.testing.expect(!isValid("1234")); - try std.testing.expect(!isValid("toolongname")); -} - -test "normalise mixed case" { - var buf: [64]u8 = undefined; - const result = normalise("EN-latn-us", &buf); - try std.testing.expectEqualStrings("en-Latn-US", result); -} - -test "normalise simple" { - var buf: [64]u8 = undefined; - const result = normalise("EN", &buf); - try std.testing.expectEqualStrings("en", result); -} - -test "fallback chain length" { - try std.testing.expectEqual(@as(u32, 2), fallbackChainLength("en")); - try std.testing.expectEqual(@as(u32, 3), fallbackChainLength("en-US")); - try std.testing.expectEqual(@as(u32, 4), fallbackChainLength("zh-Hans-CN")); -} diff --git a/lol/ffi/zig/src/main.zig b/lol/ffi/zig/src/main.zig deleted file mode 100644 index d0d9dded1..000000000 --- a/lol/ffi/zig/src/main.zig +++ /dev/null @@ -1,904 +0,0 @@ -// LOL i18n Service — Zig FFI Implementation -// -// Implements the C-compatible FFI declared in src/abi/Foreign.idr. -// All types and layouts must match the Idris2 ABI definitions. -// -// LOL is called as a service: consumers call lol_init() with a corpus -// data directory, perform translation lookups, then call lol_free(). -// -// SPDX-License-Identifier: MPL-2.0 -// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) - -const std = @import("std"); - -// --------------------------------------------------------------------------- -// Version -// --------------------------------------------------------------------------- - -const VERSION = "0.1.0"; -const BUILD_INFO = "LOL i18n Service built with Zig " ++ @import("builtin").zig_version_string; - -// --------------------------------------------------------------------------- -// Result codes (must match src/abi/Types.idr Result type) -// --------------------------------------------------------------------------- - -pub const Result = enum(c_int) { - ok = 0, - err = 1, - invalid_param = 2, - out_of_memory = 3, - null_pointer = 4, - locale_not_found = 5, - key_not_found = 6, - plural_out_of_range = 7, -}; - -// --------------------------------------------------------------------------- -// CLDR Plural Categories (must match src/abi/Types.idr PluralCategory) -// --------------------------------------------------------------------------- - -pub const PluralCategory = enum(u32) { - zero = 0, - one = 1, - two = 2, - few = 3, - many = 4, - other = 5, -}; - -// --------------------------------------------------------------------------- -// C-compatible structs (must match src/abi/Layout.idr) -// --------------------------------------------------------------------------- - -/// Locale struct — 32 bytes on 64-bit, 16 bytes on 32-bit. -/// All string pointers are owned by the service and freed by lol_free_locale. -pub const Locale = extern struct { - tag: ?[*:0]const u8, - language: ?[*:0]const u8, - script: ?[*:0]const u8, - region: ?[*:0]const u8, -}; - -/// Translation result struct — 24 bytes. -pub const TranslationResult = extern struct { - text: ?[*:0]const u8, - resolved_locale: ?[*:0]const u8, - is_fallback: u32, - _padding: u32 = 0, -}; - -/// Language info struct — 56 bytes. -pub const LanguageInfo = extern struct { - iso639_3: ?[*:0]const u8, - name: ?[*:0]const u8, - native_name: ?[*:0]const u8, - family: ?[*:0]const u8, - scripts: ?[*:0]const u8, - source_count: u32, - verse_count: u32, - quality: f64, -}; - -/// Plural rule struct — 40 bytes. -pub const PluralRule = extern struct { - language: ?[*:0]const u8, - form_count: u32, - categories: [6]u32, - _padding: u32 = 0, -}; - -// --------------------------------------------------------------------------- -// Thread-local error storage -// --------------------------------------------------------------------------- - -threadlocal var last_error: ?[]const u8 = null; - -fn setError(msg: []const u8) void { - last_error = msg; -} - -fn clearError() void { - last_error = null; -} - -// --------------------------------------------------------------------------- -// Internal service state -// --------------------------------------------------------------------------- - -/// Internal handle state. Opaque to callers via the C API. -const ServiceState = struct { - allocator: std.mem.Allocator, - initialized: bool, - data_dir: []const u8, - default_locale: []const u8, - enable_fallback: bool, - - /// Duplicate a Zig string slice as a null-terminated C string. - /// Caller must free via freeStr. - fn dupeStr(self: *ServiceState, s: []const u8) ?[*:0]u8 { - const result = self.allocator.dupeZ(u8, s) catch return null; - return result.ptr; - } - - /// Free a null-terminated C string previously created by dupeStr. - fn freeStr(self: *ServiceState, s: ?[*:0]const u8) void { - if (s) |ptr| { - const slice = std.mem.span(ptr); - self.allocator.free(slice); - } - } -}; - -// --------------------------------------------------------------------------- -// Library Lifecycle -// --------------------------------------------------------------------------- - -/// Initialise the LOL service. -/// `data_dir` is the path to the corpus data directory (null-terminated). -/// Returns a handle (opaque pointer), or null on failure. -export fn lol_init(data_dir: ?[*:0]const u8) ?*anyopaque { - const allocator = std.heap.c_allocator; - const dir_str = if (data_dir) |d| std.mem.span(d) else "corpus"; - - const state = allocator.create(ServiceState) catch { - setError("Failed to allocate service state"); - return null; - }; - - const dir_copy = allocator.dupe(u8, dir_str) catch { - allocator.destroy(state); - setError("Failed to copy data_dir"); - return null; - }; - - state.* = .{ - .allocator = allocator, - .initialized = true, - .data_dir = dir_copy, - .default_locale = "en", - .enable_fallback = true, - }; - - clearError(); - return @ptrCast(state); -} - -/// Free the LOL service handle and all associated resources. -export fn lol_free(handle: ?*anyopaque) void { - const state = stateFromHandle(handle) orelse return; - const allocator = state.allocator; - - allocator.free(state.data_dir); - state.initialized = false; - allocator.destroy(state); - - clearError(); -} - -// --------------------------------------------------------------------------- -// Locale Resolution -// --------------------------------------------------------------------------- - -/// Parse and resolve a BCP 47 locale tag against the corpus. -/// Returns a pointer to a Locale struct, or null if resolution fails. -/// Caller must free with lol_free_locale. -export fn lol_resolve_locale(handle: ?*anyopaque, tag: ?[*:0]const u8) ?*anyopaque { - const state = stateFromHandle(handle) orelse { - setError("Null handle"); - return null; - }; - - const tag_str = if (tag) |t| std.mem.span(t) else { - setError("Null locale tag"); - return null; - }; - - if (tag_str.len == 0) { - setError("Empty locale tag"); - return null; - } - - const locale = state.allocator.create(Locale) catch { - setError("Failed to allocate locale"); - return null; - }; - - // Parse the BCP 47 tag into language, script, region components. - // A full BCP 47 parser would be more complex; this handles the - // common patterns: "en", "en-US", "zh-Hans", "zh-Hans-CN". - var language: []const u8 = tag_str; - var script: []const u8 = ""; - var region: []const u8 = ""; - - var it = std.mem.splitScalar(u8, tag_str, '-'); - if (it.next()) |lang| { - language = lang; - if (it.next()) |part2| { - if (part2.len == 4) { - // ISO 15924 script code (4 letters) - script = part2; - if (it.next()) |part3| { - region = part3; - } - } else { - // ISO 3166-1 region code (2-3 chars) - region = part2; - } - } - } - - locale.* = .{ - .tag = state.dupeStr(tag_str), - .language = state.dupeStr(language), - .script = state.dupeStr(script), - .region = state.dupeStr(region), - }; - - clearError(); - return @ptrCast(locale); -} - -/// Free a Locale struct returned by lol_resolve_locale. -export fn lol_free_locale(locale_ptr: ?*anyopaque) void { - if (locale_ptr == null) return; - const allocator = std.heap.c_allocator; - const locale: *Locale = @ptrCast(@alignCast(locale_ptr.?)); - - // Free string fields. - freeSpan(allocator, locale.tag); - freeSpan(allocator, locale.language); - freeSpan(allocator, locale.script); - freeSpan(allocator, locale.region); - - allocator.destroy(locale); -} - -// --------------------------------------------------------------------------- -// Translation Lookup -// --------------------------------------------------------------------------- - -/// Look up a translation key for the given locale. -/// Returns a pointer to a TranslationResult, or null if not found. -/// Caller must free with lol_free_translation. -export fn lol_translate( - handle: ?*anyopaque, - locale_tag: ?[*:0]const u8, - key: ?[*:0]const u8, -) ?*anyopaque { - const state = stateFromHandle(handle) orelse { - setError("Null handle"); - return null; - }; - - const tag_str = if (locale_tag) |t| std.mem.span(t) else { - setError("Null locale tag"); - return null; - }; - const key_str = if (key) |k| std.mem.span(k) else { - setError("Null translation key"); - return null; - }; - - // Look up the translation in the corpus data directory. - // Path: /translations//.txt - // Falls back through the locale chain if enableFallback is set. - const result = lookupTranslation(state, tag_str, key_str) orelse { - setError("Translation key not found"); - return null; - }; - - clearError(); - return @ptrCast(result); -} - -/// Free a TranslationResult returned by lol_translate or lol_translate_plural. -export fn lol_free_translation(result_ptr: ?*anyopaque) void { - if (result_ptr == null) return; - const allocator = std.heap.c_allocator; - const result: *TranslationResult = @ptrCast(@alignCast(result_ptr.?)); - - freeSpan(allocator, result.text); - freeSpan(allocator, result.resolved_locale); - - allocator.destroy(result); -} - -/// Get the text field from a TranslationResult pointer. -/// Returns a null-terminated C string (not owned by caller). -export fn lol_translation_text(result_ptr: ?*anyopaque) ?[*:0]const u8 { - if (result_ptr == null) return null; - const result: *TranslationResult = @ptrCast(@alignCast(result_ptr.?)); - return result.text; -} - -// --------------------------------------------------------------------------- -// Plural Form Selection -// --------------------------------------------------------------------------- - -/// Select the CLDR plural category for a quantity in a given locale. -/// Returns the plural category as a u32 (see PluralCategory enum). -export fn lol_select_plural( - handle: ?*anyopaque, - locale_tag: ?[*:0]const u8, - quantity: u64, -) u32 { - _ = handle; - - const tag_str = if (locale_tag) |t| std.mem.span(t) else return @intFromEnum(PluralCategory.other); - - // Extract the language subtag from the locale tag. - var it = std.mem.splitScalar(u8, tag_str, '-'); - const lang = it.next() orelse return @intFromEnum(PluralCategory.other); - - return @intFromEnum(selectPluralForLanguage(lang, quantity)); -} - -/// Translate with plural form selection combined. -/// Appends the plural category suffix to the key (e.g. "items" -> "items.one"). -export fn lol_translate_plural( - handle: ?*anyopaque, - locale_tag: ?[*:0]const u8, - key: ?[*:0]const u8, - quantity: u64, -) ?*anyopaque { - const state = stateFromHandle(handle) orelse { - setError("Null handle"); - return null; - }; - - const tag_str = if (locale_tag) |t| std.mem.span(t) else { - setError("Null locale tag"); - return null; - }; - const key_str = if (key) |k| std.mem.span(k) else { - setError("Null translation key"); - return null; - }; - - // Determine the plural category for this quantity. - var lang_it = std.mem.splitScalar(u8, tag_str, '-'); - const lang = lang_it.next() orelse tag_str; - const cat = selectPluralForLanguage(lang, quantity); - const suffix = pluralSuffix(cat); - - // Build the suffixed key: "key.suffix" - const suffixed_key = std.fmt.allocPrint(state.allocator, "{s}.{s}", .{ key_str, suffix }) catch { - setError("Failed to build plural key"); - return null; - }; - defer state.allocator.free(suffixed_key); - - const result = lookupTranslation(state, tag_str, suffixed_key) orelse { - // Fall back to unsuffixed key - const fallback = lookupTranslation(state, tag_str, key_str) orelse { - setError("Plural translation key not found"); - return null; - }; - return @ptrCast(fallback); - }; - - clearError(); - return @ptrCast(result); -} - -// --------------------------------------------------------------------------- -// Language Metadata -// --------------------------------------------------------------------------- - -/// Get the number of languages in the corpus. -export fn lol_language_count(handle: ?*anyopaque) u32 { - const state = stateFromHandle(handle) orelse return 0; - - // Count JSON files in /metadata/ - const meta_path = std.fmt.allocPrint(state.allocator, "{s}/metadata", .{state.data_dir}) catch return 0; - defer state.allocator.free(meta_path); - - var dir = std.fs.cwd().openDir(meta_path, .{ .iterate = true }) catch return 0; - defer dir.close(); - - var count: u32 = 0; - var iter = dir.iterate(); - while (iter.next() catch null) |entry| { - if (std.mem.endsWith(u8, entry.name, ".json")) { - count += 1; - } - } - return count; -} - -/// Look up metadata for a language by ISO 639-3 code. -/// Returns a pointer to LanguageInfo, or null if not found. -/// Caller must free with lol_free_language. -export fn lol_get_language(handle: ?*anyopaque, code: ?[*:0]const u8) ?*anyopaque { - const state = stateFromHandle(handle) orelse { - setError("Null handle"); - return null; - }; - - const code_str = if (code) |c| std.mem.span(c) else { - setError("Null language code"); - return null; - }; - - const info = state.allocator.create(LanguageInfo) catch { - setError("Failed to allocate language info"); - return null; - }; - - // Read metadata from /metadata/.json - const path = std.fmt.allocPrint(state.allocator, "{s}/metadata/{s}.json", .{ state.data_dir, code_str }) catch { - state.allocator.destroy(info); - setError("Failed to build path"); - return null; - }; - defer state.allocator.free(path); - - const file = std.fs.cwd().openFile(path, .{}) catch { - state.allocator.destroy(info); - setError("Language not found"); - return null; - }; - defer file.close(); - - // For now, return a stub with the code filled in. - // A full implementation would parse the JSON metadata file. - info.* = .{ - .iso639_3 = state.dupeStr(code_str), - .name = state.dupeStr(""), - .native_name = state.dupeStr(""), - .family = state.dupeStr(""), - .scripts = state.dupeStr(""), - .source_count = 0, - .verse_count = 0, - .quality = 0.0, - }; - - clearError(); - return @ptrCast(info); -} - -/// Free a LanguageInfo struct. -export fn lol_free_language(info_ptr: ?*anyopaque) void { - if (info_ptr == null) return; - const allocator = std.heap.c_allocator; - const info: *LanguageInfo = @ptrCast(@alignCast(info_ptr.?)); - - freeSpan(allocator, info.iso639_3); - freeSpan(allocator, info.name); - freeSpan(allocator, info.native_name); - freeSpan(allocator, info.family); - freeSpan(allocator, info.scripts); - - allocator.destroy(info); -} - -// --------------------------------------------------------------------------- -// Plural Rules -// --------------------------------------------------------------------------- - -/// Get the plural rule for a language by ISO 639-3 code. -/// Returns a pointer to PluralRule, or null if not available. -/// Caller must free with lol_free_plural_rule. -export fn lol_get_plural_rule(handle: ?*anyopaque, lang_code: ?[*:0]const u8) ?*anyopaque { - _ = handle; - const allocator = std.heap.c_allocator; - - const code_str = if (lang_code) |c| std.mem.span(c) else { - setError("Null language code"); - return null; - }; - - const rule = allocator.create(PluralRule) catch { - setError("Failed to allocate plural rule"); - return null; - }; - - const duped = allocator.dupeZ(u8, code_str) catch { - allocator.destroy(rule); - setError("Failed to copy language code"); - return null; - }; - - // Determine plural rule based on language. - // This is a simplified subset of CLDR rules for common languages. - const info = getPluralInfo(code_str); - - rule.* = .{ - .language = duped.ptr, - .form_count = info.form_count, - .categories = info.categories, - }; - - clearError(); - return @ptrCast(rule); -} - -/// Free a PluralRule struct. -export fn lol_free_plural_rule(rule_ptr: ?*anyopaque) void { - if (rule_ptr == null) return; - const allocator = std.heap.c_allocator; - const rule: *PluralRule = @ptrCast(@alignCast(rule_ptr.?)); - - freeSpan(allocator, rule.language); - allocator.destroy(rule); -} - -// --------------------------------------------------------------------------- -// Locale Fallback Chain -// --------------------------------------------------------------------------- - -/// Get the fallback chain length for a locale tag. -/// For "en-GB" this returns 3 (en-GB, en, default). -export fn lol_fallback_chain_len(_: ?*anyopaque, locale_tag: ?[*:0]const u8) u32 { - const tag_str = if (locale_tag) |t| std.mem.span(t) else return 1; - var count: u32 = 1; // The tag itself - for (tag_str) |c| { - if (c == '-') count += 1; - } - return count + 1; // +1 for "default" at the end -} - -/// Get the fallback chain as a null-terminated array of C strings. -/// Caller must free with lol_free_fallback_chain. -export fn lol_fallback_chain(handle: ?*anyopaque, locale_tag: ?[*:0]const u8) ?*anyopaque { - _ = handle; - _ = locale_tag; - // Stub: full implementation would build the chain - return null; -} - -/// Free a fallback chain array. -export fn lol_free_fallback_chain(chain_ptr: ?*anyopaque) void { - _ = chain_ptr; - // Stub: would free the array and all strings -} - -// --------------------------------------------------------------------------- -// List languages (array result) -// --------------------------------------------------------------------------- - -/// List all languages. Writes array pointer; returns count. -export fn lol_list_languages(handle: ?*anyopaque, out_array: ?*anyopaque) u32 { - _ = handle; - _ = out_array; - // Stub: full implementation would populate the array - return 0; -} - -// --------------------------------------------------------------------------- -// Error Handling -// --------------------------------------------------------------------------- - -/// Get the last error message as a null-terminated C string. -/// Returns null if there is no error. -export fn lol_last_error() ?[*:0]const u8 { - const err = last_error orelse return null; - const allocator = std.heap.c_allocator; - const c_str = allocator.dupeZ(u8, err) catch return null; - return c_str.ptr; -} - -// --------------------------------------------------------------------------- -// Version Information -// --------------------------------------------------------------------------- - -/// Get the library version string. -export fn lol_version() [*:0]const u8 { - return VERSION.ptr; -} - -/// Get build information string. -export fn lol_build_info() [*:0]const u8 { - return BUILD_INFO.ptr; -} - -// --------------------------------------------------------------------------- -// Utility -// --------------------------------------------------------------------------- - -/// Check if a service handle is initialised and ready. -/// Returns 1 if initialised, 0 otherwise. -export fn lol_is_initialized(handle: ?*anyopaque) u32 { - const state = stateFromHandle(handle) orelse return 0; - return if (state.initialized) 1 else 0; -} - -// =========================================================================== -// Internal helpers (not exported) -// =========================================================================== - -/// Safely cast an opaque handle to a ServiceState pointer. -fn stateFromHandle(handle: ?*anyopaque) ?*ServiceState { - const ptr = handle orelse return null; - return @ptrCast(@alignCast(ptr)); -} - -/// Free a null-terminated C string span via the given allocator. -fn freeSpan(allocator: std.mem.Allocator, s: ?[*:0]const u8) void { - if (s) |ptr| { - const slice = std.mem.span(ptr); - allocator.free(slice); - } -} - -/// Plural rule info used internally to populate PluralRule structs. -const PluralInfo = struct { - form_count: u32, - categories: [6]u32, -}; - -/// Look up CLDR plural rule info for a language. -/// Returns a simplified subset covering the most common patterns. -fn getPluralInfo(lang: []const u8) PluralInfo { - // Languages with only "other" (1 form): Chinese, Japanese, Korean, Vietnamese, etc. - if (std.mem.eql(u8, lang, "zh") or - std.mem.eql(u8, lang, "ja") or - std.mem.eql(u8, lang, "ko") or - std.mem.eql(u8, lang, "vi") or - std.mem.eql(u8, lang, "zho") or - std.mem.eql(u8, lang, "jpn") or - std.mem.eql(u8, lang, "kor") or - std.mem.eql(u8, lang, "vie")) - { - return .{ .form_count = 1, .categories = .{ 5, 0, 0, 0, 0, 0 } }; - } - - // Languages with "one" and "other" (2 forms): English, German, etc. - if (std.mem.eql(u8, lang, "en") or - std.mem.eql(u8, lang, "de") or - std.mem.eql(u8, lang, "nl") or - std.mem.eql(u8, lang, "sv") or - std.mem.eql(u8, lang, "eng") or - std.mem.eql(u8, lang, "deu") or - std.mem.eql(u8, lang, "nld") or - std.mem.eql(u8, lang, "swe")) - { - return .{ .form_count = 2, .categories = .{ 1, 5, 0, 0, 0, 0 } }; - } - - // Languages with "one", "few", "other" (3 forms): Czech, Slovak, etc. - if (std.mem.eql(u8, lang, "cs") or - std.mem.eql(u8, lang, "sk") or - std.mem.eql(u8, lang, "ces") or - std.mem.eql(u8, lang, "slk")) - { - return .{ .form_count = 3, .categories = .{ 1, 3, 5, 0, 0, 0 } }; - } - - // Arabic: zero, one, two, few, many, other (6 forms) - if (std.mem.eql(u8, lang, "ar") or std.mem.eql(u8, lang, "ara")) { - return .{ .form_count = 6, .categories = .{ 0, 1, 2, 3, 4, 5 } }; - } - - // French, Portuguese: "one" and "other" (but "one" includes 0 in some) - if (std.mem.eql(u8, lang, "fr") or - std.mem.eql(u8, lang, "pt") or - std.mem.eql(u8, lang, "fra") or - std.mem.eql(u8, lang, "por")) - { - return .{ .form_count = 2, .categories = .{ 1, 5, 0, 0, 0, 0 } }; - } - - // Polish: one, few, many, other (4 forms) - if (std.mem.eql(u8, lang, "pl") or std.mem.eql(u8, lang, "pol")) { - return .{ .form_count = 4, .categories = .{ 1, 3, 4, 5, 0, 0 } }; - } - - // Russian, Ukrainian: one, few, many, other (4 forms) - if (std.mem.eql(u8, lang, "ru") or - std.mem.eql(u8, lang, "uk") or - std.mem.eql(u8, lang, "rus") or - std.mem.eql(u8, lang, "ukr")) - { - return .{ .form_count = 4, .categories = .{ 1, 3, 4, 5, 0, 0 } }; - } - - // Default: "one" and "other" (the most common pattern) - return .{ .form_count = 2, .categories = .{ 1, 5, 0, 0, 0, 0 } }; -} - -/// Select the CLDR plural category for a (language, quantity) pair. -/// Simplified CLDR rules for the most common language families. -fn selectPluralForLanguage(lang: []const u8, quantity: u64) PluralCategory { - // East Asian languages: always "other" - if (std.mem.eql(u8, lang, "zh") or - std.mem.eql(u8, lang, "ja") or - std.mem.eql(u8, lang, "ko") or - std.mem.eql(u8, lang, "vi") or - std.mem.eql(u8, lang, "zho") or - std.mem.eql(u8, lang, "jpn") or - std.mem.eql(u8, lang, "kor") or - std.mem.eql(u8, lang, "vie")) - { - return .other; - } - - // Arabic (6 forms) - if (std.mem.eql(u8, lang, "ar") or std.mem.eql(u8, lang, "ara")) { - return switch (quantity) { - 0 => .zero, - 1 => .one, - 2 => .two, - 3...10 => .few, - 11...99 => .many, - else => .other, - }; - } - - // Polish (4 forms: one, few, many, other) - if (std.mem.eql(u8, lang, "pl") or std.mem.eql(u8, lang, "pol")) { - if (quantity == 1) return .one; - const mod10 = quantity % 10; - const mod100 = quantity % 100; - if (mod10 >= 2 and mod10 <= 4 and (mod100 < 12 or mod100 > 14)) return .few; - if ((mod10 == 0 or mod10 == 1) or (mod10 >= 5 and mod10 <= 9) or (mod100 >= 12 and mod100 <= 14)) return .many; - return .other; - } - - // Russian/Ukrainian (4 forms: one, few, many, other) - if (std.mem.eql(u8, lang, "ru") or - std.mem.eql(u8, lang, "uk") or - std.mem.eql(u8, lang, "rus") or - std.mem.eql(u8, lang, "ukr")) - { - const mod10 = quantity % 10; - const mod100 = quantity % 100; - if (mod10 == 1 and mod100 != 11) return .one; - if (mod10 >= 2 and mod10 <= 4 and (mod100 < 12 or mod100 > 14)) return .few; - return .many; - } - - // Czech/Slovak (3 forms: one, few, other) - if (std.mem.eql(u8, lang, "cs") or - std.mem.eql(u8, lang, "sk") or - std.mem.eql(u8, lang, "ces") or - std.mem.eql(u8, lang, "slk")) - { - return switch (quantity) { - 1 => .one, - 2...4 => .few, - else => .other, - }; - } - - // Default (most Germanic, Romance, etc.): "one" vs "other" - return if (quantity == 1) .one else .other; -} - -/// Get the string suffix for a plural category. -fn pluralSuffix(cat: PluralCategory) []const u8 { - return switch (cat) { - .zero => "zero", - .one => "one", - .two => "two", - .few => "few", - .many => "many", - .other => "other", - }; -} - -/// Look up a translation in the corpus data directory. -/// Path: /translations//.txt -/// Returns a heap-allocated TranslationResult, or null. -fn lookupTranslation(state: *ServiceState, locale_tag: []const u8, key: []const u8) ?*TranslationResult { - // Extract language subtag from the locale tag. - var it = std.mem.splitScalar(u8, locale_tag, '-'); - const lang = it.next() orelse locale_tag; - - // Build the file path. - const path = std.fmt.allocPrint(state.allocator, "{s}/translations/{s}/{s}.txt", .{ state.data_dir, lang, key }) catch return null; - defer state.allocator.free(path); - - // Try to read the translation file. - const text = blk: { - const file = std.fs.cwd().openFile(path, .{}) catch { - if (!state.enable_fallback) return null; - // Try default locale fallback. - const fallback_path = std.fmt.allocPrint(state.allocator, "{s}/translations/{s}/{s}.txt", .{ state.data_dir, state.default_locale, key }) catch return null; - defer state.allocator.free(fallback_path); - - const fb_file = std.fs.cwd().openFile(fallback_path, .{}) catch return null; - defer fb_file.close(); - - const content = fb_file.readToEndAlloc(state.allocator, 1024 * 1024) catch return null; - break :blk content; - }; - defer file.close(); - - const content = file.readToEndAlloc(state.allocator, 1024 * 1024) catch return null; - break :blk content; - }; - defer state.allocator.free(text); - - // Determine if we used the original locale or fell back. - const used_fallback = !std.mem.eql(u8, lang, locale_tag[0..@min(lang.len, locale_tag.len)]); - - const result = state.allocator.create(TranslationResult) catch return null; - result.* = .{ - .text = state.dupeStr(text), - .resolved_locale = state.dupeStr(lang), - .is_fallback = if (used_fallback) 1 else 0, - }; - - return result; -} - -// =========================================================================== -// Tests -// =========================================================================== - -test "lifecycle" { - const handle = lol_init(null) orelse return error.InitFailed; - defer lol_free(handle); - - try std.testing.expect(lol_is_initialized(handle) == 1); -} - -test "null handle returns 0" { - try std.testing.expect(lol_is_initialized(null) == 0); -} - -test "error handling on null" { - const result = lol_translate(null, null, null); - try std.testing.expect(result == null); - - const err = lol_last_error(); - try std.testing.expect(err != null); -} - -test "version" { - const ver = lol_version(); - const ver_str = std.mem.span(ver); - try std.testing.expectEqualStrings(VERSION, ver_str); -} - -test "locale resolution" { - const handle = lol_init(null) orelse return error.InitFailed; - defer lol_free(handle); - - const locale_ptr = lol_resolve_locale(handle, "en-US"); - if (locale_ptr) |ptr| { - defer lol_free_locale(ptr); - const locale: *Locale = @ptrCast(@alignCast(ptr)); - const tag = std.mem.span(locale.tag.?); - try std.testing.expectEqualStrings("en-US", tag); - const lang = std.mem.span(locale.language.?); - try std.testing.expectEqualStrings("en", lang); - const region = std.mem.span(locale.region.?); - try std.testing.expectEqualStrings("US", region); - } -} - -test "plural selection — English" { - try std.testing.expectEqual(@intFromEnum(PluralCategory.one), lol_select_plural(null, "en", 1)); - try std.testing.expectEqual(@intFromEnum(PluralCategory.other), lol_select_plural(null, "en", 0)); - try std.testing.expectEqual(@intFromEnum(PluralCategory.other), lol_select_plural(null, "en", 5)); -} - -test "plural selection — Arabic" { - try std.testing.expectEqual(@intFromEnum(PluralCategory.zero), lol_select_plural(null, "ar", 0)); - try std.testing.expectEqual(@intFromEnum(PluralCategory.one), lol_select_plural(null, "ar", 1)); - try std.testing.expectEqual(@intFromEnum(PluralCategory.two), lol_select_plural(null, "ar", 2)); - try std.testing.expectEqual(@intFromEnum(PluralCategory.few), lol_select_plural(null, "ar", 5)); - try std.testing.expectEqual(@intFromEnum(PluralCategory.many), lol_select_plural(null, "ar", 50)); -} - -test "plural selection — Japanese (no plural)" { - try std.testing.expectEqual(@intFromEnum(PluralCategory.other), lol_select_plural(null, "ja", 1)); - try std.testing.expectEqual(@intFromEnum(PluralCategory.other), lol_select_plural(null, "ja", 100)); -} - -test "plural rule — English" { - const rule_ptr = lol_get_plural_rule(null, "en") orelse return error.RuleFailed; - defer lol_free_plural_rule(rule_ptr); - const rule: *PluralRule = @ptrCast(@alignCast(rule_ptr)); - try std.testing.expectEqual(@as(u32, 2), rule.form_count); -} - -test "free null is safe" { - lol_free(null); - lol_free_locale(null); - lol_free_translation(null); - lol_free_language(null); - lol_free_plural_rule(null); -} diff --git a/lol/ffi/zig/src/plural.zig b/lol/ffi/zig/src/plural.zig deleted file mode 100644 index 2b815c623..000000000 --- a/lol/ffi/zig/src/plural.zig +++ /dev/null @@ -1,249 +0,0 @@ -// LOL i18n Service — Plural Form Selection -// -// Implements CLDR plural rules for common language families. -// Matches the Idris2 ABI definitions in src/abi/PluralForm.idr. -// -// The CLDR specification defines six plural categories: -// zero, one, two, few, many, other -// Different languages use different subsets of these categories. -// -// @see https://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html -// -// SPDX-License-Identifier: MPL-2.0 -// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) - -const std = @import("std"); - -/// CLDR plural categories (must match src/abi/Types.idr PluralCategory). -/// Integer values match the Idris2 pluralToInt mapping. -pub const Category = enum(u32) { - zero = 0, - one = 1, - two = 2, - few = 3, - many = 4, - other = 5, -}; - -/// Plural rule info: how many forms and which categories a language uses. -pub const RuleInfo = struct { - form_count: u32, - /// Categories used, packed as u32 values matching Category enum. - /// Unused slots are 0. - categories: [6]u32, -}; - -/// Select the CLDR plural category for a (language, quantity) pair. -/// -/// Language codes are matched as both ISO 639-1 (2-letter) and -/// ISO 639-3 (3-letter) forms. Unknown languages default to the -/// English rule (one/other), which is the most common pattern worldwide. -pub fn selectCategory(lang: []const u8, quantity: u64) Category { - // East Asian languages: always "other" (no plural distinction) - if (isEastAsian(lang)) return .other; - - // Arabic: all six forms - if (isArabic(lang)) return selectArabic(quantity); - - // Polish: one/few/many/other - if (isPolish(lang)) return selectPolish(quantity); - - // Russian/Ukrainian: one/few/many/other - if (isRussianLike(lang)) return selectRussian(quantity); - - // Czech/Slovak: one/few/other - if (isCzechLike(lang)) return selectCzech(quantity); - - // French/Portuguese: one includes 0 - if (isFrenchLike(lang)) return if (quantity == 0 or quantity == 1) .one else .other; - - // Default (English, German, Dutch, Swedish, etc.): one vs other - return if (quantity == 1) .one else .other; -} - -/// Get the plural rule info for a language. -/// Returns the number of forms and which categories the language uses. -pub fn getRuleInfo(lang: []const u8) RuleInfo { - if (isEastAsian(lang)) { - return .{ .form_count = 1, .categories = .{ 5, 0, 0, 0, 0, 0 } }; - } - if (isArabic(lang)) { - return .{ .form_count = 6, .categories = .{ 0, 1, 2, 3, 4, 5 } }; - } - if (isPolish(lang) or isRussianLike(lang)) { - return .{ .form_count = 4, .categories = .{ 1, 3, 4, 5, 0, 0 } }; - } - if (isCzechLike(lang)) { - return .{ .form_count = 3, .categories = .{ 1, 3, 5, 0, 0, 0 } }; - } - if (isFrenchLike(lang)) { - return .{ .form_count = 2, .categories = .{ 1, 5, 0, 0, 0, 0 } }; - } - // Default: one/other - return .{ .form_count = 2, .categories = .{ 1, 5, 0, 0, 0, 0 } }; -} - -/// Get the string suffix for a plural category. -/// Used to build pluralised translation keys (e.g. "items.one"). -pub fn suffix(cat: Category) []const u8 { - return switch (cat) { - .zero => "zero", - .one => "one", - .two => "two", - .few => "few", - .many => "many", - .other => "other", - }; -} - -// --------------------------------------------------------------------------- -// Language family checks -// --------------------------------------------------------------------------- - -fn isEastAsian(lang: []const u8) bool { - return eqlAny(lang, &.{ "zh", "ja", "ko", "vi", "zho", "jpn", "kor", "vie" }); -} - -fn isArabic(lang: []const u8) bool { - return eqlAny(lang, &.{ "ar", "ara" }); -} - -fn isPolish(lang: []const u8) bool { - return eqlAny(lang, &.{ "pl", "pol" }); -} - -fn isRussianLike(lang: []const u8) bool { - return eqlAny(lang, &.{ "ru", "uk", "rus", "ukr" }); -} - -fn isCzechLike(lang: []const u8) bool { - return eqlAny(lang, &.{ "cs", "sk", "ces", "slk" }); -} - -fn isFrenchLike(lang: []const u8) bool { - return eqlAny(lang, &.{ "fr", "pt", "fra", "por" }); -} - -fn eqlAny(s: []const u8, options: []const []const u8) bool { - for (options) |opt| { - if (std.mem.eql(u8, s, opt)) return true; - } - return false; -} - -// --------------------------------------------------------------------------- -// Language-specific selection rules -// --------------------------------------------------------------------------- - -/// Arabic: zero(0), one(1), two(2), few(3-10), many(11-99), other(100+) -fn selectArabic(quantity: u64) Category { - return switch (quantity) { - 0 => .zero, - 1 => .one, - 2 => .two, - 3...10 => .few, - 11...99 => .many, - else => .other, - }; -} - -/// Polish: one(1), few(mod10 2-4 excl. mod100 12-14), many(rest), other -fn selectPolish(quantity: u64) Category { - if (quantity == 1) return .one; - const mod10 = quantity % 10; - const mod100 = quantity % 100; - if (mod10 >= 2 and mod10 <= 4 and (mod100 < 12 or mod100 > 14)) return .few; - if ((mod10 == 0 or mod10 == 1) or (mod10 >= 5 and mod10 <= 9) or (mod100 >= 12 and mod100 <= 14)) return .many; - return .other; -} - -/// Russian/Ukrainian: one(mod10=1, mod100!=11), few(mod10 2-4, excl. 12-14), many(rest) -fn selectRussian(quantity: u64) Category { - const mod10 = quantity % 10; - const mod100 = quantity % 100; - if (mod10 == 1 and mod100 != 11) return .one; - if (mod10 >= 2 and mod10 <= 4 and (mod100 < 12 or mod100 > 14)) return .few; - return .many; -} - -/// Czech/Slovak: one(1), few(2-4), other -fn selectCzech(quantity: u64) Category { - return switch (quantity) { - 1 => .one, - 2...4 => .few, - else => .other, - }; -} - -// --------------------------------------------------------------------------- -// Tests -// --------------------------------------------------------------------------- - -test "English: one vs other" { - try std.testing.expectEqual(Category.one, selectCategory("en", 1)); - try std.testing.expectEqual(Category.other, selectCategory("en", 0)); - try std.testing.expectEqual(Category.other, selectCategory("en", 2)); - try std.testing.expectEqual(Category.other, selectCategory("en", 100)); -} - -test "English ISO 639-3" { - try std.testing.expectEqual(Category.one, selectCategory("eng", 1)); - try std.testing.expectEqual(Category.other, selectCategory("eng", 5)); -} - -test "Arabic: all six forms" { - try std.testing.expectEqual(Category.zero, selectCategory("ar", 0)); - try std.testing.expectEqual(Category.one, selectCategory("ar", 1)); - try std.testing.expectEqual(Category.two, selectCategory("ar", 2)); - try std.testing.expectEqual(Category.few, selectCategory("ar", 7)); - try std.testing.expectEqual(Category.many, selectCategory("ar", 50)); - try std.testing.expectEqual(Category.other, selectCategory("ar", 100)); -} - -test "Japanese: always other" { - try std.testing.expectEqual(Category.other, selectCategory("ja", 0)); - try std.testing.expectEqual(Category.other, selectCategory("ja", 1)); - try std.testing.expectEqual(Category.other, selectCategory("ja", 42)); -} - -test "Russian: one/few/many" { - try std.testing.expectEqual(Category.one, selectCategory("ru", 1)); - try std.testing.expectEqual(Category.few, selectCategory("ru", 2)); - try std.testing.expectEqual(Category.many, selectCategory("ru", 5)); - try std.testing.expectEqual(Category.many, selectCategory("ru", 11)); - try std.testing.expectEqual(Category.one, selectCategory("ru", 21)); -} - -test "Polish: one/few/many/other" { - try std.testing.expectEqual(Category.one, selectCategory("pl", 1)); - try std.testing.expectEqual(Category.few, selectCategory("pl", 2)); - try std.testing.expectEqual(Category.many, selectCategory("pl", 5)); -} - -test "French: 0 and 1 are one" { - try std.testing.expectEqual(Category.one, selectCategory("fr", 0)); - try std.testing.expectEqual(Category.one, selectCategory("fr", 1)); - try std.testing.expectEqual(Category.other, selectCategory("fr", 2)); -} - -test "Czech: one/few/other" { - try std.testing.expectEqual(Category.one, selectCategory("cs", 1)); - try std.testing.expectEqual(Category.few, selectCategory("cs", 3)); - try std.testing.expectEqual(Category.other, selectCategory("cs", 5)); -} - -test "rule info English" { - const info = getRuleInfo("en"); - try std.testing.expectEqual(@as(u32, 2), info.form_count); -} - -test "rule info Arabic" { - const info = getRuleInfo("ar"); - try std.testing.expectEqual(@as(u32, 6), info.form_count); -} - -test "suffix mapping" { - try std.testing.expectEqualStrings("one", suffix(.one)); - try std.testing.expectEqualStrings("other", suffix(.other)); - try std.testing.expectEqualStrings("zero", suffix(.zero)); -} diff --git a/lol/ffi/zig/src/store.zig b/lol/ffi/zig/src/store.zig deleted file mode 100644 index 03dd8a946..000000000 --- a/lol/ffi/zig/src/store.zig +++ /dev/null @@ -1,259 +0,0 @@ -// LOL i18n Service — Translation Store -// -// Thread-safe translation store backed by a HashMap. Loads translations -// from the corpus data directory and provides lookup with fallback chain -// resolution. Matches the I18nStore interface from src/abi/I18nStore.idr. -// -// SPDX-License-Identifier: MPL-2.0 -// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) - -const std = @import("std"); -const locale_mod = @import("locale.zig"); - -/// A single translation entry in the store. -pub const Entry = struct { - /// The translation text (UTF-8, owned by the store) - text: []const u8, - /// The locale this translation belongs to - locale: []const u8, -}; - -/// Composite key for the translation map: (locale, key) pair. -/// Uses a deterministic hash for thread-safe concurrent reads. -const MapKey = struct { - locale: []const u8, - key: []const u8, - - pub fn hash(self: MapKey) u64 { - var h = std.hash.Wyhash.init(0); - h.update(self.locale); - h.update(&[_]u8{0}); // separator - h.update(self.key); - return h.final(); - } - - pub fn eql(a: MapKey, b: MapKey) bool { - return std.mem.eql(u8, a.locale, b.locale) and - std.mem.eql(u8, a.key, b.key); - } -}; - -/// Thread-safe translation store. -/// Supports concurrent reads; writes are serialised via a mutex. -/// Translations are loaded from filesystem at init time. -pub const Store = struct { - allocator: std.mem.Allocator, - data_dir: []const u8, - default_locale: []const u8, - enable_fallback: bool, - /// All owned strings (translations, keys, locales) for bulk dealloc - owned_strings: std.ArrayListUnmanaged([]const u8), - /// Translation entries keyed by "locale\x00key" - entries: std.StringHashMapUnmanaged([]const u8), - mutex: std.Thread.Mutex, - - /// Initialise a new empty store. - pub fn init(allocator: std.mem.Allocator, data_dir: []const u8, default_locale: []const u8, enable_fallback: bool) Store { - return .{ - .allocator = allocator, - .data_dir = data_dir, - .default_locale = default_locale, - .enable_fallback = enable_fallback, - .owned_strings = .{}, - .entries = .{}, - .mutex = .{}, - }; - } - - /// Release all resources held by the store. - pub fn deinit(self: *Store) void { - // Free all owned strings - for (self.owned_strings.items) |s| { - self.allocator.free(s); - } - self.owned_strings.deinit(self.allocator); - self.entries.deinit(self.allocator); - } - - /// Look up a translation by locale and key. - /// Returns null if not found (does NOT perform fallback). - pub fn get(self: *Store, locale_str: []const u8, key: []const u8) ?[]const u8 { - const composite = self.makeCompositeKey(locale_str, key) catch return null; - defer self.allocator.free(composite); - return self.entries.get(composite); - } - - /// Look up a translation with fallback chain resolution. - /// Tries the full locale first, then each prefix, then default locale. - pub fn getWithFallback( - self: *Store, - locale_tag: []const u8, - key: []const u8, - ) ?FallbackResult { - // Try exact match first - if (self.get(locale_tag, key)) |text| { - return .{ - .text = text, - .resolved_locale = locale_tag, - .is_fallback = false, - }; - } - - if (!self.enable_fallback) return null; - - // Walk the fallback chain (strip subtags right to left) - var tag = locale_tag; - while (std.mem.lastIndexOfScalar(u8, tag, '-')) |dash| { - tag = tag[0..dash]; - if (self.get(tag, key)) |text| { - return .{ - .text = text, - .resolved_locale = tag, - .is_fallback = true, - }; - } - } - - // Try default locale - if (!std.mem.eql(u8, tag, self.default_locale)) { - if (self.get(self.default_locale, key)) |text| { - return .{ - .text = text, - .resolved_locale = self.default_locale, - .is_fallback = true, - }; - } - } - - return null; - } - - /// Insert a translation into the store. - /// Thread-safe (acquires mutex). - pub fn put(self: *Store, locale_str: []const u8, key: []const u8, text: []const u8) !void { - self.mutex.lock(); - defer self.mutex.unlock(); - - const owned_text = try self.allocator.dupe(u8, text); - errdefer self.allocator.free(owned_text); - try self.owned_strings.append(self.allocator,owned_text); - - const composite = try self.makeCompositeKeyOwned(locale_str, key); - try self.entries.put(self.allocator,composite, owned_text); - } - - /// Load translations from the filesystem. - /// Reads /translations//.txt for each file found. - pub fn loadFromDisk(self: *Store) !void { - const translations_path = try std.fmt.allocPrint(self.allocator, "{s}/translations", .{self.data_dir}); - defer self.allocator.free(translations_path); - - var locale_dir = std.fs.cwd().openDir(translations_path, .{ .iterate = true }) catch return; - defer locale_dir.close(); - - var locale_iter = locale_dir.iterate(); - while (try locale_iter.next()) |locale_entry| { - if (locale_entry.kind != .directory) continue; - - var key_dir = locale_dir.openDir(locale_entry.name, .{ .iterate = true }) catch continue; - defer key_dir.close(); - - var key_iter = key_dir.iterate(); - while (try key_iter.next()) |key_entry| { - if (!std.mem.endsWith(u8, key_entry.name, ".txt")) continue; - - const key_name = key_entry.name[0 .. key_entry.name.len - 4]; // strip .txt - - const file = key_dir.openFile(key_entry.name, .{}) catch continue; - defer file.close(); - - const content = file.readToEndAlloc(self.allocator, 1024 * 1024) catch continue; - errdefer self.allocator.free(content); - - try self.owned_strings.append(self.allocator,content); - const composite = try self.makeCompositeKeyOwned(locale_entry.name, key_name); - try self.entries.put(self.allocator,composite, content); - } - } - } - - // --- Internal helpers --- - - /// Build a composite key "locale\x00key" for HashMap lookup (temporary). - fn makeCompositeKey(self: *Store, locale_str: []const u8, key: []const u8) ![]const u8 { - return std.fmt.allocPrint(self.allocator, "{s}\x00{s}", .{ locale_str, key }); - } - - /// Build a composite key "locale\x00key" and track ownership. - fn makeCompositeKeyOwned(self: *Store, locale_str: []const u8, key: []const u8) ![]const u8 { - const composite = try std.fmt.allocPrint(self.allocator, "{s}\x00{s}", .{ locale_str, key }); - errdefer self.allocator.free(composite); - try self.owned_strings.append(self.allocator,composite); - return composite; - } -}; - -/// Result of a fallback-aware lookup. -pub const FallbackResult = struct { - text: []const u8, - resolved_locale: []const u8, - is_fallback: bool, -}; - -// --------------------------------------------------------------------------- -// Tests -// --------------------------------------------------------------------------- - -test "store put and get" { - var store = Store.init(std.testing.allocator, "test", "en", true); - defer store.deinit(); - - try store.put("en", "greeting", "Hello"); - const result = store.get("en", "greeting"); - try std.testing.expect(result != null); - try std.testing.expectEqualStrings("Hello", result.?); -} - -test "store get missing key returns null" { - var store = Store.init(std.testing.allocator, "test", "en", true); - defer store.deinit(); - - const result = store.get("en", "nonexistent"); - try std.testing.expect(result == null); -} - -test "store fallback resolution" { - var store = Store.init(std.testing.allocator, "test", "en", true); - defer store.deinit(); - - try store.put("en", "greeting", "Hello"); - - // Look up "en-US" which should fall back to "en" - const result = store.getWithFallback("en-US", "greeting"); - try std.testing.expect(result != null); - try std.testing.expectEqualStrings("Hello", result.?.text); - try std.testing.expect(result.?.is_fallback); -} - -test "store no fallback when disabled" { - var store = Store.init(std.testing.allocator, "test", "en", false); - defer store.deinit(); - - try store.put("en", "greeting", "Hello"); - - const result = store.getWithFallback("en-US", "greeting"); - try std.testing.expect(result == null); -} - -test "store default locale fallback" { - var store = Store.init(std.testing.allocator, "test", "en", true); - defer store.deinit(); - - try store.put("en", "greeting", "Hello"); - - // Look up "fr" which should fall back to default "en" - const result = store.getWithFallback("fr", "greeting"); - try std.testing.expect(result != null); - try std.testing.expectEqualStrings("Hello", result.?.text); - try std.testing.expect(result.?.is_fallback); -} diff --git a/lol/ffi/zig/test/integration_test.zig b/lol/ffi/zig/test/integration_test.zig deleted file mode 100644 index b309b2fdb..000000000 --- a/lol/ffi/zig/test/integration_test.zig +++ /dev/null @@ -1,252 +0,0 @@ -// LOL i18n Service — Integration Tests -// SPDX-License-Identifier: MPL-2.0 -// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) -// -// These tests verify that the Zig FFI correctly implements the Idris2 ABI -// for the LOL i18n service. They exercise the full public C API surface. - -const std = @import("std"); -const testing = std.testing; - -// Import FFI functions via the C ABI (linked against liblol) -extern fn lol_init(?[*:0]const u8) ?*anyopaque; -extern fn lol_free(?*anyopaque) void; -extern fn lol_resolve_locale(?*anyopaque, ?[*:0]const u8) ?*anyopaque; -extern fn lol_free_locale(?*anyopaque) void; -extern fn lol_translate(?*anyopaque, ?[*:0]const u8, ?[*:0]const u8) ?*anyopaque; -extern fn lol_free_translation(?*anyopaque) void; -extern fn lol_translation_text(?*anyopaque) ?[*:0]const u8; -extern fn lol_select_plural(?*anyopaque, ?[*:0]const u8, u64) u32; -extern fn lol_translate_plural(?*anyopaque, ?[*:0]const u8, ?[*:0]const u8, u64) ?*anyopaque; -extern fn lol_language_count(?*anyopaque) u32; -extern fn lol_get_language(?*anyopaque, ?[*:0]const u8) ?*anyopaque; -extern fn lol_free_language(?*anyopaque) void; -extern fn lol_get_plural_rule(?*anyopaque, ?[*:0]const u8) ?*anyopaque; -extern fn lol_free_plural_rule(?*anyopaque) void; -extern fn lol_fallback_chain_len(?*anyopaque, ?[*:0]const u8) u32; -extern fn lol_last_error() ?[*:0]const u8; -extern fn lol_version() [*:0]const u8; -extern fn lol_build_info() [*:0]const u8; -extern fn lol_is_initialized(?*anyopaque) u32; - -// =========================================================================== -// Lifecycle Tests -// =========================================================================== - -test "create and destroy handle" { - const handle = lol_init(null) orelse return error.InitFailed; - defer lol_free(handle); - - try testing.expect(handle != @as(?*anyopaque, null)); -} - -test "handle is initialized after init" { - const handle = lol_init(null) orelse return error.InitFailed; - defer lol_free(handle); - - try testing.expectEqual(@as(u32, 1), lol_is_initialized(handle)); -} - -test "null handle is not initialized" { - try testing.expectEqual(@as(u32, 0), lol_is_initialized(null)); -} - -test "init with explicit data dir" { - const handle = lol_init("/tmp/lol-test-corpus") orelse return error.InitFailed; - defer lol_free(handle); - - try testing.expectEqual(@as(u32, 1), lol_is_initialized(handle)); -} - -// =========================================================================== -// Locale Resolution Tests -// =========================================================================== - -test "resolve simple locale" { - const handle = lol_init(null) orelse return error.InitFailed; - defer lol_free(handle); - - const locale = lol_resolve_locale(handle, "en"); - if (locale) |ptr| { - defer lol_free_locale(ptr); - } -} - -test "resolve locale with region" { - const handle = lol_init(null) orelse return error.InitFailed; - defer lol_free(handle); - - const locale = lol_resolve_locale(handle, "en-US"); - if (locale) |ptr| { - defer lol_free_locale(ptr); - } -} - -test "resolve locale with script and region" { - const handle = lol_init(null) orelse return error.InitFailed; - defer lol_free(handle); - - const locale = lol_resolve_locale(handle, "zh-Hans-CN"); - if (locale) |ptr| { - defer lol_free_locale(ptr); - } -} - -test "resolve locale with null handle returns null" { - try testing.expect(lol_resolve_locale(null, "en") == null); -} - -test "resolve locale with null tag returns null" { - const handle = lol_init(null) orelse return error.InitFailed; - defer lol_free(handle); - - try testing.expect(lol_resolve_locale(handle, null) == null); -} - -// =========================================================================== -// Translation Tests -// =========================================================================== - -test "translate with null handle returns null" { - try testing.expect(lol_translate(null, "en", "greeting") == null); -} - -test "translate with null locale returns null" { - const handle = lol_init(null) orelse return error.InitFailed; - defer lol_free(handle); - - try testing.expect(lol_translate(handle, null, "greeting") == null); -} - -test "translate with null key returns null" { - const handle = lol_init(null) orelse return error.InitFailed; - defer lol_free(handle); - - try testing.expect(lol_translate(handle, "en", null) == null); -} - -// =========================================================================== -// Plural Selection Tests -// =========================================================================== - -test "English plural: 1 is one, everything else is other" { - try testing.expectEqual(@as(u32, 1), lol_select_plural(null, "en", 1)); // one - try testing.expectEqual(@as(u32, 5), lol_select_plural(null, "en", 0)); // other - try testing.expectEqual(@as(u32, 5), lol_select_plural(null, "en", 2)); // other - try testing.expectEqual(@as(u32, 5), lol_select_plural(null, "en", 100)); // other -} - -test "Arabic plural: 6 forms" { - try testing.expectEqual(@as(u32, 0), lol_select_plural(null, "ar", 0)); // zero - try testing.expectEqual(@as(u32, 1), lol_select_plural(null, "ar", 1)); // one - try testing.expectEqual(@as(u32, 2), lol_select_plural(null, "ar", 2)); // two - try testing.expectEqual(@as(u32, 3), lol_select_plural(null, "ar", 7)); // few - try testing.expectEqual(@as(u32, 4), lol_select_plural(null, "ar", 50)); // many - try testing.expectEqual(@as(u32, 5), lol_select_plural(null, "ar", 100)); // other -} - -test "Japanese plural: always other" { - try testing.expectEqual(@as(u32, 5), lol_select_plural(null, "ja", 0)); - try testing.expectEqual(@as(u32, 5), lol_select_plural(null, "ja", 1)); - try testing.expectEqual(@as(u32, 5), lol_select_plural(null, "ja", 42)); -} - -test "Russian plural: one, few, many" { - try testing.expectEqual(@as(u32, 1), lol_select_plural(null, "ru", 1)); // one - try testing.expectEqual(@as(u32, 3), lol_select_plural(null, "ru", 2)); // few - try testing.expectEqual(@as(u32, 4), lol_select_plural(null, "ru", 5)); // many - try testing.expectEqual(@as(u32, 4), lol_select_plural(null, "ru", 11)); // many (not one) - try testing.expectEqual(@as(u32, 1), lol_select_plural(null, "ru", 21)); // one -} - -// =========================================================================== -// Plural Rule Tests -// =========================================================================== - -test "get plural rule for English" { - const rule = lol_get_plural_rule(null, "en") orelse return error.RuleFailed; - defer lol_free_plural_rule(rule); -} - -test "get plural rule for Arabic" { - const rule = lol_get_plural_rule(null, "ar") orelse return error.RuleFailed; - defer lol_free_plural_rule(rule); -} - -test "get plural rule with null code returns null" { - try testing.expect(lol_get_plural_rule(null, null) == null); -} - -// =========================================================================== -// Fallback Chain Tests -// =========================================================================== - -test "fallback chain length for simple locale" { - try testing.expectEqual(@as(u32, 2), lol_fallback_chain_len(null, "en")); // en, default -} - -test "fallback chain length for locale with region" { - try testing.expectEqual(@as(u32, 3), lol_fallback_chain_len(null, "en-US")); // en-US, en, default -} - -test "fallback chain length for complex locale" { - try testing.expectEqual(@as(u32, 4), lol_fallback_chain_len(null, "zh-Hans-CN")); // zh-Hans-CN, zh-Hans, zh, default -} - -// =========================================================================== -// Version Tests -// =========================================================================== - -test "version string is not empty" { - const ver = lol_version(); - const ver_str = std.mem.span(ver); - try testing.expect(ver_str.len > 0); -} - -test "version is semantic format" { - const ver = lol_version(); - const ver_str = std.mem.span(ver); - try testing.expect(std.mem.count(u8, ver_str, ".") >= 1); -} - -test "build info is not empty" { - const info = lol_build_info(); - const info_str = std.mem.span(info); - try testing.expect(info_str.len > 0); -} - -// =========================================================================== -// Error Handling Tests -// =========================================================================== - -test "last error after null handle translation" { - _ = lol_translate(null, "en", "key"); - const err = lol_last_error(); - try testing.expect(err != null); - if (err) |e| { - const err_str = std.mem.span(e); - try testing.expect(err_str.len > 0); - } -} - -// =========================================================================== -// Memory Safety Tests -// =========================================================================== - -test "multiple handles are independent" { - const h1 = lol_init(null) orelse return error.InitFailed; - defer lol_free(h1); - - const h2 = lol_init(null) orelse return error.InitFailed; - defer lol_free(h2); - - try testing.expect(h1 != h2); -} - -test "free null is safe for all types" { - lol_free(null); - lol_free_locale(null); - lol_free_translation(null); - lol_free_language(null); - lol_free_plural_rule(null); -} diff --git a/lol/generated/abi/lol.h b/lol/generated/abi/lol.h deleted file mode 100644 index 78fd955b1..000000000 --- a/lol/generated/abi/lol.h +++ /dev/null @@ -1,207 +0,0 @@ -/* - * LOL i18n Service — Generated C Header - * - * Auto-generated from src/abi/ Idris2 definitions. - * Do NOT edit manually; regenerate from the ABI definitions. - * - * SPDX-License-Identifier: MPL-2.0 - * Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) - */ - -#ifndef LOL_H -#define LOL_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ------------------------------------------------------------------------- - * Result Codes (matches Lol.ABI.Types.Result) - * ------------------------------------------------------------------------- */ - -typedef enum { - LOL_OK = 0, - LOL_ERROR = 1, - LOL_INVALID_PARAM = 2, - LOL_OUT_OF_MEMORY = 3, - LOL_NULL_POINTER = 4, - LOL_LOCALE_NOT_FOUND = 5, - LOL_KEY_NOT_FOUND = 6, - LOL_PLURAL_OUT_OF_RANGE = 7, -} lol_result_t; - -/* ------------------------------------------------------------------------- - * CLDR Plural Categories (matches Lol.ABI.Types.PluralCategory) - * ------------------------------------------------------------------------- */ - -typedef enum { - LOL_PLURAL_ZERO = 0, - LOL_PLURAL_ONE = 1, - LOL_PLURAL_TWO = 2, - LOL_PLURAL_FEW = 3, - LOL_PLURAL_MANY = 4, - LOL_PLURAL_OTHER = 5, -} lol_plural_category_t; - -/* ------------------------------------------------------------------------- - * Opaque Handle - * ------------------------------------------------------------------------- */ - -typedef void* lol_handle_t; - -/* ------------------------------------------------------------------------- - * Structs (matches src/abi/Layout.idr) - * ------------------------------------------------------------------------- */ - -/** Parsed BCP 47 locale — 32 bytes on 64-bit. */ -typedef struct { - const char *tag; /**< Full BCP 47 tag (e.g. "en-US") */ - const char *language; /**< ISO 639 language subtag */ - const char *script; /**< ISO 15924 script (empty if unspecified) */ - const char *region; /**< ISO 3166-1 region (empty if unspecified) */ -} lol_locale_t; - -/** Translation result — 24 bytes. */ -typedef struct { - const char *text; /**< The resolved translation text (UTF-8) */ - const char *resolved_locale; /**< Locale actually used */ - uint32_t is_fallback; /**< 1 if a fallback locale was used */ - uint32_t _padding; /**< Alignment padding */ -} lol_translation_result_t; - -/** Language metadata — 56 bytes. */ -typedef struct { - const char *iso639_3; /**< ISO 639-3 code */ - const char *name; /**< English name */ - const char *native_name; /**< Autonym */ - const char *family; /**< Language family */ - const char *scripts; /**< Writing systems */ - uint32_t source_count;/**< Number of corpus sources */ - uint32_t verse_count; /**< Total verses crawled */ - double quality; /**< Quality score (0.0-1.0) */ -} lol_language_info_t; - -/** CLDR plural rule — 40 bytes. */ -typedef struct { - const char *language; /**< ISO 639 code */ - uint32_t form_count; /**< Number of plural forms (1-6) */ - uint32_t categories[6]; /**< Which CLDR categories are used */ - uint32_t _padding; /**< Alignment padding */ -} lol_plural_rule_t; - -/* ------------------------------------------------------------------------- - * Library Lifecycle - * ------------------------------------------------------------------------- */ - -/** Initialise the LOL service with a corpus data directory. */ -lol_handle_t lol_init(const char *data_dir); - -/** Free the LOL service handle and all resources. */ -void lol_free(lol_handle_t handle); - -/** Check if a handle is initialised (returns 1 or 0). */ -uint32_t lol_is_initialized(lol_handle_t handle); - -/* ------------------------------------------------------------------------- - * Locale Resolution - * ------------------------------------------------------------------------- */ - -/** Parse and resolve a BCP 47 locale tag. Caller must free with lol_free_locale. */ -lol_locale_t* lol_resolve_locale(lol_handle_t handle, const char *tag); - -/** Free a locale returned by lol_resolve_locale. */ -void lol_free_locale(lol_locale_t *locale); - -/* ------------------------------------------------------------------------- - * Translation Lookup - * ------------------------------------------------------------------------- */ - -/** Look up a translation. Caller must free with lol_free_translation. */ -lol_translation_result_t* lol_translate(lol_handle_t handle, - const char *locale_tag, - const char *key); - -/** Free a translation result. */ -void lol_free_translation(lol_translation_result_t *result); - -/** Get the text from a translation result (not owned by caller). */ -const char* lol_translation_text(lol_translation_result_t *result); - -/* ------------------------------------------------------------------------- - * Plural Form Selection - * ------------------------------------------------------------------------- */ - -/** Select the CLDR plural category for a quantity in a locale. */ -uint32_t lol_select_plural(lol_handle_t handle, - const char *locale_tag, - uint64_t quantity); - -/** Translate with automatic plural form selection. */ -lol_translation_result_t* lol_translate_plural(lol_handle_t handle, - const char *locale_tag, - const char *key, - uint64_t quantity); - -/* ------------------------------------------------------------------------- - * Language Metadata - * ------------------------------------------------------------------------- */ - -/** Get the number of languages in the corpus. */ -uint32_t lol_language_count(lol_handle_t handle); - -/** Look up language metadata by ISO 639-3 code. Caller must free. */ -lol_language_info_t* lol_get_language(lol_handle_t handle, const char *code); - -/** Free a language info struct. */ -void lol_free_language(lol_language_info_t *info); - -/** List all languages. Returns count, writes array to out_array. */ -uint32_t lol_list_languages(lol_handle_t handle, lol_language_info_t **out_array); - -/* ------------------------------------------------------------------------- - * Plural Rules - * ------------------------------------------------------------------------- */ - -/** Get the plural rule for a language. Caller must free. */ -lol_plural_rule_t* lol_get_plural_rule(lol_handle_t handle, const char *lang_code); - -/** Free a plural rule struct. */ -void lol_free_plural_rule(lol_plural_rule_t *rule); - -/* ------------------------------------------------------------------------- - * Locale Fallback Chain - * ------------------------------------------------------------------------- */ - -/** Get the fallback chain length for a locale tag. */ -uint32_t lol_fallback_chain_len(lol_handle_t handle, const char *locale_tag); - -/** Get the fallback chain. Caller must free with lol_free_fallback_chain. */ -const char** lol_fallback_chain(lol_handle_t handle, const char *locale_tag); - -/** Free a fallback chain array. */ -void lol_free_fallback_chain(const char **chain); - -/* ------------------------------------------------------------------------- - * Error Handling - * ------------------------------------------------------------------------- */ - -/** Get the last error message (may be NULL). */ -const char* lol_last_error(void); - -/* ------------------------------------------------------------------------- - * Version Information - * ------------------------------------------------------------------------- */ - -/** Get the library version string. */ -const char* lol_version(void); - -/** Get build information string. */ -const char* lol_build_info(void); - -#ifdef __cplusplus -} -#endif - -#endif /* LOL_H */ diff --git a/lol/lib/rescript.lock b/lol/lib/rescript.lock deleted file mode 100644 index 411267709..000000000 --- a/lol/lib/rescript.lock +++ /dev/null @@ -1 +0,0 @@ -363147 \ No newline at end of file diff --git a/lol/lol-abi.ipkg b/lol/lol-abi.ipkg deleted file mode 100644 index 76b600061..000000000 --- a/lol/lol-abi.ipkg +++ /dev/null @@ -1,14 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- --- LOL i18n Service — Idris2 ABI Package -package lolabi -sourcedir = "src" -depends = base -modules = Lol.ABI.Types - , Lol.ABI.Layout - , Lol.ABI.Locale - , Lol.ABI.TranslationKey - , Lol.ABI.PluralForm - , Lol.ABI.I18nStore - , Lol.ABI.Foreign diff --git a/lol/manifest.scm b/lol/manifest.scm deleted file mode 100644 index dd942c7fa..000000000 --- a/lol/manifest.scm +++ /dev/null @@ -1,24 +0,0 @@ -;;; SPDX-License-Identifier: MPL-2.0 -;;; manifest.scm — Generic Guix manifest for RSR-compliant projects -;;; -;;; Usage: -;;; guix shell -m manifest.scm -;;; - -(specifications->manifest - '(;; Core development tools - "git" - "just" - "nickel" - "curl" - "bash" - "coreutils" - - ;; Documentation - "asciidoctor" - "pandoc" - - ;; Common build dependencies - "openssl" - "zlib" - "pkg-config")) diff --git a/lol/meta/ISO639-3.tsv b/lol/meta/ISO639-3.tsv deleted file mode 100755 index 963a8c74c..000000000 --- a/lol/meta/ISO639-3.tsv +++ /dev/null @@ -1,7327 +0,0 @@ -ISO NAM_LABEL LMP_LON LMP_LAT GENEALOGY -aaa Ghotuo 5.95663 7.11551 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, North-Central, Ghotuo-Uneme-Yekhee -aab Alumu-Tesu 8.55956 9.01513 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Alumic -aac Ari 142.40045 -7.95526 Trans-New Guinea, Gogodala-Suki, Gogodala -aad Amal 141.9952 -4.04517 Sepik, Iwam -aae Arbëreshë Albanian 16.71645 38.91104 Indo-European, Albanian, Tosk -aaf Aranadan 75.79538 11.35252 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam, Malayalam -aai Arifama-Miniafia 149.24638 -9.15565 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Are-Taupota, Are -aak Ankave 145.75421 -7.19444 Trans-New Guinea, Angan, Nuclear Angan -aal Afade 14.60874 12.05214 Afro-Asiatic, Chadic, Biu-Mandara, B, B.1, Kotoko Proper, North -aam Aramanik 37.3491 -2.90656 Nilo-Saharan, Eastern Sudanic, Nilotic, Southern, Kalenjin, Nandi-Markweta, Nandi -aan Anambé -49.30296 -2.71119 Tupian, Tupí-Guaraní, Wayampí, Amanayé -aao Algerian Saharan Spoken Arabic 1.61694 24.65311 Afro-Asiatic, Semitic, Central, South, Arabic -aap Pará Arára -53.06572 -3.71263 Cariban, South Amazonian, Arara -aaq Eastern Abnaki -68.66167 45.01121 Algic, Algonquian, Eastern Algonquian, Abenaki -aar Afar 41.08778 11.83353 Afro-Asiatic, Cushitic, East, Saho-Afar -aas Aasáx 36.86477 -4.00679 Afro-Asiatic, Cushitic, South -aat Arvanitika Albanian 23.37034 38.28299 Indo-European, Albanian, Tosk -aau Abau 141.32359 -3.97222 Sepik, Abau -aaw Solong 148.82509 -5.86129 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Southwest New Britain, Arawe-Pasismanua, Arawe, West Arawe -aax Mandobo Atas 140.62376 -5.69357 Trans-New Guinea, Ok-Awyu, Awyu-Dumut, Dumut -aay Aariya 81.19373 23.22873 -aaz Amarasi 123.96373 -10.21751 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor, Uab Meto -aba Abé -4.38497 5.59682 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Agneby -abb Bankon 9.6403 4.3702 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Basaa (A.42) -abc Ambala Ayta 120.28339 14.81558 Austronesian, Malayo-Polynesian, Philippine, Central Luzon, Sambalic -abd Camarines Norte Agta 122.83497 14.15712 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Umiray Dumaget -abe Western Abnaki -72.65106 46.13812 Algic, Algonquian, Eastern Algonquian, Abenaki -abf Abai Sungai 118.30626 5.55394 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Paitanic -abg Abaga 145.66459 -6.12028 Trans-New Guinea, Madang, Kalam-Kobon -abh Tajiki Spoken Arabic 66.50338 37.0893 Afro-Asiatic, Semitic, Central, South, Arabic -abi Abidji -4.58421 5.65656 NAIIABTiger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Agneby -abj Aka-Bea 92.78178 12.37822 Andamanese, Great Andamanese, Central -abk Abkhaz 40.78113 43.29399 North Caucasian, West Caucasian, Abkhaz-Abazin -abl Abung 105.39652 -4.43957 Austronesian, Malayo-Polynesian, Lampung -abm Abanyom 8.63055 6.30619 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Ekoid, Bakor -abn Abua 6.61492 4.83057 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Central Delta, Abua-Odual -abo Abon 10.87689 6.90621 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tivoid -abp Abenlen Ayta 120.20036 15.41314 Austronesian, Malayo-Polynesian, Philippine, Central Luzon, Sambalic -abq Abaza 41.88768 44.23956 North Caucasian, West Caucasian, Abkhaz-Abazin -abr Abron -1.97397 7.65599 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Central, Akan -abs Ambonese Malay 128.18442 -3.71342 Creole, Malay based -abt Ambulas 143.05898 -3.7801 Sepik, Ndu -abu Abure -3.64123 5.21534 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Western -abv Baharna Spoken Arabic 50.5521 25.94204 Afro-Asiatic, Semitic, Central, South, Arabic -abw Pal 145.24044 -4.756 Trans-New Guinea, Madang, Croisilles, Pihom, Omosan -abx Inabaknon 124.16645 12.42636 Austronesian, Malayo-Polynesian, Greater Barito, Sama-Bajaw, Abaknon -aby Aneme Wake 148.47891 -9.75911 Trans-New Guinea, Southeast Papuan, Yareban -abz Abui 124.58793 -8.31058 Trans-New Guinea, West, Timor-Alor-Pantar, Alor-Pantar, Alor -aca Achagua -72.2005 4.38649 Maipurean, Northern, Upper Amazon, Western Nawiki, Piapoco -acb Áncá 11.10872 6.66524 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Unclassified -acc Cubulco Achí -90.70695 15.17421 -acd Gikyode 0.56975 8.39478 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Guang, North Guang -ace Aceh 96.60325 3.90757 Austronesian, Malayo-Polynesian, Malayo-Chamic, Chamic, Acehnese -acf Saint Lucian Creole French -60.97418 13.88269 Creole, French based -ach Acholi 32.67602 3.17234 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Luo, Southern, Luo-Acholi, Alur-Acholi, Lango-Acholi -aci Aka-Cari 92.94855 13.49086 Andamanese, Great Andamanese, Northern -ack Aka-Kora 92.74663 12.09437 Andamanese, Great Andamanese, Northern -acl Akar-Bale 92.82775 12.66632 Andamanese, Great Andamanese, Central -acm Mesopotamian Spoken Arabic 46.05532 31.89232 Afro-Asiatic, Semitic, Central, South, Arabic -acn Achang 97.81802 24.4344 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Burmish, Northern -acp Eastern Acipa 6.0105 10.71038 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Kamuku -acq Ta'izzi-Adeni Spoken Arabic 45.64107 13.65547 Afro-Asiatic, Semitic, Central, South, Arabic -acr Rabinal Achí -90.35134 15.07303 Mayan, Yucatecan-Core Mayan, K’ichean-Mamean, K’ichean, Poqom-K’ichean, Core K’ichean -acs Acroa -40.21445 -12.594 Jean, Central -act Achterhoeks 6.47521 52.02104 Indo-European, Germanic, West, Low Saxon-Low Franconian, Low Saxon -acu Achuar-Shiwiar -77.27207 -3.2503 Jivaroan, Jívaro -acv Achumawi -121.1908 41.09785 Palaihnihan -acw Hijazi Spoken Arabic 38.92371 22.8346 Afro-Asiatic, Semitic, Central, South, Arabic -acx Omani Spoken Arabic 57.70295 23.23657 Afro-Asiatic, Semitic, Central, South, Arabic -acy Cypriot Spoken Arabic 33.0943 35.16744 Afro-Asiatic, Semitic, Central, South, Arabic -acz Acheron 30.3187 10.88266 Niger-Congo, Kordofanian, Talodi, Talodi Proper, Tocho -ada Dangme 0.13243 5.9437 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Ga-Dangme -adb Adabe 125.57573 -8.22674 Trans-New Guinea, West, Timor-Alor-Pantar, Timor -add Dzodinka 10.89556 6.7039 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Nkambe -ade Adele 0.73376 8.19117 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Basila-Adele -adf Dhofari Spoken Arabic 54.48936 17.07958 Afro-Asiatic, Semitic, Central, South, Arabic -adg Andegerebinha 137.3515 -22.51278 Australian, Pama-Nyungan, Arandic -adh Adhola 34.03408 0.73235 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Luo, Southern, Adhola -adi Adi 94.3538 27.62812 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Tani -adj Adioukrou -4.52522 5.38228 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Agneby -adl Galo Adi 96.311 27.749 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Tani -adn Adang 124.44812 -8.18958 Trans-New Guinea, West, Timor-Alor-Pantar, Alor-Pantar, Alor -ado Abu 144.47396 -4.24027 Ramu-Lower Sepik, Ramu, Grass -adp Adap 90.33693 27.14102 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, Southern -adq Adangbe 0.76327 6.36989 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Kposo-Ahlo-Bowili -adr Adonara 123.15864 -8.32027 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -ads Adamorobe Sign Language -0.151 5.834 Deaf sign language -adt Adynyamathanha 138.67131 -30.14508 Australian, Pama-Nyungan, South-West, Yura -adu Aduge 6.13085 7.64567 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Northwestern -adw Amundava -62.30645 -9.04023 Tupian, Tupí-Guaraní, Kawahib, Parintintin -adx Amdo Tibetan 100.48479 34.51768 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Amdo -ady Adyghe 39.70165 45.06076 North Caucasian, West Caucasian, Circassian -aea Areba 142.63107 -16.63548 Australian, Pama-Nyungan, Paman, Norman Pama -aeb Tunisian Spoken Arabic 9.56156 33.79658 Afro-Asiatic, Semitic, Central, South, Arabic -aec Sa‘idi Spoken Arabic 30.53016 25.41322 Afro-Asiatic, Semitic, Central, South, Arabic -aed Argentine Sign Language -59.17984 -34.79695 Deaf sign language -aee Northeast Pashayi 70.43166 34.66002 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Pashayi -aek Haeke 164.86922 -21.0735 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Haekic -ael Ambele 9.62028 5.94043 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Western Momo -aem Arem 106.40279 17.37985 Austro-Asiatic, Mon-Khmer, Viet-Muong, Chut -aen Armenian Sign Language 44.47668 40.10023 Deaf sign language -aeq Aer 69.029 25.254 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Gujarati -aer Eastern Arrernte 135.04638 -23.35831 Australian, Pama-Nyungan, Arandic -aes Alsea -123.94 44.408 -aew Ambakich 144.28479 -4.23181 Ramu-Lower Sepik, Ramu, Grass -aex Amerax -74.33219 40.75433 -aey Amele 145.68676 -5.29126 Trans-New Guinea, Madang, Croisilles, Gum -afb Gulf Spoken Arabic 47.98677 30.18616 Afro-Asiatic, Semitic, Central, South, Arabic -afe Putukwam 8.96041 6.65923 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Bendi -afi Akrukay 144.82082 -4.88687 Ramu-Lower Sepik, Ramu, Tamolan -afn Defaka 7.50186 4.58451 Niger-Congo, Atlantic-Congo, Ijoid, Defaka -afo Eloyi 7.97061 8.24696 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Idomoid, Akweya, Eloyi -afr Afrikaans 21.61887 -30.62109 Indo-European, Germanic, West, Low Saxon-Low Franconian, Low Franconian -afs Afro-Seminole Creole -96.57611 35.18634 Creole, English based, Atlantic, Eastern, Northern -aft Afitti 30.76112 12.44598 Nilo-Saharan, Eastern Sudanic, Western, Nyimang -afu Awutu -0.59545 5.42441 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Guang, South Guang -afz Obokuitai 137.92395 -2.88029 Lakes Plain, Tariku, East -aga Aguano -75.83332 -5.25 Unclassified -agb Legbo 7.98385 6.02645 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Central, East-West, Mbembe-Legbo, Legbo -agc Agatu 7.71639 7.97915 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Idomoid, Akweya, Etulo-Idoma, Idoma -agd Agarabi 145.91695 -6.20604 Trans-New Guinea, Kainantu-Goroka, Kainantu, Gadsup-Auyana-Awa -age Angal 143.59198 -6.0127 Trans-New Guinea, Engan, Angal-Kewa -agf Arguni 132.54182 -2.66787 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, North Bomberai -agg Angor 141.19901 -3.7167 Senagi -agh Ngelima 24.87538 1.81314 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngombe (C.45) -agi Agariya 82.29701 24.50242 Austro-Asiatic, Munda, North Munda, Kherwari -agj Argobba 39.75603 10.65965 Afro-Asiatic, Semitic, South, Ethiopian, South, Transversal, Amharic-Argobba -agk Isarog Agta 123.33243 13.65101 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bikol, Coastal, Naga -agl Fembe 142.25411 -5.71596 Trans-New Guinea, East Strickland -agm Angaatiha 146.35192 -7.15012 Trans-New Guinea, Angan, Angaatiha -agn Agutaynen 119.65546 10.53279 Austronesian, Malayo-Polynesian, Philippine, Kalamian -ago Tainae 145.68228 -7.40306 Trans-New Guinea, Angan, Nuclear Angan -agp Paranan 122.37028 17.04111 -agq Aghem 10.08074 6.38956 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Ring, West -agr Aguaruna -77.92179 -5.30044 Jivaroan -ags Esimbi 9.86936 6.50094 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tivoid -agt Central Cagayan Agta 121.85716 17.95709 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Northern Cordilleran, Cagayan Valley, Ibanagic, Gaddangic -agu Aguacateco -91.31529 15.33066 Mayan, Yucatecan-Core Mayan, K’ichean-Mamean, Mamean, Awakateko-Ixil -agv Remontado Agta 121.45323 14.62541 Austronesian, Malayo-Polynesian, Philippine, Central Luzon, Sinauna -agw Kahua 162.19059 -10.69634 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, San Cristobal -agx Aghul 47.58429 41.92418 North Caucasian, East Caucasian, Lezgic, Nuclear Lezgic, East Lezgic -agy Southern Alta 121.05413 15.18409 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, Alta -agz Mt. Iriga Agta 123.4625 13.45657 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bikol, Inland -aha Ahanta -1.94657 4.85147 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Central, Bia, Southern -ahb Axamb 167.70701 -16.48376 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Malekula Coastal -ahe Ahe 113.743 0.068 -ahg Qimant 37.05424 12.81193 Afro-Asiatic, Cushitic, Central, Western -ahh Aghu 140.04303 -6.34674 Trans-New Guinea, Ok-Awyu, Awyu-Dumut, Awyu -ahi Tiagbamrin Aizi -4.62352 5.28022 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Aizi -ahk Akha 100.10188 20.9276 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southern -ahl Igo 0.67846 7.25499 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Kposo-Ahlo-Bowili -ahm Mobumrin Aizi -4.47303 5.26847 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Aizi -ahn Àhàn 6.00896 7.44139 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Defoid, Ayere-Ahan -aho Ahom 88.46401 27.27784 Tai-Kadai, Kam-Tai, Tai, Southwestern -ahp Aproumu Aizi -4.52192 5.20273 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Aizi -ahr Ahirani 73.685 21.552 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Khandesi -ahs Ashe 7.39443 9.36574 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Northwestern, Koro -aht Ahtena -144.88894 61.70684 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -aia Arosi 161.43153 -10.24414 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, San Cristobal -aib Ainu 76.42088 39.27141 Altaic, Turkic, Eastern -aic Ainbai 141.14867 -3.09214 Border, Bewani -aid Alngith 141.93798 -12.53236 Australian, Pama-Nyungan, Paman, Northern Pama -aie Amara 148.68005 -5.55778 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Southwest New Britain, Amara -aif Agi 142.38677 -3.49104 Torricelli, Wapei-Palei, Palei -aig Antigua and Barbuda Creole English -61.78942 17.0805 Creole, English based, Atlantic, Eastern, Southern -aih Ai-Cham 107.84359 25.49083 Tai-Kadai, Kam-Tai, Kam-Sui -aii Assyrian Neo-Aramaic 43.50269 37.09724 Afro-Asiatic, Semitic, Central, Aramaic, Eastern, Central, Northeastern -aij Lishanid Noshan 35.51134 32.45782 Afro-Asiatic, Semitic, Central, Aramaic, Eastern, Central, Northeastern -aik Ake 8.75768 8.59543 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Southwestern, B -ail Aimele 142.65551 -6.68656 Trans-New Guinea, Bosavi -aim Aimol 94.35562 24.64368 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -ain Ainu 142.87464 43.05529 Language isolate -aio Aiton 92.3169 26.51452 Tai-Kadai, Kam-Tai, Tai, Southwestern -aip Burumakok 140.03004 -5.12217 Trans-New Guinea, Ok-Awyu, Ok, Western -aiq Aimaq 64.62116 34.27009 Indo-European, Indo-Iranian, Iranian, Western, Southwestern, Persian -air Airoran 138.15778 -1.8522 Tor-Kwerba, Greater Kwerba, Kwerba, West Coast -ais Nataoran Amis 121.59005 23.93858 Austronesian, East Formosan, Central -ait Arikem -63.742 -8.924 Tupian, Arikem -aix Aigon 150.27247 -5.99488 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Southwest New Britain, Arawe-Pasismanua, Pasismanua -aiy Ali 18.03518 4.60014 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Gbaya-Manza-Ngbaka, East -aiz Aari 36.57211 5.95034 -aja Aja 25.61221 8.58003 Nilo-Saharan, Central Sudanic, West, Kresh -ajg Aja 1.77879 7.00083 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe, Aja -aji Ajië 165.46767 -21.30289 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Southern, South, Wailic -ajp South Levantine Spoken Arabic 35.78394 31.43032 Afro-Asiatic, Semitic, Central, South, Arabic -ajt Judeo-Tunisian Arabic 34.89403 31.73193 Afro-Asiatic, Semitic, Central, South, Arabic -aju Judeo-Moroccan Arabic 34.85522 31.82429 Afro-Asiatic, Semitic, Central, South, Arabic -ajw Ajawa 9.89205 10.21005 Afro-Asiatic, Chadic, West, B, B.2 -ajz Amri 91.482 26.024 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Karbi -aka Akan -1.33254 6.34756 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Central, Akan -akb Batak Angkola 99.60248 1.66127 Austronesian, Malayo-Polynesian, Northwest Sumatra-Barrier Islands, Batak, Southern -akc Mpur 133.16598 -0.7489 Language isolate -akd Ukpet-Ehom 8.10047 5.58316 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Akpet -ake Akawaio -60.61405 6.08065 Cariban, North Amazonian, Pemón, Pemón proper, Kapong -akf Akpa 8.01629 7.32586 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Idomoid, Yatye-Akpa -akg Anakalangu 119.60465 -9.63425 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Sumba-Hawu, Sumba -akh Angal Heneng 143.47808 -6.13347 Trans-New Guinea, Engan, Angal-Kewa -aki Aiome 144.76523 -5.13467 Ramu-Lower Sepik, Ramu, Middle Ramu -akj Aka-Jeru 92.95043 13.15249 Andamanese, Great Andamanese, Northern -akl Aklanon 122.35413 11.55432 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, West, Aklan -akm Aka-Bo 92.80108 12.36294 Andamanese, Great Andamanese, Northern -akn Amikoana -51.67454 2.55741 -ako Akurio -55.6294 3.19607 Cariban, Tiriyó, Tiriyó -akp Siwu 0.44362 7.23811 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Lelemi, Lelemi-Akpafu -akq Ak 141.78374 -3.57026 Sepik, Yellow River -akr Araki 166.94246 -15.63141 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -aks Akaselem 1.37035 8.8858 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Gurma, Ntcham -akt Akolet 150.18199 -6.22711 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Southwest New Britain, Arawe-Pasismanua, Arawe, East Arawe -aku Akum 9.98971 6.84099 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Yukuben-Kuteb -akv Akhvakh 46.30369 42.40035 North Caucasian, East Caucasian, Avar-Andic, Andic -akw Akwa 15.46226 -0.39897 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Mboshi (C.22) -akx Aka-Kede 92.82266 12.84943 Andamanese, Great Andamanese, Central -aky Aka-Kol 92.78661 12.73253 Andamanese, Great Andamanese, Central -akz Alabama -94.62848 30.76738 Muskogean, Eastern Muskogean, Central Muskogean, Apalachee-Alabama-Koasati, Alabama-Koasati -ala Alago 8.52085 8.34986 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Idomoid, Akweya, Etulo-Idoma, Idoma -alc Qawasqar -75.3756 -49.70303 Kaweskaran -ald Alladian -4.42647 5.22371 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Avikam-Alladian -ale Aleut -174.29013 52.12283 Eskimo-Aleut, Aleut -alf Alege 9.00394 6.59423 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Bendi -alh Alawa 134.28162 -15.54581 Australian, Gunwingguan, Maran, Alawic -ali Amaimon 145.36845 -5.18742 Trans-New Guinea, Madang, Croisilles, Pihom, Amaimon -alj Alangan 121.02197 13.09821 Austronesian, Malayo-Polynesian, Philippine, North Mangyan -alk Alak 106.59719 15.5565 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, Central Bahnaric -all Allar 76.65928 11.08031 Dravidian, Unclassified -alm Amblong 166.94988 -15.51691 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -aln Gheg Albanian 20.8701 42.61581 Indo-European, Albanian, Gheg -alo Larike-Wakasihu 127.95608 -3.76522 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Piru Bay, West, Hoamoal -alp Alune 128.39386 -3.11477 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Three Rivers, Amalumute, Northwest Seram, Ulat Inai -alq Algonquin -77.52577 47.38755 Algic, Algonquian, Ojibwa-Potawatomi -alr Alutor 165.65285 60.38443 Chukotko-Kamchatkan, Northern, Koryak-Alyutor -als Tosk Albanian 20.17993 39.84682 Indo-European, Albanian, Tosk -alt Southern Altai 86.87051 50.13472 Altaic, Turkic, Northern -alu 'Are'are 161.15822 -9.20699 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, Malaita, Southern -alw Alaba 38.17316 7.39014 Afro-Asiatic, Cushitic, East, Highland -alx Alatil 142.53207 -3.46843 Torricelli, Wapei-Palei, Palei -aly Alyawarr 136.83489 -21.04266 Australian, Pama-Nyungan, Arandic -alz Alur 30.8289 2.28824 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Luo, Southern, Luo-Acholi, Alur-Acholi, Alur -ama Amanayé -48.66126 -3.79772 Tupian, Tupí-Guaraní, Wayampí, Amanayé -amb Ambo 10.77978 7.07637 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tivoid -amc Amahuaca -72.71614 -10.49463 Panoan, Mainline, Tri-State, Amawaka -amd Amapá Creole -51.05775 0.14065 -ame Yanesha' -75.31497 -10.54539 Maipurean, Southern, Western -amf Hamer-Banna 36.51761 5.06515 Afro-Asiatic, Omotic, South -amg Amarag 132.87768 -11.98757 Australian, Yiwaidjan, Amaragic -amh Amharic 37.93657 11.77861 Afro-Asiatic, Semitic, South, Ethiopian, South, Transversal, Amharic-Argobba -ami Amis 121.34791 23.09172 Austronesian, East Formosan, Central -amj Amdang 21.31208 14.51149 Nilo-Saharan, Fur -amk Ambai 136.52587 -1.88126 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Yapen, Central-Western -aml War 91.99736 24.38823 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Khasian -amm Ama 141.65793 -4.20192 Arai (Left May) -amn Amanab 141.17783 -3.51516 Border, Waris -amo Amo 8.65405 10.32287 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Amo -amp Alamblak 143.31576 -4.66307 Sepik, Sepik Hill, Alamblak -amq Amahai 128.93888 -3.32028 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Piru Bay, East, Seram Straits, Uliase, Hatuhaha, Elpaputi -amr Amarakaeri -70.55333 -12.49308 Harákmbut -ams Southern Amami-Oshima 129.28521 28.1955 Japonic, Ryukyuan, Amami-Okinawan, Northern Amami-Okinawan -amt Amto 141.33941 -4.12165 Amto-Musan -amu Guerrero Amuzgo -98.18953 16.77226 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Amuzgo -amv Ambelau 127.1964 -3.85919 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, Ambelau -amw Western Neo-Aramaic 36.48403 33.81622 Afro-Asiatic, Semitic, Central, Aramaic, Western -amx Anmatyerre 133.28584 -22.28531 Australian, Pama-Nyungan, Arandic -amy Ami 130.0399 -13.55727 Australian, Daly, Bringen-Wagaydy, Wagaydy -amz Atampaya 142.2726 -11.0018 Australian, Pama-Nyungan, Paman, Northern Pama -ana Andaqui -75.99999 2.74999 Paezan -anb Andoa -76.60558 -3.29664 Zaparoan, Záparo, Arabela-Andoa -anc Ngas 9.46146 9.32042 Afro-Asiatic, Chadic, West, A, A.3, Angas Proper, 1 -and Ansus 135.86627 -1.7543 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Yapen, Central-Western -ane Xârâcùù 165.99607 -21.70338 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Southern, South, Xaracuu-Xaragure -anf Animere 0.41962 7.60385 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Kebu-Animere -anh Nend 144.88584 -5.04271 Trans-New Guinea, Madang, South Adelbert Range, Wanang, Atan -ani Andi 46.29187 42.80785 North Caucasian, East Caucasian, Avar-Andic, Andic -anj Anor 144.80097 -4.98449 Ramu-Lower Sepik, Ramu, Middle Ramu -ank Goemai 9.72453 8.74455 Afro-Asiatic, Chadic, West, A, A.3, Angas Proper, 2 -anl Anu 98.5945 23.33942 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Mru -anm Anal 94.14349 24.0492 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -ann Obolo 7.81985 4.62851 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo -ano Andoque -72.08686 -0.53751 Language isolate -anp Angika 87.12597 24.33037 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Unclassified -anq Jarawa 92.65803 11.60889 Andamanese, South Andamanese -anr Andh 77.71561 19.47335 Indo-European, Indo-Iranian, Indo-Aryan, Unclassified -ans Anserma -76.04999 6.24999 Paezan, Coconuco -ant Antakarinya 134.83783 -27.11522 Australian, Pama-Nyungan, South-West, Wati -anu Anuak 33.6473 7.5675 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Luo, Northern, Anuak -anv Denya 9.39989 5.97237 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Mamfe -anw Anaang 7.57969 4.94832 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Efik -anx Andra-Hus 147.08493 -2.05894 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, East -any Anyin -3.76951 6.79773 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Central, Bia, Northern -anz Anem 148.99315 -5.54836 Yele-West New Britain, West New Britain -aoa Angolar 6.59486 0.11438 Creole, Portuguese based -aob Abom 142.84233 -8.42448 Trans-New Guinea, Tirio -aoc Pemon -62.03638 5.29 Cariban, North Amazonian, Pemón, Pemón proper -aod Andarum 144.76673 -4.48734 Ramu-Lower Sepik, Ramu, Tanggu -aoe Angal Enen 143.58326 -6.23296 Trans-New Guinea, Engan, Angal-Kewa -aof Bragat 142.49451 -3.48707 Torricelli, Wapei-Palei, Palei -aog Angoram 144.02814 -4.07758 Ramu-Lower Sepik, Lower Sepik, Angoram -aoh Arma -75.99999 2.03332 Paezan, Coconuco -aoi Anindilyakwa 136.6415 -13.99904 Australian, Gunwingguan, Enindhilyagwa -aoj Mufian 142.95453 -3.57932 Torricelli, Kombio-Arapesh, Arapesh -aok Arhö 165.16057 -21.31834 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Southern, South, Wailic -aol Alor 124.26377 -8.20382 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -aom Ömie 148.10712 -9.03136 Trans-New Guinea, Southeast Papuan, Koiarian, Baraic -aon Bumbita Arapesh 142.8592 -3.65508 Torricelli, Kombio-Arapesh, Arapesh -aor Aore 167.16614 -15.57526 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -aos Taikat 140.7495 -2.9408 Border, Taikat -aot Atong 92.707 26.354 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Bodo-Koch, Koch -aox Atorada -59.014 2.793 Maipurean, Northern, Maritime, Wapixana -aoz Uab Meto 124.14365 -9.77284 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor, Uab Meto -apb Sa'a 161.46689 -9.60258 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, Malaita, Southern -apc North Levantine Spoken Arabic 36.63659 33.43367 Afro-Asiatic, Semitic, Central, South, Arabic -apd Sudanese Spoken Arabic 29.3414 15.69465 Afro-Asiatic, Semitic, Central, South, Arabic -ape Bukiyip 143.11061 -3.47169 Torricelli, Kombio-Arapesh, Arapesh -apg Ampanang 116.34896 -0.79259 Austronesian, Malayo-Polynesian, Greater Barito, Barito-Mahakam -aph Athpariya 87.32958 26.87944 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -api Apiacá -57.91002 -7.84711 Tupian, Tupí-Guaraní, Kawahib -apj Jicarilla Apache -107.00694 36.8079 Eyak-Athabaskan, Athabaskan, Apachean, Apache -apk Kiowa Apache -98.24612 34.90771 Eyak-Athabaskan, Athabaskan, Apachean, Apache -apl Lipan Apache -105.81939 33.27479 Eyak-Athabaskan, Athabaskan, Apachean, Apache -apm Mescalero-Chiricahua Apache -105.56612 33.1291 Eyak-Athabaskan, Athabaskan, Apachean, Apache -apn Apinayé -47.63153 -6.10774 Jean, Northern -apo Apalik 149.96031 -6.29002 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Southwest New Britain, Arawe-Pasismanua, Arawe, West Arawe -app Apma 168.18897 -15.85593 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -apq A-Pucikwar 92.79646 12.24101 Andamanese, Great Andamanese, Central -apr Arop-Lukep 147.10339 -5.31671 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Korap -aps Arop-Sissano 142.11955 -3.06984 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Schouten, Siau -apt Apatani 93.72844 27.19331 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Tani -apu Apurinã -66.77141 -8.21692 Maipurean, Southern, Southern Outlier, Piro -apw Western Apache -110.12264 33.85743 Eyak-Athabaskan, Athabaskan, Apachean, Apache -apx Aputai 126.4958 -7.84732 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Southwest Maluku, Wetar -apy Apalaí -54.7457 1.49792 Cariban, Central -apz Safeyoka 146.08961 -7.05417 Trans-New Guinea, Angan, Nuclear Angan -aqc Archi 46.82673 42.3239 North Caucasian, East Caucasian, Lezgic, Archi -aqg Arigidi 5.89556 7.56324 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Defoid, Akokoid -aqm Atohwaim 138.66621 -6.27123 Trans-New Guinea, Kayagar -aqn Northern Alta 121.45394 15.6913 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, Alta -aqp Atakapa -93.08271 30.91207 -aqr Arhâ 165.27269 -21.28665 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Southern, South, Wailic -arb Standard Arabic 40.79884 23.70631 Afro-Asiatic, Semitic, Central, South, Arabic -ard Arabana 135.44893 -28.70501 Australian, Pama-Nyungan, Karnic, Palku -are Western Arrarnta 133.24621 -24.05052 Australian, Pama-Nyungan, Arandic -arf Arafundi 143.63712 -4.96449 -arg Aragonese -0.00919 42.46695 Indo-European, Italic, Romance, Italo-Western, Western, Pyrenean-Mozarabic, Pyrenean -arh Arhuaco -73.63629 10.70184 Chibchan, Chibchan B, Eastern Chibchan, Colombian, Northern Colombian, Arhuacan, Southern and Eastern Arhuacan -ari Arikara -102.28279 47.51965 Caddoan, Northern Caddoan, Kitsai-Proto-Pawnee, Proto-Pawnee -arj Arapaso -67.72816 0.13727 Tucanoan, Eastern Tucanoan -ark Arikapú -62.7261 -12.48782 Jabutian -arl Arabela -75.06117 -1.96126 Zaparoan, Záparo, Arabela-Andoa -arn Mapudungun -72.18261 -38.43638 Mapudungu -aro Araona -67.72934 -12.42423 Tacanan, Tacana -arp Arapaho -108.80964 43.38792 Algic, Algonquian, Arapaho -arq Algerian Spoken Arabic 3.23033 35.42078 Afro-Asiatic, Semitic, Central, South, Arabic -arr Karo -61.56908 -10.33424 Tupian, Ramarama -ars Najdi Spoken Arabic 43.90639 23.55493 Afro-Asiatic, Semitic, Central, South, Arabic -aru Arua -47.21818 -22.48633 -arv Arbore 36.79861 4.92183 Afro-Asiatic, Cushitic, East, Western Omo-Tana -arw Arawak -55.08124 5.49124 Maipurean, Northern, Maritime, Ta-Maipurean -arx Aruá -62.43568 -12.11857 Tupian, Mondé, Aruá -ary Moroccan Spoken Arabic -6.95087 33.21392 Afro-Asiatic, Semitic, Central, South, Arabic -arz Egyptian Spoken Arabic 31.0735 30.76099 Afro-Asiatic, Semitic, Central, South, Arabic -asa Asu 37.83226 -4.17978 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Shambala (G.22) -asb Assiniboine -103.5346 50.27022 Siouan-Catawban, Siouan, Mississippi Valley-Ohio Valley Siouan, Mississippi Valley Siouan, Dakota -asc Casuarina Coast Asmat 138.56574 -6.43005 Trans-New Guinea, Asmat-Kamoro, Asmat -asd Asas 145.54869 -5.69345 Trans-New Guinea, Madang, Rai Coast, Evapia -ase American Sign Language -78.3436 39.83135 Deaf sign language -asf Australian Sign Language 145.87165 -37.56293 Deaf sign language -asg Cishingini 4.48564 9.88458 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Kambari -ash Abishira -75.21832 -0.69386 Unclassified -asi Buruwai 133.32748 -3.54561 Trans-New Guinea, Asmat-Kamoro, Sabakor -asj Nsari 10.59934 6.63008 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Beboid -ask Ashkun 70.37453 34.84277 Indo-European, Indo-Iranian, Indo-Aryan, Nuristani -asl Asilulu 127.9523 -3.67302 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Piru Bay, West, Asilulu -asm Assamese 92.82779 26.25411 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bengali-Assamese -asn Xingú Asuriní -52.32101 -4.13463 Tupian, Tupí-Guaraní, Kayabí -aso Dano 145.2539 -5.92188 Trans-New Guinea, Kainantu-Goroka, Gorokan, Gahuku-Benabena -asp Algerian Sign Language 3.5462 36.4762 Deaf sign language -asq Austrian Sign Language 16.22499 48.11967 Deaf sign language -asr Asuri 83.45622 21.57205 Austro-Asiatic, Munda, North Munda, Kherwari, Mundari -ass Ipulo 9.64676 6.2918 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tivoid -ast Asturian -5.77354 43.33711 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Ibero-Romance, West Iberian, Asturo-Leonese -asu Asuriní -49.89913 -3.59359 Tupian, Tupí-Guaraní, Tenetehara, Akwawa -asv Asoa 26.71977 2.26818 Nilo-Saharan, Central Sudanic, East, Mangbetu -asw Australian Aborigines Sign Language 136.301 -12.73709 Deaf sign language -asx Muratayak 146.53995 -5.74416 Trans-New Guinea, Finisterre-Huon, Finisterre, Warup -asy Yaosakor Asmat 138.5822 -5.61024 Trans-New Guinea, Asmat-Kamoro, Asmat -asz As 131.72762 -0.75267 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Raja Ampat -ata Pele-Ata 151.05018 -5.58045 Yele-West New Britain, West New Britain -atb Zaiwa 98.34479 24.44678 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Burmish, Northern -atc Atsahuaca -69.49999 -14.16665 -atd Ata Manobo 125.4992 7.7789 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Manobo, Central, South, Ata-Tigwa -ate Atemble 144.80568 -5.08137 Trans-New Guinea, Madang, South Adelbert Range, Wanang, Atan -atf Atuence 99.2338 28.53222 -atg Ivbie North-Okpela-Arhe 6.21209 7.15307 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, North-Central, Ghotuo-Uneme-Yekhee -ati Attié -3.8209 5.9977 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Attie -atj Atikamekw -73.79888 47.95551 Algic, Algonquian, Cree-Montagnais -atk Ati 122.51179 11.15394 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, Central, Peripheral -atl Mt. Iraya Agta 123.55216 13.4588 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bikol, Coastal, Naga -atm Ata 122.9 9.715 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine -atn Ashtiani 48.68083 37.74693 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Central Iran -ato Atong 9.72121 6.03539 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Western Momo -atp Pudtol Atta 121.37861 18.21116 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Northern Cordilleran, Cagayan Valley, Ibanagic -atq Aralle-Tabulahan 119.3193 -2.78397 Austronesian, Malayo-Polynesian, South Sulawesi, Northern, Pitu Ulunna Salu -atr Atruahí -60.42595 -0.61832 Cariban, North Amazonian, Yawaperí -ats Gros Ventre -108.73841 48.48341 Algic, Algonquian, Arapaho -att Pamplona Atta 121.29955 18.47381 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Northern Cordilleran, Cagayan Valley, Ibanagic -atu Reel 30.49451 6.32234 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Dinka-Nuer, Nuer -atv Northern Altai 88.06722 50.89984 Altaic, Turkic, Northern -atw Atsugewi -120.66125 40.42711 Palaihnihan -atx Arutani -63.08958 3.62796 Language isolate -aty Aneityum 169.82523 -20.18636 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, South Vanuatu, Aneityum -atz Arta 121.65618 16.41851 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Arta -aua Asumboa 166.49868 -11.29693 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Temotu, Utupua-Vanikoro, Utupua -auc Waorani -76.68295 -1.12312 Language isolate -aud Anuta 162.24094 -10.75959 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Futunic -aue ‡Kx'au//'ein 20.57317 -21.29527 Khoisan, Southern Africa, Northern -aug Aguna 1.74452 7.49256 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe -auh Aushi 29.41937 -11.08795 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Bemba (M.402) -aui Anuki 149.82236 -9.6692 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Anuki -auj Awjilah 21.18188 29.23411 Afro-Asiatic, Berber, Eastern, Awjila-Sokna -auk Heyo 142.47056 -3.83003 Torricelli, Maimai, Maimai Proper -aul Aulua 167.69684 -16.35787 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Malekula Coastal -aum Asu 5.42081 10.08494 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Nupoid, Nupe-Gbagyi, Nupe -aun Molmo One 141.80584 -3.38127 Torricelli, West Wapei, One -auo Auyokawa 11.32197 9.85747 -aup Makayam 142.70555 -8.37312 Trans-New Guinea, Tirio -auq Anus 139.50194 -2.26271 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Sarmi-Jayapura Bay, Sarmi -aur Aruek 142.71539 -3.37841 Torricelli, Kombio-Arapesh, Kombio -aut Austral -149.46195 -23.38431 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, East, Central, Tahitic -auu Auye 136.09604 -3.43705 Trans-New Guinea, West, Wissel Lakes -auv Auvergnat 3.48406 45.23916 -auw Awyi 140.60389 -3.00564 Border, Taikat -aux Aurá -46.792 -4.137 Tupian, Tupí-Guaraní, Wayampí -auy Awiyaana 145.75972 -6.54079 Trans-New Guinea, Kainantu-Goroka, Kainantu, Gadsup-Auyana-Awa -auz Uzbeki Spoken Arabic 65.38644 40.26116 Afro-Asiatic, Semitic, Central, South, Arabic -ava Avar 46.56284 42.42226 North Caucasian, East Caucasian, Avar-Andic, Avar -avb Avau 150.42742 -6.24342 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Southwest New Britain, Arawe-Pasismanua, Arawe, East Arawe -avd Alviri-Vidari 50.37939 35.00753 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Talysh -ave Avestan 53.633 31.541 Indo-European, Indo-Iranian, Iranian -avi Avikam -5.2529 5.15838 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Avikam-Alladian -avl Eastern Egyptian Bedawi Spoken Arabic 33.61126 29.67415 Afro-Asiatic, Semitic, Central, South, Arabic -avn Avatime 0.41314 6.8688 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Avatime-Nyangbo -avo Agavotaguerra -53.43936 -13.29849 Unclassified -avs Aushiri -74.54111 -3.3196 Language isolate -avt Au 142.1046 -3.53277 Torricelli, Wapei-Palei, Wapei -avu Avokaya 29.99855 4.82505 Nilo-Saharan, Central Sudanic, East, Moru-Madi, Central -avv Avá-Canoeiro -48.13356 -13.60814 Tupian, Tupí-Guaraní, Tenetehara -awa Awadhi 81.87432 27.56373 Indo-European, Indo-Iranian, Indo-Aryan, East Central zone -awb Awa 145.71416 -6.65534 Trans-New Guinea, Kainantu-Goroka, Kainantu, Gadsup-Auyana-Awa -awc Western Acipa 5.54073 11.04175 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Kamuku -awe Awetí -53.58519 -12.93358 Tupian -awh Awbono 139.72441 -5.05875 Bayono-Awbono -awi Aekyom 141.53229 -5.88478 Trans-New Guinea, Awin-Pare -awk Awabakal 151.43555 -33.12847 Australian, Pama-Nyungan, Worimi -awm Arawum 145.90317 -5.52787 Trans-New Guinea, Madang, Rai Coast, Kabenau -awn Awngi 36.69164 10.98191 Afro-Asiatic, Cushitic, Central, Southern -awo Awak 11.32906 9.86334 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Waja, Awak -awr Awera 136.06341 -2.71886 Lakes Plain, Awera -aws South Awyu 139.53808 -7.36301 Trans-New Guinea, Ok-Awyu, Awyu-Dumut, Awyu -awt Araweté -52.50009 -4.90246 Tupian, Tupí-Guaraní -awu Central Awyu 139.69256 -6.29363 Trans-New Guinea, Ok-Awyu, Awyu-Dumut, Awyu -awv Jair Awyu 140.1037 -6.79732 Trans-New Guinea, Ok-Awyu, Awyu-Dumut, Awyu -aww Awun 141.99886 -3.79671 Sepik, Yellow River -awx Awara 146.37187 -6.16986 Trans-New Guinea, Finisterre-Huon, Finisterre, Wantoat -awy Edera Awyu 139.91413 -7.0038 Trans-New Guinea, Ok-Awyu, Awyu-Dumut, Awyu -axb Abipon -65.863 -35.962 Guaykuruan, Southern -axg Mato Grosso Arara -55.869 -13.175 Unclassified -axk Yaka 17.2713 3.6515 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngondi (C.104) -axx Xaragure 166.37571 -21.8223 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Southern, South, Xaracuu-Xaragure -aya Awar 144.83607 -4.13554 Ramu-Lower Sepik, Ramu, Ottilien, Bosmun-Awar -ayb Ayizo Gbe 2.20552 6.62654 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe, Aja -ayc Southern Aymara -70.34424 -17.14171 Aymaran, Aymara -ayd Ayabadhu 142.89347 -14.66524 Australian, Pama-Nyungan, Paman, Middle Pama -aye Ayere 6.01979 7.52206 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Defoid, Ayere-Ahan -ayg Ginyanga 0.98348 8.2327 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Guang, North Guang -ayh Hadrami Spoken Arabic 48.65241 15.44676 Afro-Asiatic, Semitic, Central, South, Arabic -ayi Leyigha 8.20861 5.98832 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Central, East-West, Mbembe-Legbo, Legbo -ayk Akuku 6.34264 7.40354 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Northwestern, Southern -ayl Libyan Spoken Arabic 17.27292 28.64352 Afro-Asiatic, Semitic, Central, South, Arabic -ayn Sanaani Spoken Arabic 44.84118 15.65517 Afro-Asiatic, Semitic, Central, South, Arabic -ayo Ayoreo -59.57716 -20.44264 Zamucoan -ayp North Mesopotamian Spoken Arabic 43.64038 34.71398 Afro-Asiatic, Semitic, Central, South, Arabic -ayq Ayi 142.40679 -3.95946 Sepik, Tama -ayr Central Aymara -68.31289 -18.10344 Aymaran, Aymara -ays Sorsogon Ayta 124.16469 13.04255 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine -ayt Bataan Ayta 120.48961 14.41534 Austronesian, Malayo-Polynesian, Philippine, Central Luzon, Sambalic -ayu Ayu 8.60225 9.2634 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Ayu -ayx Ayi 98.86843 27.12131 -ayy Tayabas Ayta 121.29319 16.31714 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine -ayz Mai Brat 132.59118 -1.3679 Maybrat -azb South Azerbaijani 47.66945 37.8734 Altaic, Turkic, Southern, Azerbaijani -aze Azerbaijani 47 37 Altaic, Turkic, Southern, Azerbaijani -azg San Pedro Amuzgos Amuzgo -98.04643 16.51976 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Amuzgo -azj North Azerbaijani 47.68707 40.2128 Altaic, Turkic, Southern, Azerbaijani -azm Ipalapa Amuzgo -98.01287 16.50531 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Amuzgo -azo Awing 10.26405 5.88362 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Ngemba -azr Adzera 146.29442 -6.39394 -azt Faire Atta 121.43626 17.98083 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Northern Cordilleran, Cagayan Valley, Ibanagic -azz Highland Puebla Nahuatl -97.55562 20.15536 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -baa Babatana 157.14937 -7.22281 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Choiseul -bab Bainouk-Gunyuno -16.05858 12.31277 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Eastern Senegal-Guinea, Banyun -bac Badui 106.17663 -6.35359 Austronesian, Malayo-Polynesian, Sundanese -bae Bare -66.82799 1.91649 Maipurean, Northern, Upper Amazon, Central Upper Amazon, Baré -baf Nubaca 11.02897 4.35696 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Sanaga (A.621) -bag Tuki 11.53531 4.64348 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Sanaga (A.601) -bah Bahamas Creole English -78.08002 24.76289 Creole, English based, Atlantic, Eastern, Northern -baj Barakai 134.67109 -6.7394 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Aru -bak Bashkir 56.55937 53.59671 Altaic, Turkic, Western, Uralian -bam Bamanankan -6.76313 11.89483 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding, Manding-East, Northeastern Manding, Bamana -ban Bali 115.07496 -8.35714 Austronesian, Malayo-Polynesian, Bali-Sasak-Sumbawa -bao Waimaha -70.39047 0.21763 Tucanoan, Eastern Tucanoan, Bará-Tuyuka -bap Bantawa 87.04738 27.12147 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -bar Bavarian 13.25656 47.81682 Indo-European, Germanic, West, High German, German, Upper German, Bavarian-Austrian -bas Basaa 10.42135 3.80765 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Basaa (A.43) -bau Bada 10.21664 9.42456 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Jarawan, Nigerian -bav Vengo 10.41372 6.11403 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Ring, South -baw Bambili-Bambui 10.22335 6.10821 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Ngemba -bax Bamun 10.84772 5.49017 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Nun -bay Batuley 134.78651 -5.74908 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Aru -baz Tunen 10.54559 4.67724 -bba Baatonum 2.68751 9.94229 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Bariba -bbb Barai 147.89923 -9.46246 Trans-New Guinea, Southeast Papuan, Koiarian, Baraic -bbc Batak Toba 99.17614 2.35498 Austronesian, Malayo-Polynesian, Northwest Sumatra-Barrier Islands, Batak, Southern -bbd Bau 145.61147 -5.26465 Trans-New Guinea, Madang, Croisilles, Gum -bbe Bangba 28.31376 3.39956 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Ngbaka, Eastern, Mayogo-Bangba -bbf Baibai 141.34536 -3.42672 Fas -bbg Barama 10.6777 -2.49659 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Shira-Punu (B.402) -bbh Bugan 104.96286 23.61242 Austro-Asiatic, Mon-Khmer, Palyu -bbi Barombi 9.25261 4.64584 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Basaa (A.41) -bbj Ghomálá' 10.35202 5.39619 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Bamileke -bbk Babanki 10.28692 5.97863 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Ring, Center -bbl Bats 45.34397 42.1806 North Caucasian, East Caucasian, Nakh, Batsi -bbm Babango 23.58512 1.79475 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngombe (C.441) -bbn Uneapa 149.14064 -4.89383 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, Bali-Vitu -bbo Northern Bobo Madaré -4.36323 12.42396 Niger-Congo, Mande, Western, Northwestern, Soninke-Bobo, Bobo -bbp West Central Banda 20.45107 5.98417 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Banda, West Central -bbq Bamali 10.45671 5.91327 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Nun -bbr Girawa 145.42332 -5.35342 Trans-New Guinea, Madang, Croisilles, Kokon -bbs Bakpinka 8.26321 5.26756 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Agoi-Doko-Iyoniyong -bbt Mburku 9.81365 10.92756 Afro-Asiatic, Chadic, West, B, B.2 -bbu Kulung 11.04651 9.20815 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Jarawan, Nigerian -bbv Karnai 147.91685 -5.74133 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Korap -bbw Baba 10.52159 6.11222 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Nun -bbx Bubia 9.22304 4.02178 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Duala (A.221) -bby Befang 10.03422 6.27562 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Menchum -bbz Babalia Creole Arabic 16.69248 12.76174 Creole, Arabic based -bca Central Bai 99.70522 26.1666 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Bai -bcb Bainouk-Samik -15.99689 12.5053 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Eastern Senegal-Guinea, Banyun -bcc Southern Balochi 64.33913 26.04562 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Balochi -bcd North Babar 129.74277 -7.84311 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Babar, North -bce Bamenyam 10.33016 5.77049 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Nun -bcf Bamu 143.54524 -7.93818 Trans-New Guinea, Kiwaian -bcg Baga Binari -14.61106 10.52708 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Mel, Temne, Baga -bch Bariai 148.66608 -5.5087 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Ngero, Bariai -bci Baoulé -4.76565 5.42509 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Central, Bia, Northern -bcj Bardi 122.90561 -16.62743 Australian, Nyulnyulan -bck Bunaba 125.63098 -17.82967 Australian, Bunaban -bcl Central Bicolano 123.40331 13.75743 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bikol, Coastal, Naga -bcm Bannoni 155.12771 -6.23061 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Piva-Banoni -bcn Bali 11.29518 8.81345 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Mumuye-Yandang, Yandang -bco Kaluli 142.78806 -6.45932 Trans-New Guinea, Bosavi -bcp Bali 26.59406 1.1807 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Lega-Holoholo (D.21) -bcq Bench 35.7673 7.04682 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gimojan, Ometo-Gimira, Gimira -bcr Babine -126.41041 55.09968 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -bcs Kohumono 7.96202 5.92596 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Central, North-South, Ubaghara-Kohumono, Kohumono -bct Bendi 30.36789 2.20229 Nilo-Saharan, Central Sudanic, East, Mangbutu-Efe -bcu Awad Bing 146.35521 -5.59896 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Bel, Astrolabe -bcv Shoo-Minda-Nye 10.96424 8.92577 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Central, Jukun-Mbembe-Wurbo, Unclassified -bcw Bana 13.61308 10.35353 Afro-Asiatic, Chadic, Biu-Mandara, A, A.3 -bcx Pamona 121.26817 -1.62663 -bcy Bacama 12.04157 9.53072 Afro-Asiatic, Chadic, Biu-Mandara, A, A.8 -bcz Bainouk-Gunyaamolo -16.0806 12.54318 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Eastern Senegal-Guinea, Banyun -bda Bayot -16.35691 12.45645 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Bak, Jola, Bayot -bdb Basap 117.94191 1.41405 Austronesian, Malayo-Polynesian, North Borneo, Rejang-Sajau -bdc Emberá-Baudó -77.1533 5.23658 Chocoan, Emberá, Southern Emberá -bdd Bunama 151.06647 -10.07609 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Dobu-Duau -bde Bade 10.65567 12.78899 Afro-Asiatic, Chadic, West, B, B.1, Bade Proper -bdg Bonggi 117.17448 7.29249 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Bisaya -bdh Baka 29.70084 4.76584 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Bongo-Baka, Baka -bdi Burun 33.92099 10.72505 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Luo, Northern, Mabaan-Burun, Burun -bdj Bai 26.48246 7.57221 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Sere, Sere-Bviri, Bai-Viri -bdk Budukh 48.33533 41.22722 North Caucasian, East Caucasian, Lezgic, Nuclear Lezgic, South Lezgic -bdl Indonesian Bajau 122.25334 -3.68664 Austronesian, Malayo-Polynesian, Greater Barito, Sama-Bajaw, Sulu-Borneo, Borneo Coast Bajaw -bdm Buduma 14.55587 13.37636 Afro-Asiatic, Chadic, Biu-Mandara, B, B.1, Buduma -bdn Baldemu 14.46735 10.90776 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -bdo Bernde 17.64653 12.14611 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Bagirmi -bdp Bende 30.59255 -6.22082 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, F, Tongwe-Bende (F.12) -bdq Bahnar 108.47084 14.04764 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, Central Bahnaric -bdr West Coast Bajau 116.12438 6.00631 Austronesian, Malayo-Polynesian, Greater Barito, Sama-Bajaw, Sulu-Borneo, Borneo Coast Bajaw -bds Burunge 35.96295 -5.21369 Afro-Asiatic, Cushitic, South -bdt Bokoto 16.67208 4.75111 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Gbaya-Manza-Ngbaka, Central -bdu Oroko 9.15209 4.89504 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Lundu-Balong (A.11) -bdv Bodo Parja 82.87742 19.0745 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Oriya -bdw Baham 132.63746 -3.10628 Trans-New Guinea, West, West Bomberai, West Bomberai Proper -bdx Budong-Budong 119.32726 -2.07756 Austronesian, Malayo-Polynesian, South Sulawesi, Seko, Panasuan -bdy Bandjalang 152.85886 -28.34583 Australian, Pama-Nyungan, Bandjalangic -bdz Badeshi 72.68225 35.2655 Indo-European, Indo-Iranian, Unclassified -bea Beaver -120.35198 56.79842 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -beb Bebele 12.82397 4.78874 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Ewondo-Fang (A.73) -bec Iceve-Maci 9.50858 6.30667 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tivoid -bed Bedoanas 132.56583 -2.74438 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Bomberai -bee Byangsi 80.447 29.883 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Himalayish, Almora -bef Benabena 145.53446 -6.09974 Trans-New Guinea, Kainantu-Goroka, Gorokan, Gahuku-Benabena -beg Belait 114.93293 4.96207 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Berawan-Lower Baram, Lower Baram, Central, A -beh Biali 1.04245 10.7758 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Eastern -bei Bekati' 109.57641 1.3307 Austronesian, Malayo-Polynesian, Land Dayak, Bakati’ -bej Bedawi 35.80868 18.7757 Afro-Asiatic, Cushitic, North -bek Bebeli 150.32311 -5.63282 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Southwest New Britain, Arawe-Pasismanua, Arawe, East Arawe -bel Belarusan 27.97385 53.85719 Indo-European, Slavic, East -bem Bemba 30.5619 -10.11841 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Bemba (M.42) -ben Bengali 90.2203 21.82808 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bengali-Assamese -beo Beami 142.50775 -6.14949 Trans-New Guinea, Bosavi -bep Besoa 120.37876 -1.60095 Austronesian, Malayo-Polynesian, Celebic, Kaili-Pamona, Southern, Badaic -beq Beembe 14.10001 -3.95895 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Kikongo (H.11) -bes Besme 16.09382 9.59226 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Kim -bet Guiberoua Béte -6.51291 6.13837 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Eastern, Bete, Western -beu Blagar 124.25117 -8.31787 Trans-New Guinea, West, Timor-Alor-Pantar, Alor-Pantar, Pantar -bev Daloa Bété -6.63944 6.69281 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Eastern, Bete, Western -bew Betawi 107.02181 -6.21174 Creole, Malay based -bex Jur Modo 29.97403 6.03321 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Bongo-Baka, Morokodo-Beli -bey Beli 142.33994 -3.67881 Torricelli, Maimai, Beli -bez Bena 35.03643 -9.26671 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Bena-Kinga (G.63) -bfa Bari 31.13922 4.74728 Nilo-Saharan, Eastern Sudanic, Nilotic, Eastern, Bari -bfb Pauri Bareli 74.337 21.228 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -bfc Northern Bai 99.656 26.925 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Bai -bfd Bafut 10.11939 6.14153 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Ngemba -bfe Betaf 139.25538 -2.12422 Tor-Kwerba, Orya-Tor, Tor -bff Bofi 17.30319 4.02043 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Gbaya-Manza-Ngbaka, East -bfg Busang Kayan 115.40134 0.03494 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kayanic, Kayan Proper -bfh Blafe 141.22623 -8.56161 South-Central Papuan, Morehead-Upper Maro, Tonda -bfi British Sign Language -0.4431 51.66878 Deaf sign language -bfj Bafanji 10.45179 5.84612 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Nun -bfk Ban Khor Sign Language 103.296 16.911 Deaf sign language -bfl Banda-Ndélé 21.79831 8.05833 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Banda, Central, Central Core, Banda-Ndele -bfm Mmen 10.25411 6.43213 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Ring, Center -bfn Bunak 125.29556 -9.14739 Trans-New Guinea, West, Timor-Alor-Pantar, Timor -bfo Malba Birifor -2.90623 9.78465 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Western, Northwest, Dagaari-Birifor, Birifor -bfp Beba 9.73577 6.32256 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Ngemba -bfq Badaga 76.59736 11.30938 Dravidian, Southern, Tamil-Kannada, Kannada -bfr Bazigar 77.22129 25.29769 Dravidian, Unclassified -bfs Southern Bai 100.289 25.519 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Bai -bft Balti 76.01403 35.15006 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Western -bfu Gahri 77.01567 32.63756 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Himalayish, Kinauri -bfw Bondo 83.81415 19.15124 Austro-Asiatic, Munda, South Munda, Koraput Munda, Gutob-Remo-Geta’, Gutob-Remo -bfy Bagheli 87.55073 22.86126 Indo-European, Indo-Iranian, Indo-Aryan, East Central zone -bfz Mahasu Pahari 77.53166 31.00883 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Western Pahari -bga Gwamhi-Wuri 5.07897 11.8081 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Duka -bgb Bobongko 121.92193 -0.36759 Austronesian, Malayo-Polynesian, Celebic, Eastern, Saluan-Banggai, Western, Saluanic -bgc Haryanvi 76.0432 29.01658 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Western Hindi, Unclassified -bgd Rathwi Bareli 74.99576 21.43752 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -bge Bauria 75.87131 25.29769 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -bgf Bangandu 15.32044 2.23863 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Gbaya-Manza-Ngbaka, Southwest -bgg Bugun 92.367 27.204 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Kho-Bwa -bgh Bogan 101.438 24.512 -bgi Giangan 125.3591 6.99967 Austronesian, Malayo-Polynesian, Philippine, Bilic -bgj Bangolan 10.66697 6.0125 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Nun -bgk Bit 102.03513 21.44574 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Khmuic, Khao -bgl Bo 104.95342 18.18657 Austro-Asiatic, Mon-Khmer, Viet-Muong, Muong -bgm Baga Mboteni -12.07358 12.27246 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Mbulungish-Nalu -bgn Western Balochi 64.06447 28.05372 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Balochi -bgo Baga Koga -13.94696 10.12862 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Mel, Temne, Baga -bgp Eastern Balochi 68.80377 28.80273 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Balochi -bgq Bagri 74.05897 29.60153 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Unclassified -bgr Bawm Chin 93.10768 22.31508 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Central -bgs Tagabawa 125.17494 6.9712 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Manobo, South -bgt Bughotu 159.80177 -8.47948 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Gela-Guadalcanal, Bughotu -bgu Mbongno 11.13165 6.82543 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Mambiloid, Mambila-Konja, Magu-Kamkam-Kila -bgv Warkay-Bipim 138.63752 -5.7716 Trans-New Guinea, Marind, Yaqay -bgw Bhatri 82.24055 19.26078 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Oriya -bgx Balkan Gagauz Turkish 26.65364 41.06579 Altaic, Turkic, Southern, Turkish -bgy Benggoi 130.09068 -3.13924 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Manusela-Seti -bgz Banggai 123.17079 -1.58305 Austronesian, Malayo-Polynesian, Celebic, Eastern, Saluan-Banggai, Eastern -bha Bharia 83.10707 22.34293 Dravidian, Unclassified -bhb Bhili 73.95923 20.84998 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -bhc Biga 130.27208 -1.99574 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Raja Ampat -bhd Bhadrawahi 75.87067 33.28509 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Western Pahari -bhe Bhaya 69.31 25.482 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Western Hindi, Unclassified -bhf Odiai 141.33615 -3.82276 Language isolate -bhg Binandere 147.88438 -8.37433 Trans-New Guinea, Greater Binanderean, Binanderean, Nuclear Binanderean, Binandere -bhh Bukharic 34.56394 31.48545 Indo-European, Indo-Iranian, Iranian, Western, Southwestern, Persian -bhi Bhilali 74.59014 22.58346 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -bhj Bahing 86.39487 27.33227 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Western -bhk Albay Bicolano 123.48979 13.19891 -bhl Bimin 142.04036 -5.38732 Trans-New Guinea, Ok-Awyu, Ok, Mountain -bhm Bathari 50.23 16.936 Afro-Asiatic, Semitic, South, South Arabian -bhn Bohtan Neo-Aramaic 45.083 41.471 Afro-Asiatic, Semitic, Central, Aramaic, Eastern, Central, Northeastern -bho Bhojpuri 84.48966 25.84574 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bihari -bhp Bima 118.44507 -8.57376 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -bhq Tukang Besi South 123.94804 -5.7478 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Muna-Buton, Tukangbesi-Bonerate -bhr Bara Malagasy 45.59374 -23.97158 Austronesian, Malayo-Polynesian, Greater Barito, East, Malagasy -bhs Buwal 13.88377 10.61513 Afro-Asiatic, Chadic, Biu-Mandara, A, A.7 -bht Bhattiyali 76.03107 32.40218 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Western Pahari -bhu Bhunjia 83.16136 21.27608 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Oriya -bhv Bahau 115.33208 0.30801 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kayanic, Kayan Proper -bhw Biak 135.87917 -0.9523 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Biakic -bhx Bhalay 77.82676 21.2665 Indo-European, Indo-Iranian, Indo-Aryan, Southern zone, Unclassified -bhy Bhele 28.66809 0.24553 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.31) -bhz Bada 120.31922 -1.80249 Austronesian, Malayo-Polynesian, Celebic, Kaili-Pamona, Southern, Badaic -bia Badimaya 117.2464 -29.0647 Australian, Pama-Nyungan, South-West, Wadjari -bib Bissa -0.46336 11.45787 Niger-Congo, Mande, Eastern, Eastern, Bissa -bic Bikaru 142.94523 -4.86 Sepik, Sepik Hill, Sanio -bid Bidiyo 18.80649 11.92036 Afro-Asiatic, Chadic, East, B, B.1, 1 -bie Bepour 145.44168 -4.5985 Trans-New Guinea, Madang, Croisilles, Pihom, Kumilan -bif Biafada -15.13467 11.46701 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Eastern Senegal-Guinea, Tenda -big Biangai 146.76483 -7.33882 Trans-New Guinea, Southeast Papuan, Goilalan, Kunimaipa -bii Bisu 100.21341 21.95752 -bij Vaghat-Ya-Bijim-Legeri 9.56547 9.64648 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Southwestern, A -bil Bile 11.19066 8.90052 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Jarawan, Nigerian -bim Bimoba 0.06121 10.45746 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Gurma, Moba -bin Edo 5.70426 6.40701 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, North-Central, Edo-Esan-Ora -bio Nai 141.27254 -3.73034 Kwomtari, Nuclear Kwomtari -bip Bila 28.76265 1.16839 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.311) -biq Bipi 146.39801 -2.11115 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, West -bir Bisorio 143.21255 -4.77763 Trans-New Guinea, Engan, Enga -bis Bislama 168.29681 -17.7209 Creole, English based, Pacific -bit Berinomo 142.46278 -4.41689 Sepik, Sepik Hill, Bahinemo -biu Biete 73.65129 21.4452 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -biv Southern Birifor -2.61071 9.27512 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Western, Northwest, Dagaari-Birifor, Birifor -biw Kol 12.8574 3.65994 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Makaa-Njem (A.832) -bix Bijori 84.1907 22.59038 Austro-Asiatic, Munda, North Munda, Kherwari -biy Birhor 85.56115 23.585 Austro-Asiatic, Munda, North Munda, Kherwari, Mundari -biz Baloi 18.12661 0.93777 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.31) -bja Budza 22.61069 2.19951 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.37) -bjb Banggarla 136.0792 -33.30362 Australian, Pama-Nyungan, South-West, Yura -bjc Bariji 148.45354 -9.231 Trans-New Guinea, Southeast Papuan, Yareban -bjd Bandjigali 143.28244 -30.07713 -bje Biao-Jiao Mien 111.3442 25.53089 Hmong-Mien, Mienic, Biao-Jiao -bjf Barzani Jewish Neo-Aramaic 35.15357 31.76957 Afro-Asiatic, Semitic, Central, Aramaic, Eastern, Central, Northeastern -bjg Bidyogo -16.14972 11.10971 Niger-Congo, Atlantic-Congo, Atlantic, Bijago -bjh Bahinemo 142.8322 -4.55527 Sepik, Sepik Hill, Bahinemo -bji Burji 37.85176 5.43223 Afro-Asiatic, Cushitic, East, Highland -bjj Kanauji 79.2883 27.1074 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Western Hindi, Unclassified -bjk Barok 152.19344 -3.47672 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, Madak -bjl Bulu 150.10143 -5.06134 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, Willaumez -bjm Bajelani 42.98673 33.94978 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Zaza-Gorani -bjn Banjar 114.62579 -4.15948 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -bjo Mid-Southern Banda 21.08315 5.11741 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Banda, Central, Central Core, Mid-Southern -bjp Fanamaket 152.920592 -4.285326 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Patpatar-Tolai -bjq Southern Betsimisaraka Malagasy 48.11078 -20.86868 -bjr Binumarien 146.10232 -6.22068 Trans-New Guinea, Kainantu-Goroka, Kainantu, Tairora -bjs Bajan -59.53465 13.13648 Creole, English based, Atlantic, Eastern, Southern -bjt Balanta-Ganja -15.66585 12.53821 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Bak, Balant-Ganja -bju Busuu 9.78433 6.68152 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Unclassified -bjv Bedjond 17.2691 8.60006 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Sara Proper -bjw Bakwé -6.51077 5.23123 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Eastern, Bakwe -bjx Banao Itneg 121.04991 17.56429 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Kalinga-Itneg, Kalinga -bjy Bayali 151.69855 -24.97935 Australian, Pama-Nyungan, Waka-Kabic, Kingkel -bjz Baruga 148.76141 -9.40132 Trans-New Guinea, Greater Binanderean, Binanderean, Nuclear Binanderean, South Binanderean, Coastal Binanderean, Baruga -bka Kyak 11.27845 9.51524 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Jen -bkb Finallig 121.11048 17.03193 -bkc Baka 14.73379 2.12133 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Ngbaka, Western, Baka-Gundi -bkd Binukid 124.89245 8.15933 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Manobo, North -bke Bengkulu 102.54744 -3.86312 -bkf Beeke 29.98416 3.18438 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.335) -bkg Buraka 20.73737 4.45121 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Ngbaka, Western, Gbanzili -bkh Bakoko 9.99905 3.56518 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Basaa (A.43) -bki Baki 168.16506 -16.70956 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Epi, Lamenu-Baki, Baki-Bierebo -bkj Pande 16.22754 3.57935 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngondi (C.12) -bkk Brokskat 76.60261 34.53077 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Shina -bkl Berik 138.8659 -2.26904 Tor-Kwerba, Orya-Tor, Tor -bkm Kom 10.3348 6.2596 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Ring, Center -bkn Bukitan 115.16105 2.40995 Austronesian, Malayo-Polynesian, North Borneo, Melanau-Kajang, Kajang -bko Kwa' 10.3453 4.88273 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Bamileke -bkp Boko 18.88064 1.51612 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngondi (C.16) -bkq Bakairí -54.7034 -14.26284 Cariban, South Amazonian, Bakairí -bkr Bakumpai 114.76971 -1.98842 Austronesian, Malayo-Polynesian, Greater Barito, West, South -bks Masbate Sorsogon 124.0016 12.84378 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, Central, Warayan -bkt Boloki 18.45554 0.83463 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.36) -bku Buhid 121.20976 12.63958 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, South Mangyan, Buhid-Taubuid -bkv Bekwarra 8.86489 6.73737 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Bendi -bkw Bekwil 14.68688 1.77237 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Makaa-Njem (A.85) -bkx Baikeno 124.25622 -9.32991 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor, Uab Meto -bky Bokyi 9.04164 6.23842 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Bendi -bkz Bungku 122.21197 -3.22197 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Bungku-Tolaki, Eastern, East Coast -bla Blackfoot -113.2755 49.47284 Algic, Algonquian -blb Bilua 156.66311 -7.92388 Central Solomons -blc Bella Coola -126.68948 52.34481 Salish -bld Bolango 123.88798 0.39044 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Gorontalo-Mongondow, Gorontalic -ble Balanta-Kentohe -15.32209 11.82031 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Bak, Balant-Ganja -blf Buol 121.51903 0.97727 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Gorontalo-Mongondow, Gorontalic -blg Balau 110.91342 1.33476 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Ibanic -blh Kuwaa -9.9765 7.54885 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Kuwaa -bli Bolia 18.09748 -1.38362 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.35) -blj Bolongan 117.29306 2.75927 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Murutic, Tidong -blk Pa'o Karen 97.12815 20.6799 Sino-Tibetan, Tibeto-Burman, Karenic, Peripheral -bll Biloxi -89.19508 31.31999 -blm Beli 29.79543 6.40428 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Bongo-Baka, Morokodo-Beli -bln Southern Catanduanes Bicolano 124.28969 13.69895 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bikol, Coastal, Virac -blo Anii 1.64186 9.18615 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Basila-Adele -blp Blablanga 159.41863 -8.15058 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Santa Isabel, Central -blq Baluan-Pam 147.28194 -2.5604 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Southeast Islands -blr Blang 99.17203 24.48598 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Eastern Palaungic, Waic, Bulang -bls Balaesang 119.68862 -0.05644 Austronesian, Malayo-Polynesian, Celebic, Tomini-Tolitoli, Tomini, Southern -blt Tai Dam 103.70305 21.08095 Tai-Kadai, Kam-Tai, Tai, Southwestern -blu Hmong Njua 105.48268 27.88614 -blv Bolo 15.0867 -10.35106 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Kimbundu (H.23) -blw Balangao 121.27186 17.09937 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Nuclear Cordilleran, Balangaw -blx Mag-Indi Ayta 120.182 14.96171 Austronesian, Malayo-Polynesian, Philippine, Central Luzon, Sambalic -bly Notre 1.27435 10.70255 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Western, Nootre -blz Balantak 123.28932 -0.86809 Austronesian, Malayo-Polynesian, Celebic, Eastern, Saluan-Banggai, Eastern -bma Lame 8.78768 10.72287 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Jarawan, Nigerian -bmb Bembe 28.48541 -4.16088 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bembe-Buyi (D.54) -bmc Biem 144.81585 -3.61342 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Schouten, Kairiru-Manam, Manam -bmd Baga Manduri -14.60521 10.76747 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Mel, Temne, Baga -bme Limassa 20.558 4.753 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Ngbaka, Western, Baka-Gundi -bmf Bom -11.59696 9.27518 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Mel, Bullom-Kissi, Bullom, Northern -bmg Bamwe 19.16445 2.16773 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngombe (C.412) -bmh Kein 145.48294 -5.3373 Trans-New Guinea, Madang, Croisilles, Kokon -bmi Bagirmi 16.4259 11.11799 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Bagirmi -bmj Bote-Majhi 84.34801 27.70739 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Unclassified -bmk Ghayavi 149.84038 -10.011 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Are-Taupota, Are -bml Bomboli 18.5131 1.99315 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngondi (C.161) -bmm Northern Betsimisaraka Malagasy 48.81197 -19.91844 Austronesian, Malayo-Polynesian, Greater Barito, East, Malagasy -bmn Bina 149.66147 -10.2667 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Central Papuan, Oumic, Magoric -bmo Bambalang 10.54395 5.861 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Nun -bmp Bulgebi 146.40282 -5.69713 Trans-New Guinea, Finisterre-Huon, Finisterre, Warup -bmq Bomu -4.49861 12.69108 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Bwamu -bmr Muinane -72.42495 -0.8652 Witotoan, Proto-Bora-Muinane -bms Bilma Kanuri 13.06649 19.10003 Nilo-Saharan, Saharan, Western, Kanuri -bmt Biao Mon 113.46905 24.64507 Hmong-Mien, Mienic, Mian-Jin -bmu Burum-Mindik 147.33332 -6.51663 Trans-New Guinea, Finisterre-Huon, Huon, Western -bmv Bum 10.41798 6.48655 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Ring, Center -bmw Bomwali 16.08587 1.51302 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Makaa-Njem (A.87) -bmx Baimak 145.60624 -5.18943 Trans-New Guinea, Madang, Croisilles, Hanseman -bmy Bemba 28.929 -4.26225 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Unclassified -bmz Baramu 143.00231 -8.4885 Trans-New Guinea, Tirio -bna Bonerate 121.79239 -7.37657 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Muna-Buton, Tukangbesi-Bonerate -bnb Bookan 116.47389 5.32519 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Murutic, Northern -bnc Central Bontoc 121.02662 17.09386 -bnd Banda 133.14183 -5.42138 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Banda-Geser -bne Bintauna 123.48582 0.75069 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Gorontalo-Mongondow, Gorontalic -bnf Masiwang 130.60114 -3.29547 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Masiwang -bng Benga 9.4273 1.1972 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Bubi-Benga (A.34) -bnh Banawá -64.95344 -6.70006 -bni Bangi 17.93841 0.10137 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.32) -bnj Eastern Tawbuid 121.17652 12.89681 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, South Mangyan, Buhid-Taubuid -bnk Bierebo 168.15444 -16.66632 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Epi, Lamenu-Baki, Baki-Bierebo -bnl Boon 43.12076 0.41988 Afro-Asiatic, Cushitic, East -bnm Batanga 9.57773 1.45761 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Bubi-Benga (A.32) -bnn Bunun 121.02534 23.41164 Austronesian, Bunun -bno Bantoanon 122.03419 12.51942 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, Banton -bnp Bola 150.09488 -5.55792 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, Willaumez -bnq Bantik 124.84556 1.44586 Austronesian, Malayo-Polynesian, Philippine, Sangiric, Southern -bnr Butmas-Tur 167.03365 -15.33532 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, East Santo, South -bns Bundeli 78.95417 24.89823 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Western Hindi, Bundeli -bnu Bentong 119.80592 -4.76004 Austronesian, Malayo-Polynesian, South Sulawesi, Makassar -bnv Bonerif 139.20752 -2.09529 Tor-Kwerba, Orya-Tor, Tor -bnw Bisis 143.0581 -4.46238 Sepik, Sepik Hill, Bahinemo -bnx Bangubangu 27.24376 -4.31464 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Lega-Holoholo (D.27) -bny Bintulu 113.6342 3.867 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Bintulu -bnz Beezen 10.10905 6.81552 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Yukuben-Kuteb -boa Bora -71.79863 -2.40029 Witotoan, Proto-Bora-Muinane -bob Boni 40.94853 -1.62738 Afro-Asiatic, Cushitic, East, Rendille-Boni -boc Bakung Kenyah 114.85339 1.45099 -bod Central Tibetan 86.82593 29.22463 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central -boe Mundabli 10.27042 6.59969 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Yemne-Kimbi -bof Bolon -4.75524 11.82422 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding -bog Bamako Sign Language -8.00136 12.651 Deaf sign language -boh Boma 22.97302 3.5857 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Tiene-Yanzi (B.82) -boi Barbareno -119.711 34.429 Chumashan, Central Chumash -boj Anjam 145.71663 -5.45899 Trans-New Guinea, Madang, Rai Coast, Mindjim -bok Bonjo 17.62984 2.39823 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngondi (C.143) -bol Bole 11.23216 11.48388 Afro-Asiatic, Chadic, West, A, A.2, Bole, Bole Proper -bom Berom 8.81221 9.67037 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Beromic -bon Bine 142.89335 -9.08879 Eastern Trans-Fly -boo Tièma Cièwè Bozo -4.25688 15.47052 Niger-Congo, Mande, Western, Northwestern, Soninke-Bobo, Soninke-Boso, Boso, Eastern -bop Bonkiman 146.73767 -5.84007 Trans-New Guinea, Finisterre-Huon, Finisterre, Yupna -boq Bogaya 142.25459 -5.54487 Trans-New Guinea, Duna-Bogaya -bor Borôro -55.20043 -16.60295 Bororoan -bos Bosnian 17.67044 42.93308 Indo-European, Slavic, South, Western -bot Bongo 27.99183 7.4145 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Bongo-Baka, Bongo -bou Bondei 38.50791 -5.10749 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Shambala (G.24) -bov Tuwuli 0.38008 7.31095 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Kposo-Ahlo-Bowili -bow Rema 141.03371 -8.41526 South-Central Papuan, Morehead-Upper Maro, Tonda -box Buamu -3.50303 11.16869 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Bwamu -boy Bodo 26 6 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.308) -boz Tiéyaxo Bozo -5.08609 14.1223 Niger-Congo, Mande, Western, Northwestern, Soninke-Bobo, Soninke-Boso, Boso, Eastern -bpa Dakaka 168.01304 -16.26955 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -bpb Barbacoas -78.48343 1.5206 Barbacoan, Northern -bpd Banda-Banda 19.50776 5.26931 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Banda, Central, Central Core, Banda-Banda -bpg Bonggo 139.57596 -2.28044 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Sarmi-Jayapura Bay, Sarmi -bph Botlikh 46.19437 42.7658 North Caucasian, East Caucasian, Avar-Andic, Andic -bpi Bagupi 145.6322 -5.07778 Trans-New Guinea, Madang, Croisilles, Hanseman -bpj Binji 22.79148 -4.67791 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Songe (L.231) -bpk Orowe 165.4727 -21.62688 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Southern, South, Wailic -bpl Broome Pearling Lugger Pidgin 122.23344 -17.92695 Pidgin, Malay based -bpm Biyom 145.34793 -5.79929 Trans-New Guinea, Madang, Rai Coast, Biyom-Tauya -bpn Dzao Min 112.32587 24.97538 Hmong-Mien, Mienic, Zaomin -bpo Anasi 137.71617 -1.73908 East Geelvink Bay -bpp Kaure 140.14028 -3.39188 Kaure, Kaure Proper -bpq Banda Malay 129.90482 -4.55565 Creole, Malay based -bpr Koronadal Blaan 125.00664 6.20529 Austronesian, Malayo-Polynesian, Philippine, Bilic, Blaan -bps Sarangani Blaan 125.35373 6.03691 Austronesian, Malayo-Polynesian, Philippine, Bilic, Blaan -bpt Barrow Point 144.5307 -14.12192 Australian, Pama-Nyungan, Guugu-Yimidhirr -bpu Bongu 145.80561 -5.50519 Trans-New Guinea, Madang, Rai Coast, Mindjim -bpv Bian Marind 140.56756 -7.35942 Trans-New Guinea, Marind, Nuclear Marind -bpw Bo 141.45002 -4.32114 Arai (Left May) -bpx Palya Bareli 75.233 21.937 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -bpy Bishnupriya 92.343 24.608 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bengali-Assamese -bpz Bilba 123.30668 -10.6503 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor, Rote -bqa Tchumbuli 2.55627 8.43449 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Guang, North Guang -bqb Bagusa 137.91394 -1.98844 Tor-Kwerba, Greater Kwerba, Kwerba, Nuclear -bqc Boko 3.46831 10.2359 Niger-Congo, Mande, Eastern, Eastern, Busa -bqd Bung 11.63887 6.40736 Unclassified -bqe Navarro-Labourdin Basque -1.31622 43.27872 -bqf Baga Kaloum -12.887 9.951 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Mel, Temne, Baga -bqg Bago-Kusuntu 1.41214 8.52697 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Eastern -bqh Baima 103.9524 33.10014 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Baima -bqi Bakhtiari 49.77132 32.01634 Indo-European, Indo-Iranian, Iranian, Western, Southwestern, Luri -bqj Bandial -16.4245 12.5258 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Bak, Jola, Jola Proper, Jola Central, Gusilay -bqk Banda-Mbrès 20.01569 6.65001 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Banda, Central, Central Core, Banda-Mbres -bql Bilakura 145.55945 -4.93116 Trans-New Guinea, Madang, Croisilles, Pihom, Numugenan -bqm Wumboko 9.08026 4.24717 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Duala (A.21) -bqn Bulgarian Sign Language 25.00265 42.79184 Deaf sign language -bqo Balo 9.69365 6.12552 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tivoid -bqp Busa 4.39929 9.91074 Niger-Congo, Mande, Eastern, Eastern, Busa -bqq Biritai 137.68014 -2.92042 Lakes Plain, Tariku, East -bqr Burusu 117.0118 3.36912 Austronesian, Malayo-Polynesian, North Borneo, Rejang-Sajau -bqs Bosngun 144.64724 -4.16201 Ramu-Lower Sepik, Ramu, Ottilien, Bosmun-Awar -bqt Bamukumbit 10.35366 5.87292 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Ngemba -bqu Boguru 29.102 4.766 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.302) -bqv Begbere-Ejar 7.59566 9.40519 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Northwestern, Koro -bqw Buru 10.86175 7.01091 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Unclassified -bqx Baangi 5.7261 10.80833 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Kambari -bqy Bali Sign Language 115.098 -8.383 Deaf sign language -bqz Bakaka 9.80402 4.79991 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Lundu-Balong (A.15C) -bra Braj Bhasha 78.08125 26.4758 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Western Hindi, Unclassified -brb Lave 107.00836 14.59942 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, West Bahnaric, Brao-Kravet -brc Berbice Creole Dutch -58.00024 5.3829 Creole, Dutch based -brd Baraamu 85.05843 28.37675 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Central Himalayan, Thangmi-Baraamu -bre Breton -3.78934 48.24523 Indo-European, Celtic, Insular, Brythonic -brf Bera 30.02932 1.50054 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.32) -brg Baure -64.18381 -13.12775 Maipurean, Southern, Southern Outlier, Mojo -brh Brahui 65.58055 28.43346 Dravidian, Northern -bri Mokpwe 9.23887 4.24178 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Duala (A.22) -brj Bieria 168.23249 -16.78672 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Epi, Bieria-Maii -brk Birked 33.69374 20.61015 Nilo-Saharan, Eastern Sudanic, Eastern, Nubian, Central, Birked -brl Birwa 28.34484 -22.12034 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Sotho-Tswana (S.32) -brm Barambu 26.86102 3.34642 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Zande, Barambo-Pambia -brn Boruca -83.2124 8.88093 Chibchan, Chibchan A -bro Brokkat 90.64796 27.65436 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, Southern -brp Barapasi 137.0536 -2.28732 East Geelvink Bay -brq Breri 144.70718 -4.73271 Ramu-Lower Sepik, Ramu, Tamolan -brr Birao 160.52035 -9.73716 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Gela-Guadalcanal, Guadalcanal -brs Baras 119.34186 -1.5667 Austronesian, Malayo-Polynesian, Celebic, Kaili-Pamona, Northern, Kaili -brt Bitare 10.7599 7.01349 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tivoid -bru Eastern Bru 106.18315 17.12189 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, West Katuic, Brou-So -brv Western Bru 104.75429 16.49057 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, West Katuic, Brou-So -brw Bellari 76.10249 12.58518 Dravidian, Southern, Tulu -brx Bodo 90.58589 26.66967 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Bodo-Koch, Bodo-Garo, Bodo -bry Burui 143.01497 -4.03527 Sepik, Ndu -brz Bilbil 145.76404 -5.26505 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Bel, Nuclear Bel, Northern -bsa Abinomn 138.89052 -2.92281 Language isolate -bsb Brunei Bisaya 114.51713 4.60791 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Bisaya, Southern -bsc Bassari -12.8191 12.62937 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Eastern Senegal-Guinea, Tenda -bsd Sarawak Bisaya 114.50155 4.0978 -bse Wushi 10.60354 6.07415 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Ring, South -bsf Bauchi 6.61686 10.20768 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Baushi-Gurmana -bsg Bashkardi 47.35352 34.23427 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Balochi -bsh Kati 70.38939 35.18881 Indo-European, Indo-Iranian, Indo-Aryan, Nuristani -bsi Bassossi 9.52275 5.23655 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Lundu-Balong (A.15B) -bsj Bangwinji 11.20216 9.57157 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Waja, Tula -bsk Burushaski 74.82364 36.2161 Language isolate -bsl Basa-Gumna 6.58105 9.94207 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Basa -bsm Busami 136.03229 -1.73681 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Yapen, Central-Western -bsn Barasana -70.80803 0.02193 Tucanoan, Eastern Tucanoan, Bará-Tuyuka -bso Buso 17.60109 12.50084 Afro-Asiatic, Chadic, East, A, A.1 -bsp Baga Sitemu -14.47558 10.47931 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Mel, Temne, Baga -bsq Bassa -9.84931 6.08376 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Bassa -bsr Bassa-Kontagora 4.98331 10.33331 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Basa -bss Akoose 9.65522 4.9243 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Lundu-Balong (A.15C) -bst Basketo 36.57628 6.45774 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gimojan, Ometo-Gimira, Ometo, West -bsu Bahonsuai 121.70659 -2.22572 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Bungku-Tolaki, Eastern, East Coast -bsv Baga Sobane -13.90538 9.98865 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Mel, Temne, Baga -bsw Baiso 37.76811 6.44892 Afro-Asiatic, Cushitic, East, Western Omo-Tana -bsx Yangkam 10.28814 9.44956 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Tarokoid -bsy Sabah Bisaya 115.51229 5.30433 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Bisaya -bsz Souletin Basque -0.87075 43.10837 -bta Bata 12.28614 10.05021 Afro-Asiatic, Chadic, Biu-Mandara, A, A.8 -btb Beti 11.68962 3.22265 -btc Bati 11.0591 4.25573 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Sanaga (A.65) -btd Batak Dairi 98.24269 2.51438 Austronesian, Malayo-Polynesian, Northwest Sumatra-Barrier Islands, Batak, Northern -bte Gamo-Ningi 9.24843 10.93457 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Jera -btf Birgit 19.81819 12.02281 Afro-Asiatic, Chadic, East, B, B.1, 2 -btg Gagnoa Bété -5.9701 6.10051 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Eastern, Bete, Eastern -bth Biatah 110.33729 1.24835 Austronesian, Malayo-Polynesian, Land Dayak, Bidayuh, Core, Central -bti Burate 136.03841 -2.79301 East Geelvink Bay -btj Bacanese Malay 127.49047 -0.62275 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -btl Bhatola 80.84201 22.7174 Unclassified -btm Batak Mandailing 99.89803 0.85805 Austronesian, Malayo-Polynesian, Northwest Sumatra-Barrier Islands, Batak, Southern -btn Ratagnon 121.18703 12.27848 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, West, Kuyan -bto Iriga Bicolano 123.3307 13.38959 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bikol, Inland, Iriga -btp Budibud 153.68914 -9.29802 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Kilivila-Louisiades, Kilivila -btq Batek 102.38206 4.8223 Austro-Asiatic, Mon-Khmer, Aslian, North Aslian, Eastern -btr Baetora 168.15868 -15.25738 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -bts Batak Simalungun 98.90834 3.04372 Austronesian, Malayo-Polynesian, Northwest Sumatra-Barrier Islands, Batak, Simalungan -btt Bete-Bendi 9.20189 6.62037 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Bendi -btu Batu 10.93773 6.81588 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tivoid -btv Bateri 72.94908 34.89464 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Kohistani -btw Butuanon 125.41841 8.87009 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, South, Butuan-Tausug -btx Batak Karo 98.25166 2.12787 Austronesian, Malayo-Polynesian, Northwest Sumatra-Barrier Islands, Batak, Northern -bty Bobot 130.17925 -3.43514 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Bobot -btz Batak Alas-Kluet 97.81235 3.4293 Austronesian, Malayo-Polynesian, Northwest Sumatra-Barrier Islands, Batak, Northern -bub Bua 18.08214 9.92491 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Bua -buc Bushi 45.13678 -12.96521 Austronesian, Malayo-Polynesian, Greater Barito, East, Malagasy -bud Ntcham 0.6876 9.27365 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Gurma, Ntcham -bue Beothuk -61.313 53.188 -buf Bushoong 21.45558 -4.69463 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bushoong (C.83) -bug Bugis 120.25376 -5.50086 Austronesian, Malayo-Polynesian, South Sulawesi, Bugis -buh Younuo Bunu 110.47396 25.76381 Hmong-Mien, Hmongic, Bunu -bui Bongili 16.60787 0.37063 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngondi (C.15) -buj Basa-Gurmana 6.74865 10.24877 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Basa -buk Bugawac 147.31989 -6.67519 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, North -bul Bulgarian 25.48454 41.35608 Indo-European, Slavic, South, Eastern -bum Bulu 11.63646 3.16141 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Ewondo-Fang (A.74) -bun Sherbro -12.74053 7.77585 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Mel, Bullom-Kissi, Bullom, Southern -buo Terei 155.745 -6.70051 South Bougainville, Buin -bup Busoa 122.62224 -5.60524 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Muna-Buton, Nuclear Muna-Buton, Munan -buq Brem 145.56213 -4.67372 Trans-New Guinea, Madang, Croisilles, Isumrud -bus Bokobaru 3.80058 9.52724 Niger-Congo, Mande, Eastern, Eastern, Busa -but Bungain 143.79638 -3.69674 Torricelli, Marienberg -buu Budu 27.95104 2.00501 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.332) -buv Bun 143.89179 -4.51885 Yuat -buw Bubi 12.32251 -1.16762 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Tsogo (B.305) -bux Boghom 10.11454 9.49679 Afro-Asiatic, Chadic, West, B, B.3, Boghom -buy Bullom So -13.21534 9.00085 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Mel, Bullom-Kissi, Bullom, Northern -buz Bukwen 10.20059 6.9415 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Beboid -bva Barein 18.07644 11.11685 Afro-Asiatic, Chadic, East, B, B.3 -bvb Bube 8.68929 3.53638 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Bubi-Benga (A.31) -bvc Baelelea 160.72097 -8.41627 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, Malaita, Northern -bvd Baeggu 160.77123 -8.49014 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, Malaita, Northern -bve Berau Malay 117.93413 1.6687 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -bvf Boor 17.56478 10.09041 Afro-Asiatic, Chadic, East, A, A.1, 2 -bvg Bonkeng 9.76306 4.66054 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Lundu-Balong (A.14) -bvh Bure 10.45544 10.46033 Afro-Asiatic, Chadic, West, A, A.2, Bole, Bole Proper -bvi Belanda Viri 27.69557 7.41311 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Sere, Sere-Bviri, Bai-Viri -bvj Baan 7.30065 4.66709 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Ogoni, West -bvk Bukat 113.24644 1.29075 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kayanic, Muller-Schwaner ‘Punan’ -bvl Bolivian Sign Language -67.57823 -16.38949 Deaf sign language -bvm Bamunka 10.51269 6.00203 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Ring, South -bvn Buna 144.11929 -3.95553 Torricelli, Marienberg -bvo Bolgo 18.8076 10.90248 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Bua -bvq Birri 27.0842 5.3328 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi -bvr Burarra 134.36499 -12.30605 Australian, Gunwingguan, Burarran -bvs Belgian Sign Language 4.31312 50.8021 -bvt Bati 130.81465 -3.61403 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Banda-Geser, Geser-Gorom -bvu Bukit Malay 115.63974 -2.75049 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -bvv Baniva -67.56327 5.26123 Maipurean, Northern, Upper Amazon, Central Upper Amazon, Yavitero -bvw Boga 12.93596 10.18797 Afro-Asiatic, Chadic, Biu-Mandara, A, A.1, Eastern -bvx Dibole 17.23047 1.07773 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngondi (C.101) -bvz Bauzi 137.6289 -2.44717 East Geelvink Bay, Bauzi -bwa Bwatoo 165.07583 -21.37772 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Northern, North, Hmwaveke -bwb Namosi-Naitasiri-Serua 177.63658 -18.53081 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, West Fijian-Rotuman, West Fijian -bwc Bwile 29.77107 -8.9262 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Bemba (M.401) -bwd Bwaidoka 150.29725 -9.51158 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Bwaidoga -bwe Bwe Karen 96.99363 18.97957 Sino-Tibetan, Tibeto-Burman, Karenic, Central -bwf Boselewa 150.69337 -9.44763 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Dobu-Duau -bwg Barwe 33.45344 -17.67502 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, N, Senga-Sena (N.44) -bwh Bishuo 9.79396 6.67251 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Unclassified -bwi Baniwa -68.15117 1.44306 Maipurean, Northern, Upper Amazon, Eastern Nawiki, Karu -bwj Láá Láá Bwamu -3.17735 11.65243 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Bwamu -bwk Bauwaki 148.8148 -9.82577 Trans-New Guinea, Southeast Papuan, Mailuan -bwl Bwela 26.45082 -1.63062 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngombe (C.42) -bwm Biwat 143.87294 -4.39429 Yuat -bwn Wunai Bunu 110.47275 27.96488 Hmong-Mien, Hmongic, Bunu -bwo Boro 35.34498 10.65962 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gonga, North -bwp Mandobo Bawah 140.45116 -6.37255 Trans-New Guinea, Ok-Awyu, Awyu-Dumut, Dumut -bwq Southern Bobo Madaré -4.26497 11.54087 Niger-Congo, Mande, Western, Northwestern, Soninke-Bobo, Bobo -bwr Bura-Pabir 12.30072 10.48224 Afro-Asiatic, Chadic, Biu-Mandara, A, A.2, 1 -bws Bomboma 18.78408 2.40195 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngombe (C.411) -bwt Bafaw-Balong 9.522 4.53307 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Lundu-Balong (A.13) -bwu Buli -1.26748 10.57629 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Buli-Koma -bwv Bahau River Kenyah 115.57234 2.68758 -bww Bwa 25.25138 2.5957 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngombe (C.44) -bwx Bu-Nao Bunu 107.71137 24.10246 Hmong-Mien, Hmongic, Bunu -bwy Cwi Bwamu -2.95115 11.41824 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Bwamu -bwz Bwisi 12.05721 -3.1521 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Shira-Punu (B.401) -bxa Bauro 161.86319 -10.58257 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, San Cristobal -bxb Belanda Bor 27.82324 6.6503 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Luo, Northern, Bor -bxc Molengue 9.61289 1.3718 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Kele (B.211) -bxd Pela 97.91833 24.21422 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Burmish, Northern -bxe Birale 37.02496 5.29807 Afro-Asiatic, Unclassified -bxf Bilur 152.3339 -4.39732 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic -bxg Bangala 28.04453 3.3466 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.30) -bxh Buhutu 150.17956 -10.50737 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, Suauic -bxi Pirlatapa 139.77 -29.524 Australian, Pama-Nyungan, Karnic, Karna -bxj Bayungu 114.10784 -23.38088 Australian, Pama-Nyungan, South-West, Kanyara -bxk Bukusu 34.77185 0.68043 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Masaba-Luhya (E.31) -bxl Jalkunan -5.21959 10.54259 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Jogo-Jeri, Jeri-Jalkuna -bxm Mongolia Buriat 109.00535 48.76859 Altaic, Mongolic, Eastern, Oirat-Khalkha, Khalkha-Buriat, Buriat -bxn Burduna 114.65757 -22.96456 Australian, Pama-Nyungan, South-West, Kanyara -bxo Barikanchi 8.4331 11.98899 Pidgin, Hausa based -bxp Bebil 13.38484 4.86672 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Ewondo-Fang (A.73) -bxq Beele 10.42038 10.16088 Afro-Asiatic, Chadic, West, A, A.2, Bole, Bole Proper -bxr Russia Buriat 105.5637 50.85331 Altaic, Mongolic, Eastern, Oirat-Khalkha, Khalkha-Buriat, Buriat -bxs Busam 9.68068 5.8604 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Western Momo -bxt Buxinhua 101.41745 21.61047 -bxu China Buriat 117.7863 48.75926 Altaic, Mongolic, Eastern, Oirat-Khalkha, Khalkha-Buriat, Buriat -bxv Berakou 16.72592 12.83238 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Bagirmi -bxw Bankagooma -5.50744 11.74971 Niger-Congo, Mande, Western, Northwestern, Samogo -bxx Borna 26.08135 1.79156 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Unclassified -bxz Binahari 148.83482 -10.08739 Trans-New Guinea, Southeast Papuan, Mailuan -bya Batak 119.02539 10.11148 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Palawanic -byb Bikya 10.53331 6.74997 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Unclassified -byc Ubaghara 7.96439 5.72343 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Central, North-South, Ubaghara-Kohumono, Ubaghara -byd Benyadu' 109.75329 0.78534 Austronesian, Malayo-Polynesian, Land Dayak -bye Pouye 141.86389 -3.72704 Sepik, Ram -byf Bete 9.74302 7.02128 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid -byg Baygo 28.50657 20.6947 Nilo-Saharan, Eastern Sudanic, Western, Daju, Western Daju -byh Bujhyal 84.50684 28.00836 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Central Himalayan, Chepang-Bhujel -byi Buyu 28.5545 -5.41806 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bembe-Buyi (D.55) -byj Bina 8.19726 10.28679 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Kauru -byk Biao 113.391 23.656 Tai-Kadai, Kam-Tai, Kam-Sui -byl Bayono 139.61748 -5.21728 Bayono-Awbono -bym Bidyara 146.14726 -25.55498 Australian, Pama-Nyungan, Maric -byn Bilen 38.39169 15.78326 Afro-Asiatic, Cushitic, Central, Northern -byo Biyo 101.6518 22.51103 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southern -byp Bumaji 9.36028 6.4491 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Bendi -byq Basay 121.85705 25.00456 Austronesian, East Formosan, Northern -byr Baruya 145.81816 -6.89261 Trans-New Guinea, Angan, Nuclear Angan -bys Burak 11.06982 9.49451 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Jen -byt Berti 32.7258 20.61014 Nilo-Saharan, Saharan, Eastern -byu Buyang 104.44861 23.0105 -byv Medumba 10.61176 5.10901 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Nun -byw Belhariya 87.27833 26.99724 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -byx Qaqet 151.70192 -4.45258 East New Britain, Baining -byy Buya 26.29801 -4.90828 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Unclassified -byz Banaro 144.32888 -4.56615 Ramu-Lower Sepik, Ramu, Grass -bza Bandi -10.1684 7.73729 Niger-Congo, Mande, Western, Central-Southwestern, Southwestern, Mende-Loma, Mende-Bandi, Bandi -bzb Andio 123.17408 -0.88368 Austronesian, Malayo-Polynesian, Celebic, Eastern, Saluan-Banggai, Western -bzd Bribri -83.05395 9.39794 Chibchan, Chibchan A, Viceitic -bze Jenaama Bozo -4.04528 14.71752 Niger-Congo, Mande, Western, Northwestern, Soninke-Bobo, Soninke-Boso, Boso, Jenaama -bzf Boikin 143.47352 -3.68297 Sepik, Ndu -bzg Babuza 120.58462 24.00168 Austronesian, Western Plains, Central Western Plains -bzh Mapos Buang 146.77413 -6.86672 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, South, Hote-Buang, Buang -bzj Belize Kriol English -88.62814 17.39407 Creole, English based, Atlantic, Western -bzk Nicaragua Creole English -83.73859 12.44018 Creole, English based, Atlantic, Western -bzl Boano 120.99196 0.51152 Austronesian, Malayo-Polynesian, Celebic, Tomini-Tolitoli, Tolitoli -bzm Bolondo 19.61807 2.46327 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.302) -bzn Boano 127.95318 -2.95535 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Piru Bay, West, Hoamoal -bzo Bozaba 18.67837 2.07295 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngondi (C.162) -bzp Kemberano 132.98754 -2.24495 Trans-New Guinea, South Bird’s Head, South Bird’s Head Proper, Eastern -bzq Buli 128.44294 1.0008 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, South Halmahera, Southeast -bzr Biri 146.66983 -20.14942 Australian, Pama-Nyungan, Maric -bzs Brazilian Sign Language -47.99999 -15.49999 Deaf sign language -bzu Burmeso 138.20315 -2.47582 East Bird’s Head-Sentani, Burmeso -bzv Bebe 10.5646 6.74825 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Beboid -bzw Basa 7.06183 8.03159 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Basa -bzx Hainyaxo Bozo -5.65085 13.87339 Niger-Congo, Mande, Western, Northwestern, Soninke-Bobo, Soninke-Boso, Boso, Eastern -bzy Obanliku 9.27156 6.4794 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Bendi -bzz Evant 9.51164 6.46753 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tivoid -caa Chortí -89.34349 14.79897 Mayan, Yucatecan-Core Mayan, Core Mayan, Cholan-Tzeltalan, Cholan, Chorti-Cholti -cab Garifuna -86.32738 15.77296 Maipurean, Northern, Maritime, Ta-Maipurean, Iñeri -cac San Sebastián Coatán Chuj -91.56175 15.71373 Mayan, Yucatecan-Core Mayan, Q’anjob’alan-Chujean, Chujean -cad Caddo -98.26335 35.1826 Caddoan -cae Lehar -16.88157 14.93872 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Cangin -caf Southern Carrier -124.45243 53.17629 Eyak-Athabaskan, Athabaskan, Northern Athabaskan, Carrier -cag Nivaclé -60.39113 -23.22323 Matacoan -cah Cahuarano -73.94688 -3.72665 Zaparoan, Iquito-Cahuarano -caj Chane -63.98651 -22.54736 -cak Central Cakchiquel -90.96461 14.75111 Mayan, Yucatecan-Core Mayan, K’ichean-Mamean, K’ichean, Poqom-K’ichean, Core K’ichean, Kaqchikel-Tz’utujil -cal Carolinian 145.76498 15.205 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Ponapeic-Trukic, Trukic -cam Cemuhî 165.12988 -20.84895 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Northern, Central -can Chambri 143.09697 -4.27831 Ramu-Lower Sepik, Lower Sepik, Chambri -cao Chácobo -66.71641 -12.13298 Panoan, Bolivian Panoan, Chákobo -cap Chipaya -67.89633 -18.73951 Chipaya-Uru -caq Car Nicobarese 92.76706 9.18853 Austro-Asiatic, Mon-Khmer, Nicobar, Car -car Carib -63.82088 8.53667 Cariban -cas Tsimané -67.83756 -14.64448 Mosetenan -cat Catalan-Valencian-Balear 1.23027 41.91647 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Ibero-Romance, East Iberian -cav Cavineña -66.62773 -13.35441 Tacanan -caw Callawalla -68.10176 -15.88451 Language isolate -cax Chiquitano -59.91716 -17.63537 Language isolate -cay Cayuga -79.89399 43.08417 Iroquoian, Northern Iroquoian, Five Nations-Huronian-Susquehannock, Five Nations-Susquehannock -caz Canichana -64.91855 -14.09545 Language isolate -cbb Cabiyarí -71.06216 0.16101 Maipurean, Northern, Upper Amazon, Western Nawiki -cbc Carapana -70.63572 0.72717 Tucanoan, Eastern Tucanoan, Carapano -cbd Carijona -72.06635 1.21894 Cariban, Tiriyó, Karihona -cbe Chipiajes -71.16666 3.08332 Unclassified -cbg Chimila -74.25585 10.19016 Chibchan, Chibchan B, Eastern Chibchan, Colombian, Northern Colombian -cbh Cagua -73.99999 3.99999 Unclassified -cbi Chachi -79.0508 0.71489 Barbacoan, Southern -cbj Ede Cabe 2.48128 7.78176 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Defoid, Yoruboid, Edekiri -cbk Chavacano 122.16942 7.11655 Creole, Spanish based -cbl Bualkhaw Chin 93.68 22.91 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Central -cbm Yepocapa Southwestern Cakchiquel -90.9881 14.46622 -cbn Nyahkur 101.51465 15.89091 Austro-Asiatic, Mon-Khmer, Southern Monic -cbo Izora 8.76468 10.4735 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Jera -cbr Cashibo-Cacataibo -75.42062 -8.70232 Panoan, Mainline, Cashibo -cbs Cashinahua -71.75549 -10.44613 Panoan, Mainline, Tri-State -cbt Chayahuita -76.82525 -5.63764 Cahuapanan -cbu Candoshi-Shapra -76.93474 -4.23835 Language isolate -cbv Cacua -69.56589 0.88778 Puinavean, Cacua -cby Carabayo -69.90988 -1.7922 Unclassified -cca Cauca -69.91 1.267 Paezan, Coconuco -ccc Chamicuro -75.67785 -5.1149 Maipurean, Southern, Western -ccd Cafundo Creole -43.64549 -23.04476 Creole, Portuguese based -cce Chopi 34.10973 -24.83273 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Copi (S.61) -ccg Samba Daka 11.70765 8.06905 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Dakoid -cch Atsam 8.48301 9.95914 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Piti-Atsam -ccj Kasanga -15.94127 12.41733 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Eastern Senegal-Guinea, Nun -ccl Cutchi-Swahili 40.77238 -2.35809 Creole, Swahili based -ccm Malaccan Creole Malay 102.24192 2.30521 Creole, Malay based -cco Comaltepec Chinantec -96.44501 17.59088 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Chinantecan -ccp Chakma 92.1787 22.79351 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bengali-Assamese -ccq Chaungtha 96.24568 20.06534 -ccr Cacaopera -88.11325 13.74374 Misumalpan, Sumu-Cacaopera-Matagalpa, Cacaopera-Matagalpa -ccx Northern Zhuang 107.18368 23.68182 -ccy Southern Zhuang 107.3622 21.83753 -cda Choni 99.82552 27.75524 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish -cde Chenchu 79.25339 15.87867 Dravidian, South-Central, Telugu -cdf Chiru 94.4072 25.46435 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -cdg Chamari 79.62321 21.3532 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Western Hindi, Unclassified -cdh Chambeali 76.1796 32.54755 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Western Pahari -cdi Chodri 73.52826 20.88031 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -cdj Churahi 76.11241 32.89687 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Western Pahari -cdm Chepang 84.90168 27.72065 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Central Himalayan, Chepang-Bhujel -cdn Chaudangsi 80.37929 29.67882 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Himalayish, Almora -cdo Min Dong Chinese 119.05329 26.42063 Sino-Tibetan, Chinese -cdr Cinda-Regi-Tiyal 5.84212 10.34189 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Kamuku -cds Chadian Sign Language 15.24809 12.11145 Deaf sign language -cdz Koda 87.479 23.234 Austro-Asiatic, Munda, North Munda, Kherwari, Mundari -cea Lower Chehalis -124.00432 46.77361 Salish, Tsamosan, Maritime -ceb Cebuano 124.36662 8.38799 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, Cebuan -ceg Chamacoco -58.20047 -20.58988 Zamucoan -ces Czech 15.37182 49.88641 Indo-European, Slavic, West, Czech-Slovak -cet Centúúm 11.58534 9.59433 Language isolate -cfa Dijim-Bwilim 11.52005 9.67567 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Waja, Cham-Mona -cfd Cara 8.74567 10.12814 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Central, North-Central -cfg Como Karim 10.81598 8.86601 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Central, Jukun-Mbembe-Wurbo, Wurbo -cfm Falam Chin 93.67777 22.91361 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Central -cga Changriwa 143.69565 -4.28364 Yuat -cgc Kagayanen 119.87233 10.4656 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Manobo, North -cgg Chiga 29.91219 -1.04387 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Nyoro-Ganda (E.14) -cgk Chocangacakha 91.21954 27.46961 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, Southern -cha Chamorro 144.78661 13.45633 Austronesian, Malayo-Polynesian, Chamorro -chb Chibcha -74.16665 6.24999 -chc Catawba -80.88569 34.96848 Siouan-Catawban, Catawban -chd Highland Oaxaca Chontal -95.73011 16.18489 Tequistlatecan -che Chechen 45.73836 43.21954 North Caucasian, East Caucasian, Nakh, Chechen-Ingush -chf Tabasco Chontal -92.73666 18.17129 Mayan, Yucatecan-Core Mayan, Core Mayan, Cholan-Tzeltalan, Cholan, Chol-Chontal -chg Chagatai 57.88758 38.21146 Altaic, Turkic, Eastern -chh Chinook -119.1656 45.17285 Chinookan -chj Ojitlán Chinantec -96.33686 18.07504 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Chinantecan -chk Chuukese 151.59585 7.34083 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Ponapeic-Trukic, Trukic -chl Cahuilla -116.69146 33.53238 Uto-Aztecan, Northern Uto-Aztecan, Takic, Cahuilla -chn Chinook Wawa -123.22007 49.37116 Pidgin, Amerindian -cho Choctaw -94.81899 33.89928 Muskogean, Western Muskogean -chp Chipewyan -110.83177 58.36372 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -chq Quiotepec Chinantec -96.60203 17.56211 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Chinantecan -chr Cherokee -83.16303 35.46639 Iroquoian -chs Chumash -119.96489 35.64137 -cht Cholon -75.96211 -9.23129 Cholonan -chu Old Church Slavonic 57.91854 59.85336 Indo-European, Slavic, South, Eastern -chv Chuvash 47.16298 55.48701 Altaic, Turkic, Bolgar -chw Chuwabu 37.12307 -17.34285 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Makhuwa (P.34) -chx Chantyal 83.44876 28.68399 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Bodish, Gurung-Tamang, Gurungic -chy Cheyenne -106.65888 45.53206 Algic, Algonquian -chz Ozumacín Chinantec -96.22489 17.69764 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Chinantecan -cia Cia-Cia 122.79103 -5.68289 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Muna-Buton, Nuclear Muna-Buton, Buton, West Buton -cib Ci Gbe 2.02134 6.84217 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe -cic Chickasaw -97.13012 33.94523 Muskogean, Western Muskogean -cid Chimariko -122.84979 45.50927 Language isolate -cie Cineni 13.81868 11.13194 Afro-Asiatic, Chadic, Biu-Mandara, A, A.4, Mandara Proper, Glavda -cih Chinali 76.961 32.555 Indo-European, Indo-Iranian, Indo-Aryan, Unclassified -cik Chitkuli Kinnauri 78.52868 31.2965 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Himalayish, Kinauri -cim Cimbrian 11.42855 46.87768 Indo-European, Germanic, West, High German, German, Upper German, Bavarian-Austrian -cin Cinta Larga -60.83115 -10.58788 Tupian, Mondé, Aruá -cip Chiapanec -91.94174 16.6562 Otomanguean, Western Otomanguean, Tlapantec-Manguean, Manguean -cir Tiri 165.79163 -21.8147 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Southern, South, Zire-Tiri -cit Chittagonian 92.169 22.363 -ciw Chippewa -94.27376 47.34704 Algic, Algonquian, Ojibwa-Potawatomi -ciy Chaima -63.10336 9.21256 Cariban, Central, Cumaná -cja Western Cham 105.64424 12.07815 Austronesian, Malayo-Polynesian, Malayo-Chamic, Chamic, Coastal, Cham -cje Chru 108.52928 11.66249 Austronesian, Malayo-Polynesian, Malayo-Chamic, Chamic, Highlands, Chru-Northern -cjh Upper Chehalis -123.16929 46.79807 Salish, Tsamosan, Inland -cji Chamalal 45.99496 42.50239 North Caucasian, East Caucasian, Avar-Andic, Andic -cjk Chokwe 19.681 -6.55208 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Ciokwe-Luchazi (K.11) -cjm Eastern Cham 108.49012 11.28528 Austronesian, Malayo-Polynesian, Malayo-Chamic, Chamic, Coastal, Cham -cjn Chenapian 142.31714 -4.25154 Sepik, Wogamusin-Chenapian -cjo Ashéninka Pajonal -74.2014 -10.75832 Maipurean, Southern, Campa, Ashéninga -cjp Cabécar -83.41016 9.67031 Chibchan, Chibchan A, Viceitic -cjr Chorotega -85.12285 10.81539 -cjs Shor 88.4344 52.32607 Altaic, Turkic, Northern -cjv Chuave 145.13949 -6.17824 Trans-New Guinea, Chimbu-Wahgi, Chimbu -cjy Jinyu Chinese 111.27829 38.8284 Sino-Tibetan, Chinese -cka Khumi Awa Chin 93.3656 20.52265 -ckb Central Kurdish 44.99394 35.62028 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Kurdish -ckc Northern Cakchiquel -90.75523 14.86021 -ckd South Central Cakchiquel -90.77895 14.6754 -cke Eastern Cakchiquel -90.59295 14.82311 -ckf Southern Cakchiquel -90.76488 14.47478 -ckh Chak 92.65165 20.93079 Sino-Tibetan, Tibeto-Burman, Sal, Jingpho-Luish, Luish -cki Santa María de Jesús Cakchiquel -90.75021 14.49879 -ckj Santo Domingo Xenacoj Cakchiquel -90.59525 14.61388 -ckk Acatenango Southwestern Cakchiquel -90.82068 14.49999 -ckl Cibak 12.90198 10.89767 Afro-Asiatic, Chadic, Biu-Mandara, A, A.2, 1 -cko Anufo 0.28594 10.16161 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Central, Bia, Northern -ckq Kajakse 20.87897 12.24917 Afro-Asiatic, Chadic, East, B, B.1, 2 -ckr Kairak 151.98005 -4.46941 East New Britain, Baining -cks Tayo 166.54637 -22.22768 Creole, French based -ckt Chukot 170.04503 68.64356 Chukotko-Kamchatkan, Northern, Chukot -cku Koasati -92.70902 30.40957 Muskogean, Eastern Muskogean, Central Muskogean, Apalachee-Alabama-Koasati, Alabama-Koasati -ckv Kavalan 121.64463 24.69475 Austronesian, East Formosan, Northern -ckw Western Cakchiquel -91.17599 14.77298 -ckx Caka 9.77746 6.26979 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tivoid -cky Cakfem-Mushere 9.16071 9.00924 Afro-Asiatic, Chadic, West, A, A.3, Angas Proper, 1 -ckz Cakchiquel-Quiché Mixed Language -90.69885 14.6467 Mixed language, Cakchiquel-Quiché -cla Ron 8.97756 8.96481 Afro-Asiatic, Chadic, West, A, A.4, Ron Proper -clc Chilcotin -123.24458 51.98952 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -cld Chaldean Neo-Aramaic 43.50269 37.09724 Afro-Asiatic, Semitic, Central, Aramaic, Eastern, Central, Northeastern -cle Lealao Chinantec -95.92651 17.31625 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Chinantecan -clh Chilisso 73.3344 35.24943 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Kohistani -cli Chakali -1.90181 9.83446 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Western -clk Idu-Mishmi 95.90932 28.23208 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Digarish -cll Chala 0.50896 8.00089 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Eastern -clm Clallam -123.5115 48.07068 Salish, Central Salish -clo Lowland Oaxaca Chontal -95.68757 15.94974 Tequistlatecan -clu Caluyanun 121.38425 12.04893 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, West -clw Chulym 89.55414 54.32087 Altaic, Turkic, Western, Uralian -cly Eastern Highland Chatino -97.15261 16.24374 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Chatino -cma Maa 107.33902 11.52052 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, South Bahnaric, Sre-Mnong, Sre -cme Cerma -4.85222 10.22769 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Kirma-Tyurama -cmi Emberá-Chamí -76.07486 4.8791 Chocoan, Emberá, Southern Emberá -cmk Chimakum -123.079 47.632 -cml Campalagian 119.18235 -3.45795 Austronesian, Malayo-Polynesian, South Sulawesi, Bugis -cmn Mandarin Chinese 106.27701 25.92863 Sino-Tibetan, Chinese -cmo Central Mnong 107.66244 12.64745 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, South Bahnaric, Sre-Mnong, Mnong, Southern-Central Mnong -cmr Mro Chin 93.995 19.71 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Southern -cmt Camtho 27.942 -26.247 Mixed language, Zulu-Bantu -cna Changthang 78.23889 34.06624 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Western -cnb Chinbon Chin 94.05059 20.07758 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Southern -cnc Côông 102.75873 22.33108 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southern -cng Northern Qiang 103.1923 32.27662 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Qiangic -cnh Haka Chin 93.72557 22.4037 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Central -cni Asháninka -73.90728 -11.93109 Maipurean, Southern, Campa -cnk Khumi Chin 93.37426 21.15943 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Southern -cnl Lalana Chinantec -96.00645 17.58251 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Chinantecan -cnm Ixtatán Chuj -91.57327 15.93027 -cno Con 100.90354 20.64417 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Eastern Palaungic, Lametic -cns Central Asmat 138.47107 -5.80391 Trans-New Guinea, Asmat-Kamoro, Asmat -cnt Tepetotutla Chinantec -96.54039 17.71151 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Chinantecan -cnu Chenoua 2.19899 36.59171 Afro-Asiatic, Berber, Northern -cnw Ngawn Chin 93.58348 21.93031 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Central -coa Cocos Islands Malay 117.75655 4.6966 Creole, Malay based -cob Chicomuceltec -92.29169 15.67822 Mayan, Huastecan -coc Cocopa -114.98532 32.14522 Cochimí-Yuman, Yuman, Delta-California -cod Cocama-Cocamilla -74.67422 -5.72673 Tupian, Tupí-Guaraní, Tupí, Cocama -coe Koreguaje -75.34745 0.92316 Tucanoan, Western Tucanoan -cof Colorado -79.23468 -0.21181 Barbacoan, Southern -cog Chong 102.85974 12.16844 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Pearic, Western, Chong -coh Chonyi 39.75531 -3.79746 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Nyika-Taita (E.72) -coj Cochimi -114.07703 29.04001 Cochimí-Yuman, Yuman -cok Santa Teresa Cora -104.70003 22.71018 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Cora-Huichol, Cora -col Columbia-Wenatchi -118.45361 48.21697 Salish, Interior, Southern -com Comanche -98.42395 34.57014 Uto-Aztecan, Northern Uto-Aztecan, Numic, Central -con Cofán -77.06144 0.14687 Language isolate -coo Comox -124.96678 49.72325 Salish, Central Salish -cop Coptic 31.2053 29.47203 Afro-Asiatic, Egyptian -coq Coquille -119.60513 44.51766 Eyak-Athabaskan, Athabaskan, Pacific Coast Athabaskan, Oregon Athabaskan, Tututni-Chasta Costa-Coquille -cor Cornish -4.18619 50.52332 Indo-European, Celtic, Insular, Brythonic -cos Corsican 9.10398 42.15886 Indo-European, Italic, Romance, Southern, Corsican -cot Caquinte -73.44506 -11.48125 Maipurean, Southern, Campa, Machiguenga -cou Wamey -13.09264 12.65234 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Eastern Senegal-Guinea, Tenda -cov Cao Miao 109.54741 26.22358 Tai-Kadai, Kam-Tai, Kam-Sui -cow Cowlitz -122.91665 46.41666 Salish, Tsamosan, Inland -cox Nanti -72.35066 -12.10185 Maipurean, Southern, Campa, Ashéninga -coy Coyaima -72.99999 11.33332 Cariban, Yukpa -coz Chochotec -97.23884 17.66601 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Popolocan -cpa Palantla Chinantec -96.34073 17.88397 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Chinantecan -cpb Ucayali-Yurúa Ashéninka -73.44384 -9.76717 Maipurean, Southern, Campa, Ashéninga -cpc Ajyíninka Apurucayali -74.61947 -9.82364 Maipurean, Southern, Campa, Ashéninga -cpg Cappadocian Greek 23.294 40.386 Indo-European, Greek, Attic -cpi Chinese Pidgin English 166.92553 -0.53224 Pidgin, English based, Pacific -cpn Cherepon -0.10955 6.05387 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Guang, South Guang -cps Capiznon 122.95359 11.41215 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, Central, Peripheral -cpu Pichis Ashéninka -74.60281 -10.47249 Maipurean, Southern, Campa, Ashéninga -cpx Pu-Xian Chinese 118.88338 25.19523 Sino-Tibetan, Chinese -cpy South Ucayali Asheninka -73.001 -11.221 Maipurean, Southern, Campa, Ashéninga -cqu Chilean Quechua -67.76037 -23.70355 Quechuan, Peripheral Quechua, Chinchay, Southern Chinchay, Southern Peruvian Quechua -cra Chara 36.41918 6.63946 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gimojan, Ometo-Gimira, Chara -crb Island Carib -61.29082 15.41728 -crc Lonwolwol 168.0156 -16.2286 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -crd Coeur d'Alene -116.71512 47.29583 Salish, Interior, Southern -crf Caramanta -75.877 5.624 Paezan, Coconuco -crg Michif -99.79826 48.83315 Mixed language, French-Cree -crh Crimean Turkish 65.50777 40.12217 Altaic, Turkic, Southern -cri Sãotomense 6.61935 0.28332 Creole, Portuguese based -crj Southern East Cree -78.69712 51.40781 Algic, Algonquian, Cree-Montagnais -crk Plains Cree -112.24606 54.43446 Algic, Algonquian, Cree-Montagnais -crl Northern East Cree -77.7505 55.19282 Algic, Algonquian, Cree-Montagnais -crm Moose Cree -80.69116 51.06859 Algic, Algonquian, Cree-Montagnais -crn El Nayar Cora -104.46744 22.40993 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Cora-Huichol, Cora -cro Crow -107.87403 45.368 Siouan-Catawban, Siouan, Missouri River Siouan -crq Iyo'wujwa Chorote -62.9306 -22.17584 Matacoan -crr Carolina Algonquian -77.291 35.979 -crs Seselwa Creole French 55.4503 -4.62314 Creole, French based -crt Iyojwa'ja Chorote -63.23831 -22.1896 Matacoan, Chorote -cru Carútana -68.45267 1.44705 -crv Chaura 93.03307 8.45745 Austro-Asiatic, Mon-Khmer, Nicobar, Chowra-Teressa -crw Chrau 107.29291 10.80208 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, South Bahnaric, Stieng-Chrau -crx Carrier -124.32759 54.37681 Eyak-Athabaskan, Athabaskan, Northern Athabaskan, Carrier -cry Cori 7.95163 9.37832 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Northwestern, Hyamic -crz Cruzeno -119.711 34.429 Chumashan, Island Chumash -csa Chiltepec Chinantec -96.21833 18.06061 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Chinantecan -csb Kashubian 18.61634 54.29956 Indo-European, Slavic, West, Lechitic -csc Catalonian Sign Language -1.97 41.635 Deaf sign language -csd Chiangmai Sign Language 99.03901 18.86295 Deaf sign language -cse Czech Sign Language 14.4774 50.01201 Deaf sign language -csf Cuba Sign Language -79.209 22.061 Deaf sign language -csg Chilean Sign Language -70.66979 -32.78099 Deaf sign language -csh Asho Chin 94.66312 20.53349 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Southern -csi Coast Miwok -122.99431 38.3285 Miwok-Costanoan, Miwokan, Western Miwokan -csk Jola-Kasa -16.55386 12.50885 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Bak, Jola, Jola Proper, Jola Central, Jola-Kasa -csl Chinese Sign Language 121.56875 30.90631 Deaf sign language -csm Central Sierra Miwok -120.25684 38.0812 Miwok-Costanoan, Miwokan, Eastern Miwokan, Sierra Miwok -csn Colombian Sign Language -75.44639 5.33532 Deaf sign language -cso Sochiapan Chinantec -96.60795 17.79855 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Chinantecan -csq Croatia Sign Language 16.796 45.502 Deaf sign language -csr Costa Rican Sign Language -84.11803 9.8943 Deaf sign language -css Southern Ohlone -121.177 36.364 Miwok-Costanoan, Costanoan -cst Northern Ohlone -121.177 36.364 Miwok-Costanoan, Costanoan -csw Swampy Cree -110.83177 58.36372 Algic, Algonquian, Cree-Montagnais -csy Siyin Chin 93.68843 23.81919 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -csz Coos -124.15962 43.44131 Coosan -cta Tataltepec Chatino -97.53112 16.29628 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Chatino -ctc Chetco -124.37588 42.68637 Eyak-Athabaskan, Athabaskan, Pacific Coast Athabaskan, Oregon Athabaskan, Tolowa-Chetco -ctd Tedim Chin 93.82231 23.50458 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -cte Tepinapa Chinantec -96.14331 17.66507 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Chinantecan -cti Tila Chol -92.46983 17.48965 -ctl Tlacoatzintepec Chinantec -96.51764 17.8646 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Chinantecan -ctm Chitimacha -90.91232 30.33861 Language isolate -ctn Chhintange 87.18994 26.96099 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -cto Emberá-Catío -76.08584 7.27548 Chocoan, Emberá, Northern Emberá -ctp Western Highland Chatino -97.32436 16.2495 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Chatino -cts Northern Catanduanes Bicolano 124.27041 13.90317 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bikol, Pandan -ctu Tumbalá Chol -92.26418 17.47664 Mayan, Yucatecan-Core Mayan, Core Mayan, Cholan-Tzeltalan, Cholan, Chol-Chontal, Chol -ctz Zacatepec Chatino -97.3069 16.07998 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Chatino -cua Cua 108.43092 15.16883 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, North Bahnaric, East, Cua-Kayong -cub Cubeo -70.65322 1.38651 Tucanoan, Central Tucanoan -cuc Usila Chinantec -96.40743 17.9184 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Chinantecan -cug Cung 10.41045 6.59687 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Beboid -cuh Chuka 37.61164 -0.27405 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Kikuyu-Kamba (E.541) -cui Cuiba -70.19663 6.15685 Guajiboan -cuj Mashco Piro -70.79527 -11.47453 Maipurean, Southern, Southern Outlier, Piro, Piro -cuk San Blas Kuna -78.3075 9.15686 Chibchan, Chibchan B, Eastern Chibchan, Cuna -cul Culina -70.66261 -7.35778 Arauan -cum Cumeral -69.49999 2.83332 Maipurean, Unclassified -cun Cunén Quiché -91.05492 15.33547 -cuo Cumanagoto -63.018 10.209 Cariban, Central, Cumaná -cup Cupeno -116.51471 33.31483 Uto-Aztecan, Northern Uto-Aztecan, Takic, Cahuilla -cuq Cun 108.74318 19.21816 Tai-Kadai, Kra, Eastern Kra -cur Chhulung 87.21331 26.91065 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -cut Teutila Cuicatec -96.66452 17.90286 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Cuiatec -cuu Tai Ya 101.89865 23.56897 Tai-Kadai, Kam-Tai, Tai, Southwestern -cuv Cuvok 14.00059 10.64483 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -cuw Chukwa 86.98242 27.35802 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -cux Tepeuxila Cuicatec -96.78797 17.75598 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Cuiatec -cvn Valle Nacional Chinantec -96.31873 17.79638 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Chinantecan -cwa Kabwa 34.3923 -1.7124 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Logooli-Kuria (E.405) -cwb Maindo 36.59405 -18.31432 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Makhuwa (P.34) -cwd Woods Cree -110.83177 58.36372 Algic, Algonquian, Cree-Montagnais -cwe Kwere 38.44485 -6.50666 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Zigula-Zaramo (G.32) -cwg Chewong 102.08116 3.83331 Austro-Asiatic, Mon-Khmer, Aslian, North Aslian, Chewong -cwt Kuwaataay -16.74835 12.48255 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Bak, Jola, Jola Proper, Kwatay -cya Nopala Chatino -97.13392 16.09536 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Chatino -cyb Cayubaba -65.48219 -13.24822 Language isolate -cym Welsh -4.22094 51.97481 Indo-European, Celtic, Insular, Brythonic -cyo Cuyonon 119.30028 10.32008 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, West, Kuyan -czh Huizhou Chinese 118.23232 29.76462 Sino-Tibetan, Chinese -czk Knaanic 15.42944 49.79786 -czn Zenzontepec Chatino -97.45546 16.52799 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Chatino -czo Min Zhong Chinese 117.37571 26.06861 Sino-Tibetan, Chinese -czt Zotung Chin 93.28998 22.52977 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Maraic -daa Dangaléat 18.38502 12.15165 Afro-Asiatic, Chadic, East, B, B.1, 1 -dac Dambi 146.47431 -7.00587 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, South, Hote-Buang, Buang, Mumeng -dad Marik 145.59021 -5.349 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Bel, Nuclear Bel, Southern -dae Duupa 13.45438 8.55031 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Duru, Dii -daf Dan -7.92123 7.54247 -dag Dagbani -0.43227 9.64745 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Western, Southeast -dah Gwahatike 146.45496 -5.64555 Trans-New Guinea, Finisterre-Huon, Finisterre, Warup -dai Day 17.51464 8.52612 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Day -daj Dar Fur Daju 25.31274 12.25982 Nilo-Saharan, Eastern Sudanic, Western, Daju, Western Daju -dak Dakota -100.70486 45.1012 Siouan-Catawban, Siouan, Mississippi Valley-Ohio Valley Siouan, Mississippi Valley Siouan, Dakota -dal Dahalo 40.36999 -2.1843 Afro-Asiatic, Cushitic, South -dan Danish 9.51882 54.9485 Indo-European, Germanic, North, East Scandinavian, Danish-Swedish, Danish-Riksmal, Danish -dao Daai Chin 93.78532 20.73472 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Southern -dap Nisi 93.12839 27.37082 -daq Dandami Maria 81.35982 18.7475 Dravidian, South-Central, Gondi-Kui, Gondi -dar Dargwa 47.43876 42.42568 North Caucasian, East Caucasian, Dargi -das Daho-Doo -7.3558 5.72458 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Wee, Guere-Krahn -dat Darang Deng 96.88032 28.49929 -dau Dar Sila Daju 21.79257 12.20539 Nilo-Saharan, Eastern Sudanic, Western, Daju, Western Daju -dav Taita 38.57254 -3.79347 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Nyika-Taita (E.74) -daw Davawenyo 126.45792 7.22613 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Mansakan, Davawenyo -dax Dayi 136.21967 -13.18057 Australian, Pama-Nyungan, Yuulngu, Dhuwal -daz Dao 136.42108 -3.28643 Trans-New Guinea, West, Wissel Lakes -dba Bangeri Me Dogon -3.77092 14.81163 Language isolate -dbb Deno 10.43937 10.63147 Afro-Asiatic, Chadic, West, A, A.2, Bole, Bole Proper -dbd Dadiya 11.35868 9.62705 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Waja, Dadiya -dbe Dabe 139.11609 -2.05082 Tor-Kwerba, Orya-Tor, Tor -dbf Edopi 137.38731 -3.11078 Lakes Plain, Tariku, Central -dbg Dogul Dom Dogon -3.56855 14.58719 Niger-Congo, Atlantic-Congo, Volta-Congo, Dogon -dbi Doka 7.96099 10.22873 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Northern -dbj Ida'an 118.51493 5.29059 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Ida’an -dbl Dyirbal 145.5442 -17.45162 Australian, Pama-Nyungan, Dyirbalic -dbm Duguri 10.21664 9.42456 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Jarawan, Nigerian -dbn Duriankere 130.92525 -1.38946 Trans-New Guinea, South Bird’s Head, Inanwatan -dbo Dulbu 9.94759 10.19107 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Jarawan, Nigerian -dbp Duwai 11.33668 12.80297 Afro-Asiatic, Chadic, West, B, B.1, Duwai -dbq Daba 13.91339 10.20317 Afro-Asiatic, Chadic, Biu-Mandara, A, A.7 -dbr Dabarre 43.33041 1.2179 Afro-Asiatic, Cushitic, East, Somali -dbu Bondum Dom Dogon -3.32636 14.90665 Niger-Congo, Atlantic-Congo, Volta-Congo, Dogon -dbv Dungu 8.19543 10.50427 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Kauru -dby Dibiyaso 142.77883 -7.82096 Trans-New Guinea, Bosavi -dcc Deccan 75.71697 18.59186 Indo-European, Indo-Iranian, Indo-Aryan, Southern zone, Unclassified -dcr Negerhollands -64.89215 18.34155 Creole, Dutch based -ddd Dongotono 33.24287 4.43426 Nilo-Saharan, Eastern Sudanic, Nilotic, Eastern, Lotuxo-Teso, Lotuxo-Maa, Lotuxo -dde Doondo 13.56413 -4.30483 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Kikongo (H.112) -ddg Fataluku 127.08042 -8.49464 Trans-New Guinea, West, Timor-Alor-Pantar, Timor -ddi Diodio 150.16758 -9.38654 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Bwaidoga -ddj Jaru 128.26205 -18.32879 Australian, Pama-Nyungan, South-West, Ngumbin -ddn Dendi 3.31524 11.66627 Nilo-Saharan, Songhai, Southern -ddo Dido 45.80959 42.26458 North Caucasian, East Caucasian, Tsezic, West Tsezic -dds Donno So Dogon -3.51468 14.34019 Niger-Congo, Atlantic-Congo, Volta-Congo, Dogon -ddw Dawera-Daweloor 130.05955 -7.76324 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Babar, North -dec Dagik 29.94036 10.583 Niger-Congo, Kordofanian, Talodi, Talodi Proper, Ngile-Dengebu -ded Dedua 147.62657 -6.38206 Trans-New Guinea, Finisterre-Huon, Huon, Eastern -dee Dewoin -10.90765 6.56113 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Bassa -def Dezfuli 48.907 32.374 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Unclassified -deg Degema 6.80991 4.73373 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Delta -deh Dehwari 66.59775 29.52046 Indo-European, Indo-Iranian, Iranian, Western, Southwestern, Persian -dei Demisa 136.69383 -2.54564 East Geelvink Bay, Bauzi -dek Dek 14.48328 11.01828 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Mbum, Unclassified -dem Dem 137.63227 -3.72183 Trans-New Guinea, Dem -dep Pidgin Delaware -75.463 38.569 Pidgin, Amerindian -deq Dendi 22.56605 4.48146 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Ngbandi -der Deori 93.70572 26.86152 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Bodo-Koch -des Desano -69.12526 0.32751 Tucanoan, Eastern Tucanoan, Desano-Siriano -deu Standard German 10.45276 47.45546 Indo-European, Germanic, West, High German, German, Middle German, East Middle German -dev Domung 146.68152 -5.81856 Trans-New Guinea, Finisterre-Huon, Finisterre, Yupna -dez Dengese 21.41943 -3.26337 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bushoong (C.81) -dga Southern Dagaare -2.52265 10.4226 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Western, Northwest, Dagaari-Birifor, Dagaari -dgc Casiguran Dumagat Agta 121.87821 16.2176 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Northern Cordilleran, Northeastern Luzon, Northern -dgd Dagaari Dioula -2.48569 11.68387 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Western, Northwest, Dagaari-Birifor, Dagaari -dge Degenan 146.57176 -5.70892 Trans-New Guinea, Finisterre-Huon, Finisterre, Warup -dgg Doga 149.84148 -9.63698 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Are-Taupota, Are -dgh Dghwede 13.77847 11.05751 Afro-Asiatic, Chadic, Biu-Mandara, A, A.4, Mandara Proper, Glavda -dgi Northern Dagara -3.0124 11.04408 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Western, Northwest, Dagaari-Birifor, Dagaari -dgk Dagba 18.10334 7.37156 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Sara Proper -dgn Dagoman 132.379 -15.764 Australian, Gunwingguan, Yangmanic -dgo Dogri 75.71109 32.55342 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Western Pahari -dgr Dogrib -114.19257 62.38234 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -dgs Dogoso -4.35805 10.04888 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Dogoso-Khe -dgu Degaru 86.76939 25.04606 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Unclassified -dgx Doghoro 148.76599 -9.13688 Trans-New Guinea, Greater Binanderean, Binanderean, Nuclear Binanderean, South Binanderean, Coastal Binanderean, Baruga -dgz Daga 149.26296 -9.9747 Trans-New Guinea, Southeast Papuan, Dagan -dha Dhanwar 83.16442 23.06127 -dhd Dhundari 76.198 26.473 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Marwari -dhg Dhangu 135.75214 -11.94927 Australian, Pama-Nyungan, Yuulngu, Dhangu -dhi Dhimal 87.71463 26.67754 Sino-Tibetan, Tibeto-Burman, Sal, Dhimalish -dhl Dhalandji 114.93718 -22.19598 Australian, Pama-Nyungan, South-West, Dhalandji -dhm Zemba 13.53886 -16.48556 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, R, Herero (R.311) -dhn Dhanki 73.74179 20.77195 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Khandesi -dho Dhodia 73.27433 21.06564 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -dhr Dhargari 114.84667 -24.06008 Australian, Pama-Nyungan, South-West, Inland Ngayarda -dhs Dhaiso 38.81801 -4.81209 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Kikuyu-Kamba (E.56) -dhu Dhurga 150.13383 -35.41204 Australian, Pama-Nyungan, Yuin -dhv Dehu 167.22924 -20.88918 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Loyalty Islands -dhw Dhanwar 85.0074 27.54803 Indo-European, Indo-Iranian, Indo-Aryan, Unclassified -dia Dia 142.24844 -3.38837 Torricelli, Wapei-Palei, Wapei -dib South Central Dinka 30.30213 6.7307 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Dinka-Nuer, Dinka -dic Lakota Dida -5.40633 5.86012 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Eastern, Dida -did Didinga 33.68688 4.21489 Nilo-Saharan, Eastern Sudanic, Eastern, Surmic, South, Southwest, Didinga-Murle, Didinga-Longarim -dif Dieri 137.99999 -28.16666 Australian, Pama-Nyungan, Karnic, Karna -dig Digo 39.42845 -4.35089 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Nyika-Taita (E.73) -dih Kumiai -116.5241 32.42528 Cochimí-Yuman, Yuman, Delta-California -dii Dimbong 10.9888 4.80551 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Bafia (A.52) -dij Dai 129.68668 -7.55894 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Babar, North -dik Southwestern Dinka 28.06131 8.81115 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Dinka-Nuer, Dinka -dil Dilling 29.60565 12.03469 Nilo-Saharan, Eastern Sudanic, Eastern, Nubian, Central, Hill, Unclassified -dim Dime 36.33293 6.20951 Afro-Asiatic, Omotic, South -dio Dibo 6.3731 9.0611 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Nupoid, Nupe-Gbagyi -dip Northeastern Dinka 31.83923 9.27995 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Dinka-Nuer, Dinka -diq Dimli 39.63882 38.61469 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Zaza-Gorani -dir Dirim 11.63209 7.83766 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Dakoid -dis Dimasa 93.18061 25.41984 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Bodo-Koch, Bodo-Garo, Bodo -dit Dirari 138.07782 -28.79923 Australian, Pama-Nyungan, Karnic, Karna -diu Diriku 20.60006 -18.54794 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Luyana (K.332) -div Maldivian 73.09733 -0.61231 Indo-European, Indo-Iranian, Indo-Aryan, Sinhalese-Maldivian -diw Northwestern Dinka 29.29981 9.81484 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Dinka-Nuer, Dinka -dix Dixon Reef 167.51592 -16.32665 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Malekula Interior, Small Nambas -diy Diuwe 139.45512 -5.12627 Trans-New Guinea, Asmat-Kamoro, Diuwe -diz Ding 19.38809 -4.44304 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Tiene-Yanzi (B.86) -djb Djinba 134.96743 -12.93004 Australian, Pama-Nyungan, Yuulngu, Djinang -djc Dar Daju Daju 18.79962 12.11866 Nilo-Saharan, Eastern Sudanic, Western, Daju, Western Daju -djd Djamindjung 130.0598 -15.05583 Australian, Djamindjungan -dje Zarma 1.94971 13.92109 Nilo-Saharan, Songhai, Southern -djf Djangun 144.93245 -16.91051 Australian, Pama-Nyungan, Yalandyic -dji Djinang 134.82031 -12.46201 Australian, Pama-Nyungan, Yuulngu, Djinang -djj Djeebbana 134.09666 -12.01331 Australian, Gunwingguan, Burarran -djk Aukan -54.9525 4.552 Creole, English based, Atlantic, Suriname, Ndyuka -djl Djiwarli 116.98858 -24.10724 -djm Jamsay Dogon -2.38069 14.44639 Niger-Congo, Atlantic-Congo, Volta-Congo, Dogon -djn Djauan 133.00152 -14.13608 Australian, Gunwingguan, Djauanic -djo Djongkang 110.64722 0.29738 Austronesian, Malayo-Polynesian, Land Dayak, Southern -djr Djambarrpuyngu 135.59014 -12.02098 Australian, Pama-Nyungan, Yuulngu, Dhuwal -dju Kapriman 143.24107 -4.51011 Sepik, Sepik Hill, Bahinemo -djw Djawi 123.1856 -16.41625 Australian, Nyulnyulan -dka Dakpakha 91.82455 27.37615 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, East Bodish -dkk Dakka 119.23484 -3.33671 Austronesian, Malayo-Polynesian, South Sulawesi, Northern, Pitu Ulunna Salu -dkl Kolum So Dogon -3.8795 14.36174 -dkr Kuijau 116.10842 5.47179 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Dusun -dks Southeastern Dinka 31.28501 7.02206 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Dinka-Nuer, Dinka -dkx Mazagway 13.68728 10.17501 Afro-Asiatic, Chadic, Biu-Mandara, A, A.7 -dlc Dalecarlian 13.98228 61.24534 -dlg Dolgan 94.29358 71.10828 Altaic, Turkic, Northern -dlm Dalmatian 18.02377 42.70949 -dln Darlong 91.3397 24.01808 Sino-Tibetan, Tibeto-Burman, Unclassified -dma Duma 13.00456 -0.91927 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Nzebi (B.51) -dmc Dimir 145.67561 -4.8296 Trans-New Guinea, Madang, Croisilles, Isumrud -dme Dugwor 14.21344 10.75203 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -dmg Upper Kinabatangan 116.90097 5.31911 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Paitanic, Upper Kinabatangan -dmk Domaaki 74.7984 36.3258 Indo-European, Indo-Iranian, Indo-Aryan, Central zone -dml Dameli 71.68065 35.29901 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Kunar -dmm Dama 14.0597 8.72207 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Mbum, Northern, Dama-Galke -dmo Kemezung 10.49838 6.69577 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Beboid -dmr East Damar 128.6357 -7.16991 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Southwest Maluku, East Damar -dms Dampelas 120.21879 0.70234 Austronesian, Malayo-Polynesian, Celebic, Tomini-Tolitoli, Tomini, Southern -dmu Dubu 140.76837 -3.62591 Pauwasi, Western -dmv Dumpas 117.419 5.93483 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Unclassified -dmx Dema 32.77308 -15.68941 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Shona (S.10) -dmy Demta 140.16567 -2.38475 East Bird’s Head-Sentani, Sentani, Demta -dna Upper Grand Valley Dani 138.90083 -3.94368 Trans-New Guinea, West, Dani, Dani Proper -dnd Daonda 141.2198 -3.31443 Border, Waris -dne Ndendeule 36.01053 -10.42032 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, N, Manda (N.101) -dng Dungan 78.42795 42.51502 Sino-Tibetan, Chinese -dni Lower Grand Valley Dani 138.99248 -4.25684 Trans-New Guinea, West, Dani, Dani Proper -dnj Dan -7.438136 7.376237 Niger-Congo, Mande, Eastern, Southeastern, Guro-Tura, Tura-Dan-Mano, Tura-Dan -dnk Dengka 122.94583 -10.78657 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor, Rote -dnn Dzùùngoo -4.92036 11.37957 Niger-Congo, Mande, Western, Northwestern, Samogo -dnr Danaru 145.45672 -5.53634 Trans-New Guinea, Madang, Rai Coast, Peka -dnt Mid Grand Valley Dani 138.94483 -4.06322 Trans-New Guinea, West, Dani, Dani Proper -dnu Danau 96.99805 20.4957 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Western Palaungic, Danau -dnw Western Dani 138.21693 -3.77127 Trans-New Guinea, West, Dani, Dani Proper -dny Dení -67.50286 -6.74962 Arauan -doa Dom 144.89497 -6.03737 Trans-New Guinea, Chimbu-Wahgi, Chimbu -dob Dobu 150.82504 -9.63239 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Dobu-Duau -doc Northern Dong 109.20384 26.99443 Tai-Kadai, Kam-Tai, Kam-Sui -doe Doe 38.49022 -6.25844 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Zigula-Zaramo (G.301) -dof Domu 148.45002 -10.15101 Trans-New Guinea, Southeast Papuan, Mailuan -doh Dong 11.99245 8.64119 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Dakoid -dok Dondo 120.70738 0.80348 Austronesian, Malayo-Polynesian, Celebic, Tomini-Tolitoli, Tomini, Northern -dol Doso 142.65608 -7.85806 Unclassified -don Toura 146.98836 -9.10008 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Central Papuan, West Central Papuan, Nuclear -doo Dongo 29.96193 2.96683 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Mba -dop Lukpa 1.99545 9.40879 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Eastern -doq Dominican Sign Language -71.17218 18.87983 Deaf sign language -dor Dori'o 160.89663 -9.11536 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, Malaita, Southern -dos Dogosé -4.1493 10.18993 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Gan-Dogose -dot Dass 9.51838 9.9325 Afro-Asiatic, Chadic, West, B, B.3 -dov Dombe 26.502 -18.37 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Lenje-Tonga (M.64) -dow Doyayo 13.07676 8.68604 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Duru, Voko-Dowayo, Vere-Dowayo, Dowayo -dox Bussa 37.20169 5.74987 Afro-Asiatic, Cushitic, East, Dullay -doy Dompo -2.295 8.182 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Guang, North Guang -doz Dorze 37.55537 6.25237 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gimojan, Ometo-Gimira, Ometo, Central -dpp Papar 115.58015 5.57378 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Dusun -drb Dair 30.67816 12.47398 Nilo-Saharan, Eastern Sudanic, Eastern, Nubian, Central, Hill, Unclassified -drd Darmiya 80.52903 29.889 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Himalayish, Almora -dre Dolpo 83.29267 29.19568 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, gTsang -drg Rungus 116.74264 6.83989 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Dusun -drh Darkhat 99.44493 50.62298 -dri C'lela 5.26544 11.46534 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Duka -drl Darling 142.69519 -32.70212 Australian, Pama-Nyungan, Baagandji -drn West Damar 128.58527 -7.12065 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, West Damar -dro Daro-Matu 111.53563 2.54435 Austronesian, Malayo-Polynesian, North Borneo, Melanau-Kajang, Melanau -drq Dura 84.435 28.173 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Bodish -drr Dororo 157.76722 -8.30556 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, New Georgia, West -drs Gedeo 38.2395 6.18469 Afro-Asiatic, Cushitic, East, Highland -drt Drents 6.51539 52.9024 Indo-European, Germanic, West, Low Saxon-Low Franconian, Low Saxon -dru Rukai 120.84424 22.77381 Austronesian, Rukai -drw Darwazi 70.76427 38.31608 -dry Darai 84.13573 27.8623 Indo-European, Indo-Iranian, Indo-Aryan, Unclassified -dsb Lower Sorbian 13.9407 51.66213 Indo-European, Slavic, West, Sorbian -dse Dutch Sign Language 4.91133 52.12512 Deaf sign language -dsh Daasanach 36.17054 4.66048 Afro-Asiatic, Cushitic, East, Western Omo-Tana -dsi Disa 19.21559 10.32184 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Bagirmi -dsl Danish Sign Language 12.31866 55.82574 Deaf sign language -dsn Dusner 134.39057 -2.73859 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Biakic -dso Desiya Oriya 82.646 18.965 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Oriya -dsq Tadaksahak 2.32653 16.685 Nilo-Saharan, Songhai, Northern -dta Daur 124.52998 48.21326 Altaic, Mongolic, Eastern, Dagur -dtb Labuk-Kinabatangan Kadazan 117.50653 5.51924 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Dusun, Eastern -dtk Tene Kan Dogon -3.37158 14.06755 Niger-Congo, Atlantic-Congo, Volta-Congo, Dogon -dtm Tomo Kan Dogon -3.66007 13.83082 Niger-Congo, Atlantic-Congo, Volta-Congo, Dogon -dtp Central Dusun 116.68089 6.02998 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Dusun, Central -dtr Lotud 116.23239 6.13732 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Dusun -dts Toro So Dogon -3.10006 14.40749 Niger-Congo, Atlantic-Congo, Volta-Congo, Dogon -dtt Toro Tegu Dogon -2.22427 15.06437 Niger-Congo, Atlantic-Congo, Volta-Congo, Dogon -dua Duala 9.61877 4.10208 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Duala (A.24) -dub Dubli 73.218 21.51607 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -duc Duna 142.47498 -5.41439 Trans-New Guinea, Duna-Bogaya -dud Hun-Saare 5.07312 10.78983 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Duka -due Umiray Dumaget Agta 121.50814 14.87569 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Umiray Dumaget -duf Dumbea 166.53113 -22.09465 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Southern, Extreme Southern -dug Duruma 39.32203 -4.09629 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Nyika-Taita (E.72) -duh Dungra Bhil 73.187 22.306 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -dui Dumun 146.08223 -5.55315 Trans-New Guinea, Madang, Rai Coast, Yaganon -duj Dhuwal 136.00811 -12.78254 Australian, Pama-Nyungan, Yuulngu, Dhuwal -duk Duduela 145.64193 -5.43119 Trans-New Guinea, Madang, Rai Coast, Nuru -dul Alabat Island Agta 122.0143 14.1217 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Umiray Dumaget -dun Dusun Deyah 115.57806 -1.95514 Austronesian, Malayo-Polynesian, Greater Barito, East, Central-South, Central -duo Dupaninan Agta 122.18812 17.37477 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Northern Cordilleran, Northeastern Luzon, Northern -dup Duano' 103.3602 1.56829 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -duq Dusun Malang 115.39233 -0.85277 Austronesian, Malayo-Polynesian, Greater Barito, East, Central-South, South -dur Dii 13.98844 7.77412 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Duru, Dii -dus Dumi 86.75699 27.45849 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Western -duu Drung 98.49449 28.00792 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Nungish -duv Duvle 137.96449 -3.21832 Lakes Plain, Tariku, Duvle -duw Dusun Witu 114.97946 -1.57408 Austronesian, Malayo-Polynesian, Greater Barito, East, Central-South, South -dux Duungooma -5.85872 10.92344 Niger-Congo, Mande, Western, Northwestern, Samogo -duy Dicamay Agta 121.60564 17.88464 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Northern Cordilleran, Northeastern Luzon, Northern -duz Duli 13.42323 9.11241 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Duru, Duli -dva Duau 151.21773 -10.18696 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Dobu-Duau -dwa Diri 9.32363 11.17012 Afro-Asiatic, Chadic, West, B, B.2 -dwr Dawro 36.78195 6.95495 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gimojan, Ometo-Gimira, Ometo, Central -dww Dawawa 149.99865 -10.16915 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Kakabai -dya Dyan -3.59179 10.8342 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Dyan -dyb Dyaberdyaber 122.52306 -17.18653 Australian, Nyulnyulan -dyd Dyugun 122.40831 -17.90595 Australian, Nyulnyulan -dyg Villa Viciosa Agta 120.63753 17.47098 Austronesian, Malayo-Polynesian, Philippine -dyi Djimini Senoufo -4.45627 8.36279 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Senufo, Tagwana-Djimini -dyk Land Dayak 109.98179 -0.04815 -dyn Dyangadi 152.6025 -30.84687 Australian, Pama-Nyungan, Dyangadi -dyo Jola-Fonyi -16.20977 12.80851 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Bak, Jola, Jola Proper, Jola Central, Jola-Fonyi -dyu Jula -4.08665 10.77063 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding, Manding-East, Northeastern Manding, Bamana -dyy Dyaabugay 145.38835 -16.59598 Australian, Pama-Nyungan, Yidinic -dza Duguza 10.21664 9.42456 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Jera -dzd Daza 10.48652 10.11845 Afro-Asiatic, Chadic, West, A -dzg Dazaga 18.84133 17.13399 Nilo-Saharan, Saharan, Western, Tebu -dzl Dzalakha 91.37399 27.78546 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, East Bodish, Bumthang -dzn Dzando 19.00221 2.24195 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngombe (C.413) -dzo Dzongkha 89.75117 27.38056 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, Southern -ebg Ebughu 8.01304 4.82544 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Ebughu -ebo Teke-Eboo 15.57351 -2.29619 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Teke (B.74) -ebr Ebrié -4.03188 5.36868 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Potou -ebu Embu 37.59334 -0.62822 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Kikuyu-Kamba (E.52) -ecs Ecuadorian Sign Language -79.16665 -1.24999 Deaf sign language -eee E 109.06274 24.72616 Mixed language -efa Efai 8.27625 4.60447 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Efai -efe Efe 29.29185 1.8798 Nilo-Saharan, Central Sudanic, East, Mangbutu-Efe -efi Efik 8.38121 4.89379 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Efik -ega Ega -5.41732 5.56081 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Ega -ego Eggon 8.45686 8.71442 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Southwestern, B -ehu Ehueun 5.58213 7.48032 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Northwestern, Osse -eip Eipomek 140.04456 -4.33691 Trans-New Guinea, Mek, Eastern -eit Eitiep 142.55536 -3.51561 Torricelli, Kombio-Arapesh, Kombio -eiv Askopan 155.30733 -6.22539 North Bougainville, Rotokas -eja Ejamat -16.51307 12.288 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Bak, Jola, Jola Proper, Jola Central, Her-Ejamat -eka Ekajuk 8.55058 6.45731 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Ekoid, Bakor -eke Ekit 7.89222 4.7645 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Ekit -ekg Ekari 136.0176 -3.88974 Trans-New Guinea, West, Wissel Lakes -eki Eki 8.13613 5.1503 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo -ekk Standard Estonian 25.013607 58.595272 Uralic, Finnic -ekm Elip 11.19304 4.45694 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Sanaga (A.62) -eko Koti 39.76024 -16.48229 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Makhuwa (P.311) -ekp Ekpeye 6.53362 5.06715 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Igboid, Ekpeye -ekr Yace 8.84077 6.84259 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Idomoid, Yatye-Akpa -eky Eastern Kayah 98.921 20.907 Sino-Tibetan, Tibeto-Burman, Karenic, Central -ele Elepi 143.93014 -3.7505 Torricelli, Marienberg -elh El Hugeirat 28.59013 11.94803 Nilo-Saharan, Eastern Sudanic, Eastern, Nubian, Central, Hill, Unclassified -eli Nding 30.73055 10.27415 Niger-Congo, Kordofanian, Talodi, Talodi Proper, Nding -elk Elkei 142.09265 -3.45544 Torricelli, Wapei-Palei, Wapei -ell Greek 23.32509 37.46921 Indo-European, Greek, Attic -elm Eleme 7.267 4.72964 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Ogoni, West -elo El Molo 36.76187 2.79312 Afro-Asiatic, Cushitic, East, Western Omo-Tana -elp Elpaputih 128.263 -3.078 -elu Elu 147.10086 -1.99841 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, East -ema Emai-Iuleha-Ora 5.84494 7.09089 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, North-Central, Edo-Esan-Ora -emb Embaloh 112.62997 1.3156 Austronesian, Malayo-Polynesian, South Sulawesi, Bugis, Tamanic -eme Emerillon -52.36986 3.23694 Tupian, Tupí-Guaraní, Wayampí, Wayampí -emg Eastern Meohang 87.11336 27.51034 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -emi Mussau-Emira 149.62397 -1.44105 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, St. Matthias -emk Eastern Maninkakan -9.67203 10.98828 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding, Manding-East, Southeastern Manding -eml Emiliano-Romagnolo 10.97675 44.52629 -emn Eman 9.70562 6.22923 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tivoid -emo Emok -57.88921 -24.92015 -emp Northern Emberá -78.09685 7.63322 Chocoan, Emberá, Northern Emberá -ems Pacific Gulf Yupik -148.04281 60.42382 Eskimo-Aleut, Eskimo, Yupik, Alaskan Yupik -emu Eastern Muria 80.88926 20.14222 Dravidian, South-Central, Gondi-Kui, Gondi -emw Emplawas 129.72112 -8.03209 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Babar, South, Southwest Babar -ena Apali 145.02281 -5.1727 Trans-New Guinea, Madang, South Adelbert Range, Wanang, Emuan -enb Endo 35.58662 1.15018 Nilo-Saharan, Eastern Sudanic, Nilotic, Southern, Kalenjin, Nandi-Markweta, Markweta -enc En 106.1667 22.83859 Tai-Kadai, Kra, Eastern Kra -end Ende 121.55456 -8.70998 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -enf Forest Enets 88.2121 69.98287 Uralic, Samoyed, Northern Samoyed, Enets -eng English -2.23831 53.27692 Indo-European, Germanic, West, English -enh Tundra Enets 83.7405 70.16258 Uralic, Samoyed, Northern Samoyed, Enets -eni Enim 103.88548 -3.85835 -enm Middle English 1.07890 51.28023 Indo-European, Germanic, West, English -enn Engenni 6.37339 5.11931 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Delta -eno Enggano 102.24509 -5.38846 Unclassified -enq Enga 143.68529 -5.45619 Trans-New Guinea, Engan, Enga -enr Emumu 140.90347 -3.74242 Pauwasi, Eastern -env Enwan 6.07393 7.15316 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, North-Central, Ghotuo-Uneme-Yekhee -enw Enwan 8.20974 4.68739 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Enwang-Uda -eot Beti -3.28627 5.26495 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Western -epi Epie 6.3146 5.00894 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Delta -epo Esperanto 2.81045 49.32733 Constructed language -erg Sie 169.16608 -18.81812 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, South Vanuatu, Erromanga -erh Eruwa 6.04818 5.18026 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Southwestern -eri Ogea 145.71017 -5.37766 Trans-New Guinea, Madang, Rai Coast, Nuru -erk South Efate 168.37659 -17.70063 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Central Vanuatu -ero Horpa 101.72 31.10258 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, rGyalrongic -err Erre 132.86787 -12.28391 Australian, Giimbiyu -ers Ersu 102.21339 29.28674 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Ersuish -ert Eritai 138.05252 -2.71182 Lakes Plain, Tariku, East -erw Erokwanas 132.7048 -2.83746 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Bomberai -ese Ese Ejja -66.03656 -10.89674 Tacanan, Chama -esh Eshtehardi 50.36768 35.72672 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Talysh -esi North Alaskan Inupiatun -153.91532 70.78648 Eskimo-Aleut, Eskimo, Inuit-Inupiaq -esk Northwest Alaska Inupiatun -161.80666 64.77955 Eskimo-Aleut, Eskimo, Inuit-Inupiaq -esl Egypt Sign Language 29.654 29.567 Deaf sign language -esm Esuma -3.05409 5.21504 -esn Salvadoran Sign Language -89.59881 13.7024 Deaf sign language -eso Estonian Sign Language 24.566 58.947 Deaf sign language -esq Esselen -121.86656 36.54726 Language isolate -ess Central Siberian Yupik -170.27166 63.43083 Eskimo-Aleut, Eskimo, Yupik -est Estonian 25.8136 58.72406 Uralic, Finnic -esu Central Yupik -161.48588 60.30616 Eskimo-Aleut, Eskimo, Yupik, Alaskan Yupik -etb Etebi 7.97357 4.79059 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Ekit -eth Ethiopian Sign Language 38.85339 8.9761 Deaf sign language -etn Eton 168.54926 -17.73995 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Central Vanuatu -eto Eton 11.39348 4.21045 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Ewondo-Fang (A.71) -etr Edolo 142.65007 -6.11618 Trans-New Guinea, Bosavi -ets Yekhee 6.44919 7.10204 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, North-Central, Ghotuo-Uneme-Yekhee -etu Ejagham 8.66317 5.46344 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Ekoid -etx Eten 8.61443 9.73073 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Beromic -etz Semimi 134.45355 -3.71553 Mairasi -eur Europanto 4.348 50.847 -eus Basque -2.07063 42.96804 Language isolate -eve Even 130.91417 70.6687 Altaic, Tungusic, Northern, Even -evh Uvbie 5.77303 5.44263 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Southwestern -evn Evenki 119.52452 48.47684 Altaic, Tungusic, Northern, Evenki -ewe Éwé 0.63453 6.14219 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe -ewo Ewondo 11.63646 3.16141 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Ewondo-Fang (A.72) -ext Extremaduran -6.10179 39.19261 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Ibero-Romance, West Iberian, Castilian -eya Eyak -144.76186 60.4232 Eyak-Athabaskan -eze Uzekwe 8.31399 6.58841 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Central, North-South, Koring-Kukele, Kukele -faa Fasu 143.28359 -6.62687 Trans-New Guinea, West Kutubu -fab Fa D'ambu 5.61879 -1.43033 Creole, Portuguese based -fad Wagi 145.72582 -5.17834 Trans-New Guinea, Madang, Croisilles, Hanseman -faf Fagani 161.6618 -10.44791 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, San Cristobal -fag Finongan 146.62868 -6.33005 Trans-New Guinea, Finisterre-Huon, Finisterre, Erap -fah Fali of Baissa 10.76837 7.38023 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Unclassified -fai Faiwol 141.65597 -5.4967 Trans-New Guinea, Ok-Awyu, Ok, Mountain -faj Faita 145.29785 -5.59947 Trans-New Guinea, Madang, South Adelbert Range, Josephstaal, Faita -fak Fang 10.319 6.54384 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Yemne-Kimbi -fal South Fali 13.61642 9.51408 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Fali -fam Fam 10.50499 7.54277 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Fam -fan Fang 10.42397 1.58538 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Ewondo-Fang (A.75) -fao Faroese -6.88 62.07 Indo-European, Germanic, North, West Scandinavian -fap Palor -16.95567 14.86283 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Cangin -far Fataleka 160.86142 -8.59041 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, Malaita, Northern -fau Fayu 136.86713 -3.14497 Lakes Plain, Tariku, West -fax Fala -6.91452 40.16511 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Ibero-Romance, West Iberian, Portuguese-Galician -fay Southwestern Fars 52.267 29.746 Indo-European, Indo-Iranian, Iranian, Western, Southwestern, Fars -faz Northwestern Fars 52.925 29.643 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Central Iran -fcs Quebec Sign Language -74.87193 45.99654 Deaf sign language -fer Feroge 25.7171 8.61612 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Sere, Feroge-Mangaya -ffm Maasina Fulfulde -4.10264 14.91803 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Senegambian, Fula-Wolof, Fula, West Central -fgr Fongoro 22.56115 11.31789 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi -fia Nobiin 30.72549 21.15708 Nilo-Saharan, Eastern Sudanic, Eastern, Nubian, Northern -fie Fyer 9.29503 9.49936 Afro-Asiatic, Chadic, West, A, A.4, Fyer -fij Fijian 179.24208 -16.55711 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, East Fijian -fil Filipino 123.464 12.265 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Tagalog -fin Finnish 26.33121 64.22287 Uralic, Finnic -fip Fipa 31.34415 -7.88963 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Fipa-Mambwe (M.13) -fir Firan 8.69095 9.65245 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Central, South-Central -fit Tornedalen Finnish 22.07959 67.67032 Uralic, Finnic -fiw Fiwaga 143.64603 -6.66342 Trans-New Guinea, East Kutubu -fiz Izere 9.09741 9.93195 -fkv Kven Finnish 29.54336 69.37724 Uralic, Finnic -fla Kalispel-Pend D'oreille -114.18987 47.58251 Salish, Interior, Southern, Kalispel -flh Foau 139.21267 -3.04582 Lakes Plain, East -fli Fali 13.40867 10.54189 Afro-Asiatic, Chadic, Biu-Mandara, A, A.8 -fll North Fali 13.65675 9.9249 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Fali -flm Falam Chin 93.80173 22.95499 -fln Flinders Island 144.25927 -14.18123 Australian, Pama-Nyungan, Flinders Island -flr Fuliiru 28.98646 -3.04022 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Ruanda-Rundi (D.63) -fly Tsotsitaal 27.49549 -25.8633 Creole, Afrikaans based -fmp Fe'fe' 10.14425 5.18158 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Bamileke -fmu Far Western Muria 80.47121 20.17542 Dravidian, South-Central, Gondi-Kui, Gondi -fng Fanagalo 23.83326 -30.42065 Pidgin, Zulu based -fni Fania 18.75001 10.29104 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Bua -fod Foodo 1.40486 9.56489 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Guang, North Guang -foi Foi 143.49539 -6.47258 Trans-New Guinea, East Kutubu -fom Foma 24.32023 0.88032 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Soko-Kele (C.56) -fon Fon 2.17144 6.99754 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe, Fon -for Fore 145.5065 -6.64473 Trans-New Guinea, Kainantu-Goroka, Gorokan, Fore -fos Siraya 120.31451 22.97767 Austronesian, East Formosan, Southwest -fpe Fernando Po Creole English 8.68929 3.53638 Creole, English based, Atlantic, Krio -fqs Fas 141.64043 -3.10868 Fas -fra French 1.71931 46.77921 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Gallo-Romance, Gallo-Rhaetian, Oïl, French -frc Cajun French -91.61325 29.68686 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Gallo-Romance, Gallo-Rhaetian, Oïl, French -frd Fordata 131.51054 -7.28902 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Southeast Maluku, Kei-Tanimbar, Kei-Fordata -fry Western Frisian 5.86091 53.143 Indo-European, Germanic, West, Frisian -frk Frankish 9.98388 52.89596 Indo-European, Germanic, West, High German, German, Middle German, West Middle German, Eastern Franconian -frp Franco-Provençal 5.46856 45.92326 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Gallo-Romance, Gallo-Rhaetian, Oïl, Southeastern -frq Forak 146.54121 -5.69079 Trans-New Guinea, Finisterre-Huon, Finisterre, Warup -frr Northern Frisian 8.58489 54.64087 Indo-European, Germanic, West, Frisian -frs Eastern Frisian 7.73549 52.97134 Indo-European, Germanic, West, Low Saxon-Low Franconian, Low Saxon -frt Fortsenal 166.93136 -15.44841 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -fse Finnish Sign Language 25.06767 60.66099 Deaf sign language -fsl French Sign Language 2.1383 48.77208 Deaf sign language -fss Finnish-Swedish Sign Language 26.328 62.111 Deaf sign language -fub Adamawa Fulfulde 12.82538 6.83331 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Senegambian, Fula-Wolof, Fula, Eastern -fuc Pulaar -14.05428 13.65338 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Senegambian, Fula-Wolof, Fula, Western -fud East Futuna -178.1315 -14.31169 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Futunic -fue Borgu Fulfulde 3.03776 9.63334 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Senegambian, Fula-Wolof, Fula, West Central -fuf Pular -12.59126 11.48254 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Senegambian, Fula-Wolof, Fula, West Central -fuh Western Niger Fulfulde 1.94971 13.92109 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Senegambian, Fula-Wolof, Fula, East Central -fui Bagirmi Fulfulde 17.02445 11.16812 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Senegambian, Fula-Wolof, Fula, Eastern -fuj Ko 31.53992 10.73208 Niger-Congo, Kordofanian, Heiban, Eastern -fum Fum 11.10872 6.66524 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields -fun Fulniô -37.14017 -9.02591 Language isolate -fuq Central-Eastern Niger Fulfulde 8.43261 15.09071 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Senegambian, Fula-Wolof, Fula, East Central -fur Friulian 13.04927 46.14732 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Gallo-Romance, Gallo-Rhaetian, Rhaetian -fut Futuna-Aniwa 170.21518 -19.53033 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Futunic -fuu Furu 20.41995 4.43706 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Kara -fuv Nigerian Fulfulde 11.11882 10.99725 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Senegambian, Fula-Wolof, Fula, East Central -fuy Fuyug 147.31162 -8.6371 Trans-New Guinea, Southeast Papuan, Goilalan, Fuyug -fvr Fur 24.71909 12.77313 Nilo-Saharan, Fur -fwa Fwâi 164.9009 -20.68733 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Northern, North, Nemi -fwe Fwe 24.43151 -17.72372 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Subiya-Totela (K.402) -gaa Ga -0.18598 5.65488 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Ga-Dangme -gab Gabri 16.62304 9.33955 Afro-Asiatic, Chadic, East, A, A.2, 2 -gad Gaddang 121.17735 16.54683 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Northern Cordilleran, Cagayan Valley, Ibanagic, Gaddangic -gae Guarequena -66.53448 2.44659 Maipurean, Northern, Upper Amazon, Western Nawiki, Warekena -gaf Gende 145.17732 -5.67528 Trans-New Guinea, Kainantu-Goroka, Gorokan, Gende -gag Gagauz 28.72994 46.10561 Altaic, Turkic, Southern, Turkish -gah Alekano 145.38723 -6.03901 Trans-New Guinea, Kainantu-Goroka, Gorokan, Gahuku-Benabena -gai Borei 144.71548 -4.08697 Ramu-Lower Sepik, Ramu, Ottilien, Borei -gaj Gadsup 145.99716 -6.31631 Trans-New Guinea, Kainantu-Goroka, Kainantu, Gadsup-Auyana-Awa -gak Gamkonora 127.50574 1.34308 West Papuan, North Halmahera, Sahu -gal Galoli 125.95904 -8.61074 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor -gam Kandawo 144.96617 -5.73674 Trans-New Guinea, Chimbu-Wahgi, Jimi -gan Gan Chinese 115.16585 27.98958 Sino-Tibetan, Chinese -gao Gants 144.77058 -5.28113 Trans-New Guinea, Madang, Kalam-Kobon -gap Gal 145.62324 -5.16351 Trans-New Guinea, Madang, Croisilles, Hanseman -gaq Gata' 82.98397 18.6076 Austro-Asiatic, Munda, South Munda, Koraput Munda, Gutob-Remo-Geta’, Geta’ -gar Galeya 150.83581 -9.54137 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Dobu-Duau -gas Adiwasi Garasia 73.14262 24.07116 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -gat Kenati 145.8806 -6.74765 Trans-New Guinea, Kainantu-Goroka, Kainantu -gau Mudhili Gadaba 83.378 18.276 Dravidian, Central, Parji-Gadaba -gav Gabutamon 146.62066 -5.8075 -gaw Nobonob 145.71224 -5.06952 Trans-New Guinea, Madang, Croisilles, Hanseman -gax Borana-Arsi-Guji Oromo 39.57604 5.72825 Afro-Asiatic, Cushitic, East, Oromo -gay Gayo 97.34556 4.3733 Austronesian, Malayo-Polynesian, Northwest Sumatra-Barrier Islands -gaz West Central Oromo 36.73647 8.81391 Afro-Asiatic, Cushitic, East, Oromo -gbb Kaytetye 133.60153 -21.58444 Australian, Pama-Nyungan, Arandic -gbc Garawa 137.72014 -17.4504 -gbd Karadjeri 122.33401 -18.6771 Australian, Pama-Nyungan, South-West, Marngu -gbe Niksek 142.45009 -4.82581 Sepik, Sepik Hill, Sanio -gbf Gaikundi 143.13858 -4.01718 Sepik, Ndu -gbg Gbanziri 20.21089 4.85841 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Ngbaka, Western, Gbanzili -gbh Defi Gbe 2.68609 6.40718 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe, Aja -gbi Galela 128.44015 2.31461 West Papuan, North Halmahera, Galela-Loloda -gbj Bodo Gadaba 82.77099 18.38575 Austro-Asiatic, Munda, South Munda, Koraput Munda, Gutob-Remo-Geta’, Gutob-Remo -gbk Gaddi 76.57127 32.35998 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Western Pahari -gbl Gamit 73.68388 21.06965 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -gbm Garhwali 78.72009 30.50606 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Garhwali -gbn Mo'da 29.73546 6.1463 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Bongo-Baka, Morokodo-Beli, Morokodo-Mo’da -gbo Northern Grebo -8.1409 5.17103 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Grebo, Liberian -gbp Gbaya-Bossangoa 17.64498 6.61896 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Gbaya-Manza-Ngbaka, Central -gbq Gbaya-Bozoum 16.46427 5.9879 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Gbaya-Manza-Ngbaka, Central -gbr Gbagyi 6.90495 9.29842 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Nupoid, Nupe-Gbagyi, Gbagyi-Gbari -gbs Gbesi Gbe 2.0269 6.55911 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe -gbu Gagadu 132.64324 -12.51761 Australian, Gunwingguan, Gagudjuan -gbv Gbanu 17.38868 5.28183 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Gbaya-Manza-Ngbaka, Central -gbx Eastern Xwla Gbe 2.54987 6.37803 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe -gby Gbari 7.10757 8.46411 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Nupoid, Nupe-Gbagyi, Gbagyi-Gbari -gbz Zoroastrian Dari 54.44689 31.8161 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Central Iran -gcc Mali 152.21433 -4.71826 East New Britain, Baining -gcd Ganggalida 139.42637 -17.54458 Australian, Tangic -gce Galice -120.7501 45.39142 Eyak-Athabaskan, Athabaskan, Pacific Coast Athabaskan, Oregon Athabaskan -gcf Guadeloupean Creole French -61.67671 16.14081 Creole, French based -gcl Grenadian Creole English -61.69894 12.0067 Creole, English based, Atlantic, Eastern, Southern -gcn Gaina 148.59048 -9.14409 Trans-New Guinea, Greater Binanderean, Binanderean, Nuclear Binanderean, South Binanderean, Coastal Binanderean, Gaena-Korafe -gcr Guianese Creole French -52.73359 4.94804 Creole, French based -gct Colonia Tovar German -67.25787 10.48533 Indo-European, Germanic, West, High German, German, Upper German, Alemannic -gda Gade Lohar 78.21868 25.8583 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Unclassified -gdb Pottangi Ollar Gadaba 82.75859 18.5968 Dravidian, Central, Parji-Gadaba -gdc Gugu Badhun 144.46003 -18.49205 Australian, Pama-Nyungan, Maric -gdd Gedaged 145.78079 -5.18175 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Bel, Nuclear Bel, Northern -gde Gude 13.40591 10.35013 Afro-Asiatic, Chadic, Biu-Mandara, A, A.8 -gdf Guduf-Gava 13.78934 11.10568 Afro-Asiatic, Chadic, Biu-Mandara, A, A.4, Mandara Proper, Glavda -gdg Ga'dang 121.4552 17.22378 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Northern Cordilleran, Cagayan Valley, Ibanagic, Gaddangic -gdh Gadjerawang 129.15553 -15.47863 Australian, Djeragan -gdi Gundi 15.73342 3.45973 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Ngbaka, Western, Baka-Gundi -gdj Gurdjar 141.14513 -17.16528 Australian, Pama-Nyungan, Paman, Norman Pama -gdk Gadang 16.997 10.42499 Afro-Asiatic, Chadic, East, A, A.1, 2 -gdl Dirasha 37.40259 5.60452 Afro-Asiatic, Cushitic, East, Konso-Gidole -gdm Laal 17.61425 10.00633 Unclassified -gdn Umanakaina 149.65773 -9.89671 Trans-New Guinea, Southeast Papuan, Dagan -gdo Ghodoberi 46.22524 42.74276 North Caucasian, East Caucasian, Avar-Andic, Andic -gdq Mehri 51.58382 16.8235 Afro-Asiatic, Semitic, South, South Arabian -gdr Wipi 143.06403 -8.79741 Eastern Trans-Fly -gdu Gudu 12.53591 10.12059 Afro-Asiatic, Chadic, Biu-Mandara, A, A.8 -gdx Godwari 72.846 24.885 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Marwari -gea Geruma 9.78484 10.4775 Afro-Asiatic, Chadic, West, A, A.2, Bole, Bole Proper -geb Kire 144.71096 -4.25927 Ramu-Lower Sepik, Ramu, Mikarew -gec Gboloo Grebo -7.66699 4.75405 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Grebo, Liberian -ged Gade 7.49869 8.71139 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Nupoid, Ebira-Gade -geg Gengle 11.95269 8.8956 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Mumuye-Yandang, Mumuye -geh Hutterite German -128.84329 55.96244 Indo-European, Germanic, West, High German, German, Upper German, Bavarian-Austrian -gei Gebe 129.42435 -0.07877 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Raja Ampat -gej Gen 1.63969 6.26618 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe, Mina -gek Yiwom 9.78757 8.97395 Afro-Asiatic, Chadic, West, A, A.3, Yiwom -gel Kag-Fer-Jiir-Koor-Ror-Us-Zuksun 4.8387 11.53187 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Duka -gen Geman Deng 97.04437 28.47324 -geq Geme 20.66112 8.48359 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Zande, Zande-Nzakara -ges Geser-Gorom 130.70133 -3.8016 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Banda-Geser, Geser-Gorom -gew Gera 10.11999 10.4331 Afro-Asiatic, Chadic, West, A, A.2, Bole, Bole Proper -gex Garre 44.68618 2.29633 Afro-Asiatic, Cushitic, East, Somali -gey Enya 26.74965 -4.67337 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Mbole-Enya (D.14) -gez Geez 42.19945 5.14596 Afro-Asiatic, Semitic, South, Ethiopian, North -gfk Patpatar 152.49294 -3.74711 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Patpatar-Tolai -gft Gafat 39.56049 11.57637 -gga Gao 159.78866 -8.35163 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Santa Isabel, East -ggb Gbii -8.9346 5.87021 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Bassa -ggd Gugadj 141.16842 -17.83724 Australian, Pama-Nyungan, Paman, Flinders Pama -gge Guragone 134.09501 -12.66855 Australian, Gunwingguan, Burarran -ggg Gurgula 68.565 25.737 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Unclassified -ggh Garreh-Ajuran 40.48176 3.15088 -ggk Kungarakany 130.881 -12.7 Australian, Gunwingguan, Gungaraganyan -ggl Ganglau 146.1305 -5.57945 Trans-New Guinea, Madang, Rai Coast, Yaganon -ggn Eastern Gurung 84.58145 28.4368 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Bodish, Gurung-Tamang, Gurungic -ggo Southern Gondi 80.27811 20.10446 Dravidian, South-Central, Gondi-Kui, Gondi -ggr Aghu Tharnggalu 142.42646 -13.73495 -ggt Gitua 147.48522 -6.0151 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Ngero, Tuam -ggu Gagu -5.51851 6.40859 Niger-Congo, Mande, Eastern, Southeastern, Nwa-Ben, Ben-Gban -ggw Gogodala 142.8741 -8.08527 Trans-New Guinea, Gogodala-Suki, Gogodala -gha Ghadamès 10.01654 30.11683 Afro-Asiatic, Berber, Northern, Zenati, East -ghc Hiberno-Scottish Gaelic -5.222 55.932 -ghe Southern Ghale 84.85113 28.10603 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Bodish, Ghale -ghh Northern Ghale 84.92899 28.23323 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Bodish, Ghale -ghk Geko Karen 96.5308 19.67411 Sino-Tibetan, Tibeto-Burman, Karenic, Central -ghl Ghulfan 29.81219 11.64319 Nilo-Saharan, Eastern Sudanic, Eastern, Nubian, Central, Hill, Kadaru-Ghulfan -ghn Ghanongga 156.55189 -8.02035 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, New Georgia, West -gho Ghomara -4.6696 34.79792 Afro-Asiatic, Berber, Northern, Zenati, Ghomara -ghr Ghera 68.368 25.383 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Western Hindi, Unclassified -ghs Guhu-Samane 147.22844 -7.99922 Trans-New Guinea, Greater Binanderean, Guhu-Samane -ght Kutang Ghale 84.92999 28.38076 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Bodish, Ghale -gia Kitja 127.39201 -17.57584 Australian, Djeragan -gib Gibanawa 8.615 12.584 Pidgin, Hausa based -gic Gail 26.895 -28.77 Unclassified -gid Gidar 13.98246 9.92948 Afro-Asiatic, Chadic, Biu-Mandara, C -gig Goaria 68.363 27.253 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Marwari -gil Kiribati -157.37626 1.8812 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Ikiribati -gim Gimi 145.21416 -6.42097 Trans-New Guinea, Kainantu-Goroka, Gorokan, Fore -gin Hinukh 45.80638 42.45022 North Caucasian, East Caucasian, Tsezic, West Tsezic -gio Gelao 106.2352 26.15447 -gip Gimi 149.47823 -6.02464 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Southwest New Britain, Arawe-Pasismanua, Arawe, West Arawe -giq Green Gelao 104.69783 22.5632 Tai-Kadai, Kra, Western Kra -gir Red Gelao 104.99252 23.18677 Tai-Kadai, Kra, Western Kra -gis North Giziga 14.21903 10.6755 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -git Gitxsan -128.08043 55.09005 Tsimshian, Nass-Gitksan -giw White Gelao 105.07021 23.01962 Tai-Kadai, Kra, Western Kra -gix Gilima 19.00912 4.5585 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Ngbaka, Western, Bwaka -giy Giyug 130.09204 -13.20007 Australian, Daly, Bringen-Wagaydy, Wagaydy -giz South Giziga 14.1931 10.28092 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -gji Geji 9.64965 10.34776 Afro-Asiatic, Chadic, West, B, B.3, Zaar Proper -gjk Kachi Koli 68.72128 25.34329 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Gujarati -gjn Gonja -0.72757 8.48801 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Guang, North Guang -gju Gujari 74.44145 33.5142 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Unclassified -gka Guya 146.4531 -5.70374 Trans-New Guinea, Finisterre-Huon, Finisterre, Warup -gke Ndai 14.28884 8.09039 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Mbum, Northern, Dama-Galke -gkn Gokana 7.34457 4.61889 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Ogoni, East -gkp Guinea Kpelle -8.98843 7.93196 Niger-Congo, Mande, Western, Central-Southwestern, Southwestern, Kpelle -gla Scottish Gaelic -5.24366 56.75735 Indo-European, Celtic, Insular, Goidelic -glc Bon Gula 19.57745 10.65773 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Bua -gld Nanai 136.79144 49.00478 Altaic, Tungusic, Southern, Southeast, Nanaj -gle Irish Gaelic -7.68971 52.00883 Indo-European, Celtic, Insular, Goidelic -glg Galician -8.00703 42.77012 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Ibero-Romance, West Iberian, Portuguese-Galician -glh Northwest Pashayi 69.99362 35.16781 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Pashayi -gli Guliguli 157.56369 -8.10266 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, New Georgia, West -glj Gula Iro 19.5359 10.26705 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Bua -glk Gilaki 49.83588 37.13437 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Caspian -glo Galambu 10.25422 10.12581 Afro-Asiatic, Chadic, West, A, A.2, Bole, Bole Proper -glr Glaro-Twabo -7.5239 5.46797 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Wee, Guere-Krahn -glu Gula 19.21821 10.30493 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Bagirmi -glv Manx -4.45437 54.26037 Indo-European, Celtic, Insular, Goidelic -glw Glavda 13.86562 11.19519 Afro-Asiatic, Chadic, Biu-Mandara, A, A.4, Mandara Proper, Glavda -gly Gule 33.69291 11.83364 Nilo-Saharan, Komuz, Koman -gma Gambera 126.27131 -14.29546 Australian, Worrorran -gmb Gula'alaa 161.02303 -8.74742 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, Malaita, Northern -gmd Mághdì 11.02325 9.2888 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Jen -gmn Gimnime 12.78694 8.58129 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Duru, Voko-Dowayo, Vere-Dowayo, Vere-Gimme, Gimme -gmo Gamo-Gofa-Dawro 37.13808 6.57645 -gmu Gumalu 145.61809 -5.22189 Trans-New Guinea, Madang, Croisilles, Gum -gmv Gamo 37.12585 6.36090 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gimojan, Ometo-Gimira, Ometo, Central -gmx Magoma 33.98255 -9.23498 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Bena-Kinga (G.651) -gna Kaansa -3.70994 10.16752 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Gan-Dogose -gnb Gangte 93.89714 24.61832 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -gnc Guanche -3.7038 40.43854 -gnd Zulgo-Gemzek 14.05779 10.82696 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -gng Ngangam 0.59724 10.06018 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Gurma -gnh Lere 8.93337 10.47891 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Jera -gni Gooniyandi 126.351 -18.40733 Australian, Bunaban -gnk //Gana 22.20026 -21.85547 Khoisan, Southern Africa, Central, Tshu-Khwe, Northwest -gnl Gangulu 149.41605 -22.76366 Australian, Pama-Nyungan, Maric -gnm Ginuman 149.69988 -10.02977 Trans-New Guinea, Southeast Papuan, Dagan -gnn Gumatj 136.83042 -12.25254 Australian, Pama-Nyungan, Yuulngu, Dhuwal -gno Northern Gondi 81.38421 18.16323 Dravidian, South-Central, Gondi-Kui, Gondi -gnq Gana 116.14474 5.57583 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Dusun -gnr Gureng Gureng 151.17468 -25.3893 Australian, Pama-Nyungan, Waka-Kabic, Than -gnt Guntai 141.25339 -8.80806 South-Central Papuan, Morehead-Upper Maro, Tonda -gnu Gnau 142.1959 -3.59093 Torricelli, Wapei-Palei, Wapei -gnw Western Bolivian Guaraní -64.16621 -20.28192 Tupian, Tupí-Guaraní, Guaraní, Guaraní, Bolivian Guaraní -gnz Ganzi 19.347 6.544 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Ngbaka, Western, Baka-Gundi -goa Guro -6.31154 7.34954 Niger-Congo, Mande, Eastern, Southeastern, Guro-Tura, Guro-Yaoure -gob Playero -71.00362 6.90948 Guajiboan, Guajibo -goc Gorakor 146.5794 -6.85564 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, South, Hote-Buang, Buang, Mumeng -god Godié -5.82696 5.3944 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Eastern, Bete, Western -goe Gongduk 91.16861 27.06603 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish -gof Gofa 37.14 6.58 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gimojan, Ometo-Gimira, Ometo, Central -gog Gogo 35.48066 -6.35951 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Gogo-Kagulu (G.11) -goi Gobasi 142.20124 -6.48678 Trans-New Guinea, East Strickland -goj Gowlan 77.2647 21.50959 Indo-European, Indo-Iranian, Indo-Aryan, Southern zone, Unclassified -gok Gowli 77.37332 21.77263 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Western Hindi, Unclassified -gol Gola -10.62816 6.6138 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Mel, Gola -gom Goanese Konkani 74.20979 15.27325 Indo-European, Indo-Iranian, Indo-Aryan, Southern zone, Konkani -goo Gone Dau 178.59889 -16.58861 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, East Fijian -gop Yeretuar 134.65553 -3.01713 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Yeretuar -goq Gorap 128.26063 2.13058 Austronesian, Malayo-Polynesian, Unclassified -gor Gorontalo 122.28765 0.62689 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Gorontalo-Mongondow, Gorontalic -gos Gronings 6.698 53.28422 Indo-European, Germanic, West, Low Saxon-Low Franconian, Low Saxon -got Gothic 29.97861 46.9304 Indo-European, Germanic, East -gou Gavar 13.81878 10.56029 Afro-Asiatic, Chadic, Biu-Mandara, A, A.7 -gow Gorowa 35.79962 -4.23575 Afro-Asiatic, Cushitic, South -gox Gobu 19.24763 4.90261 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Banda, Central, Central Core, Mid-Southern -goy Goundo 16.25498 9.46683 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Kim -goz Gozarkhani 50.69871 36.41331 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Talysh -gpa Gupa-Abawa 6.69128 8.21291 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Nupoid, Nupe-Gbagyi, Nupe -gpn Taiap 144.50616 -4.05047 Language isolate -gqa Ga'anda 12.6479 10.29554 Afro-Asiatic, Chadic, Biu-Mandara, A, A.1, Eastern -gqi Guiqiong 102.12754 30.48028 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Qiangic -gqn Guana -54.03332 -19.16665 Maipurean, Southern, Southern Outlier, Terena -gqr Gor 17.0713 8.0841 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Sara Proper -gra Rajput Garasia 73.24716 24.54507 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -grc Ancient Greek 21.91293 39.8155 Indo-European, Greek, Attic -grd Guruntum-Mbaaru 10.16204 9.87332 Afro-Asiatic, Chadic, West, B, B.3, Guruntum -grg Madi 146.4068 -5.63017 Trans-New Guinea, Finisterre-Huon, Finisterre, Gusap-Mot -grh Gbiri-Niragu 8.43157 10.39233 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Kauru -gri Ghari 159.91736 -9.4791 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Gela-Guadalcanal, Guadalcanal -grj Southern Grebo -7.73164 4.50239 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Grebo, Liberian -grm Kota Marudu Talantang 116.85329 6.48554 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Dusun -gro Groma 88.91044 27.5577 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, Southern -grq Gorovu 144.59021 -4.52947 Ramu-Lower Sepik, Ramu, Grass -grr Taznatit 0.01992 29.11067 Afro-Asiatic, Berber, Northern, Zenati, Mzab-Wargla -grs Gresi 140.2794 -2.72229 Nimboran -grt Garo 90.5011 25.62377 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Bodo-Koch, Bodo-Garo, Garo -gru Kistane 38.47633 8.33561 Afro-Asiatic, Semitic, South, Ethiopian, South, Outer, n-Group -grv Central Grebo -7.88667 4.88038 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Grebo, Liberian -grw Gweda 150.42133 -10.21731 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Are-Taupota, Taupota -grx Guriaso 141.59654 -3.5718 Kwomtari, Guriaso -gry Barclayville Grebo -8.09378 4.67843 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Grebo, Liberian -grz Guramalum 152.93332 -4.26666 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Patpatar-Tolai -gsc Gascon -0.0777 43.76965 -gse Ghanaian Sign Language -0.30274 5.55225 Deaf sign language -gsg German Sign Language 7.30478 50.81543 Deaf sign language -gsl Gusilay -16.50265 12.77612 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Bak, Jola, Jola Proper, Jola Central, Gusilay -gsm Guatemalan Sign Language -90.56666 14.50344 Deaf sign language -gsn Gusan 146.67886 -6.28998 Trans-New Guinea, Finisterre-Huon, Finisterre, Erap -gsp Wasembo 145.96858 -6.01318 Trans-New Guinea, Madang, Croisilles, Pihom, Wasembo -gss Greek Sign Language 23.37624 38.05355 Deaf sign language -gsw Schwyzerdütsch 8.46419 47.05157 Indo-European, Germanic, West, High German, German, Upper German, Alemannic -gta Guató -57.28974 -17.86961 Language isolate -gti Gbati-ri 28.79113 2.98585 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.306) -gua Shiki 9.72769 10.52378 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Jarawan, Nigerian -gub Guajajára -45.70815 -4.69461 Tupian, Tupí-Guaraní, Tenetehara, Tenetehara -guc Wayuu -72.24028 11.52576 Maipurean, Northern, Maritime, Ta-Maipurean -gud Yocoboué Dida -5.12242 5.40126 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Eastern, Dida -gue Gurinji 130.37933 -17.03293 Australian, Pama-Nyungan, South-West, Ngumbin -guf Gupapuyngu 135.33703 -12.2868 Australian, Pama-Nyungan, Yuulngu, Dhuwal -gug Paraguayan Guarani -57.08816 -25.60551 Tupian, Tupí-Guaraní, Guaraní, Guaraní -guh Guahibo -69.72268 5.24162 Guajiboan, Guajibo -gui Eastern Bolivian Guaraní -62.98948 -20.11726 Tupian, Tupí-Guaraní, Guaraní, Guaraní, Bolivian Guaraní -guj Gujarati 71.40448 22.53507 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Gujarati -guk Gumuz 35.74467 11.08268 Nilo-Saharan, Komuz, Gumuz -gul Sea Island Creole English -79.6036 33.66324 Creole, English based, Atlantic, Eastern, Northern -gum Guambiano -76.58197 2.55849 Paezan, Coconuco -gun Mbyá Guaraní -46.96306 -23.90381 Tupian, Tupí-Guaraní, Guaraní, Guaraní -guo Guayabero -71.84405 2.8969 Guajiboan -gup Gunwinggu 133.35778 -12.33983 Australian, Gunwingguan, Gunwinggic -guq Aché -56.46968 -25.58653 Tupian, Tupí-Guaraní, Guaraní -gur Farefare -0.8471 10.78287 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Western, Northwest -gus Guinean Sign Language -13.674 9.553 Deaf sign language -gut Maléku Jaíka -84.73181 10.74849 Chibchan, Chibchan B, Votic -guu Yanomamö -65.01963 2.27146 Yanomaman -guv Gey 13.58095 9.37513 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Gueve -guw Gun 2.62055 6.51257 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe, Aja -gux Gourmanchéma 1.00775 12.07232 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Gurma -guz Gusii 34.76751 -0.78872 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Logooli-Kuria (E.42) -gva Guana -58.06545 -21.98031 Mascoyan -gvc Guanano -69.49946 1.09898 Tucanoan, Eastern Tucanoan -gve Duwet 146.84068 -6.45752 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, Markham, Lower, Busu -gvf Golin 144.8505 -6.2249 Trans-New Guinea, Chimbu-Wahgi, Chimbu -gvj Guajá -46.36829 -3.93574 Tupian, Tupí-Guaraní, Wayampí, Amanayé -gvl Gulay 17.31512 9.06629 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Sara Proper -gvm Gurmana 6.79456 10.14865 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Baushi-Gurmana -gvn Kuku-Yalanji 145.18837 -16.00359 Australian, Pama-Nyungan, Yalandyic -gvo Gavião do Jiparaná -61.67521 -10.7235 Tupian, Mondé, Aruá -gvp Pará Gavião -49.02173 -4.91161 Jean, Northern, Timbira -gvr Western Gurung 84.31816 28.22054 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Bodish, Gurung-Tamang, Gurungic -gvs Gumawana 150.7623 -9.28497 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Gumawana -gvy Guyani 137.661 -34.739 Australian, Pama-Nyungan, South-West, Yura -gwa Mbato -3.70421 5.34421 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Potou -gwb Gwa 9.11434 10.30688 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Jarawan, Nigerian -gwc Kalami 72.57384 35.53033 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Kohistani -gwd Gawwada 37.2737 5.37869 Afro-Asiatic, Cushitic, East, Dullay -gwe Gweno 37.68273 -3.68407 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Chaga (E.65) -gwf Gowro 73.12333 35.12434 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Kohistani -gwg Moo 11.20399 9.44081 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Jen -gwi Gwich'in -139.80541 67.63566 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -gwj /Gwi 21.94314 -22.27083 Khoisan, Southern Africa, Central, Tshu-Khwe, Southwest -gwn Gwandara 7.49931 9.20464 Afro-Asiatic, Chadic, West, A, A.1 -gwr Gwere 33.82265 1.11392 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Nyoro-Ganda (E.17) -gwt Gawar-Bati 71.49753 35.0979 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Kunar -gwu Guwamu 148.86722 -27.82887 Australian, Pama-Nyungan, Maric -gww Kwini 126.56181 -14.25155 Australian, Worrorran -gwx Gua 0.16932 6.52106 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Guang, South Guang -gxx Wè Southern -7.63427 6.50013 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Wee, Guere-Krahn -gya Northwest Gbaya 15.23844 6.1024 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Gbaya-Manza-Ngbaka, Northwest -gyb Garus 145.68321 -4.9222 Trans-New Guinea, Madang, Croisilles, Hanseman -gyd Kayardild 139.48903 -17.06954 Australian, Tangic -gye Gyem 9.23923 10.41095 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Jera -gyf Gungabula 148.60445 -25.68965 Australian, Pama-Nyungan, Maric -gyg Gbayi 21.97066 5.57378 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Ngbandi -gyi Gyele 10.34709 2.82272 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Makaa-Njem (A.801) -gym Ngäbere -81.88204 8.68387 Chibchan, Chibchan A, Guaymiíc -gyn Guyanese Creole English -58.01247 6.59108 Creole, English based, Atlantic, Eastern, Southern -gyr Guarayu -61.69335 -15.82467 Tupian, Tupí-Guaraní, Guarayú -gyy Gunya 145.86184 -27.06423 Australian, Pama-Nyungan, Maric -gza Ganza 35.13733 10.29907 Afro-Asiatic, Omotic, North, Mao, West -gzi Gazi 49.45528 34.03574 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Central Iran -gzn Gane 127.97604 -0.42618 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, South Halmahera, East Makian-Gane -haa Han -141.29456 64.87146 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -hab Hanoi Sign Language 105.8339 21.02446 Deaf sign language -hac Gurani 44.4956 36.83768 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Zaza-Gorani -had Hatam 134.03715 -1.13531 Language isolate -hae Eastern Oromo 41.43953 8.67428 Afro-Asiatic, Cushitic, East, Oromo -haf Haiphong Sign Language 106.68927 20.8537 Deaf sign language -hag Hanga -1.57833 9.33929 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Western, Southeast -hah Hahon 154.80129 -5.59031 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Nehan-North Bougainville, Saposa-Tinputz -haj Hajong 89.88731 25.52006 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bengali-Assamese -hak Hakka Chinese 114.99321 24.58243 Sino-Tibetan, Chinese -hal Halang 107.57379 14.60822 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, North Bahnaric, West, Jeh-Halang -ham Hewa 142.55148 -5.03635 Sepik, Sepik Hill, Sanio -han Hangaza 30.70739 -2.52347 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Ruanda-Rundi (D.65) -hao Hakö 154.59388 -5.06832 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Nehan-North Bougainville, Buka, Halia -hap Hupla 139.16433 -4.36349 Trans-New Guinea, West, Dani, Dani Proper -haq Ha 30.48943 -3.77873 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Ruanda-Rundi (D.66) -har Harari 42.13324 9.30485 Afro-Asiatic, Semitic, South, Ethiopian, South, Transversal, Harari-East Gurage -has Haisla -128.60159 53.96401 Wakashan, Northern Wakashan -hat Haitian Creole French -73.04597 18.32514 Creole, French based -hau Hausa 7.18939 11.91098 Afro-Asiatic, Chadic, West, A, A.1 -hav Havu 28.86235 -1.99975 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Shi-Hunde (D.52) -haw Hawaiian -155.42995 19.62965 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, East, Central, Marquesic -hax Southern Haida -132.00834 53.26164 Haida -hay Haya 31.4846 -1.70878 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Haya-Jita (E.22) -haz Hazaragi 66.94109 34.35039 Indo-European, Indo-Iranian, Iranian, Western, Southwestern, Persian -hba Hamba 24.22995 -2.49047 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Tetela (C.71) -hbb Huba 13.13902 10.35439 Afro-Asiatic, Chadic, Biu-Mandara, A, A.2, 2 -hbn Heiban 30.52819 11.29079 Niger-Congo, Kordofanian, Heiban, West-Central, Central, Ebang-Logol, Ebang-Laru -hbo Ancient Hebrew 35.17248 31.77607 Afro-Asiatic, Semitic, Central, South, Canaanite -hbu Habu 125.96468 -8.76565 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor -hca Andaman Creole Hindi 92.738 11.676 Creole, Hindi based -hch Huichol -104.06228 21.95399 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Cora-Huichol -hdn Northern Haida -132.08441 53.97409 Haida -hds Honduras Sign Language -87.224 14.622 Deaf sign language -hdy Hadiyya 37.75771 7.57377 Afro-Asiatic, Cushitic, East, Highland -hea Northern Qiandong Hmong 108.16223 26.63375 Hmong-Mien, Hmongic, Qiandong -heb Hebrew 35.01788 31.10565 Afro-Asiatic, Semitic, Central, South, Canaanite -hed Herdé 14.92668 9.14343 Afro-Asiatic, Chadic, Masa -heg Helong 123.37692 -10.26465 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor -heh Hehe 35.72547 -7.71572 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Bena-Kinga (G.62) -hei Heiltsuk -127.22139 51.70454 Wakashan, Northern Wakashan, Kwakiutlan -hem Hemba 27.59128 -7.77459 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Luba (L.34) -her Herero 19.19169 -20.69872 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, R, Herero (R.30) -hgm Hai//om 17.02985 -19.76371 Khoisan, Southern Africa, Central, Hainum -hgw Haigwai 150.25556 -10.27409 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Are-Taupota, Taupota -hhr Kerak -16.68566 12.36518 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Bak, Jola, Jola Proper, Jola Central, Her-Ejamat -hia Lamang 13.7362 11.02429 Afro-Asiatic, Chadic, Biu-Mandara, A, A.4, Lamang -hib Hibito -77.69999 -6.58333 Cholonan -hid Hidatsa -102.52777 47.75341 Siouan-Catawban, Siouan, Missouri River Siouan -hif Fijian Hindustani 177.77228 -17.81477 Indo-European, Indo-Iranian, Indo-Aryan, East Central zone -hig Kamwe 13.51362 10.64603 Afro-Asiatic, Chadic, Biu-Mandara, A, A.3 -hih Pamosu 145.28827 -4.69874 Trans-New Guinea, Madang, Croisilles, Pihom, Tiboran -hii Hinduri 77.144 31.016 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Western Pahari -hij Hijuk 10.90806 4.39641 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Bafia (A.501) -hik Seit-Kaitetu 128.06828 -3.6111 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Piru Bay, West, Asilulu -hil Hiligaynon 122.97428 10.40179 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, Central, Peripheral -hin Hindi 79.78701 23.13376 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Western Hindi, Hindustani -hio Tsoa 25.84771 -22.81806 Khoisan, Southern Africa, Central, Tshu-Khwe, Northeast -hir Himarimã -64.70047 -6.25217 Unclassified -hiw Hiw 166.55592 -13.13907 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -hix Hixkaryána -58.80153 -0.16265 Cariban, Waiwai -hka Kahe 37.57586 -3.51412 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Chaga (E.64) -hke Hunde 28.93083 -1.46762 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Shi-Hunde (D.51) -hla Halia 154.66185 -5.26603 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Nehan-North Bougainville, Buka, Halia -hlb Halbi 81.37417 20.30812 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bengali-Assamese -hld Halang Doan 108.20014 15.03123 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, North Bahnaric, West, Duan -hlt Nga La 94.958 24.429 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Southern -hma Southern Mashan Hmong 106.30772 25.33586 Hmong-Mien, Hmongic, Chuanqiandian -hmb Songhay 0.22932 14.34761 Nilo-Saharan, Songhai, Southern -hmc Central Huishui Hmong 106.71949 26.041 Hmong-Mien, Hmongic, Chuanqiandian -hmd Northeastern Dian Hmong 104.06038 27.86819 Hmong-Mien, Hmongic, Chuanqiandian -hme Eastern Huishui Hmong 106.83166 25.9942 Hmong-Mien, Hmongic, Chuanqiandian -hmf Hmong Don 104.58933 21.52109 Hmong-Mien, Hmongic, Chuanqiandian -hmg Southwestern Guiyang Hmong 106.00333 26.18029 Hmong-Mien, Hmongic, Chuanqiandian -hmh Southwestern Huishui Hmong 106.56133 26.04357 Hmong-Mien, Hmongic, Chuanqiandian -hmi Northern Huishui Hmong 107.10232 26.32588 Hmong-Mien, Hmongic, Chuanqiandian -hmj Chonganjiang Hmong 107.82312 26.85419 Hmong-Mien, Hmongic, Chuanqiandian -hml Luopohe Hmong 107.158 26.81833 Hmong-Mien, Hmongic, Chuanqiandian -hmm Central Mashan Hmong 106.39604 25.60046 Hmong-Mien, Hmongic, Chuanqiandian -hmo Hiri Motu 147.08332 -9.33333 Pidgin, Motu based -hmp Northern Mashan Hmong 106.53044 25.77231 Hmong-Mien, Hmongic, Chuanqiandian -hmq Eastern Qiandong Hmong 109.04627 26.49663 Hmong-Mien, Hmongic, Qiandong -hmr Hmar 93.54971 24.75338 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Central -hms Southern Qiandong Hmong 108.53274 25.6618 Hmong-Mien, Hmongic, Qiandong -hmt Hamtai 146.22672 -7.54975 Trans-New Guinea, Angan, Nuclear Angan -hmu Hamap 124.52187 -8.26749 Trans-New Guinea, West, Timor-Alor-Pantar, Alor-Pantar, Alor -hmv Hmong Dô 104.18156 22.79616 Hmong-Mien, Hmongic, Chuanqiandian -hmw Western Mashan Hmong 106.12205 25.65179 Hmong-Mien, Hmongic, Chuanqiandian -hmy Southern Guiyang Hmong 106.48084 26.39021 Hmong-Mien, Hmongic, Chuanqiandian -hmz Hmong Shua 105.08171 23.22649 Hmong-Mien, Hmongic, Chuanqiandian -hna Mina 13.84054 10.38053 Afro-Asiatic, Chadic, Biu-Mandara, A, A.7 -hnd Southern Hindko 72.17018 33.21215 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Lahnda -hne Chhattisgarhi 82.04833 20.36015 Indo-European, Indo-Iranian, Indo-Aryan, East Central zone -hnh //Ani 22.90878 -19.09658 Khoisan, Southern Africa, Central, Tshu-Khwe, Northwest -hni Hani 102.78667 22.98235 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southern -hnn Hanunoo 121.2212 12.41589 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, South Mangyan, Hanunoo -hno Northern Hindko 73.3844 34.32024 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Lahnda -hns Caribbean Hindustani -55.652 5.885 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bihari -hnu Hung 104.75588 18.71569 Austro-Asiatic, Mon-Khmer, Viet-Muong, Cuoi -hoa Hoava 157.59496 -8.19679 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, New Georgia, West -hob Mari 145.82807 -5.97399 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, Markham, Upper, Mountain -hoc Ho 85.78569 22.2824 Austro-Asiatic, Munda, North Munda, Kherwari, Mundari -hod Holma 13.19949 9.96843 Afro-Asiatic, Chadic, Biu-Mandara, A, A.8 -hoe Horom 8.98482 9.05742 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Southeastern -hoh Hobyót 52.95819 17.24559 Afro-Asiatic, Semitic, South, South Arabian -hoi Holikachuk -159.83143 62.72662 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -hoj Harauti 75.83659 24.85464 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Unclassified -hol Holu 17.63483 -8.30943 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Pende (L.12) -hom Homa 28.00387 4.97912 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.304) -hoo Holoholo 28.32738 -5.37545 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Lega-Holoholo (D.28) -hop Hopi -110.53483 35.76526 Uto-Aztecan, Northern Uto-Aztecan -hor Horo 18.378 9.239 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Sara Proper -hos Ho Chi Minh City Sign Language 106.68073 10.78646 Deaf sign language -hot Hote 146.86873 -7.07708 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, South, Hote-Buang, Hote -hov Hovongan 113.89708 0.9841 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kayanic, Muller-Schwaner ‘Punan’ -how Honi 101.8863 23.20739 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southern -hoy Holiya 79.91637 21.52593 Dravidian, Southern, Tamil-Kannada, Kannada -hoz Hozo 34.60448 9.38875 Afro-Asiatic, Omotic, North, Mao, West -hpo Hpon 97.11423 24.46064 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Burmish, Northern -hps Hawaii Pidgin Sign Language -158.00179 21.63107 Deaf sign language -hra Hrangkhol 93.54098 23.82421 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -hre Hre 108.69418 14.63082 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, North Bahnaric, West, Sedang-Todrah, Sedang -hrk Haruku 128.47559 -3.57029 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Piru Bay -hro Haroi 108.99547 13.22009 Austronesian, Malayo-Polynesian, Malayo-Chamic, Chamic, Coastal -hrr Horuru 129.38675 -3.12875 -hrt Hertevin 42.51921 37.37301 Afro-Asiatic, Semitic, Central, Aramaic, Eastern, Central, Northeastern -hru Hruso 92.63 27.27 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Hrusish -hrv Croatian 16.47117 43.51499 Indo-European, Slavic, South, Western -hrz Harzani 48.28478 38.43411 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Talysh -hsb Upper Sorbian 14.40984 51.24031 Indo-European, Slavic, West, Sorbian -hsf Southeastern Huastec -98.08473 21.46145 -hsh Hungarian Sign Language 19.264 47.122 Deaf sign language -hsl Hausa Sign Language 7.168 8.486 Deaf sign language -hsn Xiang Chinese 111.47112 27.66847 Sino-Tibetan, Chinese -hss Harsusi 56.15619 19.6511 Afro-Asiatic, Semitic, South, South Arabian -hti Hoti 130.16796 -3.0083 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, East Seram -hto Minica Huitoto -73.61014 -0.53252 Witotoan, Proto-Huitoto-Ocaina, Early Huitoto, Proto-Minica-Murai -hts Hadza 35.04583 -3.83115 Khoisan, Hatsa -htu Hitu 128.18639 -3.57478 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Piru Bay, East, Seram Straits, Ambon -hub Huambisa -77.97965 -3.99109 Jivaroan, Jívaro -huc ‡Hua 24.69828 -23.93447 Khoisan, Southern Africa, Southern, Hua -hud Huaulu 129.20169 -2.95835 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Manusela-Seti -hue San Francisco del Mar Huave -94.57383 16.28361 Huavean -huf Humene 147.56221 -9.70693 Trans-New Guinea, Southeast Papuan, Kwalean -hug Huachipaeri -71.22749 -13.31951 Harákmbut -huh Huilliche -72.76697 -40.06939 Mapudungu -hui Huli 142.96326 -5.97212 Trans-New Guinea, Engan, Huli -huj Northern Guiyang Hmong 106.68224 26.72377 Hmong-Mien, Hmongic, Chuanqiandian -huk Hulung 128.58693 -2.87389 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Three Rivers, Amalumute, Northwest Seram, Hulung -hul Hula 147.70512 -9.99427 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Central Papuan, Sinagoro-Keapara -hum Hungana 18.43121 -3.69695 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Mbala-Hunganna (H.42) -hun Hungarian 19.50894 46.12207 Uralic -huo Hu 100.88061 22.01635 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Eastern Palaungic, Angkuic -hup Hupa -123.67988 41.09821 Eyak-Athabaskan, Athabaskan, Pacific Coast Athabaskan, California Athabaskan -huq Tsat 109.33558 18.31917 Austronesian, Malayo-Polynesian, Malayo-Chamic, Chamic, Highlands, Chru-Northern, Northern Cham -hur Halkomelem -123.66296 48.7911 Salish, Central Salish -hus Veracruz Huastec -98.50276 21.6153 Mayan, Huastecan, Huastec -hut Humla 81.56591 30.14514 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, gTsang -huu Murui Huitoto -73.84075 -1.51775 Witotoan, Proto-Huitoto-Ocaina, Early Huitoto, Proto-Minica-Murai -huv San Mateo del Mar Huave -95.00766 16.21295 Huavean -huw Hukumina 126.194 -3.274 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Hukumina -hux Nüpode Huitoto -70.95587 -2.34495 Witotoan, Proto-Huitoto-Ocaina, Early Huitoto -huy Hulaula 35.01938 31.7107 Afro-Asiatic, Semitic, Central, Aramaic, Eastern, Central, Northeastern -huz Hunzib 46.13691 42.08076 North Caucasian, East Caucasian, Tsezic, East Tsezic -hva San Luís Potosí Huastec -99.00083 21.8394 -hvc Haitian Vodoun Culture Language -72.394 18.911 Unclassified -hve San Dionisio del Mar Huave -94.7001 16.35137 Huavean -hvk Haveke 164.75333 -21.02488 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Northern -hvn Sabu 121.84682 -10.5522 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Sumba-Hawu, Hawu-Dhao -hvv Santa María del Mar Huave -94.81586 16.21669 Huavean -hwa Wané -6.44406 4.85171 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Eastern, Bakwe -hwc Hawai'i Creole English -155.43698 19.62875 Creole, English based, Pacific -hwo Hwana 12.76825 10.3633 Afro-Asiatic, Chadic, Biu-Mandara, A, A.1, Eastern -hya Hya 13.55888 10.49393 Afro-Asiatic, Chadic, Biu-Mandara, A, A.3 -hye Armenian 45.0399 40.40121 Indo-European, Armenian -iai Iaai 166.59048 -20.63012 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Loyalty Islands -ian Iatmul 143.31566 -4.30064 Sepik, Ndu -iap Iapama -53.32686 0.97588 Unclassified -iar Purari 145.03551 -7.59133 Trans-New Guinea, Eleman, Purari -iba Iban 112.46189 1.82601 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Ibanic -ibb Ibibio 7.86688 5.15279 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Efik -ibd Iwaidja 132.45337 -11.33788 Australian, Yiwaidjan, Yiwaidjic -ibe Akpes 5.95559 7.50256 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Akpes -ibg Ibanag 121.89093 17.42014 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Northern Cordilleran, Cagayan Valley, Ibanagic -ibi Ibilo 6.08384 7.42662 -ibl Ibaloi 120.69508 16.42625 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Southern Cordilleran, West Southern Cordilleran, Nuclear Southern Cordilleran, Ibaloy -ibm Agoi 8.21629 5.87953 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Agoi-Doko-Iyoniyong -ibn Ibino 8.15254 4.59603 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Ibino -ibo Igbo 7.23441 4.62705 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Igboid, Igbo -ibr Ibuoro 7.93108 5.49672 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Ibuoro -ibu Ibu 127.54233 1.50556 West Papuan, North Halmahera, Sahu -iby Ibani 7.23558 4.49119 Niger-Congo, Atlantic-Congo, Ijoid, Ijo, Eastern, Northeastern, Eastern -ica Ede Ica 1.82137 8.46128 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Defoid, Yoruboid, Edekiri -ich Etkywan 10.35011 7.13773 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Central, Kpan-Icen -icl Icelandic Sign Language -20.27305 64.17306 Deaf sign language -icr Islander Creole English -81.70425 12.55352 Creole, English based, Atlantic, Western -ida Idakho-Isukha-Tiriki 34.81704 0.21557 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Logooli-Kuria (E.411) -idb Indo-Portuguese 81.67875 7.71975 Creole, Portuguese based -idc Idon 7.78151 10.21749 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Northern -idd Ede Idaca 2.27039 7.78428 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Defoid, Yoruboid, Edekiri -ide Idere 8.0831 5.21188 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo -idi Idi 142.30075 -8.75976 South-Central Papuan, Pahoturi -idr Indri 25.98485 8.81513 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Sere, Indri-Togoyo -ids Idesa 6.2929 7.34629 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Northwestern, Southern -idt Idaté 125.83176 -8.76258 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor -idu Idoma 7.71261 7.19139 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Idomoid, Akweya, Etulo-Idoma, Idoma -ifa Amganad Ifugao 121.0422 16.90155 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Nuclear Cordilleran, Ifugaw -ifb Batad Ifugao 121.23011 16.82656 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Nuclear Cordilleran, Ifugaw -ife Ifè 1.38621 7.36855 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Defoid, Yoruboid, Edekiri -iff Ifo 169.00732 -18.76682 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, South Vanuatu, Erromanga -ifk Tuwali Ifugao 121.11348 16.66464 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Nuclear Cordilleran, Ifugaw -ifm Teke-Fuumu 15.50605 -3.59003 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Teke (B.77) -ifu Mayoyao Ifugao 121.29005 16.99837 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Nuclear Cordilleran, Ifugaw -ify Keley-I Kallahan 121.03484 16.70985 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Southern Cordilleran, West Southern Cordilleran, Nuclear Southern Cordilleran, Kallahan -igb Ebira 7.06183 8.15516 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Nupoid, Ebira-Gade -ige Igede 8.27362 6.95522 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Idomoid, Akweya, Etulo-Idoma, Idoma -igg Igana 144.84075 -4.70942 Ramu-Lower Sepik, Ramu, Tamolan -igl Igala 7.17974 7.34325 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Defoid, Yoruboid, Igala -igm Kanggape 144.81601 -4.4153 Ramu-Lower Sepik, Ramu, Tanggu -ign Ignaciano -65.39934 -15.11882 Maipurean, Southern, Southern Outlier, Mojo, Mojo -igo Isebe 145.69081 -5.20719 Trans-New Guinea, Madang, Croisilles, Gum -igw Igwe 6.08157 7.10878 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, North-Central, Ghotuo-Uneme-Yekhee -ihb Iha Based Pidgin 132.294 -2.935 Pidgin, Iha based -ihi Ihievbe 6.08581 7.00917 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, North-Central -ihp Iha 132.27102 -2.81013 Trans-New Guinea, West, West Bomberai, West Bomberai Proper -iii Sichuan Yi 102.12119 28.19474 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Northern -ijc Izon 5.51702 5.17986 Niger-Congo, Atlantic-Congo, Ijoid, Ijo, West Ijo -ije Biseni 6.51646 5.40296 Niger-Congo, Atlantic-Congo, Ijoid, Ijo, West, Inland Ijo -ijj Ede Ije 2.64262 7.09729 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Defoid, Yoruboid, Edekiri -ijn Kalabari 6.69539 4.53194 Niger-Congo, Atlantic-Congo, Ijoid, Ijo, Eastern, Northeastern, Eastern -ijs Southeast Ijo 6.32192 4.44235 Niger-Congo, Atlantic-Congo, Ijoid, Ijo, East -ike Eastern Canadian Inuktitut -75.61387 62.17345 Eskimo-Aleut, Eskimo, Inuit-Inupiaq -iki Iko 7.9866 4.56197 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Iko -ikk Ika 6.31058 6.36423 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Igboid, Igbo -ikl Ikulu 7.86684 10.13393 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Northern -iko Olulumo-Ikom 8.56546 5.97709 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Central, East-West, Ikom -ikp Ikpeshi 6.17647 7.04475 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, North-Central, Ghotuo-Uneme-Yekhee -ikt Western Canadian Inuktitut -96.14797 64.34861 Eskimo-Aleut, Eskimo, Inuit-Inupiaq -iku Eastern Arctic Inuktitut -75.61 62.17 Eskimo-Aleut, Eskimo, Inuit-Inupiaq -ikv Iku-Gora-Ankwa 7.84105 10.27852 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Northern -ikw Ikwere 6.86651 5.04333 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Igboid, Igbo -ikx Ik 34.25066 3.61407 Nilo-Saharan, Eastern Sudanic, Kuliak, Ik -ikz Ikizu 34.35893 -1.9915 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Logooli-Kuria (E.402) -ila Ile Ape 123.44173 -8.38636 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -ilb Ila 26.45548 -15.60807 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Lenje-Tonga (M.63) -ilg Garig-Ilgar 132.18174 -11.41198 Australian, Yiwaidjan, Yiwaidjic -ili Ili Turki 80.64616 43.98761 Altaic, Turkic, Eastern -ilk Ilongot 121.54727 16.37846 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Southern Cordilleran, Ilongot -ill Iranun 118.2235 4.3362 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Danao, Maranao-Iranon -ilo Ilocano 120.99329 15.93614 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Ilocano -ilu Ili'uun 125.90186 -7.84385 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Southwest Maluku, Wetar -ilv Ilue 8.25236 4.78618 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Ilue -ilw Talur 126.33592 -7.88553 -ime Imeraguen -16.34726 19.37331 Unclassified -imi Anamgura 144.99148 -4.63762 Trans-New Guinea, Madang, South Adelbert Range, Josephstaal, Pomoikan -imn Imonda 141.1713 -3.31228 Border, Waris -imo Imbongu 144.02573 -6.13629 Trans-New Guinea, Chimbu-Wahgi, Hagen, Kaugel -imr Imroing 129.65091 -7.96772 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Babar, South, Southwest Babar -ina Interlingua 2.615 48.203 -inb Inga -76.86062 1.00313 Quechuan, Peripheral Quechua, Chinchay, Northern Chinchay -ind Indonesian 109.71572 -7.33458 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -ing Degexit'an -160.04427 62.0697 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -inh Ingush 44.15799 42.95255 North Caucasian, East Caucasian, Nakh, Chechen-Ingush -inj Jungle Inga -76.65931 0.88872 Quechuan, Peripheral Quechua, Chinchay, Northern Chinchay -inl Indonesian Sign Language 112.378 -7.908 Deaf sign language -inn Isinai 121.12014 16.32993 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, Isinai -ino Inoke-Yate 145.53907 -6.32311 Trans-New Guinea, Kainantu-Goroka, Gorokan, Kamano-Yagaria -inp Iñapari -69.30827 -12.46525 Maipurean, Southern, Southern Outlier, Piro -ins Indian Sign Language 77.40423 27.279 Deaf sign language -int Intha 96.93882 20.39204 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Burmish, Southern -inz Ineseno -119.711 34.429 Chumashan, Central Chumash -ior Inor 37.79684 7.94883 Afro-Asiatic, Semitic, South, Ethiopian, South, Outer, tt-Group -iou Tuma-Irumu 146.60922 -6.29221 Trans-New Guinea, Finisterre-Huon, Finisterre, Wantoat -iow Iowa-Oto -95.52135 40.05114 Siouan-Catawban, Siouan, Mississippi Valley-Ohio Valley Siouan, Mississippi Valley Siouan, Chiwere-Winnebago -ipi Ipili 143.08884 -5.42586 Trans-New Guinea, Engan, Enga -ipo Ipiko 144.8632 -7.37424 Trans-New Guinea, Inland Gulf, Ipiko -iqu Iquito -73.97046 -3.31233 Zaparoan, Iquito-Cahuarano -ire Iresim 135.02456 -3.62803 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Iresim -irh Irarutu 133.58624 -2.94438 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, South Halmahera -iri Irigwe 8.6525 9.85197 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Central, South-Central -irk Iraqw 35.29393 -4.19948 Afro-Asiatic, Cushitic, South -irn Irántxe -57.98063 -12.71782 Language isolate -irr Ir 106.56415 15.71875 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, Central Katuic, Ta’oih -iru Irula 79.95209 12.70645 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam, Tamil -irx Kamberau 133.51841 -3.53189 Trans-New Guinea, Asmat-Kamoro, Sabakor -iry Iraya 120.64995 13.38103 Austronesian, Malayo-Polynesian, Philippine, North Mangyan -isa Isabi 145.46204 -5.83809 Trans-New Guinea, Kainantu-Goroka, Gorokan, Isabi -isc Isconahua -74.51927 -7.75236 Panoan, Mainline, Tri-State, Amawaka -isd Isnag 121.1599 18.21387 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Northern Cordilleran, Cagayan Valley, Isnag -ise Italian Sign Language 12.42949 42.72915 Deaf sign language -isg Irish Sign Language -6.36541 53.31499 Deaf sign language -ish Esan 6.33917 6.25685 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, North-Central, Edo-Esan-Ora -isi Nkem-Nkum 8.68668 6.59158 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Ekoid, Bakor -isl Icelandic -19.02117 63.48375 Indo-European, Germanic, North, West Scandinavian -ism Masimasi 139.04018 -2.00717 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Sarmi-Jayapura Bay, Sarmi -isn Isanzu 34.846 -3.99991 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, F, Nilamba-Rangi (F.31) -iso Isoko 6.24682 5.52889 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Southwestern -isr Israeli Sign Language 34.76366 31.5279 Deaf sign language -ist Istriot 13.64 45.088 Indo-European, Italic, Romance, Italo-Western, Italo-Dalmatian -isu Isu 9.96577 6.63731 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Ring, West -ita Italian 12.97622 42.609 Indo-European, Italic, Romance, Italo-Western, Italo-Dalmatian -itb Binongan Itneg 120.87563 17.59722 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Kalinga-Itneg, Itneg -ite Itene -64.98409 -12.29945 Chapacuran, Itene -iti Inlaod Itneg 120.65389 17.61752 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Kalinga-Itneg, Itneg -itk Judeo-Italian 11.47233 43.12845 Indo-European, Italic, Romance, Italo-Western, Italo-Dalmatian -itl Itelmen 156.90623 56.77984 Chukotko-Kamchatkan, Southern -itm Itu Mbon Uzo 7.80378 5.52679 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Ibuoro -ito Itonama -64.35748 -12.80431 Language isolate -itr Iteri 141.58528 -4.11998 Arai (Left May) -its Isekiri 5.5862 5.81898 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Defoid, Yoruboid, Edekiri -itt Maeng Itneg 120.71816 17.24531 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Kalinga-Itneg, Itneg -itu Itutang 144.88352 -4.61602 -itv Itawit 121.5796 17.73286 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Northern Cordilleran, Cagayan Valley, Ibanagic -itw Ito 8.04626 5.14438 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Ibuoro -itx Itik 139.34115 -2.18342 Tor-Kwerba, Orya-Tor, Tor -ity Moyadan Itneg 120.70173 17.42321 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Kalinga-Itneg, Itneg -itz Itzá -89.87338 17.02694 Mayan, Yucatecan-Core Mayan, Yucatecan, Mopan-Itzá -ium Iu Mien 110.31542 24.42413 Hmong-Mien, Mienic, Mian-Jin -ivb Ibatan 121.90888 18.93984 Austronesian, Malayo-Polynesian, Philippine, Bashiic, Ivatan -ivv Ivatan 121.97521 20.38479 Austronesian, Malayo-Polynesian, Philippine, Bashiic, Ivatan -iwk I-Wak 120.78633 16.30448 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Southern Cordilleran, West Southern Cordilleran, Nuclear Southern Cordilleran, Ibaloy -iwm Iwam 141.81705 -4.27346 Sepik, Iwam -iwo Iwur 140.82271 -5.11036 Trans-New Guinea, Ok-Awyu, Ok, Lowland -iws Sepik Iwam 142.11683 -4.30928 Sepik, Iwam -ixc Ixcatec -97.12415 17.75974 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Popolocan -ixi Nebaj Ixil -91.18849 15.52292 -ixj Chajul Ixil -90.97619 15.58022 -ixl San Juan Cotzal Ixil -90.89351 15.45693 Mayan, Yucatecan-Core Mayan, K’ichean-Mamean, Mamean, Awakateko-Ixil -iya Iyayu 5.68537 7.38143 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Northwestern, Osse -iyo Mesaka 9.8723 6.32679 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tivoid -iyx Yaka 13.36366 -3.73301 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Teke (B.73) -izh Ingrian 29.71145 59.47403 Uralic, Finnic -izi Izi-Ezaa-Ikwo-Mgbo 8.03044 6.31831 -izr Izere 9.84517 10.30982 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Central, South-Central -jaa Jamamadí -66.56619 -7.62223 Arauan, Jamamadi -jab Hyam 7.95163 9.37832 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Northwestern, Hyamic -jac Eastern Jacalteco -91.66327 15.66095 Mayan, Yucatecan-Core Mayan, Q’anjob’alan-Chujean, Q’anjob’alan, Q’anjob’al-Akateko-Jakalteko -jad Jahanka -14.40663 10.80654 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding -jae Yabem 147.80997 -6.67052 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, North -jaf Jara 11.70359 10.52325 Afro-Asiatic, Chadic, Biu-Mandara, A, A.1, Western -jah Jah Hut 102.2913 3.67619 Austro-Asiatic, Mon-Khmer, Aslian, Jah Hut -jai Western Jacalteco -91.77069 15.72465 -jaj Zazao 159.25532 -8.18719 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Santa Isabel, Central -jak Jakun 103.34214 2.64582 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -jal Yalahatan 129.31549 -3.3619 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Three Rivers -jam Jamaican Creole English -77.27348 18.11864 Creole, English based, Atlantic, Western -jao Yanyuwa 136.05506 -15.76212 Australian, Pama-Nyungan, Yanyuwan -jap Jaruára -65.44134 -7.42116 -jaq Yaqay 139.24945 -6.66632 Trans-New Guinea, Marind, Yaqay -jar Jarawa 10.21664 9.42456 -jas New Caledonian Javanese 166.4449 -22.3001 Austronesian, Malayo-Polynesian, Javanese -jat Jakati 37.3 48.616 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Lahnda -jau Yaur 134.87891 -3.32519 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Yaur -jav Javanese 111.07143 -7.40618 Austronesian, Malayo-Polynesian, Javanese -jax Jambi Malay 103.12993 -2.6469 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -jay Jarnango 134.87665 -12.08531 Australian, Pama-Nyungan, Yuulngu, Dhangu -jaz Jawe 164.67594 -20.66477 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Northern, North, Nemi -jbe Judeo-Berber 34.97483 32.55935 Afro-Asiatic, Berber, Northern, Atlas -jbj Arandai 132.98337 -2.08016 Trans-New Guinea, South Bird’s Head, South Bird’s Head Proper, Eastern -jbn Nafusi 11.82876 31.95294 Afro-Asiatic, Berber, Northern, Zenati, East -jbt Jabutí -64.66937 -12.03802 Jabutian -jbu Jukun Takum 10.50812 6.86367 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Central, Jukun-Mbembe-Wurbo, Jukun -jcs Jamaican Country Sign Language -76.93205 17.99968 Deaf sign language -jct Judeo-Crimean Tatar 66.3805 39.84121 Altaic, Turkic, Western, Ponto-Caspian -jda Jad 79.153 30.241 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, Western -jdg Jadgali 67.43591 26.01136 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Sindhi -jdt Judeo-Tat 35.0694 31.76096 Indo-European, Indo-Iranian, Iranian, Western, Southwestern, Tat -jeb Jebero -76.41032 -5.40317 Cahuapanan -jee Jerung 86.25468 27.17411 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Western -jeg Jeng 107.14659 15.03918 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, West Bahnaric, Oi-The -jeh Jeh 107.89563 15.19845 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, North Bahnaric, West, Jeh-Halang -jei Yei 140.86307 -7.87489 South-Central Papuan, Morehead-Upper Maro, Yey -jek Jeri Kuo -5.66717 9.3957 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Jogo-Jeri -jel Yelmek 139.09633 -7.4453 South-Central Papuan, Yelmek-Maklew -jen Dza 11.38838 9.26671 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Jen -jer Jere 8.95834 10.19625 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Jera -jet Manem 141.01991 -2.99145 Border, Waris -jeu Jonkor Bourmataguil 19.09535 11.50342 Afro-Asiatic, Chadic, East, B, B.1, 1 -jgb Ngbee 27.65292 3.60447 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.336) -jge Judeo-Georgian 35.11371 31.74069 Kartvelian, Georgian -jgo Ngomba 10.23704 5.63067 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Bamileke -jhi Jehai 101.54145 5.63695 Austro-Asiatic, Mon-Khmer, Aslian, North Aslian, Eastern -jia Jina 14.9611 11.35547 Afro-Asiatic, Chadic, Biu-Mandara, B, B.1, Jina -jib Jibu 11.30864 7.49214 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Central, Jukun-Mbembe-Wurbo, Jukun -jic Tol -87.03719 14.66859 Jicaquean -jid Bu 8.65697 9.05077 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Southwestern, A -jie Jilbe 14.57944 11.79919 Afro-Asiatic, Chadic, Biu-Mandara, B, B.1 -jig Djingili 133.65904 -17.16504 Australian, West Barkly -jih Shangzhai 102.63 32.225 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, rGyalrongic -jii Jiiddu 44.12938 1.84353 Afro-Asiatic, Cushitic, East, Somali -jil Jilim 145.70602 -5.56611 Trans-New Guinea, Madang, Rai Coast, Nuru -jim Jimi 13.52578 10.25105 Afro-Asiatic, Chadic, Biu-Mandara, A, A.8 -jio Jiamao 109.85372 18.55481 Tai-Kadai, Hlai -jiq Guanyinqiao 101.9276 31.56552 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, rGyalrongic -jit Jita 33.91413 -1.62681 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Haya-Jita (E.25) -jiu Buyuan Jinuo 101.05697 22.04726 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Central -jiv Shuar -78.18923 -3.45136 Jivaroan, Jívaro -jiy Buyuan Jinuo 101.08 22 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Central -jko Kubo 142.18292 -5.92584 Trans-New Guinea, East Strickland -jku Labir 9.59527 10.48469 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Jarawan, Nigerian -jle Ngile 29.99697 10.71937 Niger-Congo, Kordofanian, Talodi, Talodi Proper, Ngile-Dengebu -jma Dima 149.60524 -9.70322 Trans-New Guinea, Southeast Papuan, Dagan -jmb Zumbun 9.9683 10.82701 Afro-Asiatic, Chadic, West, B, B.2 -jmc Machame 37.07033 -3.29385 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Chaga (E.621) -jmd Yamdena 131.44018 -7.73722 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Southeast Maluku, Kei-Tanimbar, Yamdena -jmi Jimi 9.8118 10.72987 Afro-Asiatic, Chadic, West, B, B.3, Eastern -jmk Jamtska 14.183 63.054 -jml Jumli 82.437 29.17076 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Eastern Pahari -jmr Kamara -2.34944 8.93891 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Western, Southeast -jms Mashi 10.27783 6.91719 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Beboid -jmx Western Juxtlahuaca Mixtec -98.2096 17.30034 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -jna Jangshung 78.43438 31.56656 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Himalayish, Kinauri -jnd Jandavra 69.76 25.617 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Gujarati -jng Yangman 132.52004 -14.49642 Australian, Gunwingguan, Yangmanic -jni Janji 8.63029 10.11968 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Jera -jnj Yemsa 37.44117 7.79821 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gimojan, Janjero -jnl Rawat 80.81502 30.04702 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Central Himalayan, Raute-Raji -jns Jaunsari 77.90842 30.5587 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Western Pahari -job Joba 28.99784 -3.45787 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Ruanda-Rundi (D.631) -jod Wojenaka -7.6104 9.72582 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding, Manding-East, Southeastern Manding, Maninka-Mori -jor Jora -63.20942 -15.74923 Tupian, Tupí-Guaraní, Guarayú, Sirionó -jos Jordanian Sign Language 36.0829 31.82024 Deaf sign language -jow Jowulu -5.47873 10.76912 Niger-Congo, Mande, Western, Northwestern, Samogo -jpn Japanese 136.46904 35.35084 Japonic -jpr Dzhidi 35.15602 31.76537 Indo-European, Indo-Iranian, Iranian, Western, Southwestern, Persian -jqr Jaqaru -75.89576 -12.88233 Aymaran, Tupe -jra Jarai 108.14356 13.69433 Austronesian, Malayo-Polynesian, Malayo-Chamic, Chamic, Highlands -jrr Jiru 10.58721 8.64125 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Central, Jukun-Mbembe-Wurbo, Wurbo -jrt Jorto 9.42486 8.93055 Afro-Asiatic, Chadic, West, A, A.3, Angas Proper, 1 -jru Japrería -72.71012 10.55231 Cariban, Yukpa, Yucpa-Yapreria -jsl Japanese Sign Language 139.07918 36.02213 Deaf sign language -jua Júma -64.09979 -7.27501 Tupian, Tupí-Guaraní, Kawahib, Parintintin -jub Wannu 8.96594 7.83859 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Central, Jukun-Mbembe-Wurbo, Kororofa -juc Jurchen 121.6101 29.58316 -jud Worodougou -6.72244 8.23453 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding, Manding-East, Southeastern Manding, Maninka-Mori -juh Hõne 10.92061 9.79715 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Central, Jukun-Mbembe-Wurbo, Jukun -juk Wapan 9.83299 7.97862 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Central, Jukun-Mbembe-Wurbo, Kororofa -jul Jirel 86.32005 27.69311 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, gTsang -jum Jumjum 33.74936 10.4349 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Luo, Northern, Mabaan-Burun, Mabaan -jun Juang 85.58452 21.26064 Austro-Asiatic, Munda, South Munda, Kharia-Juang -juo Jiba 11.50987 9.26508 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Central, Jukun-Mbembe-Wurbo, Kororofa -jup Hupdë -69.98387 0.46252 Puinavean, Hupda -jur Jurúna -53.34717 -10.93541 Tupian, Juruna -jut Jutish 9.38924 54.91105 Indo-European, Germanic, North, East Scandinavian, Danish-Swedish, Danish-Riksmal, Danish -juu Ju 9.81175 10.18448 Afro-Asiatic, Chadic, West, B, B.3, Guruntum -juw Wãpha 9.90381 9.10829 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Central, Jukun-Mbembe-Wurbo, Jukun -juy Juray 84.12038 19.09102 Austro-Asiatic, Munda, South Munda, Koraput Munda, Sora-Juray-Gorum, Sora-Juray -jvn Caribbean Javanese -55.42758 5.67057 Austronesian, Malayo-Polynesian, Javanese -jwi Jwira-Pepesa -2.10891 5.10752 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Central, Bia, Southern -jya Jiarong 102.22875 31.60295 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, rGyalrongic -jye Judeo-Yemeni Arabic 34.80468 32.0235 Afro-Asiatic, Semitic, Central, South, Arabic -jyy Jaya 17.94151 12.3707 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Bagirmi -kaa Karakalpak 59.53703 43.29122 Altaic, Turkic, Western, Aralo-Caspian -kab Kabyle 4.76137 36.41025 Afro-Asiatic, Berber, Northern, Kabyle -kac Jingpho 96.91646 26.19603 Sino-Tibetan, Tibeto-Burman, Sal, Jingpho-Luish, Jingpho -kad Kadara 7.45933 9.99696 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Northern -kae Ketangalan 121.42537 25.02571 Austronesian, Unclassified -kag Kajaman 113.88626 2.78613 Austronesian, Malayo-Polynesian, North Borneo, Melanau-Kajang, Kajang -kah Kara 22.99468 9.99526 Unclassified -kai Karekare 10.87324 12.5176 Afro-Asiatic, Chadic, West, A, A.2, Bole, Karekare -kaj Jju 7.97167 9.83116 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Central, South-Central -kak Kayapa Kallahan 120.90003 16.321 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Southern Cordilleran, West Southern Cordilleran, Nuclear Southern Cordilleran, Kallahan -kal Greenlandic Inuktitut -52.86402 69.37608 Eskimo-Aleut, Eskimo, Inuit-Inupiaq -kam Kamba 37.95319 -1.60827 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Kikuyu-Kamba (E.55) -kan Kannada 76.11983 13.58785 Dravidian, Southern, Tamil-Kannada, Kannada -kao Xaasongaxango -10.66986 14.18052 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding, Manding-West -kap Bezhta 46.03319 42.1206 North Caucasian, East Caucasian, Tsezic, East Tsezic -kaq Capanahua -74.38135 -6.63254 Panoan, Mainline, Shipibo -kas Kashmiri 74.87589 33.99807 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Kashmiri -kat Georgian 44.13649 41.64311 Kartvelian, Georgian -kav Katukína -70.38221 -8.19121 Katukinan -kax Kao 127.84662 1.16654 West Papuan, North Halmahera, Sahu -kay Kamayurá -53.46514 -12.26606 Tupian -kaz Kazakh 66.90226 43.95029 Altaic, Turkic, Western, Aralo-Caspian -kba Kalarko 118.91114 -31.71542 Australian, Pama-Nyungan, South-West, Mirning -kbb Kaxuiâna -55.91008 2.17138 Cariban, Central, Wayana -kbc Kadiwéu -57.58202 -19.72224 Guaykuruan, Guaykurú -kbd Kabardian 43.39182 43.50822 North Caucasian, West Caucasian, Circassian -kbe Kanju 142.89266 -13.32427 Australian, Pama-Nyungan, Paman, Northeastern Pama -kbf Kakauhua -72.3228 -39.04876 Kaweskaran -kbg Khamba 95.236 28.731 Sino-Tibetan, Tibeto-Burman, Unclassified -kbh Camsá -76.8931 1.14537 Language isolate -kbj Kari 25.74914 5.03525 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.301) -kbk Grass Koiari 147.43743 -9.51218 Trans-New Guinea, Southeast Papuan, Koiarian, Koiaric -kbl Kanembu 14.84371 13.87489 Nilo-Saharan, Saharan, Western, Kanuri -kbm Iwal 146.98309 -7.20938 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, South, Kaiwa -kbn Kare 16.04101 6.82051 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Mbum, Eastern Mbum, Karang -kbo Keliko 30.67453 3.75752 Nilo-Saharan, Central Sudanic, East, Moru-Madi, Central -kbp Kabiyé 1.076 7.17146 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Eastern -kbq Kamano 145.72827 -6.25829 Trans-New Guinea, Kainantu-Goroka, Gorokan, Kamano-Yagaria -kbr Kafa 36.17183 7.34022 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gonga, South -kbs Kande 11.70762 -0.00776 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Tsogo (B.32) -kbt Abadi 146.9919 -9.03389 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Central Papuan, West Central Papuan, Gabadi -kbu Kabutra 69.691 25.292 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Western Hindi, Hindustani, Sansi -kbv Dera 140.94739 -3.52309 Senagi -kbw Kaiep 143.88443 -3.70524 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Schouten, Kairiru-Manam, Kairiru -kbx Ap Ma 144.08524 -4.35147 Ramu-Lower Sepik, Kambot -kby Manga Kanuri 10.551 13.9977 Nilo-Saharan, Saharan, Western, Kanuri -kbz Duhwa 8.77995 9.32586 Afro-Asiatic, Chadic, West, A, A.4, Ron Proper -kca Khanty 66.12177 62.43083 Uralic -kcb Kawacha 146.20897 -6.96411 Trans-New Guinea, Angan, Nuclear Angan -kcc Lubila 8.29204 5.46011 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Central, East-West, Loko -kcd Ngkâlmpw Kanum 140.81838 -8.87044 South-Central Papuan, Morehead-Upper Maro, Tonda -kce Kaivi 8.10795 10.43276 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Kauru -kcf Ukaan 6.03933 7.59722 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Ukaan -kcg Tyap 8.3082 9.75568 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Central, South-Central -kch Vono 8.20774 10.43572 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Kauru -kci Kamantan 7.7119 9.85455 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Southwestern, A -kcj Kobiana -16.06181 12.43303 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Eastern Senegal-Guinea, Nun -kck Kalanga 27.95131 -21.42932 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Shona (S.16) -kcl Kela 147.1729 -7.47103 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, North -kcm Gula 22.32378 9.72836 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Kara -kcn Nubi 32.51228 0.58251 Creole, Arabic based -kco Kinalakna 147.44249 -6.05862 Trans-New Guinea, Finisterre-Huon, Huon, Western -kcp Kanga 29.34628 11.01742 Nilo-Saharan, Kadugli-Krongo -kcq Kamo 11.27125 10.06018 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Waja, Awak -kcr Katla 29.28254 11.80325 Niger-Congo, Kordofanian, Katla -kcs Koenoem 9.46622 9.01129 Afro-Asiatic, Chadic, West, A, A.3, Angas Proper, 2 -kct Kaian 144.75613 -4.06543 Ramu-Lower Sepik, Ramu, Ottilien, Watam -kcu Kami 37.98003 -6.71075 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Zigula-Zaramo (G.36) -kcv Kete 22.90271 -7.15104 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Songe (L.21) -kcw Kabwari 29.16838 -4.36966 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Shi-Hunde (D.56) -kcx Kachama-Ganjule 37.92915 6.3971 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gimojan, Ometo-Gimira, Ometo, East -kcy Korandje -2.48113 29.49571 Nilo-Saharan, Songhai -kcz Konongo 32.18028 -6.51503 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, F, Sukuma-Nyamwezi (F.22) -kda Worimi 152.10658 -32.48064 Australian, Pama-Nyungan, Worimi -kdc Kutu 37.86225 -7.23789 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Zigula-Zaramo (G.37) -kdd Yankunytjatjara 133.57684 -26.40642 Australian, Pama-Nyungan, South-West, Wati -kde Makonde 39.6133 -10.29823 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Yao (P.23) -kdf Mamusi 151.03275 -5.84776 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Mengen -kdg Seba 27.51438 -11.9396 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Lala-Bisa-Lamba (M.55) -kdh Tem 1.11083 8.42644 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Eastern -kdi Kumam 33.21164 1.74748 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Luo, Southern, Kuman -kdj Karamojong 34.27614 2.45157 Nilo-Saharan, Eastern Sudanic, Nilotic, Eastern, Lotuxo-Teso, Teso-Turkana, Turkana -kdk Numee 166.70499 -22.26887 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Southern, Extreme Southern -kdl Tsikimba 4.88739 9.60496 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Kambari -kdm Kagoma 8.18694 9.22607 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Northwestern, Hyamic -kdn Kunda 30.62204 -16.15728 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, N, Senga-Sena (N.42) -kdp Kaningdon-Nindem 8.27644 9.525 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Southwestern, A -kdq Koch 90.70026 26.18221 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Bodo-Koch, Koch -kdr Karaim 25.10545 54.5534 Altaic, Turkic, Western, Ponto-Caspian -kds Lahu Shi 102.555 20.207 -kdt Kuy 103.77955 14.70164 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, West Katuic, Kuay-Nheu -kdu Kadaru 30.2709 12.15545 Nilo-Saharan, Eastern Sudanic, Eastern, Nubian, Central, Hill, Kadaru-Ghulfan -kdv Kado 95.41487 24.33101 -kdw Koneraw 138.0675 -8.37424 Trans-New Guinea, Mombum -kdx Kam 10.88653 8.04357 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Kam -kdy Keder 139.0811 -2.03589 Tor-Kwerba, Orya-Tor, Tor -kdz Kwaja 10.99428 6.63304 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Nkambe -kea Kabuverdianu -23.61476 15.05863 Creole, Portuguese based -keb Kélé 10.38358 -0.78854 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Kele (B.22) -kec Keiga 29.38894 11.20644 Nilo-Saharan, Kadugli-Krongo -ked Kerewe 33.53259 -2.09315 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Haya-Jita (E.24) -kee Eastern Keres -106.45285 35.52158 Keresan -kef Kpessi 1.21078 8.05471 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe -keg Tese 29.5803 11.38855 Nilo-Saharan, Eastern Sudanic, Western, Temein -kei Kei 133.02009 -5.63948 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Southeast Maluku, Kei-Tanimbar, Kei-Fordata -kej Kadar 76.72846 11.0602 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam, Malayalam -kek Kekchí -89.76169 15.95051 Mayan, Yucatecan-Core Mayan, K’ichean-Mamean, K’ichean -kel Kela 24.00506 -1.39085 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Tetela (C.75) -kem Kemak 125.19933 -8.94331 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor -ken Kenyang 9.55918 5.58288 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Mamfe -keo Kakwa 30.9754 3.47351 Nilo-Saharan, Eastern Sudanic, Nilotic, Eastern, Bari -kep Kaikadi 76.00027 18.38594 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam, Tamil -keq Kamar 81.9101 20.53419 Indo-European, Indo-Iranian, Indo-Aryan, East Central zone -ker Kera 15.1763 9.76605 Afro-Asiatic, Chadic, East, A, A.3 -kes Kugbo 6.56333 4.72951 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Central Delta, Kugbo -ket Ket 87.54663 63.75506 Yeniseian -keu Akebu 0.77668 7.78365 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Kebu-Animere -kev Kanikkaran 77.2465 8.44163 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam, Tamil -kew West Kewa 143.72984 -6.32097 Trans-New Guinea, Engan, Angal-Kewa -kex Kukna 73.57127 20.5657 Indo-European, Indo-Iranian, Indo-Aryan, Southern zone, Konkani -key Kupia 79.51532 16.47079 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Oriya -kez Kukele 8.39343 6.70286 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Central, North-South, Koring-Kukele, Kukele -kfa Kodagu 75.91608 12.24429 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Kodagu -kfb Northwestern Kolami 78.49338 20.10216 Dravidian, Central, Kolami-Naiki -kfc Konda-Dora 82.93402 18.26754 Dravidian, South-Central, Gondi-Kui, Konda-Kui, Konda -kfd Korra Koraga 75.19999 12.91628 Dravidian, Southern, Tulu, Koraga -kfe Kota 76.93865 11.4978 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Toda-Kota -kff Koya 81.20964 17.6772 Dravidian, South-Central, Gondi-Kui, Konda-Kui, Manda-Kui, Kui-Kuvi -kfg Kudiya 75.48962 12.33014 Dravidian, Southern, Tulu -kfh Kurichiya 75.52034 11.82263 Dravidian, Southern -kfi Kurumba 76.52555 11.38236 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Kodagu -kfj Kemiehua 101.14386 22.06028 Austro-Asiatic, Mon-Khmer, Unclassified -kfk Kinnauri 78.31478 31.36883 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Himalayish, Kinauri -kfl Kung 10.20727 6.53881 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Ring, Center -kfm Khunsari 49.37419 36.69633 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Central Iran -kfn Kuk 10.18407 6.43762 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Ring, Center -kfo Koro -5.73572 8.11966 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding, Manding-East, Southeastern Manding, Maninka-Mori -kfp Korwa 83.81422 23.41015 Austro-Asiatic, Munda, North Munda, Kherwari, Mundari -kfq Korku 77.55409 21.83579 Austro-Asiatic, Munda, North Munda, Korku -kfr Kachchi 69.75836 23.35926 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Sindhi -kfs Bilaspuri 76.67385 31.3842 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Western Pahari -kft Kanjari 74.7355 25.69995 Indo-European, Indo-Iranian, Indo-Aryan, Unclassified -kfu Katkari 73.17329 18.96695 Indo-European, Indo-Iranian, Indo-Aryan, Southern zone, Konkani -kfv Kurmukar 90.879 26.244 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bengali-Assamese -kfw Kharam Naga 87.91733 26.14877 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -kfx Kullu Pahari 77.37721 31.83388 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Western Pahari -kfy Kumauni 79.6753 29.6756 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Central Pahari -kfz Koromfé -1.83151 13.89457 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Kurumfe -kga Koyaga -6.23255 8.29177 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding, Manding-East, Southeastern Manding, Maninka-Mori -kgb Kawe 130.32696 -0.17313 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Raja Ampat -kgc Kasseng 107.35139 15.25616 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, East Katuic, Kaseng -kgd Kataang 106.4588 16.18229 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, Central Katuic, Ta’oih -kge Komering 105.10712 -3.79215 Austronesian, Malayo-Polynesian, Lampung -kgf Kube 147.5358 -6.42586 Trans-New Guinea, Finisterre-Huon, Huon, Eastern -kgg Kusunda 80.63092 29.17663 Language isolate -kgh Upper Tanudan Kalinga 121.20222 17.2143 -kgi Selangor Sign Language 101.61389 3.13489 Deaf sign language -kgj Gamale Kham 82.6749 28.41102 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Central Himalayan, Kham-Magar, Kham -kgk Kaiwá -54.96155 -22.64462 Tupian, Tupí-Guaraní, Guaraní, Guaraní -kgl Kunggari 143.22246 -24.21819 Australian, Pama-Nyungan, Maric -kgm Karipuna -52.96666 2.08332 Tupian, Tupí-Guaraní, Kawahib -kgn Karingani 47.43288 38.5656 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Talysh -kgo Krongo 30.00302 10.51395 Nilo-Saharan, Kadugli-Krongo -kgp Kaingáng -52.53937 -27.76708 Jean, Southern, Kaingang -kgq Kamoro 135.88268 -4.30433 Trans-New Guinea, Asmat-Kamoro, Kamoro -kgr Abun 132.4159 -0.57073 Language isolate -kgs Kumbainggar 152.91311 -29.81891 Australian, Pama-Nyungan, Gumbaynggiric -kgt Somyev 11.48262 6.90525 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Mambiloid, Mambila-Konja, Magu-Kamkam-Kila -kgu Kobol 145.2836 -4.79614 Trans-New Guinea, Madang, Croisilles, Pihom, Omosan -kgv Karas 132.67789 -3.47037 Trans-New Guinea, West, West Bomberai, Karas -kgw Karon Dori 132.66326 -0.7871 Maybrat -kgx Kamaru 123.04494 -5.15696 Austronesian, Malayo-Polynesian, Celebic, Wotu-Wolio, Wolio-Kamaru -kgy Kyerung 85.38778 28.21382 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, gTsang -kha Khasi 92.00194 25.56573 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Khasian -khb Lü 101.02884 21.76142 Tai-Kadai, Kam-Tai, Tai, Southwestern -khc Tukang Besi North 123.57825 -5.30994 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Muna-Buton, Tukangbesi-Bonerate -khd Bädi Kanum 140.75291 -8.85301 South-Central Papuan, Morehead-Upper Maro, Tonda -khe Korowai 139.82795 -5.28219 Trans-New Guinea, Ok-Awyu, Awyu-Dumut, Korowai -khf Khuen 101.29304 20.8388 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Khmuic, Mal-Khmu’, Khmu’ -khg Khams Tibetan 91.70618 31.93126 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Khams -khh Kehu 136.13974 -3.19328 East Geelvink Bay -khj Kuturmi 7.96524 10.14852 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Northern -khk Halh Mongolian 105.69295 46.17193 Altaic, Mongolic, Eastern, Oirat-Khalkha, Khalkha-Buriat, Mongolian Proper -khl Lusi 149.14807 -5.55033 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Ngero, Bariai -khm Central Khmer 104.49337 11.4549 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Khmer -khn Khandesi 74.14197 21.31807 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Khandesi -khp Kapori 139.76623 -3.52696 Kaure, Kapore -khq Koyra Chiini Songhay -3.73962 16.19202 Nilo-Saharan, Songhai, Southern -khr Kharia 84.39219 22.35712 Austro-Asiatic, Munda, South Munda, Kharia-Juang -khs Kasua 142.99338 -6.64861 Trans-New Guinea, Bosavi -kht Khamti 97.86994 27.4964 Tai-Kadai, Kam-Tai, Tai, Southwestern -khu Nkhumbi 13.97037 -15.41256 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, R, Umbundu (R.14) -khv Khvarshi 45.99765 42.27434 North Caucasian, East Caucasian, Tsezic, West Tsezic -khw Khowar 72.46571 36.20286 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Chitral -khx Kanu 28.10169 -1.82559 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Lega-Holoholo (D.251) -khy Kele 24.30977 0.36906 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Soko-Kele (C.55) -khz Keapara 147.94966 -10.13422 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Central Papuan, Sinagoro-Keapara -kia Kim 15.89359 9.79442 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Kim -kib Koalib 30.47166 11.69648 Niger-Congo, Kordofanian, Heiban, West-Central, Central, Rere -kic Kickapoo -95.67346 39.70772 Algic, Algonquian, Fox -kid Koshin 10.29904 6.5817 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Yemne-Kimbi -kie Kibet 20.87674 11.32054 Nilo-Saharan, Maban, Runga-Kibet -kif Eastern Parbate 82.95235 28.52593 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Central Himalayan, Kham-Magar, Kham -kig Kimaama 138.35508 -8.01899 Trans-New Guinea, Kolopom -kih Kilmeri 141.19097 -2.88607 Border, Bewani -kii Kitsai -103.85569 36.05055 Caddoan, Northern Caddoan, Kitsai-Proto-Pawnee -kij Kilivila 151.0724 -8.72574 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Kilivila-Louisiades, Kilivila -kik Gikuyu 36.71901 -0.29005 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Kikuyu-Kamba (E.51) -kil Kariya 9.63992 11.01194 Afro-Asiatic, Chadic, West, B, B.2 -kim Karagas 98.37923 53.7145 Altaic, Turkic, Northern -kin Rwanda 29.87638 -2.06127 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Ruanda-Rundi (D.61) -kio Kiowa -98.90424 34.94026 Kiowa-Tanoan -kip Sheshi Kham 82.64667 27.94373 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Central Himalayan, Kham-Magar, Kham -kiq Kosadle 140.19727 -3.78748 Kaure, Kaure Proper -kir Kirghiz 74.29227 41.73308 Altaic, Turkic, Western, Aralo-Caspian -kis Kis 143.95983 -3.83909 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Schouten, Kairiru-Manam, Manam -kit Agob 142.53159 -9.08521 South-Central Papuan, Pahoturi -kiu Kirmanjki 39.40036 39.16361 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Zaza-Gorani -kiv Kimbu 33.64451 -7.23023 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, F, Sukuma-Nyamwezi (F.24) -kiw Northeast Kiwai 144.66697 -7.39215 Trans-New Guinea, Kiwaian -kiy Kirikiri 137.282 -3.18494 Lakes Plain, Tariku, West -kiz Kisi 34.48254 -9.93 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Bena-Kinga (G.67) -kja Mlap 140.26386 -2.57316 Nimboran -kjb Eastern Kanjobal -91.3043 15.68455 Mayan, Yucatecan-Core Mayan, Q’anjob’alan-Chujean, Q’anjob’alan, Q’anjob’al-Akateko-Jakalteko -kjc Coastal Konjo 120.30398 -5.41532 Austronesian, Malayo-Polynesian, South Sulawesi, Makassar -kjd Southern Kiwai 143.24381 -8.64889 Trans-New Guinea, Kiwaian -kje Kisar 127.18035 -8.05122 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Southwest Maluku, Kisar-Roma -kjf Khalaj 50.30258 34.41979 Indo-European, Indo-Iranian, Iranian, Western, Northwestern -kjg Khmu 102.47189 19.346 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Khmuic, Mal-Khmu’, Khmu’ -kjh Khakas 90.1511 53.4132 Altaic, Turkic, Northern -kji Zabana 158.75344 -7.74311 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Santa Isabel, West -kjj Khinalugh 48.05714 41.18014 North Caucasian, East Caucasian, Khinalugh -kjk Highland Konjo 119.9278 -5.26559 Austronesian, Malayo-Polynesian, South Sulawesi, Makassar -kjl Western Parbate 82.73479 28.65214 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Central Himalayan, Kham-Magar, Kham -kjm Kháng 103.73637 21.66243 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Khmuic, Xinh Mul -kjn Kunjen 143.52986 -16.68067 Australian, Pama-Nyungan, Paman, Central Pama -kjo Harijan Kinnauri 77.064 31.784 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Western Pahari -kjp Pwo Eastern Karen 97.748 16.253 Sino-Tibetan, Tibeto-Burman, Karenic, Peripheral -kjq Western Keres -107.51744 34.97325 Keresan -kjr Kurudu 137.0182 -1.8444 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Yapen, East -kjs East Kewa 143.93088 -6.32989 Trans-New Guinea, Engan, Angal-Kewa -kjt Phrae Pwo Karen 99.63822 18.00483 Sino-Tibetan, Tibeto-Burman, Karenic, Peripheral -kju Kashaya -74.10057 40.74169 Pomoan, Western, Southern -kjx Ramopa 154.89958 -5.97015 North Bougainville, Keriaka -kjy Erave 143.91778 -6.55011 Trans-New Guinea, Engan, Angal-Kewa -kjz Bumthangkha 90.80367 27.64941 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, East Bodish, Bumthang -kka Kakanda 6.55923 8.33931 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Nupoid, Nupe-Gbagyi, Nupe -kkb Kwerisa 138.1346 -2.99145 Lakes Plain, Tariku, East -kkc Odoodee 142.48602 -6.59222 Trans-New Guinea, East Strickland -kkd Kinuku 8.1296 10.35235 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Kauru -kke Kakabe -11.44178 10.59616 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Mokole -kkg Mabaka Valley Kalinga 121.07311 17.66834 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Kalinga-Itneg, Kalinga -kkh Khün 99.77897 20.58365 Tai-Kadai, Kam-Tai, Tai, Southwestern -kki Kagulu 37.05341 -6.38204 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Gogo-Kagulu (G.12) -kkj Kako 14.43822 4.14191 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Kaka (A.93) -kkk Kokota 159.19133 -8.16481 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Santa Isabel, Central -kkl Kosarek Yale 139.64513 -4.06603 Trans-New Guinea, Mek, Eastern -kkm Kiong 8.35234 5.20497 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Kiong-Korop -kkn Kon Keu 100.27835 21.63694 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Eastern Palaungic, Angkuic -kko Karko 29.20738 12.05423 Nilo-Saharan, Eastern Sudanic, Eastern, Nubian, Central, Hill, Unclassified -kkp Gugubera 141.63541 -15.42958 Australian, Pama-Nyungan, Paman, Coastal Pama -kkq Kaiku 28.73938 0.75068 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.312) -kkr Kir-Balar 9.77003 10.14563 Afro-Asiatic, Chadic, West, B, B.3, Boghom -kks Giiwo 10.46037 10.35754 Afro-Asiatic, Chadic, West, A, A.2, Bole, Bole Proper -kkt Koi 86.85308 27.19407 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Western -kku Tumi 8.10378 10.51129 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Kauru -kkv Kangean 112.96754 -7.98335 Austronesian, Malayo-Polynesian, Madurese -kkw Teke-Kukuya 14.44074 -2.27122 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Teke (B.77) -kkx Kohin 111.90514 -1.43973 Austronesian, Malayo-Polynesian, Greater Barito, West, North -kky Guguyimidjir 144.83085 -14.9424 Australian, Pama-Nyungan, Guugu-Yimidhirr -kkz Kaska -132.41246 61.99422 Eyak-Athabaskan, Athabaskan, Northern Athabaskan, Tahltan -kla Klamath-Modoc -121.70403 42.58608 Language isolate -klb Kiliwa -115.123 30.54713 Cochimí-Yuman, Yuman -klc Kolbila 13.27068 8.26797 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Leko -kld Gamilaraay 149.54301 -29.90374 Australian, Pama-Nyungan, Wiradhuric -kle Kulung 86.94938 27.52415 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -klf Kendeje 21.53955 13.24447 Nilo-Saharan, Maban, Kendeje -klg Tagakaulu Kalagan 125.42625 6.45338 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Mansakan, Western -klh Weliki 147.13733 -5.98588 Trans-New Guinea, Finisterre-Huon, Finisterre, Uruwa -kli Kalumpang 119.47352 -2.33388 Austronesian, Malayo-Polynesian, South Sulawesi, Northern, Toraja-Sa’dan -klj Turkic Khalaj 50.32223 34.42237 Altaic, Turkic, Southern -klk Kono 8.32193 10.43598 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Kauru -kll Kagan Kalagan 125.60962 7.10698 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Mansakan, Western -klm Kolom 146.21223 -5.57832 Trans-New Guinea, Madang, Rai Coast, Kabenau -kln Kalenjin 35.92363 -0.02158 -klo Kapya 10.09794 7.03256 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Yukuben-Kuteb -klp Kamasa 146.20897 -6.96411 Trans-New Guinea, Angan, Nuclear Angan -klq Rumu 144.17851 -7.17149 Trans-New Guinea, Turama-Kikorian, Kairi -klr Khaling 86.74767 27.71236 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Western -kls Kalasha 71.66575 35.64151 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Chitral -klt Nukna 146.9685 -6.0177 Trans-New Guinea, Finisterre-Huon, Finisterre, Uruwa -klu Klao -8.85937 5.02173 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Klao -klv Maskelynes 167.81794 -16.50734 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Malekula Coastal -klw Lindu 120.06304 -1.35748 Austronesian, Malayo-Polynesian, Celebic, Kaili-Pamona, Northern, Kaili -klx Koluwawa 150.46185 -9.42742 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Bwaidoga -kly Kalao 120.99456 -7.31213 Austronesian, Malayo-Polynesian, Celebic, Wotu-Wolio, Kalao -klz Kabola 124.53869 -8.17316 Trans-New Guinea, West, Timor-Alor-Pantar, Alor-Pantar, Alor -kma Konni -1.54376 10.23684 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Buli-Koma -kmb Mbundu 14.88926 -8.97835 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Kimbundu (H.21) -kmc Southern Dong 109.22191 25.8874 Tai-Kadai, Kam-Tai, Kam-Sui -kmd Madukayang Kalinga 121.23579 17.17939 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Kalinga-Itneg, Kalinga -kme Bakole 8.97387 4.43654 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Duala (A.231) -kmf Kare 145.49889 -5.07674 Trans-New Guinea, Madang, Croisilles, Kare -kmg Kâte 147.75695 -6.4795 Trans-New Guinea, Finisterre-Huon, Huon, Eastern -kmh Kalam 144.58514 -5.25216 Trans-New Guinea, Madang, Kalam-Kobon -kmi Kami 6.66088 8.57444 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Nupoid, Nupe-Gbagyi, Nupe -kmj Kumarbhag Paharia 87.26985 24.1217 Dravidian, Northern -kmk Limos Kalinga 121.38057 17.60813 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Kalinga-Itneg, Kalinga -kml Lower Tanudan Kalinga 121.31148 17.34407 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Kalinga-Itneg, Kalinga -kmm Kom 94.53404 24.8688 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -kmn Awtuw 141.92796 -3.53129 Sepik, Ram -kmo Kwoma 142.66438 -4.08721 Sepik, Nukuma -kmp Gimme 12.66584 8.58084 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Duru, Voko-Dowayo, Vere-Dowayo, Vere-Gimme, Gimme -kmq Kwama 34.24567 9.50836 Nilo-Saharan, Komuz, Koman -kmr Northern Kurdish 41.39668 37.51227 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Kurdish -kms Kamasau 143.84222 -3.8503 Torricelli, Marienberg -kmt Kemtuik 140.37182 -2.64894 Nimboran -kmu Kanite 145.55598 -6.38841 Trans-New Guinea, Kainantu-Goroka, Gorokan, Kamano-Yagaria -kmv Karipúna Creole French -51.68875 3.42825 Creole, French based -kmw Komo 26.71444 -0.76333 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Lega-Holoholo (D.23) -kmx Waboda 143.50149 -8.41651 Trans-New Guinea, Kiwaian -kmy Koma 12.65088 8.71706 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Duru, Voko-Dowayo, Vere-Dowayo, Vere-Gimme, Vere -kmz Khorasani Turkish 60.02772 36.4438 Altaic, Turkic, Southern, Turkish -kna Dera 12.02564 10.07198 Afro-Asiatic, Chadic, West, A, A.2, Tangale, Dera -knb Lubuagan Kalinga 121.0365 17.3879 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Kalinga-Itneg, Kalinga -knc Central Kanuri 12.81894 12.27421 Nilo-Saharan, Saharan, Western, Kanuri -knd Konda 132.05952 -1.82635 Trans-New Guinea, South Bird’s Head, Konda-Yahadian -kne Kankanaey 120.68924 16.8548 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Nuclear Cordilleran, Bontok-Kankanay, Kankanay -knf Mankanya -15.34052 11.6167 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Bak, Manjaku-Papel -kng Koongo 14.39675 -5.26758 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Kikongo (H.16) -knh Kayan River Kenyah 115.95098 2.19262 -kni Kanufi 8.27644 9.525 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Southwestern, A -knj Western Kanjobal -91.60773 15.66007 Mayan, Yucatecan-Core Mayan, Q’anjob’alan-Chujean, Q’anjob’alan, Q’anjob’al-Akateko-Jakalteko -knk Kuranko -11.15474 9.38995 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Mokole -knl Keninjal 111.8075 -0.63184 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic -knm Kanamarí -68.7678 -6.45399 Maipurean, Southern, Southern Outlier, Piro -knn Konkani 73.91659 19.24143 Indo-European, Indo-Iranian, Indo-Aryan, Southern zone, Konkani -kno Kono -10.92143 8.67039 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Vai-Kono -knp Kwanja 11.69315 6.30293 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Mambiloid, Mambila-Konja, Konja -knq Kintaq 101.1587 5.61042 Austro-Asiatic, Mon-Khmer, Aslian, North Aslian, Western -knr Kaningra 143.1918 -4.49681 Sepik, Sepik Hill, Alamblak -kns Kensiu 100.89167 5.93248 Austro-Asiatic, Mon-Khmer, Aslian, North Aslian, Western -knt Panoan Katukína -71.56151 -7.97456 Panoan, Mainline, Shipibo -knu Kono -8.25793 7.85002 Niger-Congo, Mande, Western, Central-Southwestern, Southwestern, Kpelle -knv Tabo 143.30513 -8.09387 South-Central Papuan, Waia -knw Kung-Ekoka 18.0309 -19.45604 Khoisan, Southern Africa, Northern -knx Kendayan 109.58906 0.29138 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic -kny Kanyok 23.61298 -7.31878 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Luba (L.32) -knz Kalamsé -3.10033 13.61057 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Northern -koa Konomala 152.87049 -4.16184 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Patpatar-Tolai -kob Kohoroxitari -67.64978 1.31875 -koc Kpati 10.1129 7.70605 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Ngemba -kod Kodi 119.11429 -9.6373 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Sumba-Hawu, Sumba -koe Kacipo-Balesi 34.76874 6.21223 Nilo-Saharan, Eastern Sudanic, Eastern, Surmic, South, Southwest, Kacipo-Balesi -kof Kubi 10.27461 10.62742 Afro-Asiatic, Chadic, West, A, A.2, Bole, Bole Proper -kog Cogui -73.80426 10.94849 Chibchan, Chibchan B, Eastern Chibchan, Colombian, Northern Colombian, Arhuacan -koh Koyo 15.75083 -0.69688 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Mboshi (C.24) -koi Komi-Permyak 54.79589 59.66024 Uralic, Permian, Komi -koj Sara Dunjo 19.94459 8.99175 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Sara Proper, Sara Kaba -kol Kol 151.58274 -5.21042 Language isolate -koo Konjo 29.97224 0.2379 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Konzo-Ndandi (D.41) -kop Kwato 145.62866 -5.53799 Trans-New Guinea, Madang, Rai Coast, Nuru -koq Kota 13.168 -0.71089 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Kele (B.25) -kor Korean 127.85022 36.62492 Language isolate -kos Kosraean 162.97022 5.32354 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Kusaiean -kot Lagwan 14.84748 11.7185 Afro-Asiatic, Chadic, Biu-Mandara, B, B.1, Kotoko Proper, South -kou Koke 18.41213 10.68288 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Bua -kov Kudu-Camo 9.07725 11.08192 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Jera -kow Kugama 12.12947 8.91972 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Mumuye-Yandang, Yandang -kox Coxima -72.08332 6.08332 Unclassified -koy Koyukon -154.22852 65.60927 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -koz Korak 145.51352 -4.5998 Trans-New Guinea, Madang, South Adelbert Range, Kowan -kpa Kutto 11.49535 10.70744 Afro-Asiatic, Chadic, West, A, A.2, Tangale, Tangale Proper -kpb Mullu Kurumba 76.7 11.29 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Kodagu -kpc Curripaco -68.62659 2.51191 Maipurean, Northern, Upper Amazon, Eastern Nawiki, Karu -kpd Koba 134.60959 -6.47901 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Aru -kpf Komba 147.27997 -6.16163 Trans-New Guinea, Finisterre-Huon, Huon, Western -kpg Kapingamarangi 158.20246 6.88727 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Ellicean -kph Kplang -0.80295 8.06653 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Guang, North Guang -kpi Kofei 136.7902 -2.33349 East Geelvink Bay -kpj Karajá -50.34918 -11.18812 Karajá -kpk Kpan 10.16422 7.58343 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Central, Kpan-Icen -kpl Kpala 20.31083 4.51093 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Ngbaka, Western, Monzombo -kpm Koho 108.05721 11.64436 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, South Bahnaric, Sre-Mnong, Sre -kpn Kepkiriwat -61.246 -11.663 Tupian, Tuparí -kpo Ikposo 0.83312 7.44776 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Kposo-Ahlo-Bowili -kpp Paku Karen 97.12034 18.81375 -kpq Korupun-Sela 139.67832 -4.53497 Trans-New Guinea, Mek, Eastern -kpr Korafe 149.26655 -9.07 Trans-New Guinea, Greater Binanderean, Binanderean, Nuclear Binanderean, South Binanderean, Coastal Binanderean, Gaena-Korafe -kps Tehit 131.98485 -1.51049 West Papuan, West Bird’s Head -kpt Karata 46.31511 42.65005 North Caucasian, East Caucasian, Avar-Andic, Andic -kpu Kafoa 124.44624 -8.36572 Trans-New Guinea, West, Timor-Alor-Pantar, Alor-Pantar, Alor -kpv Komi-Zyrian 54.94599 64.05268 Uralic, Permian, Komi -kpw Kobon 144.45995 -5.16446 Trans-New Guinea, Madang, Kalam-Kobon -kpx Mountain Koiali 147.38403 -9.06973 Trans-New Guinea, Southeast Papuan, Koiarian, Koiaric -kpy Koryak 166.69474 63.89771 Chukotko-Kamchatkan, Northern, Koryak-Alyutor -kpz Kupsabiny 34.59914 1.33197 Nilo-Saharan, Eastern Sudanic, Nilotic, Southern, Kalenjin, Elgon -kqa Mum 145.05864 -4.83462 Trans-New Guinea, Madang, South Adelbert Range, Josephstaal, Sikan -kqb Kovai 147.86159 -5.61712 Trans-New Guinea, Finisterre-Huon, Huon, Kovai -kqc Doromu 147.9855 -9.56687 Trans-New Guinea, Southeast Papuan, Manubaran -kqd Koy Sanjaq Surat 44.63646 36.04511 Afro-Asiatic, Semitic, Central, Aramaic, Eastern, Central, Northeastern -kqe Kalagan 125.32763 6.8126 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Mansakan, Western -kqf Kakabai 150.02702 -10.29763 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Kakabai -kqg Khe -4.24384 9.79704 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Dogoso-Khe -kqh Kisankasa 35.6751 -8.5411 Nilo-Saharan, Eastern Sudanic, Nilotic, Southern, Kalenjin, Nandi-Markweta, Nandi -kqi Koitabu 147.07916 -9.36877 Trans-New Guinea, Southeast Papuan, Koiarian, Koiaric -kqj Koromira 155.74205 -6.39399 South Bougainville, Nasioi -kqk Kotafon Gbe 1.72346 6.64027 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe -kql Kyenele 143.85512 -4.66964 Yuat -kqm Khisa -3.77644 9.68062 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Gan-Dogose -kqn Kaonde 25.52693 -13.17589 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Kaonde (L.41) -kqo Eastern Krahn -7.85454 5.83555 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Wee, Konobo -kqp Kimré 16.94232 9.42071 Afro-Asiatic, Chadic, East, A, A.2, 1 -kqq Krenak -41.22993 -18.99884 Botocudoan -kqr Kimaragang 116.95983 6.61982 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Dusun -kqs Northern Kissi -10.20533 8.87056 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Mel, Bullom-Kissi, Kissi -kqt Klias River Kadazan 115.58186 5.39453 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Dusun -kqu Seroa 22.00209 -33.03859 Khoisan, Southern Africa, Southern, !Kwi -kqv Okolod 115.96017 4.18179 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Murutic, Murut -kqw Kandas 152.7808 -4.3652 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Patpatar-Tolai -kqx Mser 14.9531 12.00059 Afro-Asiatic, Chadic, Biu-Mandara, B, B.1, Kotoko Proper, South -kqy Koorete 37.86789 5.80545 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gimojan, Ometo-Gimira, Ometo, East -kqz Korana 19.77108 -30.42065 Khoisan, Southern Africa, Central, Nama -kra Kumhali 84.13573 27.82967 Indo-European, Indo-Iranian, Indo-Aryan, Unclassified -krb Karkin -122.167 40.56 -krc Karachay-Balkar 42.26059 43.56504 Altaic, Turkic, Western, Ponto-Caspian -krd Kairui-Midiki 126.05874 -8.74034 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor -kre Kreen-Akarore -50.04038 -5.60817 Jean, Northern -krf Koro 167.46691 -14.29428 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -krg North Korowai 140.04726 -5.26952 -krh Kurama 7.93507 10.47663 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Kauru -kri Krio -13.13667 8.30785 Creole, English based, Atlantic, Krio -krj Kinaray-A 122.2969 10.81307 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, West, Kinarayan -krk Kerek 175.06969 62.17769 Chukotko-Kamchatkan, Northern, Koryak-Alyutor -krl Karelian 31.80202 64.4256 Uralic, Finnic -krm Krim -11.83935 7.24116 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Mel, Bullom-Kissi, Bullom, Southern -krn Sapo -8.49229 5.69555 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Wee, Guere-Krahn -krp Korop 8.76496 5.17972 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Kiong-Korop -krq Krui 104.08937 -5.16158 -krr Kru'ng 2 106.76134 13.56989 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, West Bahnaric, Brao-Kravet -krs Gbaya 25.51728 8.43391 Nilo-Saharan, Central Sudanic, West, Kresh -krt Tumari Kanuri 13.15705 14.25844 Nilo-Saharan, Saharan, Western, Kanuri -kru Kurux 84.13154 23.14998 Dravidian, Northern -krv Kravet 106.58579 14.17964 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, West Bahnaric, Brao-Kravet -krw Western Krahn -8.38393 5.72387 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Wee, Guere-Krahn -krx Karon -16.70419 12.82945 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Bak, Jola, Jola Proper, Karon-Mlomp -kry Kryts 48.18457 41.18107 North Caucasian, East Caucasian, Lezgic, Nuclear Lezgic, South Lezgic -krz Sota Kanum 140.96896 -8.40452 South-Central Papuan, Morehead-Upper Maro, Tonda -ksa Shuwa-Zamani 8.23505 10.36283 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Kauru -ksb Shambala 38.29111 -4.66153 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Shambala (G.23) -ksc Southern Kalinga 121.06787 17.29358 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Kalinga-Itneg, Kalinga -ksd Kuanua 152.1136 -4.30986 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Patpatar-Tolai -kse Kuni 146.87435 -8.66368 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Central Papuan, West Central Papuan, Nuclear -ksf Bafia 11.0982 4.72603 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Bafia (A.53) -ksg Kusaghe 157.46268 -8.04056 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, New Georgia, West -ksh Kolsch 6.927 50.947 Indo-European, Germanic, West, High German, German, Middle German, West Middle German, Ripuarian Franconian -ksi Krisa 141.30335 -2.80084 Skou, I’saka -ksj Uare 147.68747 -9.69571 Trans-New Guinea, Southeast Papuan, Kwalean -ksk Kansa -96.85712 36.80439 Siouan-Catawban, Siouan, Mississippi Valley-Ohio Valley Siouan, Mississippi Valley Siouan, Dhegihan -ksl Kumalu 146.57028 -7.1135 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, South, Hote-Buang, Buang, Mumeng -ksm Kumba 12.04155 8.82122 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Mumuye-Yandang, Mumuye -ksn Kasiguranin 122.11786 16.1881 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Northern Cordilleran, Northeastern Luzon, Northern -kso Kofa 12.87572 9.76068 Afro-Asiatic, Chadic, Biu-Mandara, A, A.2, 1 -ksp Kaba 16.77407 7.4508 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Sara Proper -ksq Kwaami 11.01919 10.41412 Afro-Asiatic, Chadic, West, A, A.2, Tangale, Tangale Proper -ksr Borong 147.511 -6.56688 Trans-New Guinea, Finisterre-Huon, Huon, Eastern -kss Southern Kisi -10.18287 8.40131 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Mel, Bullom-Kissi, Kissi -kst Winyé -2.97518 11.82394 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Western -ksu Khamyang 93.99325 26.88946 Tai-Kadai, Kam-Tai, Tai, Southwestern -ksv Kusu 25.2923 -3.61459 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Tetela (C.72) -ksw S'gaw Karen 97.50115 17.81928 Sino-Tibetan, Tibeto-Burman, Karenic, Southern -ksx Kedang 123.76988 -8.23039 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -ksy Kharia Thar 83.799 22.24496 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bengali-Assamese -ksz Koraku 83.84537 23.57571 Austro-Asiatic, Munda, North Munda, Kherwari -kta Katua 108.29295 14.89712 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, North Bahnaric -ktb Kambaata 37.90877 7.37582 Afro-Asiatic, Cushitic, East, Highland -ktc Kholok 10.96711 9.33645 Afro-Asiatic, Chadic, West, A, A.2, Bole, Bole Proper -ktd Kokata 136.81262 -31.20523 Australian, Pama-Nyungan, South-West, Wati -kte Nubri 84.77716 28.50918 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, gTsang -ktf Kwami 27.46332 -1.53712 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Lega-Holoholo (D.251) -ktg Kalkutung 146.00307 -23.49886 Australian, Pama-Nyungan, Galgadungic -kth Karanga 20.6354 13.1748 Nilo-Saharan, Maban -kti North Muyu 140.83996 -5.55319 Trans-New Guinea, Ok-Awyu, Ok, Lowland -ktj Plapo Krumen -7.30644 4.56109 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Grebo, Ivorian -ktk Kaniet 145.08559 -1.51777 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Western -ktl Koroshi 53.008 29.441 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Balochi -ktm Kurti 147.03608 -2.01187 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, East -ktn Karitiâna -64.15219 -9.37937 Tupian, Arikem -kto Kuot 151.53735 -3.06952 Language isolate -ktp Kaduo 101.87145 22.19691 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southern -ktq Katabaga 121.54387 17.95094 Austronesian, Malayo-Polynesian, Unclassified -ktr Kota Marudu Tinagas 116.94601 6.377 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Dusun, Central -kts South Muyu 140.8149 -6.01385 Trans-New Guinea, Ok-Awyu, Ok, Lowland -ktt Ketum 140.60387 -5.34647 Trans-New Guinea, Ok-Awyu, Awyu-Dumut, Dumut -ktu Kituba 17.15479 -2.29601 Creole, Kongo based -ktv Eastern Katu 107.64367 15.85534 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, East Katuic, Katu-Pacoh -ktw Kato -123.43244 39.70019 Eyak-Athabaskan, Athabaskan, Pacific Coast Athabaskan, California Athabaskan -ktx Kaxararí -66.33286 -9.47288 Panoan -kty Kango 24.82023 3.47633 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngombe (C.403) -ktz Ju/'hoan 21.65872 -19.62206 Khoisan, Southern Africa, Northern -kua Kwanyama 16.28396 -17.04183 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, R, Wambo (R.21) -kub Kutep 10.03107 7.15656 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Yukuben-Kuteb -kud 'Auhelawa 151.00206 -10.09588 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, Suauic -kue Kuman 144.97713 -5.90586 Trans-New Guinea, Chimbu-Wahgi, Chimbu -kuf Western Katu 107.16609 15.79493 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, East Katuic, Katu-Pacoh -kug Kupa 6.35806 8.48437 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Nupoid, Nupe-Gbagyi, Nupe -kuh Kushi 10.93957 9.40731 Afro-Asiatic, Chadic, West, A, A.2, Tangale, Tangale Proper -kui Kuikúro-Kalapálo -53.22611 -12.3035 Cariban, South Amazonian, Bakairí, Amonap -kuj Kuria 34.45109 -1.83175 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Logooli-Kuria (E.43) -kuk Kepo' 120.83973 -8.58908 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -kul Kulere 8.97756 8.96481 Afro-Asiatic, Chadic, West, A, A.4, Ron Proper -kum Kumyk 47.32625 42.88799 Altaic, Turkic, Western, Ponto-Caspian -kun Kunama 37.25565 14.72728 Nilo-Saharan, Kunama -kuo Kumukio 147.41094 -6.03128 Trans-New Guinea, Finisterre-Huon, Huon, Western -kup Kunimaipa 146.90782 -8.09371 Trans-New Guinea, Southeast Papuan, Goilalan, Kunimaipa -kuq Karipuná -64.28068 -10.20056 Tupian, Tupí-Guaraní, Kawahib, Parintintin -kus Kusaal -0.29327 10.87855 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Western, Southeast -kut Kutenai -115.79542 50.24148 Language isolate -kuu Upper Kuskokwim -155.95074 62.2976 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -kuv Kur 131.98597 -5.34077 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Teor-Kur -kuw Kpagua 20.15843 4.96154 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Banda, Central, Central Core, Mid-Southern -kux Kukatja 127.66587 -20.3321 Australian, Pama-Nyungan, South-West, Wati -kuy Kuuku-Ya'u 143.16518 -12.49468 Australian, Pama-Nyungan, Paman, Northeastern Pama -kuz Kunza -71.0453 -31.67939 Language isolate -kva Bagvalal 46.1041 42.39664 North Caucasian, East Caucasian, Avar-Andic, Andic -kvb Kubu 102.19339 -2.42661 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -kvc Kove 149.62968 -5.58623 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Ngero, Bariai -kvd Kui 124.79122 -8.38204 Trans-New Guinea, West, Timor-Alor-Pantar, Alor-Pantar, Alor -kve Kalabakan 117.31699 4.53605 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Murutic, Tidong -kvf Kabalai 16.2821 9.38373 Afro-Asiatic, Chadic, East, A, A.2, 2 -kvg Kuni-Boazi 141.36524 -6.97504 Trans-New Guinea, Marind, Boazi -kvh Komodo 119.4774 -8.64518 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -kvi Kwang 16.51288 10.11808 Afro-Asiatic, Chadic, East, A, A.3 -kvj Psikye 13.6642 10.58813 Afro-Asiatic, Chadic, Biu-Mandara, A, A.3 -kvk Korean Sign Language 127.60859 37.47179 Deaf sign language -kvl Brek Karen 96.83655 19.05612 Sino-Tibetan, Tibeto-Burman, Karenic, Central -kvm Kendem 9.63201 5.77429 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Mamfe -kvn Border Kuna -76.91261 7.86371 Chibchan, Chibchan B, Eastern Chibchan, Cuna -kvo Dobel 134.63758 -6.32531 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Aru -kvp Kompane 134.74206 -5.64348 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Aru -kvq Geba Karen 96.94916 19.49915 Sino-Tibetan, Tibeto-Burman, Karenic, Central -kvr Kerinci 101.40285 -1.93668 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -kvs Kunggara 141.1441 -17.62553 Australian, Pama-Nyungan, Paman, Norman Pama -kvt Lahta Karen 97.37906 20.17968 Sino-Tibetan, Tibeto-Burman, Karenic, Northern -kvu Yinbaw Karen 97.2134 19.03831 Sino-Tibetan, Tibeto-Burman, Karenic, Northern -kvv Kola 134.59152 -5.48833 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Aru -kvw Wersing 124.93246 -8.33936 Trans-New Guinea, West, Timor-Alor-Pantar -kvx Parkari Koli 69.94228 24.48602 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Gujarati -kvy Yintale Karen 97.33683 18.93779 Sino-Tibetan, Tibeto-Burman, Karenic, Northern -kvz Tsakwambo 140.1863 -5.39076 Trans-New Guinea, Ok-Awyu, Ok, Ngalum -kwa Dâw -67.29341 -0.1177 Puinavean -kwb Kwa 11.44388 9.42222 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Kwa -kwc Likwala 16.5967 -0.48981 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Mboshi (C.26) -kwd Kwaio 160.96526 -8.93744 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, Malaita, Northern -kwe Kwerba 138.48618 -2.2137 Tor-Kwerba, Greater Kwerba, Kwerba, Nuclear -kwf Kwara'ae 160.80403 -8.75779 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, Malaita, Northern -kwg Kaba Deme 18.66068 9.03466 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Sara Proper, Sara Kaba -kwh Kowiai 133.46812 -4.21954 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, South Bomberai -kwi Awa-Cuaiquer -78.19321 1.31564 Barbacoan, Northern -kwj Kwanga 142.71051 -3.74263 Sepik, Nukuma -kwk Kwakiutl -127.30783 50.92694 Wakashan, Northern Wakashan, Kwakiutlan -kwl Kofyar 9.15279 8.79947 Afro-Asiatic, Chadic, West, A, A.3, Angas Proper, 1 -kwm Kwambi 15.72942 -18.03388 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, R, Wambo (R.23) -kwn Kwangali 19.39946 -18.2952 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Luyana (K.33) -kwo Kwomtari 141.48797 -3.50718 Kwomtari, Nuclear Kwomtari -kwp Kodia -6.31915 5.49671 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Eastern, Kwadia -kwq Kwak 11.10872 6.66524 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Unclassified -kwr Kwer 140.01201 -5.02008 Trans-New Guinea, Ok-Awyu, Ok, Western -kws Kwese 18.57589 -5.60445 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Pende (L.13) -kwt Kwesten 138.85315 -2.03622 Tor-Kwerba, Orya-Tor, Tor -kwu Kwakum 13.64458 4.34393 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Kaka (A.91) -kwv Kaba Na 19.25663 9.39388 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Sara Proper, Sara Kaba -kww Kwinti -56.12663 5.1323 Creole, English based, Atlantic, Suriname, Ndyuka -kwx Khirwar 82.96154 23.70624 Dravidian, South-Central, Gondi-Kui, Gondi -kwy San Salvador Kongo 14.39675 -5.26758 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Kikongo (H.16) -kwz Kwadi 12.11474 -15.87448 Khoisan, Southern Africa, Central, Kwadi -kxa Kairiru 143.5576 -3.34608 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Schouten, Kairiru-Manam, Kairiru -kxb Krobu -4.47739 5.86161 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Krobu -kxc Komso 37.52998 5.39111 Afro-Asiatic, Cushitic, East, Konso-Gidole -kxd Brunei 114.88626 4.89828 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -kxe Kakihum 5.58853 10.81188 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Kambari -kxf Manumanaw Karen 96.9531 19.165 Sino-Tibetan, Tibeto-Burman, Karenic, Central -kxg Katingan 112.79357 -1.58463 -kxh Karo 36.17093 5.2101 Afro-Asiatic, Omotic, South -kxi Keningau Murut 116.19843 5.42272 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Murutic, Murut -kxj Kulfa 18.90547 9.96327 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Sara Proper, Sara Kaba -kxk Zayein Karen 96.90799 20.15999 Sino-Tibetan, Tibeto-Burman, Karenic, Northern -kxl Nepali Kurux 86.00255 26.72057 Dravidian, Northern -kxm Northern Khmer 103.86313 14.46743 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Khmer -kxn Kanowit 112.20466 2.07952 Austronesian, Malayo-Polynesian, North Borneo, Melanau-Kajang, Melanau -kxo Kanoe -64.58121 -12.17894 Language isolate -kxp Wadiyara Koli 74.551 26.474 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Gujarati -kxq Smärky Kanum 140.89703 -8.91812 South-Central Papuan, Morehead-Upper Maro, Tonda -kxr Koro 147.14267 -2.03429 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, East -kxs Kangjia 101.254 35.043 Altaic, Mongolic, Eastern, Mongour -kxt Koiwat 143.61954 -4.03417 Sepik, Ndu -kxu Kui 83.58592 19.20427 Dravidian, South-Central, Gondi-Kui, Konda-Kui, Manda-Kui, Kui-Kuvi -kxv Kuvi 83.75524 18.88319 Dravidian, South-Central, Gondi-Kui, Konda-Kui, Manda-Kui, Kui-Kuvi -kxw Konai 142.06865 -5.66011 Trans-New Guinea, East Strickland -kxx Likuba 16.47017 -1.27931 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Mboshi (C.27) -kxy Kayong 108.44694 14.92273 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, North Bahnaric, East, Cua-Kayong -kxz Kerewo 144.3085 -7.551 Trans-New Guinea, Kiwaian -kya Kwaya 33.71001 -1.80737 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Haya-Jita (E.251) -kyb Butbut Kalinga 121.09113 17.22394 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Kalinga-Itneg, Kalinga -kyc Kyaka 144.11898 -5.52462 Trans-New Guinea, Engan, Enga -kyd Karey 134.37498 -6.74181 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Aru -kye Krache 0.01925 7.93475 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Guang, North Guang -kyf Kouya -6.5685 7.27375 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Eastern, Bete, Eastern -kyg Keyagana 145.46423 -6.47599 Trans-New Guinea, Kainantu-Goroka, Gorokan, Kamano-Yagaria -kyh Karok -123.31534 41.82283 Language isolate -kyi Kiput 114.36735 4.16535 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Berawan-Lower Baram, Lower Baram, Central, A -kyj Karao 120.95636 16.56551 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Southern Cordilleran, West Southern Cordilleran, Nuclear Southern Cordilleran, Karaw -kyk Kamayo 126.31393 8.10796 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Mansakan, Northern -kyl Kalapuya -123.92463 44.98615 Takelman -kym Kpatili 21.85945 5.17203 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Zande, Zande-Nzakara -kyn Karolanos 122.816 9.992 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine -kyo Kelon 124.4293 -8.40688 Trans-New Guinea, West, Timor-Alor-Pantar, Alor-Pantar, Alor -kyp Kang 101.91887 21.44166 Tai-Kadai, Kam-Tai, Kam-Sui -kyq Kenga 18.14635 11.68162 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Bagirmi -kyr Kuruáya -52.2303 -3.09561 Tupian, Mundurukú -kys Baram Kayan 114.48171 3.51211 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kayanic, Kayan Proper -kyt Kayagar 138.93161 -6.37677 Trans-New Guinea, Kayagar -kyu Western Kayah 97.4877 18.68704 Sino-Tibetan, Tibeto-Burman, Karenic, Central -kyv Kayort 87.60416 26.61787 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bengali-Assamese -kyw Kudmali 93.969 26.507 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bihari -kyx Rapoisi 154.83383 -5.78724 North Bougainville, Konua -kyy Kambaira 146.08346 -6.26656 Trans-New Guinea, Kainantu-Goroka, Kainantu, Kambaira -kyz Kayabí -55.54792 -11.27468 Tupian, Tupí-Guaraní, Kayabí -kza Western Karaboro -4.76482 10.6298 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Senufo, Karaboro -kzb Kaibobo 128.21089 -3.1603 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Piru Bay, East -kzc Bondoukou Kulango -3.27105 8.05735 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Kulango -kzd Kadai 125.14217 -1.74547 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, Sula, Taliabo -kze Kosena 145.66048 -6.46414 Trans-New Guinea, Kainantu-Goroka, Kainantu, Gadsup-Auyana-Awa -kzf Da'a Kaili 119.52744 -1.21051 Austronesian, Malayo-Polynesian, Celebic, Kaili-Pamona, Northern, Kaili -kzg Kikai 129.98213 28.31 Japonic, Ryukyuan, Amami-Okinawan, Northern Amami-Okinawan -kzh Kenuzi-Dongola 30.84872 18.09597 -kzi Kelabit 115.27059 3.4202 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Kelabitic -kzj Coastal Kadazan 116.0634 5.77065 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Dusun -kzk Kazukuru 157.6873 -8.23886 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, New Georgia, West -kzl Kayeli 127.11763 -3.39247 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Kayeli -kzm Kais 132.31177 -1.78077 Trans-New Guinea, South Bird’s Head, South Bird’s Head Proper, Western -kzn Kokola 35.47619 -16.05549 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Makhuwa (P.31) -kzo Kaningi 13.61112 -1.71316 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Mbete (B.602) -kzp Kaidipang 123.2168 0.85641 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Gorontalo-Mongondow, Gorontalic -kzq Kaike 83.13837 28.853 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Bodish -kzr Karang 15.04418 7.79242 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Mbum, Eastern Mbum, Karang -kzs Sugut Dusun 117.17608 6.14235 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Dusun, Central -kzt Tambunan Dusun 116.3726 5.68284 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Dusun, Central -kzu Kayupulau 140.62585 -2.54415 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Sarmi-Jayapura Bay, Jayapura Bay -kzv Komyandaret 140.21251 -5.25453 Trans-New Guinea, Ok-Awyu, Ok, Ngalum -kzw Kariri-Xoco -36.33332 -9.84999 Language isolate -kzx Kamarian 128.52599 -3.40779 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Piru Bay, East, Seram Straits, Uliase, Kamarian -kzy Kango 27.01864 1.59855 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Lega-Holoholo (D.211) -kzz Kalabra 131.61701 -1.43074 West Papuan, West Bird’s Head -laa Lapuyan Subanun 123.13047 7.53449 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Subanon, Eastern -lac Lacandon -91.42348 17.02093 Mayan, Yucatecan-Core Mayan, Yucatecan, Yucatec-Lacandon -lad Ladino 34.98227 32.01785 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Ibero-Romance, West Iberian, Castilian -lae Pattani 76.59663 32.69631 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Himalayish, Kinauri -laf Lafofa 30.73307 10.33565 Niger-Congo, Kordofanian, Talodi, Tegem -lag Langi 35.95174 -4.71413 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, F, Nilamba-Rangi (F.33) -lai Lambya 33.30404 -9.65124 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Nyiha-Safwa (M.201) -laj Lango 33.05527 2.13867 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Luo, Southern, Luo-Acholi, Alur-Acholi, Lango-Acholi -lak Laka 11.22801 9.14965 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Mbum, Unclassified -lal Lalia 23.36337 -1.11711 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Mongo-Nkundo (C.62) -lam Lamba 27.91028 -13.11226 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Lala-Bisa-Lamba (M.54) -lan Laru 4.43514 10.57564 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Kainji Lake -lao Lao 102.88137 18.22947 Tai-Kadai, Kam-Tai, Tai, Southwestern -lap Laka 15.90971 8.1033 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Sara Proper -laq Qabiao 104.88775 22.98779 Tai-Kadai, Kra, Eastern Kra -lar Larteh -0.07822 5.9367 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Guang, South Guang -las Lama 0.99542 6.77903 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Eastern -lat Latin 12.45021 41.90264 Indo-European, Italic, Latino-Faliscan -lau Laba 127.58349 1.66675 West Papuan, North Halmahera, Galela-Loloda -lav Latvian 24.60772 57.1435 Indo-European, Baltic, Eastern -law Lauje 120.26199 0.50708 Austronesian, Malayo-Polynesian, Celebic, Tomini-Tolitoli, Tomini, Northern -lax Tiwa 92.25834 26.06675 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Bodo-Koch, Bodo-Garo, Bodo -lay Lama 98.46937 27.62373 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Bai -laz Aribwatsa 146.99139 -6.72266 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, Markham, Lower, Busu -lba Lui 99.66194 21.36347 Sino-Tibetan, Tibeto-Burman, Unclassified -lbb Label 152.67791 -4.46971 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Patpatar-Tolai -lbc Lakkia 110.1058 24.11692 Tai-Kadai, Kam-Tai, Lakkja -lbe Lak 47.0809 42.13275 North Caucasian, East Caucasian, Lak -lbf Tinani 77.36585 32.30698 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Himalayish, Kinauri -lbg Laopang 100.07886 20.78087 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Unclassified -lbi Labi 15.28952 7.85817 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, La’bi -lbj Ladakhi 77.37761 34.06401 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Western -lbm Lodhi 84.94628 20.89542 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bengali-Assamese -lbn Lamet 100.96317 20.37754 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Eastern Palaungic, Lametic -lbo Laven 106.32196 15.27261 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, West Bahnaric, Laven -lbq Wampar 146.66168 -6.67364 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, Markham, Lower, Wampar -lbr Northern Lorung 87.21573 27.51015 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -lbs Libyan Sign Language 17.573 29.512 Deaf sign language -lbt Lachi 104.85041 22.80149 Tai-Kadai, Kra, Western Kra -lbu Labu 146.9028 -6.75 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, Markham, Lower, Labu -lbv Lavatbura-Lamusong 151.72789 -3.21903 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, Madak -lbw Tolaki 121.88825 -4.03577 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Bungku-Tolaki, Western, West Coast -lbx Lawangan 115.87601 -1.80261 Austronesian, Malayo-Polynesian, Greater Barito, East, North -lby Lamu-Lamu 143.97745 -14.55903 Australian, Pama-Nyungan, Paman, Lamalamic -lbz Lardil 139.4343 -16.56152 Australian, Pama-Nyungan, Lardil -lcc Legenyem 130.74933 -0.3592 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Raja Ampat -lcd Lola 134.87903 -6.34188 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Aru -lce Loncong 103.54808 -0.02586 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -lcf Lubu 99.74549 0.63989 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -lch Luchazi 20.48107 -14.67721 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Ciokwe-Luchazi (K.13) -lcl Lisela 126.98137 -3.27358 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, Buru -lcm Tungag 150.19803 -2.52188 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, Lavongai-Nalik -lcp Western Lawa 100.57753 21.50827 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Eastern Palaungic, Waic, Lawa -lcq Luhu 127.96566 -3.13187 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Three Rivers, Amalumute, Northwest Seram -lcs Lisabata-Nuniali 128.26493 -2.87434 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Three Rivers, Amalumute, Northwest Seram -ldb Idun 7.77525 9.12585 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Northwestern, Koro -ldd Luri 9.59745 10.05896 Afro-Asiatic, Chadic, West, B, B.3, Zaar Proper -ldg Lenyima 8.28951 6.00131 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Central, East-West, Mbembe-Legbo, Legbo -ldh Lamja-Dengsa-Tola 12.16436 8.63772 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Dakoid -ldi Laari 14.57752 -4.19722 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Kikongo (H.16) -ldj Lemoro 8.70513 10.43656 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Jera -ldk Leelau 11.1636 9.29145 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Jen -ldl Kaan 12.15084 9.70781 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Yungur, Libo -ldm Landoma -14.08947 10.87529 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Mel, Temne, Baga -ldo Loo 11.05109 9.4066 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Jen -ldp Tso 11.49724 9.53256 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Waja, Cham-Mona -ldq Lufu 10.94988 7.25555 Unclassified -lea Lega-Shabunda 27.14236 -3.83196 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Lega-Holoholo (D.251) -leb Lala-Bisa 30.96632 -13.05079 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Lala-Bisa-Lamba (M.51) -lec Leco -67.88181 -15.00921 Language isolate -led Lendu 30.55728 1.86997 Nilo-Saharan, Central Sudanic, East, Lendu -lee Lyélé -2.59229 12.4305 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Northern -lef Lelemi 0.50746 7.34549 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Lelemi, Lelemi-Akpafu -leg Lengua -58.90528 -22.65586 -leh Lenje 28.25808 -14.71918 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Lenje-Tonga (M.61) -lei Lemio 146.44079 -5.61407 Trans-New Guinea, Madang, Rai Coast, Kabenau -lej Lengola 25.33434 -1.95874 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Mbole-Enya (D.12) -lek Leipon 147.22622 -1.9665 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, East -lel Lele 20.56739 -4.94672 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bushoong (C.84) -lem Nomaande 10.91566 4.5893 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Basaa (A.46) -len Lenca -87.94865 14.30478 Lencan -leo Leti 11.40498 4.57457 Unclassified -lep Lepcha 88.61526 27.24114 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Lepcha -leq Lembena 143.89062 -4.99504 Trans-New Guinea, Engan, Enga -ler Lenkau 147.74163 -2.33367 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Southeast Islands -les Lese 29.29185 1.8798 Nilo-Saharan, Central Sudanic, East, Mangbutu-Efe -let Lesing-Gelimi 150.5058 -6.19889 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Southwest New Britain, Arawe-Pasismanua, Arawe, East Arawe -leu Kara 151.11092 -2.81957 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, Lavongai-Nalik -lev Lamma 124.05661 -8.52787 Trans-New Guinea, West, Timor-Alor-Pantar, Alor-Pantar, Pantar -lew Ledo Kaili 120.13229 -1.03033 Austronesian, Malayo-Polynesian, Celebic, Kaili-Pamona, Northern, Kaili -lex Luang 127.94433 -8.18378 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Southwest Maluku, Luang -ley Lemolang 120.27028 -2.63313 Austronesian, Malayo-Polynesian, South Sulawesi, Lemolang -lez Lezgi 47.89507 41.51572 North Caucasian, East Caucasian, Lezgic, Nuclear Lezgic, East Lezgic -lfa Lefa 11.11402 5.05845 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Bafia (A.51) -lga Lungga 156.57264 -8.17469 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, New Georgia, West -lgb Laghu 158.96112 -8.00509 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Santa Isabel, West -lgg Lugbara 31.08066 3.12522 Nilo-Saharan, Central Sudanic, East, Moru-Madi, Central -lgh Laghuu 103.92852 22.26738 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southeastern -lgi Lengilu 115.90976 3.69641 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Kelabitic -lgk Lingarak 167.4985 -16.19856 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Malekula Interior, Malekula Central -lgl Wala 160.74125 -8.81936 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, Malaita, Northern -lgm Lega-Mwenga 28.26206 -3.39007 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Lega-Holoholo (D.25) -lgn Opuuo 33.90495 8.41194 Nilo-Saharan, Komuz, Koman -lgq Logba 0.43068 6.92838 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Logba -lgr Lengo 160.42011 -9.56425 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Gela-Guadalcanal, Gela -lgt Pahi 142.29906 -3.79935 Sepik, Tama -lgu Longgu 160.66328 -9.75258 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, Malaita, Longgu -lgz Ligenza 22.49359 2.86168 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngombe (C.414) -lha Laha 103.86379 21.55149 Tai-Kadai, Kra, Eastern Kra -lhh Laha 128.07305 -3.70755 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Piru Bay, East, Seram Straits, Ambon -lhl Lahul Lohar 77 32.583 Indo-European, Indo-Iranian, Indo-Aryan, Unclassified -lhm Lhomi 87.429 27.76642 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, gTsang -lhn Lahanan 113.94739 2.72734 Austronesian, Malayo-Polynesian, North Borneo, Melanau-Kajang, Kajang -lhp Lhokpu 89.30994 26.91347 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish -lhs Mlahso 41.22092 37.03108 Afro-Asiatic, Semitic, Central, Aramaic, Eastern, Central, Northwestern -lht Toga 166.61341 -13.25195 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -lhu Lahu 100.13079 22.56842 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Central -lia West-Central Limba -12.31378 9.52392 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Limba -lib Likum 146.69477 -2.16157 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, West -lic Hlai 109.4587 18.80621 Tai-Kadai, Hlai -lid Nyindrou 146.62734 -2.1143 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, West -lie Likila 19.02225 1.75106 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.31) -lif Limbu 87.64366 27.30894 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -lig Ligbi -2.38513 7.91388 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Jogo-Jeri, Jogo -lih Lihir 152.60632 -3.18895 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, Tabar -lii Lingkhim 87.99919 26.99202 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -lij Ligurian 8.77161 44.46488 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Gallo-Romance, Gallo-Italian -lik Lika 27.60883 2.13777 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Lega-Holoholo (D.201) -lil Lillooet -122.04027 50.72722 Salish, Interior -lim Limburgisch 5.93592 50.87317 Indo-European, Germanic, West, High German, German, Middle German, West Middle German, Rhenisch Franconian -lin Lingala 24.34624 2.31229 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.30) -lio Liki 138.7308 -1.60652 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Sarmi-Jayapura Bay, Sarmi -lip Sekpele 0.5886 7.16751 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Lelemi, Likpe-Santrokofi -liq Libido 38.49967 8.09761 Afro-Asiatic, Cushitic, East, Highland -lir Liberian English -10.52836 6.423 Pidgin, English based, Atlantic -lis Lisu 98.84897 25.96462 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Central -lit Lithuanian 23.96007 55.14291 Indo-European, Baltic, Eastern -liu Logorik 29.80533 11.17389 Nilo-Saharan, Eastern Sudanic, Western, Daju, Eastern Daju -liv Liv 22.02622 57.56599 Uralic, Finnic -liw Lembak 102.94309 -3.42844 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -lix Liabuku 122.69928 -5.32268 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Muna-Buton, Nuclear Muna-Buton, Munan, Munic, Western -liy Banda-Bambari 20.98269 6.21563 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Banda, Central, Central Core, Banda-Bambari -liz Libinza 18.88861 1.97729 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.321) -lje Rampi 120.35634 -2.1399 Austronesian, Malayo-Polynesian, Celebic, Kaili-Pamona, Southern -lji Laiyolo 120.48283 -6.45512 Austronesian, Malayo-Polynesian, Celebic, Wotu-Wolio, Kalao -ljl Li'o 121.8322 -8.68615 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -ljp Lampung 105.03657 -5.73463 Austronesian, Malayo-Polynesian, Lampung -lka Lakalei 125.71641 -8.86372 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor -lke Kenyi 33.47912 1.1513 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Nyoro-Ganda (E.16) -lkh Lakha 90.33357 27.63255 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, Southern -lki Laki 47.93976 34.01025 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Kurdish -lkj Remun 110.81987 1.26305 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Ibanic -lkl Laeko-Libuat 142.23664 -3.69618 Torricelli, Maimai, Laeko-Libuat -lkn Lakona 167.47182 -14.21304 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -lkr Päri 32.48215 5.09472 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Luo, Northern, Unclassified -lkt Lakota -101.37606 43.37912 Siouan-Catawban, Siouan, Mississippi Valley-Ohio Valley Siouan, Mississippi Valley Siouan, Dakota -lky Lokoya 32.26247 4.64724 Nilo-Saharan, Eastern Sudanic, Nilotic, Eastern, Lotuxo-Teso, Lotuxo-Maa, Lotuxo -lla Lala-Roba 12.16902 9.89429 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Yungur, Yungur-Roba -llb Lolo 35.94509 -17.02319 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Makhuwa (P.31) -llc Lele -10.37098 8.98043 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Mokole -lld Ladin 11.89498 46.60651 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Gallo-Romance, Gallo-Rhaetian, Rhaetian -lle Lele 147.20745 -2.04783 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, East -llf Hermit 145.07496 -1.52891 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, West -llg Lole 123.08513 -10.80695 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor, Rote -lli Teke-Laali 13.27034 -3.34458 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Teke (B.73) -llk Lelak 114.02858 4.11426 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Berawan-Lower Baram, Lower Baram, Central, B -lll Lilau 144.98971 -4.35479 Torricelli, Monumbo -llm Lasalimu 123.12905 -5.23602 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Muna-Buton, Nuclear Muna-Buton, Buton, East Buton -lln Lele 15.81149 9.158 Afro-Asiatic, Chadic, East, A, A.2, 1 -llo Khlor 106.60586 15.6415 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, East Katuic, Ngeq-Nkriang -llp North Efate 168.3753 -17.57743 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Central Vanuatu -llq Lolak 124.11656 0.85544 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Gorontalo-Mongondow, Gorontalic -lls Lithuanian Sign Language 23.88138 55.24867 Deaf sign language -llu Lau 160.87163 -8.51018 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, Malaita, Northern -llx Lauan -178.78541 -18.21311 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, East Fijian -lma East Limba -11.73884 10.03832 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Limba -lmb Merei 166.90525 -15.28389 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -lmc Limilngan 131.84525 -12.42938 Australian, Limilngan-Wulna -lmd Lumun 30.25298 10.83084 Niger-Congo, Kordofanian, Talodi, Talodi Proper, Tocho -lme Pévé 14.58661 9.17253 Afro-Asiatic, Chadic, Masa -lmf South Lembata 123.53131 -8.49783 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -lmg Lamogai 149.32055 -5.87071 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Southwest New Britain, Bibling -lmh Lambichhong 87.21677 27.05426 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -lmi Lombi 27.34196 0.26796 Nilo-Saharan, Central Sudanic, East, Mangbetu -lmj West Lembata 123.29773 -8.49669 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -lmk Lamkang 94.00829 24.0095 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -lml Hano 168.16713 -15.54323 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -lmm Lamam 107.33557 14.36582 -lmn Lambadi 76.97168 16.57338 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Unclassified -lmo Lombard 9.95972 45.74716 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Gallo-Romance, Gallo-Italian -lmp Limbum 10.80443 6.52881 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Nkambe -lmq Lamatuka 123.58557 -8.39374 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -lmr Lamalera 123.4422 -8.53225 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -lms Limousin 1.15175 45.27325 -lmt Lematang 104.05783 -3.4517 -lmu Lamenu 168.17114 -16.60985 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Epi, Lamenu-Baki, Lamenu-Lewo -lmv Lomaiviti 179.30583 -18.0001 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, East Fijian -lmw Lake Miwok -122.62132 39.00214 Miwok-Costanoan, Miwokan, Western Miwokan -lmx Laimbue 10.14275 6.28158 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Ring, West -lmy Lamboya 119.3443 -9.70434 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Sumba-Hawu, Sumba -lmz Lumbee -78.45314 35.61715 Algic, Algonquian, Unclassified -lna Langbashe 19.90724 5.23952 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Banda, South Central -lnb Mbalanhu 16.617 -19.593 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, R, Wambo (R.214) -lnc Languedocien 2.59392 43.65581 -lnd Lundayeh 115.86096 3.9244 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Kelabitic -lnh Lanoh 100.98621 4.90934 Austro-Asiatic, Mon-Khmer, Aslian, Senoic -lni Lantanai 155.74759 -6.43363 South Bougainville, Nasioi -lnj Leningitij 142.14422 -15.65136 Australian, Pama-Nyungan, Paman, Northern Pama -lnl South Central Banda 21.70892 4.47527 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Banda, South Central -lnm Langam 143.92483 -4.32557 Mongol-Langam -lnn Lorediakarkar 167.03645 -15.19852 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, East Santo, South -lno Lango 33.04123 4.04948 Nilo-Saharan, Eastern Sudanic, Nilotic, Eastern, Lotuxo-Teso, Lotuxo-Maa, Lotuxo -lns Lamnso' 10.80816 6.19381 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Ring, East -lnt Lintang 103.13721 -3.79673 -lnu Longuda 11.83779 9.75787 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Longuda -lnz Lonzo 16.72588 -4.61444 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Yaka (H.31) -loa Loloda 127.77162 1.95461 West Papuan, North Halmahera, Galela-Loloda -lob Lobi -3.46272 10.35479 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Lobi -loc Inonhan 122.03037 12.28404 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, West, North Central -lod Berawan 114.52796 3.9815 -loe Coastal Saluan 122.59698 -1.00801 Austronesian, Malayo-Polynesian, Celebic, Eastern, Saluan-Banggai, Western, Saluanic -lof Logol 31.12359 10.98053 Niger-Congo, Kordofanian, Heiban, West-Central, Central, Ebang-Logol, Logol -log Logo 29.88655 3.32608 Nilo-Saharan, Central Sudanic, East, Moru-Madi, Central -loh Narim 33.33117 4.80331 Nilo-Saharan, Eastern Sudanic, Eastern, Surmic, South, Southwest, Didinga-Murle, Didinga-Longarim -loi Loma -3.47051 9.40172 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Teen -loj Lou 147.34554 -2.38659 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Southeast Islands -lok Loko -12.15832 9.11838 Niger-Congo, Mande, Western, Central-Southwestern, Southwestern, Mende-Loma, Mende-Bandi, Mende-Loko -lol Mongo-Nkundu 20.42587 -1.54228 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Mongo-Nkundo (C.61) -lom Loma -9.69906 7.91585 Niger-Congo, Mande, Western, Central-Southwestern, Southwestern, Mende-Loma, Loma -lon Malawi Lomwe 35.43347 -15.56729 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Makhuwa (P.331) -loo Lombo 24.68616 0.88267 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Soko-Kele (C.54) -lop Lopa 4.67396 10.37555 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Kainji Lake -loq Lobala 18.36666 2.04881 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngondi (C.16) -lor Téén -3.56614 9.75112 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Teen -los Loniu 147.34952 -2.06124 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, Mokoreng-Loniu -lot Otuho 32.6641 4.16379 Nilo-Saharan, Eastern Sudanic, Nilotic, Eastern, Lotuxo-Teso, Lotuxo-Maa, Lotuxo -lou Louisiana Creole French -90.74754 30.04118 Creole, French based -lov Lopi 97.08332 25.08332 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southern -low Tampias Lobu 116.7886 5.72467 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Paitanic, Upper Kinabatangan -lox Loun 128.91158 -2.8778 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Three Rivers, Amalumute, Northwest Seram, Loun -loy Lowa 83.89586 29.03239 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, gTsang -loz Lozi 23.48221 -16.81964 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Lozi (K.21) -lpa Lelepa 168.20204 -17.6042 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Central Vanuatu -lpe Lepki 140.46393 -4.1059 Unclassified -lpo Lipo 100.85985 26.64359 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Central -lpx Lopit 32.75337 4.6986 Nilo-Saharan, Eastern Sudanic, Nilotic, Eastern, Lotuxo-Teso, Lotuxo-Maa, Lotuxo -lra Lara' 109.71582 1.65524 Austronesian, Malayo-Polynesian, Land Dayak, Bakati’ -lrc Northern Luri 47.91602 32.54384 Indo-European, Indo-Iranian, Iranian, Western, Southwestern, Luri -lre Laurentian -78.52623 48.87052 -lrg Laragia 130.92221 -12.4111 Australian, Laragiyan -lrk Loarki 68.715 26.095 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Marwari -lrl Lari 54.63449 27.6436 Indo-European, Indo-Iranian, Iranian, Western, Southwestern, Fars -lrn Lorang 134.40953 -6.30338 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Aru -lro Laro 30.38236 11.39154 Niger-Congo, Kordofanian, Heiban, West-Central, Central, Ebang-Logol, Ebang-Laru -lrr Southern Lorung 87.39592 26.93197 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -lrv Larevat 167.38662 -16.19708 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Malekula Interior, Malekula Central -lsa Lasgerdi 52.99868 35.40153 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Semnani -lsd Lishana Deni 35.22249 31.77445 Afro-Asiatic, Semitic, Central, Aramaic, Eastern, Central, Northeastern -lse Lusengo 18.39908 0.16988 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.36) -lsg Lyons Sign Language 2.36811 48.56422 Deaf sign language -lsi Lashi 98.46014 26.13653 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Burmish, Northern -lsl Latvian Sign Language 24.4931 56.93354 Deaf sign language -lso Laos Sign Language 104.518 18.387 Deaf sign language -lsr Aruop 142.47775 -3.45782 Torricelli, Wapei-Palei, Palei -lss Lasi 66.9137 25.32934 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Sindhi -lti Leti 127.67369 -8.19808 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Southwest Maluku, Luang -ltu Latu 128.66723 -3.41302 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Piru Bay, East, Seram Straits, Uliase, Hatuhaha, Saparua -ltz Luxembourgeois 6.13151 49.77295 Indo-European, Germanic, West, High German, German, Middle German, West Middle German, Moselle Franconian -lua Luba-Kasai 22.4422 -5.72717 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Luba (L.31) -lub Luba-Katanga 25.89183 -8.2816 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Luba (L.33) -luc Aringa 31.30709 3.56143 Nilo-Saharan, Central Sudanic, East, Moru-Madi, Central -lud Ludian 33.73461 61.85302 Uralic, Finnic -lue Luvale 23.35411 -14.26453 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Ciokwe-Luchazi (K.14) -luf Laua 149.25747 -10.16145 Trans-New Guinea, Southeast Papuan, Mailuan -lug Ganda 32.15153 0.66884 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Nyoro-Ganda (E.15) -lui Luiseño -116.93868 33.31837 Uto-Aztecan, Northern Uto-Aztecan, Takic -luj Luna 23.54258 -5.08693 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Songe (L.24) -luk Lunanakha 90.1257 28.12876 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, Southern -lul Olu'bo 31.91031 4.6242 Nilo-Saharan, Central Sudanic, East, Moru-Madi, Southern -lum Luimbi 17.53848 -11.22208 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Ciokwe-Luchazi (K.12) -lun Lunda 24.59836 -12.14666 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Lunda (L.52) -luo Luo 34.66678 -0.52421 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Luo, Southern, Luo-Acholi, Luo -lup Lumbu 10.4172 -2.82811 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Shira-Punu (B.44) -luq Lucumi -82.44105 22.9514 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Defoid, Yoruboid, Edekiri -lur Laura 119.19031 -9.4296 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Sumba-Hawu, Sumba -lus Mizo 92.80159 22.43886 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Central -lut Lushootseed -122.52874 48.42 Salish, Central Salish, Lushootseed -luu Lumba-Yakkha 87.31455 27.23201 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -luv Luwati 58.49163 23.63218 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Sindhi -luw Luo 9.91259 5.9072 Unclassified -luy Luyia 34.4385 0.38994 -luz Southern Luri 50.83822 30.46689 Indo-European, Indo-Iranian, Iranian, Western, Southwestern, Luri -lva Maku'a 127.23865 -8.40372 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor -lvk Lavukaleve 159.11878 -9.05569 Central Solomons -lvs Standard Latvian 24.603189 56.879635 Indo-European, Baltic, Eastern -lvu Levuka 123.43968 -8.47094 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -lwa Lwalu 22.10971 -7.16388 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Songe (L.221) -lwe Lewo Eleng 123.65163 -8.35741 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -lwh White Lachi 104.65974 22.72597 Tai-Kadai, Kra, Western Kra -lwl Eastern Lawa 98.76132 19.01364 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Eastern Palaungic, Waic, Lawa -lwo Luwo 28.13775 7.35089 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Luo, Northern, Jur -lwt Lewotobi 122.7473 -8.54573 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -lww Lewo 168.33449 -16.76115 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Epi, Lamenu-Baki, Lamenu-Lewo -lya Layakha 89.7177 28.0499 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, Southern -lyn Luyana 23.70257 -15.43187 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Luyana (K.31) -lzl Litzlitz 167.41511 -16.13309 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Malekula Interior, Malekula Central -lzz Laz 41.64547 41.37288 Kartvelian, Zan -maa San Jerónimo Tecóatl Mazatec -96.88332 18.19994 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Popolocan, Mazatec -mab Yutanduchi Mixtec -97.22931 17.03108 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mad Madura 112.96754 -7.98335 Austronesian, Malayo-Polynesian, Madurese -mae Bo-Rukul 8.90506 8.9352 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Southeastern -maf Mafa 13.86924 10.86902 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -mag Magahi 85.33354 25.09149 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bihari -mah Marshallese 171.36596 7.12363 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Marshallese -mai Maithili 86.42743 26.09041 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bihari -maj Jalapa de Díaz Mazatec -96.49769 18.08034 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Popolocan, Mazatec -mak Makasar 119.8381 -5.65551 Austronesian, Malayo-Polynesian, South Sulawesi, Makassar -mal Malayalam 75.94948 11.30368 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam, Malayalam -mam Northern Mam -91.80395 15.46596 Mayan, Yucatecan-Core Mayan, K’ichean-Mamean, Mamean, Teco-Mam -maq Chiquihuitlán Mazatec -96.66588 18.05412 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Popolocan, Mazatec -mar Marathi 76.66649 17.93438 Indo-European, Indo-Iranian, Indo-Aryan, Southern zone -mas Maasai 36.29784 -1.63644 Nilo-Saharan, Eastern Sudanic, Nilotic, Eastern, Lotuxo-Teso, Lotuxo-Maa, Ongamo-Maa -mat San Francisco Matlatzinca -100.05809 19.35839 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Oto-Pamean, Matlatzinca-Ocuilteco -mau Huautla Mazatec -96.72403 18.25558 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Popolocan, Mazatec -mav Sateré-Mawé -56.87489 -3.63897 Tupian -maw Mampruli -0.74675 10.38842 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Western, Southeast -max North Moluccan Malay 128.32323 -0.86437 Creole, Malay based -maz Mazahua Central -100.01831 19.73569 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Oto-Pamean, Mazahua -mba Higaonon 125.07083 8.61202 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Manobo, North -mbb Western Bukidnon Manobo 124.82468 7.6682 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Manobo, Central, West -mbc Macushi -60.21955 4.36027 Cariban, North Amazonian, Pemón, Pemón proper -mbd Dibabawon Manobo 126.01817 7.85664 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Manobo, Central, East -mbe Molale -122.857 44.556 Language isolate -mbf Baba Malay 103.87905 1.31125 Creole, Malay based -mbg Northern Nambikuára -59.99245 -13.23958 -mbh Mangseng 150.67987 -5.89752 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Southwest New Britain, Arawe-Pasismanua, Arawe -mbi Ilianen Manobo 124.76579 7.34448 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Manobo, Central, West -mbj Nadëb -66.30681 -1.24449 Puinavean, Kaburi -mbk Malol 142.24388 -3.11695 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Schouten, Siau -mbl Maxakalí -40.78912 -16.94017 Maxakalian -mbm Ombamba 13.61701 -2.75341 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Mbete (B.62) -mbn Macaguán -71.2671 6.34582 Guajiboan, Guajibo -mbo Mbo 9.92766 5.13981 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Lundu-Balong (A.15) -mbp Malayo -73.40561 10.92861 Chibchan, Chibchan B, Eastern Chibchan, Colombian, Northern Colombian, Arhuacan, Southern and Eastern Arhuacan, Guamaca-Atanque -mbq Maisin 148.73057 -9.22853 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, Maisin -mbr Nukak Makú -71.46289 2.65939 Puinavean, Cacua -mbs Sarangani Manobo 125.49902 5.84903 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Manobo, South -mbt Matigsalug Manobo 125.15971 7.72124 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Manobo, Central, South, Ata-Tigwa -mbu Mbula-Bwazza 12.24389 9.60769 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Jarawan, Nigerian -mbv Mbulungish -14.73717 10.85525 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Mbulungish-Nalu -mbw Maring 144.64232 -5.44015 Trans-New Guinea, Chimbu-Wahgi, Jimi -mbx Mari 142.96345 -4.46436 Sepik, Sepik Hill, Bahinemo -mby Memoni 67.007 24.853 Indo-European, Indo-Iranian, Indo-Aryan, Unclassified -mbz Amoltepec Mixtec -97.45179 16.65209 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mca Maca -57.36935 -25.01186 Matacoan -mcb Machiguenga -72.50171 -12.12905 Maipurean, Southern, Campa, Machiguenga -mcc Bitur 142.70984 -8.51839 Trans-New Guinea, Tirio -mcd Sharanahua -71.09602 -10.22411 Panoan, Mainline, Tri-State -mce Itundujia Mixtec -97.59753 16.77876 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mcf Matsés -73.10277 -5.49902 Panoan, Mayoruna-Matsés -mcg Mapoyo -67.25811 5.96952 Cariban, Central, Mapoyo-Yavarana -mch Maquiritari -64.63045 5.62327 Cariban, Central, Makiritare -mci Mese 147.13705 -6.56072 Trans-New Guinea, Finisterre-Huon, Huon, Western -mcj Mvanip 11.18433 6.75724 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Mambiloid, Mambila-Konja, Magu-Kamkam-Kila -mck Mbunda 22.41281 -14.59478 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Ciokwe-Luchazi (K.15) -mcl Macaguaje -75.83332 0.49999 Tucanoan, Western Tucanoan, Macaguaje -mcm Malaccan Creole Portuguese 102.255 2.201 Creole, Portuguese based -mcn Masana 15.64845 9.95777 Afro-Asiatic, Chadic, Masa -mco Coatlán Mixe -95.46586 16.94037 Mixe-Zoquean, Mixean, Oaxaca Mixean, Lowland Mixe -mcp Makaa 13.07888 4.15471 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Makaa-Njem (A.83) -mcq Ese 148.37594 -9.09451 Trans-New Guinea, Southeast Papuan, Koiarian, Baraic -mcr Menya 146.07051 -7.17425 Trans-New Guinea, Angan, Nuclear Angan -mcs Mambai 13.95285 9.5873 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Mbum, Northern, Tupuri-Mambai -mct Mengisa 11.39465 4.5932 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Sanaga (A.63) -mcu Cameroon Mambila 11.41953 6.43829 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Mambiloid, Mambila-Konja, Mambila -mcv Minanibai 144.01087 -7.61717 Trans-New Guinea, Inland Gulf, Minanibai -mcw Mawa 18.2999 11.74608 Afro-Asiatic, Chadic, East, B, B.1, 1 -mcx Mpiemo 15.66974 3.5155 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Makaa-Njem (A.86) -mcy South Watut 146.40948 -7.03751 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, Markham, Watut -mcz Mawan 145.58867 -5.2219 Trans-New Guinea, Madang, Croisilles, Hanseman -mda Mada 8.34119 9.02294 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Southwestern, A -mdb Morigi 143.87996 -7.62961 Trans-New Guinea, Kiwaian -mdc Male 145.75695 -5.49975 Trans-New Guinea, Madang, Rai Coast, Mindjim -mdd Mbum 13.11728 7.82486 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Mbum, Southern -mde Maba 20.8889 12.89147 Nilo-Saharan, Maban, Maba -mdf Moksha 42.67277 54.18546 Uralic, Mordvin -mdg Massalat 19.73483 13.51572 Nilo-Saharan, Maban, Masalit -mdh Maguindanao 124.50856 6.9453 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Danao, Magindanao -mdi Mamvu 28.98618 2.68167 Nilo-Saharan, Central Sudanic, East, Mangbutu-Efe -mdj Mangbetu 27.0712 2.5511 Nilo-Saharan, Central Sudanic, East, Mangbetu -mdk Mangbutu 29.73577 2.74779 Nilo-Saharan, Central Sudanic, East, Mangbutu-Efe -mdl Maltese Sign Language 14.48244 35.90695 Deaf sign language -mdm Mayogo 27.82816 2.79827 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Ngbaka, Eastern, Mayogo-Bangba -mdn Mbati 17.75291 3.94184 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngondi (C.13) -mdo Southwest Gbaya 15.5318 4.39952 -mdp Mbala 18.04096 -5.11888 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Mbala-Hunganna (H.41) -mdq Mbole 24.0443 -0.57181 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Mbole-Enya (D.11) -mdr Mandar 119.06802 -3.34717 Austronesian, Malayo-Polynesian, South Sulawesi, Northern, Mandar -mds Maria 148.30311 -9.92982 Trans-New Guinea, Southeast Papuan, Manubaran -mdt Mbere 14.52759 -0.44013 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Mbete (B.61) -mdu Mboko 14.79347 0.43541 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Mboshi (C.21) -mdv Santa Lucía Monteverde Mixtec -97.62767 16.99694 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mdw Mbosi 15.53223 -1.23019 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Mboshi (C.25) -mdx Dizi 35.57631 6.1405 Afro-Asiatic, Omotic, North, Dizoid -mdy Male 36.98924 5.91975 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gimojan, Ometo-Gimira, Ometo -mdz Suruí do Pará -48.58795 -5.9271 Tupian, Tupí-Guaraní, Tenetehara, Akwawa -mea Menka 9.69161 5.94639 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Momo -meb Ikobi-Mena 143.61799 -7.30342 Trans-New Guinea, Turama-Kikorian, Kaser -mec Mara 134.865 -14.79269 Australian, Gunwingguan, Maran, Mara -med Melpa 144.33974 -5.62644 Trans-New Guinea, Chimbu-Wahgi, Hagen, Melpa -mee Mengen 151.37257 -5.47036 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Mengen -mef Megam 91.61318 25.12916 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Bodo-Koch, Bodo-Garo -meg Mea 165.77137 -21.49395 -meh Southwestern Tlaxiaco Mixtec -97.79744 16.98874 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mei Midob 27.22359 14.78898 Nilo-Saharan, Eastern Sudanic, Eastern, Nubian, Western -mej Meyah 133.6177 -1.18016 East Bird’s Head-Sentani, East Bird’s Head, Meax -mek Mekeo 146.58609 -8.23853 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Central Papuan, West Central Papuan, Nuclear -mel Melanau 112.19803 2.79727 Austronesian, Malayo-Polynesian, North Borneo, Melanau-Kajang, Melanau -mem Mangala 123.7694 -18.65975 Australian, Pama-Nyungan, South-West, Mangala -men Mende -11.51285 7.76637 Niger-Congo, Mande, Western, Central-Southwestern, Southwestern, Mende-Loma, Mende-Bandi, Mende-Loko -meo Kedah Malay 100.492 5.933 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -mep Miriwung 128.88869 -16.3596 Australian, Djeragan -meq Merey 14.09 10.7458 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -mer Meru 37.73964 0.26484 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Kikuyu-Kamba (E.53) -mes Masmaje 19.27686 13.07604 Afro-Asiatic, Chadic, East, B, B.1, 2 -met Mato 146.85898 -5.91639 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Roinji-Nenaya -meu Motu 147.42357 -9.67492 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Central Papuan, Sinagoro-Keapara -mev Mann -8.956 6.49275 Niger-Congo, Mande, Eastern, Southeastern, Guro-Tura, Tura-Dan-Mano, Mano -mew Maaka 11.90347 11.50069 Afro-Asiatic, Chadic, West, A, A.2, Bole, Bole Proper -mey Hassaniyya -10.9471 20.58456 Afro-Asiatic, Semitic, Central, South, Arabic -mez Menominee -88.63948 44.97941 Algic, Algonquian -mfa Pattani Malay 101.4103 6.38148 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -mfb Lom 105.89719 -1.73288 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -mfc Mba 25.14296 1.06885 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Mba -mfd Mendankwe-Nkwen 10.23068 6.00034 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Ngemba -mfe Morisyen 57.55174 -20.26134 Creole, French based -mff Naki 10.23776 6.62784 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Beboid -mfg Mixifore -14.38504 10.68222 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Mokole -mfh Matal 14.04736 10.92842 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -mfi Wandala 14.11681 11.09635 Afro-Asiatic, Chadic, Biu-Mandara, A, A.4, Mandara Proper, Mandara -mfj Mefele 13.82013 10.677 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -mfk North Mofu 14.11165 10.68339 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -mfl Putai 12.99521 10.83854 Afro-Asiatic, Chadic, Biu-Mandara, A, A.2, 1 -mfm Marghi South 12.99521 10.83854 Afro-Asiatic, Chadic, Biu-Mandara, A, A.2, 2 -mfn Cross River Mbembe 8.23592 6.16926 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Central, East-West, Mbembe-Legbo, Mbembe -mfo Mbe 8.82998 6.57067 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Mbe -mfp Makassar Malay 119.40752 -5.16108 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -mfq Moba 0.1327 10.75515 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Gurma, Moba -mfr Marithiel 130.23685 -13.88184 Australian, Daly, Bringen-Wagaydy, Bringen -mfs Mexican Sign Language -98.49999 19.74999 Deaf sign language -mft Mokerang 147.42308 -2.01602 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, Mokoreng-Loniu -mfu Mbwela 18.22432 -13.32675 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Ciokwe-Luchazi (K.17) -mfv Mandjak -15.60103 12.37436 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Bak, Manjaku-Papel -mfw Mulaha 147.44999 -9.68333 Trans-New Guinea, Southeast Papuan, Kwalean -mfx Melo 36.81096 6.53916 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gimojan, Ometo-Gimira, Ometo, Central -mfy Mayo -108.98106 26.45218 Uto-Aztecan, Southern Uto-Aztecan, Taracahitic, Cahitan -mfz Mabaan 33.54035 9.81455 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Luo, Northern, Mabaan-Burun, Mabaan -mgb Mararit 21.64082 14.08697 Nilo-Saharan, Eastern Sudanic, Western, Tama, Mararit -mgc Morokodo 30.02285 5.5103 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Bongo-Baka, Morokodo-Beli, Morokodo-Mo’da -mgd Moru 30.32873 5.1232 Nilo-Saharan, Central Sudanic, East, Moru-Madi, Northern -mge Mango 16.90822 8.75884 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Sara Proper -mgf Maklew 139.27339 -7.74424 South-Central Papuan, Yelmek-Maklew -mgg Mpongmpong 14.86605 3.14015 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Makaa-Njem (A.86) -mgh Makhuwa-Meetto 38.78533 -12.91889 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Makhuwa (P.31) -mgi Lijili 8.35562 8.52193 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Southern -mgj Abureni 6.50634 4.62301 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Central Delta -mgk Mawes 139.7523 -2.36944 Tor-Kwerba, Greater Kwerba, Mawes -mgl Maleu-Kilenge 148.44535 -5.61613 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Kilenge-Maleu -mgm Mambae 125.47531 -9.19552 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor -mgn Mbangi 22.06451 4.69967 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Ngbandi -mgo Meta' 9.87416 5.88942 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Momo -mgp Eastern Magar 83.91726 27.95814 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Central Himalayan, Kham-Magar, Magar -mgq Malila 33.33895 -9.16619 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Nyiha-Safwa (M.24) -mgr Mambwe-Lungu 31.10039 -9.16878 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Fipa-Mambwe (M.14) -mgs Manda 34.74238 -10.39915 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, N, Manda (N.11) -mgt Mongol 143.96513 -4.30038 Mongol-Langam -mgu Mailu 149.52086 -10.36574 Trans-New Guinea, Southeast Papuan, Mailuan -mgv Matengo 35.0056 -11.55404 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, N, Manda (N.13) -mgw Matumbi 39.04091 -8.53734 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Matuumbi (P.13) -mgx Omati 144.00492 -7.39808 -mgy Mbunga 36.5362 -8.19661 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Matuumbi (P.15) -mgz Mbugwe 35.81329 -3.75763 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, F, Nilamba-Rangi (F.34) -mha Manda 83.67492 20.09622 Dravidian, South-Central, Gondi-Kui, Konda-Kui, Manda-Kui, Manda-Pengo -mhb Mahongwe 14.04725 0.64356 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Kele (B.252) -mhc Mocho -92.17341 15.45381 Mayan, Yucatecan-Core Mayan, Q’anjob’alan-Chujean, Q’anjob’alan -mhd Mbugu 38.35191 -4.72863 Mixed language, Bantu-Cushitic -mhe Besisi 101.67565 2.717 Austro-Asiatic, Mon-Khmer, Aslian, South Aslian -mhf Mamaa 146.57572 -6.35558 Trans-New Guinea, Finisterre-Huon, Finisterre, Erap -mhg Margu 132.58697 -11.18231 Australian, Yiwaidjan, Margic -mhh Maskoy Pidgin -61.901 -22.234 -mhi Ma'di 31.7335 3.35517 Nilo-Saharan, Central Sudanic, East, Moru-Madi, Southern -mhj Mogholi 62.28016 34.25039 Altaic, Mongolic, Western -mhk Mungaka 10.02943 5.89752 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Nun -mhl Mauwake 145.39391 -4.52416 Trans-New Guinea, Madang, Croisilles, Pihom, Kumilan -mhm Makhuwa-Moniga 38.09299 -17.29396 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Makhuwa (P.341) -mhn Mocheno 10.8087 46.49164 Indo-European, Germanic, West, High German, German, Upper German, Bavarian-Austrian -mho Mashi 22.55284 -16.53832 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Luyana (K.34) -mhp Balinese Malay 115.07496 -8.35714 Creole, Malay based -mhq Mandan -102.37579 47.66312 Siouan-Catawban, Siouan -mhr Eastern Mari 48.40502 55.8307 Uralic, Mari -mhs Buru 126.63161 -3.43957 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, Buru -mht Mandahuaca -66.76249 1.73972 Maipurean, Northern, Upper Amazon, Western Nawiki, Warekena -mhu Digaro-Mishmi 95.88469 28.88343 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Digarish -mhv Arakanese 93.74261 19.71212 -mhw Mbukushu 21.77723 -18.10857 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Luyana (K.333) -mhx Maru 98.34711 25.84682 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Burmish, Northern -mhy Ma'anyan 115.09176 -2.1239 Austronesian, Malayo-Polynesian, Greater Barito, East, Central-South, South -mhz Mor 135.94966 -2.87055 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Mor -mia Miami -81.06153 27.08433 Algic, Algonquian -mib Atatláhuca Mixtec -97.67753 17.07133 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mic Micmac -63.29122 45.24186 Algic, Algonquian, Eastern Algonquian -mid Mandaic 48.81284 31.34431 Afro-Asiatic, Semitic, Central, Aramaic, Eastern, Mandaic -mie Ocotepec Mixtec -97.751 17.18234 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mif Mofu-Gudur 14.03144 10.56704 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -mig San Miguel el Grande Mixtec -97.54318 17.07765 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mih Chayuco Mixtec -97.81145 16.31585 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mii Chigmecatitlán Mixtec -98.10459 18.6303 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mij Abar 10.22674 6.5805 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Yemne-Kimbi -mik Mikasuki -80.90847 26.08142 Muskogean, Eastern Muskogean, Central Muskogean, Hitchiti-Mikasuki -mil Peñoles Mixtec -97.01013 17.06713 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mim Alacatlatzala Mixtec -98.46738 17.49437 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -min Minangkabau 100.06787 -0.01212 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -mio Pinotepa Nacional Mixtec -97.9966 16.3043 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mip Apasco-Apoala Mixtec -97.06568 17.61425 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -miq Mískito -84.29305 14.60569 Misumalpan -mir Isthmus Mixe -95.06806 16.94812 Mixe-Zoquean, Mixean, Oaxaca Mixean, Lowland Mixe -mit Southern Puebla Mixtec -97.95722 18.21229 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -miu Cacaloxtepec Mixtec -97.76366 17.72476 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -miv Mimi 20.89123 14.75283 -miw Akoye 145.66943 -7.66067 Trans-New Guinea, Angan, Nuclear Angan -mix Mixtepec Mixtec -97.87907 17.33171 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -miy Ayutla Mixtec -98.9916 16.88332 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -miz Coatzospan Mixtec -96.65907 18.12087 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mja Mahei 100.0166 21.65584 -mjc San Juan Colorado Mixtec -97.92788 16.39642 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mjd Northwest Maidu -121.36786 39.67211 Maiduan -mje Muskum 15.41126 11.5697 Afro-Asiatic, Chadic, Biu-Mandara, B, B.2 -mjg Tu 102.11749 36.8177 Altaic, Mongolic, Eastern, Mongour -mjh Mwera 34.89592 -11.33042 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, N, Tumbuka (N.201) -mji Kim Mun 108.97693 25.62135 Hmong-Mien, Mienic, Mian-Jin -mjj Mawak 145.28314 -4.61817 Trans-New Guinea, Madang, Croisilles, Pihom, Tiboran -mjk Matukar 145.77862 -4.9078 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Bel, Nuclear Bel, Northern -mjl Mandeali 77.04187 31.5425 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Western Pahari -mjm Medebur 145.42468 -4.49918 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Schouten, Kairiru-Manam, Manam -mjn Ma 146.3638 -5.73869 Trans-New Guinea, Finisterre-Huon, Finisterre, Yupna -mjo Malankuravan 77.09301 8.45063 Dravidian, Unclassified -mjp Malapandaram 77.27197 8.59225 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam, Malayalam -mjq Malaryan 76.55856 10.44682 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam, Malayalam -mjr Malavedan 77.20382 8.85517 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam, Malayalam -mjs Miship 9.33752 9.20477 Afro-Asiatic, Chadic, West, A, A.3, Angas Proper, 1 -mjt Sauria Paharia 87.64317 24.81236 Dravidian, Northern -mju Manna-Dora 83.1908 18.2775 Dravidian, South-Central, Telugu -mjv Mannan 78.54741 19.56194 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam -mjw Karbi 93.04624 25.7317 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Karbi -mjx Mahali 86.74451 22.1698 Austro-Asiatic, Munda, North Munda, Kherwari, Santali -mjy Mahican -74.266 43.903 -mjz Majhi 86.15853 27.26363 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bihari -mka Mbre -5.72944 8.20929 Niger-Congo, Unclassified -mkb Mal Paharia 87.35068 24.08704 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bengali-Assamese -mkc Siliput 142.39737 -3.60838 Torricelli, Maimai, Maimai Proper -mkd Macedonian 21.74326 41.59591 Indo-European, Slavic, South, Eastern -mke Mawchi 73.99564 21.57236 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -mkf Miya 9.71505 10.92343 Afro-Asiatic, Chadic, West, B, B.2 -mkg Mak 107.72616 25.59464 Tai-Kadai, Kam-Tai, Kam-Sui -mki Dhatki 70.07913 25.46426 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Marwari -mkj Mokilese 159.7759 6.65651 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Ponapeic-Trukic, Ponapeic -mkk Byep 13.46245 4.57276 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Makaa-Njem (A.831) -mkl Mokole 3.05998 11.04385 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Defoid, Yoruboid, Edekiri -mkm Moklen 98.31762 8.16761 Austronesian, Malayo-Polynesian, Moklen -mkn Kupang Malay 123.62974 -10.25257 Creole, Malay based -mko Mingang Doso 11.29504 9.25942 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Jen -mkp Moikodi 148.31167 -9.60232 Trans-New Guinea, Southeast Papuan, Yareban -mkq Bay Miwok -122.419 37.784 -mkr Malas 145.621 -4.76685 Trans-New Guinea, Madang, Croisilles, Isumrud -mks Silacayoapan Mixtec -98.11629 17.55407 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mkt Vamale 165.04003 -20.77083 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Northern -mku Konyanka Maninka -8.48864 8.83628 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding, Manding-East, Southeastern Manding -mkv Mafea 167.24091 -15.4316 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -mkw Kituba 14.56481 -4.15654 Creole, Kongo based -mkx Cinamiguin Manobo 124.72128 9.1793 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Manobo, North -mky East Makian 127.42329 0.07337 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, South Halmahera, East Makian-Gane -mkz Makasae 126.50732 -8.65843 Trans-New Guinea, West, Timor-Alor-Pantar, Timor -mla Malo 167.16031 -15.68351 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -mlb Mbule 10.99244 4.50635 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Sanaga (A.623) -mlc Cao Lan 105.74124 21.62421 Tai-Kadai, Kam-Tai, Tai, Central -mld Malakhel 69.07194 33.07257 -mle Manambu 142.86216 -4.19082 Sepik, Ndu -mlf Mal 101.26069 19.29768 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Khmuic, Mal-Khmu’, Mal-Phrai -mlh Mape 147.6816 -6.59318 Trans-New Guinea, Finisterre-Huon, Huon, Eastern -mli Malimpung 119.75974 -3.6996 Austronesian, Malayo-Polynesian, South Sulawesi, Northern, Masenrempulu -mlj Miltu 17.41261 10.23467 Afro-Asiatic, Chadic, East, A, A.1, 2 -mlk Malakote 39.79304 -0.66322 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Nyika-Taita (E.701) -mll Malua Bay 167.20834 -15.98133 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Malekula Coastal -mlm Mulam 108.92802 24.81515 Tai-Kadai, Kam-Tai, Kam-Sui -mln Malango 160.11784 -9.61383 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Gela-Guadalcanal, Guadalcanal -mlo Mlomp -16.53832 12.83179 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Bak, Jola, Jola Proper, Karon-Mlomp -mlp Bargam 145.75577 -4.8723 Trans-New Guinea, Madang, Croisilles, Mugil -mlq Western Maninkakan -12.65594 13.40021 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding, Manding-West -mlr Vame 14.21306 10.94813 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -mls Masalit 22.4547 13.19482 Nilo-Saharan, Maban, Masalit -mlt Maltese 14.45082 35.8884 Afro-Asiatic, Semitic, Central, South, Arabic -mlu To'abaita 160.61905 -8.39233 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, Malaita, Northern -mlv Motlav 167.67252 -13.65347 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -mlw Moloko 14.25209 10.79332 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -mlx Malfaxal 167.50896 -16.54985 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Malekula Coastal -mly Malay 102.6699 5.60794 -mlz Malaynon 121.91924 11.85639 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, West, Aklan -mma Mama 8.78601 8.8062 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Jarawan, Nigerian -mmb Momina 139.8208 -4.812 Somahai -mmc Michoacán Mazahua -100.29339 19.72387 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Oto-Pamean, Mazahua -mmd Maonan 108.0244 25.01686 Tai-Kadai, Kam-Tai, Kam-Sui -mme Mae 167.28753 -15.99143 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Malekula Coastal -mmf Mundat 8.76875 9.15151 Afro-Asiatic, Chadic, West, A, A.4, Ron Proper -mmg North Ambrym 168.13987 -16.17409 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -mmh Mehináku -53.52095 -12.53639 Maipurean, Southern, Central, Waurá -mmi Musar 145.4131 -4.70258 Trans-New Guinea, Madang, Croisilles, Pihom, Tiboran -mmj Majhwar 83.61376 22.87916 Unclassified -mmk Mukha-Dora 81.56633 17.44672 Dravidian, South-Central, Gondi-Kui, Konda-Kui, Konda -mml Man Met 100.84153 22.07427 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Eastern Palaungic, Angkuic -mmm Maii 168.2106 -16.73876 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Epi, Bieria-Maii -mmn Mamanwa 125.54843 9.44744 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Mamanwa -mmo Mangga Buang 146.68468 -6.99891 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, South, Hote-Buang, Buang -mmp Musan 141.4197 -4.05312 Amto-Musan -mmq Musak 145.19695 -5.37407 Trans-New Guinea, Madang, South Adelbert Range, Wanang, Emuan -mmr Western Xiangxi Hmong 105.80888 23.03233 Hmong-Mien, Hmongic, Xiangxi -mms Southern Mam -91.72314 14.80343 -mmt Malalamai 146.64168 -5.77495 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Ngero, Bariai -mmu Mmaala 11.05987 4.52188 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Sanaga (A.62) -mmv Miriti -69.74316 0.58896 Tucanoan -mmw Emae 168.39906 -17.05196 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Futunic -mmx Madak 151.96672 -3.34342 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, Madak -mmy Migaama 18.9614 12.23667 Afro-Asiatic, Chadic, East, B, B.1, 1 -mmz Mabaale 20.87586 2.11942 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.311) -mna Mbula 148.04113 -5.66965 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Mangap-Mbula -mnb Muna 122.54076 -5.40419 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Muna-Buton, Nuclear Muna-Buton, Munan, Munic, Western -mnc Manchu 126.55713 47.31225 Altaic, Tungusic, Southern, Southwest -mnd Mondé -61.25 -12.04991 Tupian, Mondé -mne Naba 18.07767 12.78685 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Bagirmi -mnf Mundani 9.91533 5.68073 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Momo -mng Eastern Mnong 108.35351 12.39385 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, South Bahnaric, Sre-Mnong, Mnong, Eastern Mnong -mnh Mono 19.82638 4.57915 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Banda, Central, Central Core, Mid-Southern -mni Meitei 93.96403 24.81867 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Meitei -mnj Munji 70.94044 35.93207 Indo-European, Indo-Iranian, Iranian, Eastern, Southeastern, Pamir -mnk Mandinka -15.78509 12.62963 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding, Manding-West -mnl Tiale 166.84173 -15.23343 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -mnm Mapena 149.49456 -9.77803 Trans-New Guinea, Southeast Papuan, Dagan -mnn Southern Mnong 107.65424 12.06354 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, South Bahnaric, Sre-Mnong, Mnong, Southern-Central Mnong -mnp Min Bei Chinese 118.1571 27.24001 Sino-Tibetan, Chinese -mnq Minriq 102.04727 5.01108 Austro-Asiatic, Mon-Khmer, Aslian, North Aslian, Eastern -mnr Mono -119.34741 37.1935 Uto-Aztecan, Northern Uto-Aztecan, Numic, Western -mns Mansi 61.34397 64.41179 Uralic -mnt Maykulan 140.48053 -20.43524 -mnu Mer 134.73064 -3.3828 Mairasi -mnv Rennell-Belona 160.26505 -11.62375 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Futunic -mnw Mon 97.89369 15.81271 Austro-Asiatic, Mon-Khmer, Monic -mnx Manikion 133.9497 -1.49611 East Bird’s Head-Sentani, East Bird’s Head, Mantion -mny Manyawa 36.84587 -16.49625 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Makhuwa (P.31) -mnz Moni 136.88584 -3.72962 Trans-New Guinea, West, Wissel Lakes -moa Mwan -5.94577 7.87533 Niger-Congo, Mande, Eastern, Southeastern, Nwa-Ben, Wan-Mwan -mob Moinba 92.1791 27.60548 -moc Mocoví -60.41448 -28.09699 Guaykuruan, Southern -mod Mobilian -85.62914 31.19159 -moe Montagnais -68.73765 49.05333 Algic, Algonquian, Cree-Montagnais -mof Mohegan-Montauk-Narragansett -72.17005 41.85806 -mog Mongondow 124.11368 0.64616 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Gorontalo-Mongondow, Mongondowic -moh Mohawk -74.7127 45.0373 Iroquoian, Northern Iroquoian, Five Nations-Huronian-Susquehannock, Five Nations-Susquehannock, Mohawk-Oneida -moi Mboi 12.54499 9.86954 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Yungur, Mboi -moj Monzombo 18.45947 3.02916 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Ngbaka, Western, Monzombo -mok Morori 140.68788 -8.5692 Trans-New Guinea, Moraori -mom Monimbo -85.17458 13.5343 Unclassified -moo Monom 108.34752 14.59477 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, North Bahnaric, West, Sedang-Todrah, Todrah-Monom -mop Mopán Maya -88.73116 16.54892 Mayan, Yucatecan-Core Mayan, Yucatecan, Mopan-Itzá -moq Mor 132.84543 -2.85747 Trans-New Guinea, Mor -mor Moro 30.21384 10.91939 Niger-Congo, Kordofanian, Heiban, West-Central, Western -mos Mòoré -1.11308 12.68095 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Western, Northwest -mot Barí -73.16208 8.88071 Chibchan, Chibchan B, Eastern Chibchan, Colombian, Southern Colombian -mou Mogum 18.60816 11.51991 Afro-Asiatic, Chadic, East, B, B.1, 1 -mov Mohave -114.59926 34.88661 Cochimí-Yuman, Yuman, River, Mojave -mow Moi 16.45557 -1.72413 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.32) -mox Molima 150.61417 -9.57457 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Bwaidoga -moy Shekkacho 35.39224 7.27424 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gonga, South -moz Mukulu 18.18217 11.86437 Afro-Asiatic, Chadic, East, B, B.2 -mpa Mpoto 34.71269 -11.13767 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, N, Manda (N.14) -mpb Mullukmulluk 130.61484 -13.29728 Australian, Daly, Malagmalag, Malagmalag Proper -mpc Mangarayi 133.80327 -14.79818 Australian, Gunwingguan, Mangarayic -mpd Machinere -69.76828 -10.48043 Maipurean, Southern, Southern Outlier, Piro, Piro -mpe Majang 35.02277 7.6843 Nilo-Saharan, Eastern Sudanic, Eastern, Surmic, North, Majang -mpf Tajumulco Mam -91.9136 15.15788 -mpg Marba 15.84438 9.50664 Afro-Asiatic, Chadic, Masa -mph Maung 133.18481 -11.83927 Australian, Yiwaidjan, Yiwaidjic -mpi Mpade 14.53663 12.69277 Afro-Asiatic, Chadic, Biu-Mandara, B, B.1, Kotoko Proper, North -mpj Martu Wangka 121.9536 -24.31936 Australian, Pama-Nyungan, South-West, Wati -mpk Mbara 15.53627 10.95854 Afro-Asiatic, Chadic, Biu-Mandara, B, B.2 -mpl Middle Watut 146.32061 -6.81404 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, Markham, Watut -mpm Yosondúa Mixtec -97.50179 16.90424 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mpn Mindiri 146.13772 -5.54613 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Bel, Astrolabe -mpo Miu 149.55656 -5.88037 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Southwest New Britain, Arawe-Pasismanua, Pasismanua -mpp Migabac 147.71314 -6.33237 Trans-New Guinea, Finisterre-Huon, Huon, Eastern -mpq Matís -70.20791 -4.3553 Panoan, Mayoruna-Matsés -mpr Vangunu 157.99717 -8.66826 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, New Georgia, East -mps Dadibi 144.51071 -6.65765 Trans-New Guinea, Teberan -mpt Mian 141.52283 -4.70881 Trans-New Guinea, Ok-Awyu, Ok, Mountain -mpu Makuráp -64.32007 -11.87014 Tupian, Tuparí -mpv Munkip 146.74694 -6.46208 Trans-New Guinea, Finisterre-Huon, Finisterre, Erap -mpw Mapidian -60.373 2.476 Maipurean, Northern, Maritime, Wapixana -mpx Misima-Paneati 152.69631 -10.68215 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Kilivila-Louisiades, Misima -mpy Mapia 134.33572 0.91825 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Ponapeic-Trukic, Trukic -mpz Mpi 100.20957 18.17175 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southern -mqa Maba 128.4181 0.59011 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, South Halmahera, Southeast -mqb Mbuko 14.16766 10.77883 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -mqc Mangole 125.82233 -1.87941 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, Sula -mqd Madang 114.0389 3.54443 -mqe Matepi 145.61732 -5.13857 Trans-New Guinea, Madang, Croisilles, Hanseman -mqf Momuna 139.26022 -5.04431 Somahai -mqg Kota Bangun Kutai Malay 116.29736 -0.27049 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -mqh Tlazoyaltepec Mixtec -96.97827 17.00696 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mqi Mariri 134.87268 -6.15619 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Aru -mqj Mamasa 119.48351 -3.0811 Austronesian, Malayo-Polynesian, South Sulawesi, Northern, Toraja-Sa’dan -mqk Rajah Kabunsuwan Manobo 126.26598 8.2934 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Manobo, Central, East -mql Mbelime 0.95645 10.45322 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Eastern -mqm South Marquesan -138.97893 -9.75663 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, East, Central, Marquesic -mqn Moronene 121.82364 -4.62361 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Bungku-Tolaki, Eastern, Southwest -mqo Modole 127.7524 1.40199 West Papuan, North Halmahera, Galela-Loloda -mqp Manipa 127.56521 -3.30342 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East -mqq Minokok 116.75851 5.43348 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Dusun, Central -mqr Mander 138.75136 -2.29479 Tor-Kwerba, Orya-Tor, Tor -mqs West Makian 127.63028 0.45332 West Papuan, North Halmahera, West Makian -mqt Mok 99.58207 18.91166 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Eastern Palaungic, Angkuic -mqu Mandari 31.23272 5.83656 Nilo-Saharan, Eastern Sudanic, Nilotic, Eastern, Bari -mqv Mosimo 145.6054 -4.95226 Trans-New Guinea, Madang, Croisilles, Hanseman -mqw Murupi 145.60578 -5.0245 Trans-New Guinea, Madang, Croisilles, Hanseman -mqx Mamuju 119.082 -2.50762 Austronesian, Malayo-Polynesian, South Sulawesi, Northern, Mamuju -mqy Manggarai 120.32889 -8.55748 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -mqz Malasanga 147.05778 -5.9401 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Korap -mra Mlabri 101.03731 18.46712 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Khmuic, Mlabri -mrb Marino 168.11982 -14.9738 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -mrc Maricopa -111.74857 33.51232 Cochimí-Yuman, Yuman, River, Mojave -mrd Western Magar 83.51103 28.24623 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Central Himalayan, Kham-Magar, Magar -mre Marthas Vineyard Sign Language -70.73891 43.77025 -mrf Elseng 140.41769 -3.00176 Language isolate -mrg Miri 94.69 27.418 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Tani -mrh Mara Chin 92.97995 22.21834 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Maraic -mri Maori 176.54055 -38.28814 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, East, Central, Tahitic -mrj Western Mari 46.40474 56.21256 Uralic, Mari -mrk Hmwaveke 164.76804 -20.92463 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Northern, North, Hmwaveke -mrl Mortlockese 151.61718 7.35087 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Ponapeic-Trukic, Trukic -mrm Merlav 168.03873 -14.42135 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -mrn Cheke Holo 159.62479 -8.27055 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Santa Isabel, East -mro Mru 92.44059 21.79724 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Mru -mrp Morouas 166.89055 -15.34978 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -mrq North Marquesan -140.10792 -8.89412 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, East, Central, Marquesic -mrr Maria 79.91438 19.78753 Dravidian, South-Central, Gondi-Kui, Gondi -mrs Maragus 167.3303 -16.06954 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Malekula Interior, Malekula Central -mrt Marghi Central 12.99521 10.83854 Afro-Asiatic, Chadic, Biu-Mandara, A, A.2, 2 -mru Mono 14.22542 8.78372 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Mbum, Northern, Dama-Galke -mrv Mangareva -134.97034 -23.10953 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, East, Central, Marquesic -mrw Maranao 124.17548 7.79414 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Danao, Maranao-Iranon -mrx Maremgi 139.67311 -2.31915 Tor-Kwerba, Orya-Tor, Tor -mry Karaga Mandaya 126.40932 7.50481 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Mansakan, Eastern -mrz Marind 140.00939 -8.15651 Trans-New Guinea, Marind, Nuclear Marind -msa Bahasa Melayu 103.00 1.86 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -msb Masbatenyo 123.63579 12.21453 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, Central, Peripheral -msc Sankaran Maninka -10.56905 10.09621 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding, Manding-East, Southeastern Manding -msd Yucatec Maya Sign Language -88.99999 20.49999 Deaf sign language -mse Musey 15.44051 9.65042 Afro-Asiatic, Chadic, Masa -msf Mekwei 140.32614 -2.52264 Nimboran -msg Moraid 131.96538 -1.04083 West Papuan, West Bird’s Head -msh Masikoro Malagasy 43.81556 -22.55821 Austronesian, Malayo-Polynesian, Greater Barito, East, Malagasy -msi Sabah Malay 117.02407 4.64808 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -msj Ma 26.99388 3.69351 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Mba -msk Mansaka 126.18146 6.79221 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Mansakan, Eastern -msl Molof 140.55683 -3.41946 Unclassified -msm Agusan Manobo 125.74174 8.62731 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Manobo, Central, East -msn Mosina 167.51587 -13.87462 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -mso Mombum 138.77283 -8.27141 Trans-New Guinea, Mombum -msp Maritsaua -53.96666 -11.58332 Tupian, Juruna -msq Caac 164.57776 -20.41136 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Northern, Extreme Northern -msr Mongolian Sign Language 107.5282 48.68518 Deaf sign language -mss West Masela 129.83258 -8.1804 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Babar, South, Masela-South Babar -mst Cataelano Mandaya 126.37271 7.77188 -msu Musom 146.93016 -6.53817 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, Markham, Lower, Busu -msv Maslam 14.8197 12.22548 Afro-Asiatic, Chadic, Biu-Mandara, B, B.1, Kotoko Proper, North -msw Mansoanka -15.17472 12.29283 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Sua -msx Moresada 144.98806 -4.57497 Trans-New Guinea, Madang, South Adelbert Range, Josephstaal, Pomoikan -msy Aruamu 144.84163 -4.28957 Ramu-Lower Sepik, Ramu, Mikarew -msz Momare 147.79047 -6.3409 Trans-New Guinea, Finisterre-Huon, Huon, Eastern -mta Cotabato Manobo 124.23419 6.39417 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Manobo, South -mtb Anyin Morofo -4.64232 6.1627 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Central, Bia, Northern -mtc Munit 145.54813 -5.24329 Trans-New Guinea, Madang, Croisilles, Kokon -mtd Mualang 111.07699 0.31083 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Ibanic -mte Mono 155.75964 -7.05102 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Mono-Uruava -mtf Murik 144.16627 -3.86959 Ramu-Lower Sepik, Lower Sepik, Nor -mtg Una 140.09981 -4.69676 Trans-New Guinea, Mek, Eastern -mth Munggui 135.91781 -1.66773 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Yapen, Central-Western -mti Maiwa 149.27394 -9.69836 Trans-New Guinea, Southeast Papuan, Dagan -mtj Moskona 133.14488 -1.62201 East Bird’s Head-Sentani, East Bird’s Head, Meax -mtk Mbe' 11.09062 6.25838 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Nkambe -mtl Montol 9.65014 9.01778 Afro-Asiatic, Chadic, West, A, A.3, Angas Proper, 2 -mtm Mator 102.8561 53.43493 -mtn Matagalpa -85.99999 13.03332 Misumalpan, Sumu-Cacaopera-Matagalpa, Cacaopera-Matagalpa -mto Totontepec Mixe -96.0179 17.21565 Mixe-Zoquean, Mixean, Oaxaca Mixean -mtp Wichí Lhamtés Nocten -63.29069 -21.68317 Matacoan, Mataco -mtq Muong 105.1856 20.73738 Austro-Asiatic, Mon-Khmer, Viet-Muong, Muong -mtr Mewari 86.80726 26.41053 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Marwari -mts Yora -72.04089 -11.37039 Panoan, Mainline, Unclassified -mtt Mota 167.68893 -13.81737 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -mtu Tututepec Mixtec -97.55969 16.15399 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mtv Asaro'o 146.50794 -5.68263 Trans-New Guinea, Finisterre-Huon, Finisterre, Warup -mtw Magahat 122.76927 9.49196 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine -mtx Tidaá Mixtec -97.33328 17.41416 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mty Nabi 142.32864 -3.52828 Torricelli, Wapei-Palei, Palei -mtz Tacanec -92.07493 15.32543 -mua Mundang 14.54233 9.62131 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Mbum, Northern, Tupuri-Mambai -mub Mubi 19.59024 12.68932 Afro-Asiatic, Chadic, East, B, B.1, 2 -muc Mbu' 10.25562 6.53792 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Yemne-Kimbi -mud Mednyj Aleut 167.78194 54.66014 Mixed language, Russian-Aleut -mue Media Lengua -78.53916 -1.04518 Mixed language, Spanish-Quechua -mug Musgu 14.90282 10.81794 Afro-Asiatic, Chadic, Biu-Mandara, B, B.2 -muh Mündü 30.22842 4.24165 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Ngbaka, Eastern, Mundu -mui Musi 103.94461 -2.93987 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -muj Mabire 18.62822 11.69795 Afro-Asiatic, Chadic, East, B, B.1, 1 -muk Mugom 82.58276 29.56465 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, gTsang -mum Maiwala 150.33008 -10.32822 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Are-Taupota, Taupota -muo Nyong 10.24281 5.77254 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Leko -mup Malvi 75.56195 23.48797 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Unclassified -muq Eastern Xiangxi Hmong 109.75566 28.73185 Hmong-Mien, Hmongic, Xiangxi -mur Murle 32.5272 6.61329 Nilo-Saharan, Eastern Sudanic, Eastern, Surmic, South, Southwest, Didinga-Murle, Murle -mus Muskogee -81.05701 27.07805 Muskogean, Eastern Muskogean, Creek-Seminole -mut Western Muria 80.70059 20.2384 Dravidian, South-Central, Gondi-Kui, Gondi -muu Yaaku 37.10079 0.46863 Afro-Asiatic, Cushitic, East, Yaaku -muv Muthuvan 76.73276 10.3524 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam, Tamil -muw Mundari 85.09258 22.5517 -mux Mbo-Ung 144.08649 -5.8626 Trans-New Guinea, Chimbu-Wahgi, Hagen, Kaugel -muy Muyang 14.21246 10.86047 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -muz Mursi 36.09715 5.69801 Nilo-Saharan, Eastern Sudanic, Eastern, Surmic, South, Southeast, Pastoral, Suri -mva Manam 145.03346 -4.07921 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Schouten, Kairiru-Manam, Manam -mvb Mattole -122.86327 40.43208 Eyak-Athabaskan, Athabaskan, Pacific Coast Athabaskan, California Athabaskan -mvc Central Mam -91.91476 14.94239 -mvd Mamboru 119.54972 -9.42302 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Sumba-Hawu, Sumba -mve Marwari 71.56714 28.32418 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Marwari -mvf Peripheral Mongolian 111.67312 42.28129 Altaic, Mongolic, Eastern, Oirat-Khalkha, Khalkha-Buriat, Mongolian Proper -mvg Yucuañe Mixtec -97.42845 17.28319 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mvh Mire 16.99325 9.69132 Afro-Asiatic, Chadic, East, A, A.1, 1 -mvi Miyako 125.36309 24.75642 Japonic, Ryukyuan, Sakishima -mvj Todos Santos Cuchumatán Mam -91.5363 15.52355 -mvk Mekmek 143.75002 -4.47017 Yuat -mvl Mbara 136.641 -24.46 Australian, Pama-Nyungan, Mbara -mvm Muya 102.20549 29.82257 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Qiangic -mvn Minaveha 150.50133 -9.59922 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Are-Taupota, Taupota -mvo Marovo 157.74689 -8.37943 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, New Georgia, East -mvp Duri 119.87095 -3.37081 Austronesian, Malayo-Polynesian, South Sulawesi, Northern, Masenrempulu -mvq Moere 145.45828 -4.62246 Trans-New Guinea, Madang, Croisilles, Pihom, Kumilan -mvr Marau 135.79705 -1.66738 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Yapen, Central-Western -mvs Massep 138.2942 -1.74679 Language isolate -mvt Mpotovoro 167.23242 -15.8988 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Malekula Coastal -mvu Marfa 20.78818 13.1568 Nilo-Saharan, Maban, Maba -mvv Tagal Murut 116.20407 4.60671 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Murutic, Murut -mvw Machinga 39.42681 -9.37101 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Yao (P.23) -mvx Meoswar 134.37813 -2.07828 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Biakic -mvy Indus Kohistani 73.0154 35.33886 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Kohistani -mvz Mesqan 38.33863 8.10617 Afro-Asiatic, Semitic, South, Ethiopian, South, Outer, tt-Group -mwa Mwatebu 151.06551 -10.0271 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Dobu-Duau -mwb Juwal 143.68068 -3.78596 Torricelli, Marienberg -mwc Are 149.9994 -9.67147 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Are-Taupota, Are -mwd Mudbura 132.32947 -16.76941 -mwe Mwera 38.87622 -9.75639 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Yao (P.22) -mwf Murrinh-Patha 129.70152 -14.74852 Australian, Daly, Murrinh-Patha -mwg Aiklep 149.57082 -6.23575 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Southwest New Britain, Arawe-Pasismanua, Arawe, West Arawe -mwh Mouk-Aria 149.15759 -5.71155 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Southwest New Britain, Bibling -mwi Labo 167.4417 -16.42914 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Malekula Interior, Labo -mwj Maligo 15.74211 -7.93095 Khoisan, Southern Africa, Northern -mwk Kita Maninkakan -9.49151 13.1798 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding, Manding-West -mwl Miranda do Douro -6.38371 41.5375 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Ibero-Romance, West Iberian, Asturo-Leonese -mwm Sar 17.87848 8.50634 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Sara Proper -mwn Nyamwanga 32.30324 -9.39976 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Nyiha-Safwa (M.22) -mwo Central Maewo 168.13475 -15.07844 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -mwp Kala Lagaw Ya 142.19566 -10.67483 Australian, Pama-Nyungan, Kala Lagaw Ya -mwq Mün Chin 94.39293 20.28901 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Southern -mws Mwimbi-Muthambi 37.59391 -0.11968 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Kikuyu-Kamba (E.531) -mwt Moken 98.38829 12.46438 Austronesian, Malayo-Polynesian, Moklen -mwu Mittu 34.91838 4.92038 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Bongo-Baka, Morokodo-Beli -mwv Mentawai 98.94011 -1.41092 Austronesian, Malayo-Polynesian, Northwest Sumatra-Barrier Islands -mww Hmong Daw 104.8952 26.99096 Hmong-Mien, Hmongic, Chuanqiandian -mwx Mediak 37.87822 -8.52758 Nilo-Saharan, Eastern Sudanic, Nilotic, Southern, Kalenjin, Nandi-Markweta, Nandi -mwy Mosiro 38.71851 -9.01961 Nilo-Saharan, Eastern Sudanic, Nilotic, Southern, Kalenjin, Nandi-Markweta, Nandi -mwz Moingi 23.50345 1.20615 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Unclassified -mxa Northwest Oaxaca Mixtec -98.05743 17.82871 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mxb Tezoatlán Mixtec -97.90017 17.61552 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mxc Manyika 32.49752 -18.38818 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Shona (S.13) -mxd Modang 116.5733 0.80793 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kayanic, Modang -mxe Mele-Fila 168.27482 -17.68407 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Futunic -mxf Malgbe 14.8031 12.49823 Afro-Asiatic, Chadic, Biu-Mandara, B, B.1, Kotoko Proper, North -mxg Mbangala 17.40859 -9.15592 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Yaka (H.34) -mxh Mvuba 29.66556 0.7398 Nilo-Saharan, Central Sudanic, East, Mangbutu-Efe -mxi Mozarabic -1.79724 37.87627 -mxj Miju-Mishmi 96.62164 27.98237 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Mijish -mxk Monumbo 144.95019 -4.2717 Torricelli, Monumbo -mxl Maxi Gbe 2.1624 7.56896 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe, Fon -mxm Meramera 151.52804 -4.97468 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, Willaumez -mxn Moi 131.5203 -0.96532 West Papuan, West Bird’s Head -mxo Mbowe 23.98192 -14.29407 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Luyana (K.32) -mxp Tlahuitoltepec Mixe -96.11857 16.96335 Mixe-Zoquean, Mixean, Oaxaca Mixean, South Highland Mixe -mxq Juquila Mixe -95.84841 16.89123 Mixe-Zoquean, Mixean, Oaxaca Mixean, Midland Mixe -mxr Murik Kayan 114.4338 3.7519 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kayanic, Murik Kayan -mxs Huitepec Mixtec -97.12365 16.94758 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mxt Jamiltepec Mixtec -97.84167 16.22794 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mxu Mada 14.11419 10.8806 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -mxv Metlatónoc Mixtec -98.35138 17.04796 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mxw Namo 141.82414 -9.12416 South-Central Papuan, Morehead-Upper Maro, Nambu -mxx Mahou -7.57109 8.3548 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding, Manding-East, Southeastern Manding, Maninka-Mori -mxy Southeastern Nochixtlán Mixtec -97.01454 17.21219 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mxz Central Masela 129.86472 -8.15414 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Babar, South, Masela-South Babar -mya Burmese 95.78856 20.29805 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Burmish, Southern -myb Mbay 17.63856 8.21138 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Sara Proper -myc Mayeka 17.82247 -1.10038 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.307) -myd Maramba 143.73489 -4.23908 Yuat -mye Myene 9.50247 -1.48741 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Myene (B.11) -myf Bambassi 34.65218 9.82554 Afro-Asiatic, Omotic, North, Mao, East -myg Manta 9.59489 6.0213 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tivoid -myh Makah -124.61639 48.32581 Wakashan, Southern Wakashan, Nootkan -myi Mina 74.59772 23.74249 Indo-European, Indo-Iranian, Indo-Aryan, Unclassified -myj Mangayat 25.90236 8.38023 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Sere, Feroge-Mangaya -myk Mamara Senoufo -5.28245 12.48714 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Senufo, Suppire-Mamara -myl Moma 120.00937 -1.4313 Austronesian, Malayo-Polynesian, Celebic, Kaili-Pamona, Northern, Kaili -mym Me'en 35.62555 6.63207 Nilo-Saharan, Eastern Sudanic, Eastern, Surmic, South, Southeast, Pastoral, Me’en -myo Anfillo 34.64701 8.568 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gonga, Central -myp Pirahã -61.81669 -6.77713 Muran -myq Forest Maninka -7.53151 9.49685 -myr Muniche -76.28113 -5.80546 Language isolate -mys Mesmes 37.57419 7.53825 Afro-Asiatic, Semitic, South, Ethiopian, South, Outer, tt-Group -myt Sangab Mandaya 126.4086 7.39531 -myu Mundurukú -57.69099 -8.41095 Tupian, Mundurukú -myv Erzya 45.3901 52.85479 Uralic, Mordvin -myw Muyuw 152.73124 -9.195 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Kilivila-Louisiades, Kilivila -myx Masaba 34.28286 1.05906 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Masaba-Luhya (E.31) -myy Macuna -70.22465 -0.10752 Tucanoan, Eastern Tucanoan -myz Classical Mandaic 49.5659 36.12027 Afro-Asiatic, Semitic, Central, Aramaic, Eastern, Mandaic -mza Santa María Zacatepec Mixtec -97.94839 16.70025 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -mzb Tumzabt 3.85035 32.50135 Afro-Asiatic, Berber, Northern, Zenati, Mzab-Wargla -mzc Madagascar Sign Language 46.87 -19.04 Deaf sign language -mzd Malimba 9.67186 3.67696 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Duala (A.27) -mze Morawa 148.67103 -10.13213 Trans-New Guinea, Southeast Papuan, Mailuan -mzf Aiku 142.46152 -3.51156 -mzg Monastic Sign Language 12.45197 41.90262 -mzh Wichí Lhamtés Güisnay -62.17574 -23.16326 Matacoan, Mataco -mzi Ixcatlán Mazatec -96.57186 18.15308 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Popolocan, Mazatec -mzj Manya -9.62773 8.33059 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding, Manding-East, Southeastern Manding -mzk Nigeria Mambila 11.31614 6.69736 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Mambiloid, Mambila-Konja, Mambila -mzl Mazatlán Mixe -95.28329 17.01564 Mixe-Zoquean, Mixean, Oaxaca Mixean, Lowland Mixe -mzm Mumuye 11.71545 8.90347 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Mumuye-Yandang, Mumuye -mzn Mazanderani 52.30089 36.24096 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Caspian -mzo Matipuhy -53.39943 -12.0456 Cariban, South Amazonian, Bakairí, Amonap -mzp Movima -65.63482 -13.81152 Language isolate -mzq Mori Atas 121.03505 -2.2555 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Bungku-Tolaki, Western, Interior -mzr Marúbo -72.40271 -6.60703 Panoan, Mainline, Shipibo -mzs Macanese 114.11983 22.41813 Creole, Portuguese based -mzt Mintil 101.98601 4.59376 Austro-Asiatic, Mon-Khmer, Aslian, North Aslian, Eastern -mzu Inapang 144.89979 -4.67614 Ramu-Lower Sepik, Ramu, Tamolan -mzv Manza 18.79353 6.51218 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Gbaya-Manza-Ngbaka, East -mzw Deg -1.93463 8.11489 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Western -mzx Mawayana -58.50461 1.98815 Maipurean, Unclassified -mzy Mozambican Sign Language 34.613 -19.811 Deaf sign language -mzz Maiadomu 150.75989 -9.47132 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Bwaidoga -nab Southern Nambikuára -59.51871 -14.37074 Nambiquaran, Mamaindê -nac Narak 144.75421 -5.5591 Trans-New Guinea, Chimbu-Wahgi, Jimi -nad Nijadali 120.83057 -22.85576 Australian, Pama-Nyungan, South-West, Nijadali -nae Naka'ela 128.51611 -2.85543 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Three Rivers, Amalumute, Northwest Seram, Ulat Inai -naf Nabak 146.96615 -6.42709 Trans-New Guinea, Finisterre-Huon, Huon, Western -nag Naga Pidgin 93.44376 25.25077 Creole, Assamese based -naj Nalu -14.52877 10.9222 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Mbulungish-Nalu -nak Nakanai 150.88772 -5.59931 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, Willaumez -nal Nalik 151.33183 -2.94411 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, Lavongai-Nalik -nam Nangikurrunggurr 131.23671 -14.26798 Australian, Daly, Murrinh-Patha -nan Min Nan Chinese 117.04173 24.53804 Sino-Tibetan, Chinese -nao Naaba 87.34093 27.69255 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Unclassified -nap Napoletano-Calabrese 16.42246 39.22883 Indo-European, Italic, Romance, Italo-Western, Italo-Dalmatian -naq Nama 15.01542 -21.09522 Khoisan, Southern Africa, Central, Nama -nar Iguta 8.81708 9.98505 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Jera -nas Naasioi 155.63218 -6.46022 South Bougainville, Nasioi -nat Hungworo 6.3024 10.32427 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Kamuku -nau Nauruan 166.92216 -0.52957 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Nauruan -nav Navajo -110.08218 36.21057 Eyak-Athabaskan, Athabaskan, Apachean -naw Nawuri 0.04947 8.45116 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Guang, North Guang -nax Nakwi 141.60058 -4.27412 Arai (Left May) -nay Narrinyeri 140.15755 -36.23007 Australian, Pama-Nyungan, Ngarinyeric-Yithayithic -naz Coatepec Nahuatl -99.71143 18.31999 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nba Nyemba 18.25152 -15.70896 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Ciokwe-Luchazi (K.12) -nbb Ndoe 8.69131 6.08134 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Ekoid -nbc Chang Naga 94.95357 26.43358 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Northern Naga -nbd Ngbinda 23.56694 3.27251 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.303) -nbe Konyak Naga 95.05979 26.68233 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Northern Naga -nbf Naxi 100.18172 27.45988 -nbg Nagarchal 75.85192 25.53987 Dravidian, South-Central, Gondi-Kui, Gondi -nbh Ngamo 11.21085 12.00476 Afro-Asiatic, Chadic, West, A, A.2, Bole, Bole Proper -nbi Mao Naga 94.00354 25.38357 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Angami-Pochuri -nbj Ngarinman 130.65096 -15.46607 Australian, Pama-Nyungan, South-West, Ngumbin -nbk Nake 145.65515 -5.09087 Trans-New Guinea, Madang, Croisilles, Hanseman -nbl Ndebele 29.04805 -25.62721 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Nguni (S.407) -nbm Ngbaka Ma'bo 18.16575 3.98822 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Ngbaka, Western, Bwaka -nbn Kuri 134.09802 -2.80683 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Unclassified -nbo Nkukoli 8.28051 5.7562 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Central, East-West, Loko -nbp Nnam 8.48975 6.31319 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Ekoid, Bakor -nbq Nggem 139.01142 -3.62735 Trans-New Guinea, West, Dani, Dani Proper -nbr Numana-Nunku-Gbantu-Numbu 8.4657 9.16563 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Southwestern, A -nbs Namibian Sign Language 17.048 -22.6 Deaf sign language -nbt Na 96.163 27.791 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Tani -nbu Rongmei Naga 93.78689 25.09804 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Zeme -nbv Ngamambo 10.07795 5.87975 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Momo -nbw Southern Ngbandi 19.59387 2.5414 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Ngbandi -nbx Ngura 143.21593 -29.24114 -nby Ningera 141.45416 -2.77145 Border, Bewani -nca Iyo 146.09235 -5.84161 Trans-New Guinea, Finisterre-Huon, Finisterre, Gusap-Mot -ncb Central Nicobarese 93.39208 7.94812 Austro-Asiatic, Mon-Khmer, Nicobar, Nancowry -ncc Ponam 146.88714 -1.91705 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, East -ncd Nachering 86.70007 27.4202 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -nce Yale 141.5659 -3.79762 Language isolate -ncf Notsi 151.66149 -3.0557 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, Tabar -ncg Nisga'a -129.19163 55.19895 Tsimshian, Nass-Gitksan -nch Central Huasteca Nahuatl -98.43561 21.09626 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nci Classical Nahuatl -102.16666 24.09999 -ncj Northern Puebla Nahuatl -97.98141 20.1356 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nck Nakara 134.32729 -12.07653 Australian, Gunwingguan, Burarran -ncl Michoacán Nahuatl -103.36118 18.34119 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -ncm Nambo 141.93052 -8.74501 South-Central Papuan, Morehead-Upper Maro, Nambu -ncn Nauna 148.20067 -2.21213 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Southeast Islands -nco Sibe 155.41168 -6.43149 South Bougainville, Nasioi -ncp Ndaktup 10.99428 6.63304 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Nkambe -ncr Ncane 10.53117 6.50696 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Beboid -ncs Nicaraguan Sign Language -86.33987 12.2509 Deaf sign language -nct Chothe Naga 94.24075 24.37218 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -ncu Chumburung -0.2755 8.15211 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Guang, North Guang -ncx Central Puebla Nahuatl -98.12635 18.75453 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -ncz Natchez -96.92637 34.64136 Language isolate -nda Ndasa 13.26945 -2.98927 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Kele (B.201) -ndb Kenswei Nsei 10.41196 6.01713 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Ring, South -ndc Ndau 33.91521 -20.28466 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Shona (S.15) -ndd Nde-Nsele-Nta 8.49836 6.17426 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Ekoid, Bakor -nde Ndebele 28.57415 -19.8657 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Nguni (S.44) -ndg Ndengereko 38.958 -7.54628 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Matuumbi (P.11) -ndh Ndali 33.36659 -9.41196 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Nyakyusa-Ngonde (M.301) -ndi Samba Leko 10.95727 7.87379 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Leko -ndj Ndamba 36.02706 -8.40485 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Pogolo-Ndamba (G.52) -ndk Ndaka 27.96928 1.53341 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.333) -ndl Ndolo 19.40866 2.15101 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.36) -ndm Ndam 17.32598 9.79369 Afro-Asiatic, Chadic, East, A, A.1, 1 -ndn Ngundi 16.12504 1.63917 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngondi (C.11) -ndo Ndonga 16.95918 -18.03018 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, R, Wambo (R.22) -ndp Ndo 30.82534 2.666 Nilo-Saharan, Central Sudanic, East, Mangbutu-Efe -ndq Ndombe 13.37097 -12.96548 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, R, Umbundu (R.12) -ndr Ndoola 10.49359 7.06379 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Mambiloid, Ndoro -nds Low Saxon 6.092 50.771 Indo-European, Germanic, West, Low Saxon-Low Franconian, Low Saxon -ndt Ndunga 21.57554 2.3886 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Mba -ndu Dugun 13.39664 8.38689 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Duru, Dii -ndv Ndut -16.98112 14.92498 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Cangin -ndw Ndobo 18.61512 1.32539 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.312) -ndx Nduga 138.41146 -4.34043 Trans-New Guinea, West, Dani, Ngalik -ndy Lutos 19.65636 8.80125 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Vale -ndz Ndogo 27.55877 7.73028 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Sere, Sere-Bviri, Ndogo-Sere -nea Eastern Ngad'a 121.12061 -8.82745 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -neb Toura -7.33105 7.76747 Niger-Congo, Mande, Eastern, Southeastern, Guro-Tura, Tura-Dan-Mano, Tura-Dan -nec Nedebang 124.19184 -8.28776 Trans-New Guinea, West, Timor-Alor-Pantar, Alor-Pantar, Pantar -ned Nde-Gbite 10.47 7.065 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Unclassified -nee Kumak 164.19283 -20.4035 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Northern, Extreme Northern -nef Nefamese 96.349 27.688 Pidgin, Assamese based -neg Negidal 139.20575 52.96584 Altaic, Tungusic, Northern, Negidal -neh Nyenkha 90.39465 27.37317 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, East Bodish, Bumthang -nej Neko 146.30617 -5.60034 Trans-New Guinea, Finisterre-Huon, Finisterre, Gusap-Mot -nek Neku 165.57757 -21.6524 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Southern, South, Wailic -nem Nemi 164.79733 -20.67915 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Northern, North, Nemi -nen Nengone 167.96426 -21.5305 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Loyalty Islands -neo Ná-Meo 106.43476 22.41886 Unclassified -nep Nepali 82.1326 29.00321 -neq North Central Mixe -95.70318 17.17947 Mixe-Zoquean, Mixean, Oaxaca Mixean -ner Yahadian 132.09609 -1.94317 Trans-New Guinea, South Bird’s Head, Konda-Yahadian -nes Bhoti Kinnauri 78.5728 31.85031 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Himalayish, Kinauri -net Nete 143.0286 -5.02368 Trans-New Guinea, Engan, Enga -nev Nyaheun 106.54295 15.10343 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, West Bahnaric, Nyaheun -new Newar 85.35152 27.72343 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Central Himalayan, Newar -nex Neme 141.84917 -8.44877 South-Central Papuan, Morehead-Upper Maro, Nambu -ney Neyo -6.08043 4.95048 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Eastern, Dida -nez Nez Perce -116.40787 46.30731 Sahaptian -nfa Dhao 122.65807 -10.80977 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Sumba-Hawu, Hawu-Dhao -nfd Ndun 8.51611 9.24767 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Central, West-Central -nfg Nyeng 8.49511 9.21977 -nfk Shakara 8.56205 9.17635 -nfl Ayiwo 166.21038 -10.23022 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Temotu, Reefs-Santa Cruz -nfr Nafaanra -2.51001 8.00522 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Senufo, Nafaanra -nfu Mfumte 10.99428 6.63304 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Nkambe -nga Ngbaka 19.79434 3.45935 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Gbaya-Manza-Ngbaka, East -ngb Northern Ngbandi 21.85251 3.56357 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Ngbandi -ngc Ngombe 20.14148 1.45357 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngombe (C.41) -ngd Ngando 17.64993 3.71666 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngondi (C.102) -nge Ngemba 10.14691 5.97864 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Ngemba -ngg Ngbaka Manza 18.41189 5.30167 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Gbaya-Manza-Ngbaka, East -ngh Nu 19.08408 -29.70543 Khoisan, Southern Africa, Southern, !Kwi -ngi Ngizim 11.0178 12.10505 Afro-Asiatic, Chadic, West, B, B.1, Bade Proper -ngj Ngie 9.79389 5.93852 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Momo -ngk Ngalkbun 133.93641 -13.97832 Australian, Gunwingguan, Ngalkbun -ngl Lomwe 37.24366 -16.03812 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Makhuwa (P.32) -ngm Ngatik Men's Creole 157.16092 5.77982 Creole, English based, Pacific -ngn Ngwo 9.84369 6.17739 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Momo -ngo Ngoni 35.80399 -10.9697 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, N, Manda (N.12) -ngp Ngulu 37.68227 -5.79734 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Zigula-Zaramo (G.34) -ngq Ngurimi 34.61726 -1.8485 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Logooli-Kuria (E.401) -ngr Nanggu 165.88665 -10.7441 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Temotu, Reefs-Santa Cruz -ngs Gvoko 13.72831 10.99587 Afro-Asiatic, Chadic, Biu-Mandara, A, A.4, Mandara Proper, Glavda -ngt Ngeq 106.8773 15.62109 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, East Katuic, Ngeq-Nkriang -ngu Guerrero Nahuatl -99.00233 17.85828 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -ngv Nagumi 13.42637 8.7162 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Jarawan, Cameroon -ngw Ngwaba 12.79419 10.0921 Afro-Asiatic, Chadic, Biu-Mandara, A, A.8 -ngx Nggwahyi 12.92341 10.6058 Afro-Asiatic, Chadic, Biu-Mandara, A, A.2 -ngy Tibea 11.31027 5.30535 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Bafia (A.54) -ngz Ngungwel 15.62182 -1.82055 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Teke (B.72) -nhb Beng -4.23539 7.78122 Niger-Congo, Mande, Eastern, Southeastern, Nwa-Ben, Ben-Gban -nhc Tabasco Nahuatl -93.56883 17.93715 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nhd Chiripá -55.18895 -26.19025 Tupian, Tupí-Guaraní, Guaraní, Guaraní -nhe Eastern Huasteca Nahuatl -97.90768 21.06392 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nhf Nhuwala 115.74542 -21.38154 Australian, Pama-Nyungan, South-West, Coastal Ngayarda -nhg Tetelcingo Nahuatl -98.89301 18.88539 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nhh Nahari 81.97747 20.4118 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bengali-Assamese -nhi Tenango Nahuatl -97.80486 20.09648 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nhj Tlalitzlipa Nahuatl -97.89742 20.05807 -nhk Isthmus-Cosoleacaque Nahuatl -94.73466 17.94005 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nhm Morelos Nahuatl -99.13219 18.91614 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nhn Central Nahuatl -98.30017 19.12485 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nho Takuu 157.07811 -4.79852 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Ellicean -nhp Isthmus-Pajapan Nahuatl -94.6647 18.25132 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nhq Huaxcaleca Nahuatl -96.95374 18.89894 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nhr Naro 21.39148 -22.30349 Khoisan, Southern Africa, Central, Tshu-Khwe, Southwest -nhs Southeastern Puebla Nahuatl -97.12655 18.39688 -nht Ometepec Nahuatl -98.42704 16.77857 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nhu Noone 10.57067 6.37256 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Beboid -nhv Temascaltepec Nahuatl -99.79677 19.32823 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nhw Western Huasteca Nahuatl -98.77114 21.3711 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nhx Isthmus-Mecayapan Nahuatl -94.75472 18.2 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nhy Northern Oaxaca Nahuatl -96.97483 18.18843 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nhz Santa María la Alta Nahuatl -97.70091 18.6286 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nia Nias 97.49614 0.90691 Austronesian, Malayo-Polynesian, Northwest Sumatra-Barrier Islands, Nias -nib Nakama 146.78151 -6.41424 Trans-New Guinea, Finisterre-Huon, Finisterre, Erap -nid Ngandi 134.64913 -12.84476 Australian, Gunwingguan, Enindhilyagwa -nie Niellim 17.81346 9.70362 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Bua -nif Nek 146.84135 -6.37697 Trans-New Guinea, Finisterre-Huon, Finisterre, Erap -nig Ngalakan 134.71647 -14.42805 Australian, Gunwingguan, Rembargic -nih Nyiha 32.85723 -8.94626 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Nyiha-Safwa (M.23) -nii Nii 144.51779 -5.763 Trans-New Guinea, Chimbu-Wahgi, Wahgi -nij Ngaju 114.2784 -1.60606 Austronesian, Malayo-Polynesian, Greater Barito, West, South -nik Southern Nicobarese 93.80417 6.82744 Austro-Asiatic, Mon-Khmer, Nicobar, Great Nicobar -nil Nila 128.96625 -3.21229 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Southwest Maluku, Teun-Nila-Serua, Nila-Serua -nim Nilamba 34.30675 -4.50002 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, F, Nilamba-Rangi (F.31) -nin Ninzo 8.47328 8.95791 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Southwestern, A -nio Nganasan 86.2106 73.13537 Uralic, Samoyed, Northern Samoyed -nir Nimboran 140.1793 -2.5803 Nimboran -nis Nimi 146.67873 -6.34065 Trans-New Guinea, Finisterre-Huon, Finisterre, Erap -nit Southeastern Kolami 78.59361 19.69085 Dravidian, Central, Kolami-Naiki -niu Niue -169.86309 -19.05012 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Tongic -niv Gilyak 140.68089 52.59001 Language isolate -niw Nimo 141.57799 -4.3582 Arai (Left May) -nix Hema 30.08722 1.04953 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Nyoro-Ganda (E.121) -niy Ngiti 30.22421 1.30455 Nilo-Saharan, Central Sudanic, East, Lendu -niz Ningil 142.25055 -3.49733 Torricelli, Wapei-Palei, Wapei -nja Nzanyi 13.29188 10.15633 Afro-Asiatic, Chadic, Biu-Mandara, A, A.8 -njb Nocte Naga 95.39028 27.15203 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Northern Naga -njd Ndonde Hamba 38.12529 -10.55838 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Yao (P.24) -njh Lotha Naga 94.04355 26.01396 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Ao -nji Gudanji 134.39484 -17.53489 Australian, West Barkly -njj Njen 9.90439 5.75169 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Momo -njl Njalgulgule 26.11474 8.70752 Nilo-Saharan, Eastern Sudanic, Western, Daju, Western Daju -njm Angami Naga 93.86681 25.68413 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Angami-Pochuri -njn Liangmai Naga 93.54197 25.16002 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Zeme -njo Ao Naga 94.38242 26.32405 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Ao -njr Njerep 11.52097 6.82183 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Mambiloid, Mambila-Konja, Njerup -njs Nisa 137.60005 -1.95386 East Geelvink Bay -njt Ndyuka-Trio Pidgin -56.01815 2.94789 Pidgin -nju Ngadjunmaya 124.46601 -32.02447 Australian, Pama-Nyungan, South-West, Mirning -njx Kunyi 12.51966 -3.69702 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Kikongo (H.13) -njy Njyem 14.05541 2.4816 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Makaa-Njem (A.84) -nka Nkoya 24.76494 -14.85131 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Nkoya (L.60) -nkb Khoibu Naga 94.13453 24.20405 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Tangkhul -nkc Nkongho 9.80096 5.33848 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Lundu-Balong (A.151) -nkd Koireng 94.21409 25.28569 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Zeme -nke Duke 157.06392 -7.97768 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, New Georgia, West -nkf Inpui Naga 93.80956 24.87608 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Unclassified -nkg Nekgini 146.25283 -5.64364 Trans-New Guinea, Finisterre-Huon, Finisterre, Gusap-Mot -nkh Khezha Naga 94.31138 25.70775 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Angami-Pochuri -nki Thangal Naga 93.83959 25.34725 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Zeme -nkj Nakai 140.51225 -5.19377 Trans-New Guinea, Ok-Awyu, Ok, Mountain -nkk Nokuku 166.60265 -14.89743 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -nkm Namat 141.64056 -8.827 South-Central Papuan, Morehead-Upper Maro, Nambu -nkn Nkangala 19.04755 -13.36882 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Ciokwe-Luchazi (K.18) -nko Nkonya 0.3209 7.20316 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Guang, North Guang -nkp Niuatoputapu -173.74249 -15.96596 -nkr Nukuoro 151.86652 7.44397 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Ellicean -nks North Asmat 138.40469 -4.89854 Trans-New Guinea, Asmat-Kamoro, Asmat -nku Bouna Kulango -3.02299 9.23063 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Kulango -nkw Nkutu 22.68021 -3.67432 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Tetela (C.73) -nkx Nkoroo 7.45802 4.57641 Niger-Congo, Atlantic-Congo, Ijoid, Ijo, Eastern, Northeastern -nky Khiamniungan Naga 95.04919 26.2178 -nkz Nkari 7.76345 5.43898 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Ibuoro -nla Ngombale 10.14461 5.70306 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Bamileke -nlc Nalca 139.88259 -4.26068 Trans-New Guinea, Mek, Eastern -nld Dutch 5.332 51.77029 Indo-European, Germanic, West, Low Saxon-Low Franconian, Low Franconian -nle East Nyala 34.66264 0.38163 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Masaba-Luhya (E.32) -nlg Gela 160.1865 -9.04587 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Gela-Guadalcanal, Gela -nli Grangali 70.73232 34.64848 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Kunar -nlj Nyali 30.0201 1.92098 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.33) -nlk Ninia Yali 139.39045 -4.4737 Trans-New Guinea, West, Dani, Ngalik -nll Nihali 76.33177 21.18862 Language isolate -nln Durango Nahuatl -104.19367 22.82408 -nlo Ngul 19.51287 -4.09816 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Tiene-Yanzi (B.861) -nlr Ngarla 119.30579 -20.20748 Australian, Pama-Nyungan, South-West, Inland Ngayarda -nlu Nchumbulu -1.30881 7.6302 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Guang, North Guang -nlv Orizaba Nahuatl -96.97648 18.63995 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nlx Nahali 74.827 21.43 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -nly Nyamal 119.69301 -21.60924 Australian, Pama-Nyungan, South-West, Inland Ngayarda -nma Maram Naga 94.22053 25.43776 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Zeme -nmb Big Nambas 167.23918 -16.09027 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Malekula Interior, Malekula Central -nmc Ngam 18.47455 8.63591 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Sara Proper -nmd Ndumu 13.72792 -1.67033 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Mbete (B.63) -nme Mzieme Naga 93.71002 25.47793 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Zeme -nmf Tangkhul Naga 94.35673 25.0489 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Tangkhul -nmg Ngumba 10.34841 3.08168 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Makaa-Njem (A.81) -nmh Monsang Naga 94.21644 24.53222 Sino-Tibetan, Tibeto-Burman, Unclassified -nmi Nyam 10.83652 9.18024 Afro-Asiatic, Chadic, West, A, A.2, Bole, Bole Proper -nmj Ngombe 15.21537 3.90658 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Ngbaka, Western, Baka-Gundi -nmk Namakura 168.56855 -16.8979 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Central Vanuatu -nml Ndemli 10.21966 4.58061 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Ndemli -nmm Manangba 84.05154 28.64158 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Bodish, Gurung-Tamang, Gurungic -nmn !Xóõ 21.95102 -24.19715 Khoisan, Southern Africa, Southern, Hua -nmo Moyon Naga 94.34214 24.4793 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -nmp Nimanbur 123.22832 -17.37396 Australian, Nyulnyulan -nmq Nambya 26.02454 -18.27075 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Shona (S.16) -nmr Nimbari 13.82656 9.67581 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Nimbari -nms Letemboi 167.56572 -16.43387 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Malekula Interior, Small Nambas -nmt Namonuito 149.66552 8.59841 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Ponapeic-Trukic, Trukic -nmu Northeast Maidu -120.64525 40.41023 Maiduan, Maidu -nmv Ngamini 138.70084 -27.17971 Australian, Pama-Nyungan, Karnic, Karna -nmw Nimoa 153.1584 -11.22974 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Kilivila-Louisiades, Nimoa-Sudest -nmx Nama 141.70611 -8.66403 South-Central Papuan, Morehead-Upper Maro, Nambu -nmy Namuyi 101.8976 28.59085 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Naic -nmz Nawdm 1.06495 8.59608 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Yom-Nawdm -nna Nyangumarta 121.39125 -20.62709 Australian, Pama-Nyungan, South-West, Marngu -nnb Nande 29.02426 -0.24904 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Konzo-Ndandi (D.42) -nnc Nancere 16.1282 9.31975 Afro-Asiatic, Chadic, East, A, A.2, 1 -nnd West Ambae 167.80748 -15.42811 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -nne Ngandyera 21.19282 -16.63593 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, R, Wambo (R.24) -nnf Ngaing 146.34303 -5.6513 Trans-New Guinea, Finisterre-Huon, Finisterre, Gusap-Mot -nng Maring Naga 94.07232 24.28537 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Tangkhul -nnh Ngiemboon 10.12662 5.56777 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Bamileke -nni North Nuaulu 129.27734 -2.93154 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Sawai-Nuaulu -nnj Nyangatom 35.62324 5.39809 Nilo-Saharan, Eastern Sudanic, Nilotic, Eastern, Lotuxo-Teso, Teso-Turkana, Turkana -nnk Nankina 146.46444 -5.80804 Trans-New Guinea, Finisterre-Huon, Finisterre, Yupna -nnl Northern Rengma Naga 94.56834 26.4492 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Angami-Pochuri -nnm Namia 141.78846 -3.85538 Sepik, Yellow River -nnn Ngete 15.29053 9.31902 Afro-Asiatic, Chadic, Masa -nno Nynorsk Norwegian 10.67942 59.38657 Indo-European, Germanic, North, East Scandinavian, Danish-Swedish, Danish-Bokmal -nnp Wancho Naga 94.89365 26.25812 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Northern Naga -nnq Ngindo 37.98316 -9.78145 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Matuumbi (P.14) -nnr Narungga 137.53546 -34.68996 Australian, Pama-Nyungan, South-West, Yura -nns Ningye 8.43562 9.29341 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Southwestern, A -nnt Nanticoke -74.98648 39.67781 Algic, Algonquian, Eastern Algonquian, Nanticoke-Conoy -nnu Dwang -0.43011 7.70712 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Guang, North Guang -nnv Nugunu 133.90787 -31.98991 Australian, Pama-Nyungan, South-West, Yura -nnw Southern Nuni -2.14385 11.51858 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Northern -nnx Ngong 13.42855 8.78874 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Jarawan, Cameroon -nny Nyangga 138.02317 -16.74001 Australian, Tangic -nnz Nda'nda' 10.39425 5.14715 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Bamileke -noa Woun Meu -78.00241 7.57117 Chocoan -nob Bokmal Norwegian 8.886 61.112 Indo-European, Germanic, North, East Scandinavian, Danish-Swedish, Danish-Bokmal -noc Nuk 146.8751 -6.40741 Trans-New Guinea, Finisterre-Huon, Finisterre, Erap -nod Northern Thai 99.7268 17.69906 Tai-Kadai, Kam-Tai, Tai, Southwestern -noe Nimadi 76.12637 22.12628 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Unclassified -nof Nomane 145.09804 -6.30218 Trans-New Guinea, Chimbu-Wahgi, Chimbu -nog Nogai 46.66178 43.59168 Altaic, Turkic, Western, Aralo-Caspian -noh Nomu 147.49999 -6.10429 Trans-New Guinea, Finisterre-Huon, Huon, Western -noi Noiri 73.54864 22.87806 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -nok Nooksack -121.97345 48.22006 Salish, Central Salish -nom Nocaman -73.16666 -8.91666 -noo Nootka -126.08614 49.62122 -nop Numanggang 146.71937 -6.39311 Trans-New Guinea, Finisterre-Huon, Finisterre, Erap -noq Ngongo 21.38313 -2.87019 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Yaka (H.31) -nor Norwegian 10.75224 59.91386 Indo-European, Germanic, North, East Scandinavian, Danish-Swedish, Danish-Bokmal -nos Southern Yi 102.69404 23.98431 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southeastern -not Nomatsiguenga -74.43713 -11.53487 Maipurean, Southern, Campa, Ashéninga -nou Ewage-Notu 148.40542 -8.68756 Trans-New Guinea, Greater Binanderean, Binanderean, Nuclear Binanderean, South Binanderean, Coastal Binanderean, Notu -now Nyambo 30.91555 -1.6096 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Haya-Jita (E.21) -noy Noy 17.91361 9.42495 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Bua -noz Nayi 36.3813 6.88202 Afro-Asiatic, Omotic, North, Dizoid -npa Nar Phu 84.22852 28.76714 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Bodish, Gurung-Tamang, Gurungic -npb Nupbikha 90.53395 27.43007 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, East Bodish, Bumthang -nph Phom Naga 94.74761 26.47146 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Northern Naga -npl Nahuatl, Southeastern Puebla -98.20619 19.04129 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -npn Mondropolon 146.93094 -2.01359 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, West -npo Pochuri Naga 94.11187 25.44785 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Angami-Pochuri -nps Nipsan 139.75323 -4.14421 Trans-New Guinea, Mek, Eastern -npu Puimei Naga 93.73443 25.29726 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Unclassified -npy Napu 120.33786 -1.43707 Austronesian, Malayo-Polynesian, Celebic, Kaili-Pamona, Southern, Badaic -nqg Ede Nago 2.64908 6.75763 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Defoid, Yoruboid, Edekiri -nqk Kura Ede Nago 1.49505 9.43401 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Defoid, Yoruboid, Edekiri -nqm Ndom 138.01878 -7.93553 Trans-New Guinea, Kolopom -nqn Nen 142.03236 -8.62183 South-Central Papuan, Morehead-Upper Maro, Nambu -nra Ngom 13.87585 1.13956 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Kele (B.22) -nrb Nara 37.49899 15.32507 Nilo-Saharan, Eastern Sudanic, Eastern, Nara -nre Southern Rengma Naga 94.68531 26.11781 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Angami-Pochuri -nrg Narango 167.04703 -15.52585 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -nri Chokri Naga 94.28868 25.56361 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Angami-Pochuri -nrl Ngarluma 117.203 -20.92352 Australian, Pama-Nyungan, South-West, Coastal Ngayarda -nrm Narom 114.01092 4.42115 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Berawan-Lower Baram, Lower Baram, Central, B -nrn Norn -1.265 60.356 -nrr Norra 98.45022 27.5088 Tai-Kadai -nrx Ngurmbur 132.50752 -12.6483 Australian, Umbugarla-Ngumbur -nrz Lala 146.749 -8.93195 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Central Papuan, West Central Papuan, Nuclear -nsa Sangtam Naga 94.62794 25.85807 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Ao -nsc Nshi 10.58 7.22 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Unclassified -nse Nsenga 30.79941 -14.493 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, N, Senga-Sena (N.41) -nsg Ngasa 37.52801 -2.97716 Nilo-Saharan, Eastern Sudanic, Nilotic, Eastern, Lotuxo-Teso, Lotuxo-Maa, Ongamo-Maa -nsh Ngoshie 9.83193 6.04616 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Momo -nsi Nigerian Sign Language 3.16664 6.49997 Deaf sign language -nsk Naskapi -61.13183 55.93161 Algic, Algonquian, Cree-Montagnais -nsl Norwegian Sign Language 10.24198 60.77328 Deaf sign language -nsm Sumi Naga 94.42351 25.99964 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Angami-Pochuri -nsn Nehan 154.19964 -4.56875 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Nehan-North Bougainville, Nehan -nso Northern Sotho 29.47179 -24.79929 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Sotho-Tswana (S.32) -nsp Nepalese Sign Language 85.30407 27.6993 Deaf sign language -nsq Northern Sierra Miwok -120.58819 38.41788 Miwok-Costanoan, Miwokan, Eastern Miwokan, Sierra Miwok -nsr Maritime Sign Language -63.88096 45.04272 Deaf sign language -nss Nali 147.20245 -2.14273 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, East -nst Tase Naga 96.4323 27.16457 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Northern Naga -nsw Navut 166.79848 -15.31691 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -nsx Nsongo 16.73478 -10.51661 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Kimbundu (H.24) -nsz Nisenan -120.393 38.047 Maiduan -nte Nathembo 39.9062 -16.09729 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Makhuwa (P.312) -nti Natioro -5.19517 10.7176 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Wara-Natioro -ntj Ngaanyatjarra 127.60204 -25.75137 Australian, Pama-Nyungan, South-West, Wati -ntk Ikoma 34.53614 -1.94989 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Logooli-Kuria (E.45) -ntm Nateni 1.21879 10.51908 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Gurma -nto Ntomba 18.26501 -1.99062 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.35) -ntp Northern Tepehuan -107.37932 26.43476 Uto-Aztecan, Southern Uto-Aztecan, Pimic, Tepehuan -ntr Delo 0.53353 7.86137 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Eastern -nts Natagaimas -75.03332 4.16665 Unclassified -ntw Nottoway -77.115 36.72 Iroquoian, Northern Iroquoian, Tuscarora-Nottoway -nty Mantsi 105.40476 23.18287 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southeastern -ntz Natanzi 51.95383 33.45931 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Central Iran -nua Yuaga 164.51038 -20.56641 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Northern, Extreme Northern -nuc Nukuini -73.50436 -7.339 Panoan, Mainline, Unclassified -nud Ngala 142.50024 -4.26628 Sepik, Ndu -nue Ngundu 26.86844 -0.22418 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Banda, Central, Central Core, Mid-Southern -nuf Nusu 98.88008 26.72919 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Central -nug Nungali 131.6405 -14.91093 Australian, Djamindjungan -nuh Ndunda 11.11047 6.73205 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Mambiloid, Mambila-Konja, Magu-Kamkam-Kila -nui Ngumbi 9.73613 1.72096 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Bubi-Benga (A.33) -nuj Nyole 33.91812 0.88072 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Masaba-Luhya (E.35) -nul Nusa Laut 128.7762 -3.67727 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Piru Bay, East, Seram Straits, Uliase, Hatuhaha, Elpaputi -num Niuafo'ou -175.63991 -15.60144 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, East Uvean-Niuafo’ou -nun Nung 98.68006 27.291 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Nungish -nuo Nguôn 105.93241 17.72429 Austro-Asiatic, Mon-Khmer, Viet-Muong, Muong -nup Nupe-Nupe-Tako 5.40031 9.18404 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Nupoid, Nupe-Gbagyi, Nupe -nuq Nukumanu 159.46436 -4.61878 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Ellicean -nur Nukuria 154.73118 -3.40038 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Ellicean -nus Nuer 31.09909 8.20941 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Dinka-Nuer, Nuer -nut Nung 106.07919 22.0505 Tai-Kadai, Kam-Tai, Tai, Central -nuu Ngbundu 18.71829 3.82245 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Banda, Southwestern -nuv Northern Nuni -2.98206 12.13097 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Northern -nuw Nguluwan 162.98395 5.31191 Mixed language, Yapese-Ulithi -nux Mehek 142.49818 -3.70927 Sepik, Tama -nuy Nunggubuyu 135.75267 -14.26229 Australian, Gunwingguan, Enindhilyagwa -nuz Tlamacazapa Nahuatl -99.39922 18.62392 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua, Nahuatl -nvh Nasarian 167.41436 -16.34974 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Malekula Interior, Malekula Central -nvm Namiae 148.16643 -9.18089 Trans-New Guinea, Southeast Papuan, Koiarian, Baraic -nwa Nawathinehena -104.45 41.316 -nwb Nyabwa -6.84428 6.87615 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Wee, Nyabwa -nwe Ngwe 9.9028 5.49787 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Bamileke -nwi Southwest Tanna 169.35603 -19.57953 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, South Vanuatu, Tanna -nwm Nyamusa-Molo 30.36577 5.89708 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Bongo-Baka, Morokodo-Beli, Morokodo-Mo’da -nwr Nawaru 148.23654 -9.37935 Trans-New Guinea, Southeast Papuan, Yareban -nxa Nauete 126.74064 -8.70733 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor -nxd Ngando 22.62315 -0.14363 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Mongo-Nkundo (C.63) -nxe Nage 121.30956 -8.70513 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -nxg Ngad'a 120.97588 -8.79508 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -nxi Nindi 36.31156 -11.25694 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, N, Manda (N.102) -nxj Nyadu 109.57172 1.54783 -nxl South Nuaulu 129.14752 -3.23411 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Sawai-Nuaulu -nxn Ngawun 141.47104 -19.44839 Australian, Pama-Nyungan, Paman, Mayabic -nxr Ninggerum 141.15811 -5.43194 Trans-New Guinea, Ok-Awyu, Ok, Lowland -nxu Narau 139.87558 -3.43594 Kaure, Kaure Proper -nxx Nafri 140.72696 -2.65036 East Bird’s Head-Sentani, Sentani, Sentani Proper -nya Nyanja 34.09663 -13.42326 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, N, Chewa-Nyanja (N.31) -nyb Nyangbo 0.37152 6.82649 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Avatime-Nyangbo -nyc Nyanga-li 29.1805 2.97634 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.305) -nyd Nyore 34.6166 0.07523 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Masaba-Luhya (E.33) -nye Nyengo 22.47872 -17.23137 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Ciokwe-Luchazi (K.16) -nyf Giryama 39.6648 -3.30638 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Nyika-Taita (E.72) -nyg Nyindu 28.64345 -3.03802 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Shi-Hunde (D.501) -nyh Nyigina 124.34808 -17.95942 Australian, Nyulnyulan -nyi Ama 29.43324 12.09934 Nilo-Saharan, Eastern Sudanic, Western, Nyimang -nyj Nyanga 28.31546 -1.29357 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Nyanga (D.43) -nyk Nyaneka 14.94004 -15.96162 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, R, Umbundu (R.13) -nyl Nyeu 104.33042 14.88168 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, West Katuic, Kuay-Yoe -nym Nyamwezi 32.94452 -5.08559 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, F, Sukuma-Nyamwezi (F.22) -nyn Nyankore 30.54803 -0.46364 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Nyoro-Ganda (E.13) -nyo Nyoro 31.34928 0.95294 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Nyoro-Ganda (E.11) -nyp Nyangi 33.73651 3.4997 Nilo-Saharan, Eastern Sudanic, Kuliak, Ngangea-So -nyq Nayini 53.52105 34.22125 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Central Iran -nys Nyunga 118.15081 -33.11995 Australian, Pama-Nyungan, South-West, Nyungar -nyt Nyawaygi 146.2156 -18.87429 Australian, Pama-Nyungan, Dyirbalic -nyu Nyungwe 33.02328 -16.47566 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, N, Senga-Sena (N.43) -nyv Nyulnyul 122.85075 -16.91292 Australian, Nyulnyulan -nyw Nyaw 104.15092 17.12133 Tai-Kadai, Kam-Tai, Tai, Southwestern -nyx Nganyaywana 151.313 -29.581 Australian, Pama-Nyungan, Dyangadi -nyy Nyakyusa-Ngonde 33.88874 -9.39094 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Nyakyusa-Ngonde (M.31) -nza Tigon Mbembe 10.69986 6.82857 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Central, Jukun-Mbembe-Wurbo, Mbembe -nzb Njebi 12.71871 -1.8422 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Nzebi (B.52) -nzi Nzema -2.61973 5.19399 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Central, Bia, Southern -nzk Nzakara 22.70057 5.04637 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Zande, Zande-Nzakara -nzm Zeme Naga 93.64627 25.3499 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Zeme -nzs New Zealand Sign Language 175.77257 -39.29225 Deaf sign language -nzu Teke-Nzikou 15.2047 -2.65261 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Teke (B.74) -nzy Nzakambay 15.79235 7.70061 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Mbum, Eastern Mbum, Karang -oaa Orok 143.12819 49.36393 Altaic, Tungusic, Southern, Southeast, Nanaj -oac Oroch 137.85131 50.32354 Altaic, Tungusic, Southern, Southeast, Udihe -obi Obispeno -119.711 34.429 Chumashan -obl Oblo 14.28999 8.18943 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Unclassified -obo Obo Manobo 125.09018 7.29141 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Manobo, Central, South, Obo -obu Obulom 7.11671 4.72908 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Central Delta -oca Ocaina -71.59125 -2.8138 Witotoan, Proto-Huitoto-Ocaina -ocu Atzingo Matlatzinca -99.92388 19.38715 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Oto-Pamean, Matlatzinca-Ocuilteco -oda Odut 8.27253 5.20317 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Kiong-Korop -odk Od 67.84754 27.53636 Indo-European, Indo-Iranian, Indo-Aryan, Unclassified -odu Odual 6.41493 4.83273 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Central Delta, Abua-Odual -ofo Ofo -95.04433 40.05932 -ofu Efutop 8.35425 5.92431 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Ekoid, Bakor -ogb Ogbia 6.34034 4.75352 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Central Delta -ogc Ogbah 6.53895 5.25057 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Igboid, Igbo -ogg Ogbogolo 6.54706 4.90943 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Central Delta -ogn Ogan 104.36242 -3.79013 -ogo Khana 7.44363 4.70908 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Ogoni, East -ogu Ogbronuagum 6.9058 4.74842 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Central Delta -oia Oirata 127.20105 -8.09044 Trans-New Guinea, West, Timor-Alor-Pantar -oin Inebu One 141.89171 -3.38015 Torricelli, West Wapei, One -ojb Northwestern Ojibwa -87.78617 51.61918 Algic, Algonquian, Ojibwa-Potawatomi -ojc Central Ojibwa -84.15429 46.57411 Algic, Algonquian, Ojibwa-Potawatomi -ojg Eastern Ojibwa -79.75029 45.01124 Algic, Algonquian, Ojibwa-Potawatomi -ojs Severn Ojibwa -89.93311 53.9092 Algic, Algonquian, Ojibwa-Potawatomi -ojv Ontong Java 159.70074 -5.49029 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Ellicean -ojw Western Ojibwa -102.52456 50.56641 Algic, Algonquian, Ojibwa-Potawatomi -oka Okanagan -119.39872 50.24914 Salish, Interior, Southern -okb Okobo 8.08696 5.02037 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Okobo -okd Okodia 6.44113 5.29237 Niger-Congo, Atlantic-Congo, Ijoid, Ijo, West, Inland Ijo -oke Okpe 5.94885 7.22407 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Southwestern -okh Koresh-e Rostam 44.895 37.794 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Talysh -oki Okiek 35.91883 -0.44305 Nilo-Saharan, Eastern Sudanic, Nilotic, Southern, Kalenjin, Okiek -okj Oko-Juwoi 92.87525 13.0472 Andamanese, Great Andamanese, Central -okk Kwamtim One 141.88865 -3.44911 Torricelli, West Wapei, One -okl Old Kentish Sign Language 0.98365 51.11978 -okn Oki-No-Erabu 128.6187 27.37384 Japonic, Ryukyuan, Amami-Okinawan, Southern Amami-Okinawan -okr Kirike 6.98938 4.41126 Niger-Congo, Atlantic-Congo, Ijoid, Ijo, Eastern, Northeastern, Eastern -oks Oko-Eni-Osayen 6.15725 7.53908 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Oko -oku Oku 10.50955 6.23712 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Ring, Center -okv Orokaiva 148.18929 -8.89880 Trans-New Guinea, Greater Binanderean, Binanderean, Nuclear Binanderean, South Binanderean, Orokaivan -okx Okpe 6.24719 7.29515 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Northwestern, Southern -ola Walungge 87.23742 27.69502 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Unclassified -old Mochi 37.33568 -3.33743 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Chaga (E.622) -ole Olekha 90.55462 27.20788 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish -olm Oloma 6.02767 7.01279 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Northwestern, Southern -olo Livvi 32.38201 61.58656 Uralic, Finnic -oma Omaha-Ponca -96.52947 42.09436 Siouan-Catawban, Siouan, Mississippi Valley-Ohio Valley Siouan, Mississippi Valley Siouan, Dhegihan -omb East Ambae 167.89039 -15.35234 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -ome Omejes -69.99999 0.99999 Maipurean, Unclassified -omg Omagua -73.36122 -4.03194 Tupian, Tupí-Guaraní, Tupí, Cocama -omi Omi 30.5385 3.2542 Nilo-Saharan, Central Sudanic, East, Moru-Madi, Central -oml Ombo 25.17477 -2.32162 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Tetela (C.76) -omo Utarmbung 144.92425 -4.82756 Trans-New Guinea, Madang, South Adelbert Range, Josephstaal, Osum -omt Omotik 35.62963 -1.34401 Nilo-Saharan, Eastern Sudanic, Nilotic, Southern, Tatoga -omu Omurano -74.24999 -2.91666 Language isolate -omw South Tairora 145.88287 -6.35337 Trans-New Guinea, Kainantu-Goroka, Kainantu, Tairora -ona Ona -69.59363 -51.63512 Chon, Island Chon -onb Lingao 109.97126 19.86337 Tai-Kadai, Kam-Tai, Lakkja -one Oneida -79.89399 43.08417 Iroquoian, Northern Iroquoian, Five Nations-Huronian-Susquehannock, Five Nations-Susquehannock, Mohawk-Oneida -ong Olo 142.1308 -3.2929 Torricelli, Wapei-Palei, Wapei -oni Onin 132.06232 -2.75976 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, North Bomberai -onj Onjob 149.12064 -9.31824 Trans-New Guinea, Southeast Papuan, Dagan -onk Kabore One 141.87974 -3.32403 Torricelli, West Wapei, One -onn Onobasulu 142.77582 -6.30876 Trans-New Guinea, Bosavi -ono Onondaga -79.89399 43.08417 Iroquoian, Northern Iroquoian, Five Nations-Huronian-Susquehannock, Five Nations-Susquehannock -onr Northern One 142.00599 -3.25535 Torricelli, West Wapei, One -ons Ono 147.57908 -6.19223 Trans-New Guinea, Finisterre-Huon, Huon, Western -ont Ontenu 145.76529 -6.45912 Trans-New Guinea, Kainantu-Goroka, Kainantu, Gadsup-Auyana-Awa -onu Unua 167.59921 -16.26379 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Malekula Coastal -onx Onin Based Pidgin 132.083 -2.83 Pidgin, Onin based -ood Tohono O'odham -111.98409 32.18903 Uto-Aztecan, Southern Uto-Aztecan, Pimic -oog Ong 106.00126 15.12254 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, Central Katuic, Ta’oih -oon Önge 92.47067 10.69263 Andamanese, South Andamanese -oor Oorlams 23.01446 -28.38447 Creole, Afrikaans based -opa Okpamheri 5.97843 7.33708 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Northwestern, Southern -opk Kopkaka 139.92557 -4.91191 Trans-New Guinea, Ok-Awyu, Ok, Western -opm Oksapmin 142.17666 -5.20797 Trans-New Guinea, Oksapmin -opo Opao 145.75121 -7.85988 Trans-New Guinea, Eleman, Nuclear Eleman, Western -opt Opata -112.06212 31.15211 Uto-Aztecan, Southern Uto-Aztecan, Taracahitic, Opatan -opy Ofayé -53.7227 -22.278 Language isolate -ora Oroha 161.51281 -9.7386 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, Malaita, Southern -orc Orma 39.60749 -1.79489 Afro-Asiatic, Cushitic, East, Oromo -ore Orejón -72.49255 -2.86315 Tucanoan, Western Tucanoan -org Oring 8.12005 6.68753 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Central, North-South, Koring-Kukele, Koring -orh Oroqen 125.01685 50.63193 Altaic, Tungusic, Northern, Evenki -ori Oriya 84.65383 20.74235 -ork Orokaiva 148.08954 -8.79019 -orn Orang Kanaq 104.0079 1.88296 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -oro Orokolo 145.33983 -7.81309 Trans-New Guinea, Eleman, Nuclear Eleman, Western -orr Oruma 6.38295 4.9377 Niger-Congo, Atlantic-Congo, Ijoid, Ijo, West, Inland Ijo -ors Orang Seletar 103.72368 1.48364 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -ort Adivasi Oriya 82.84874 18.10461 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Oriya -oru Ormuri 69.77033 32.589 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Ormuri-Parachi -orw Oro Win -64.02987 -10.73698 Chapacuran, Wari -orx Oro 8.11394 4.86134 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Oro -ory Oriya 85.098524 20.951666 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Oriya -orz Ormu 140.6015 -2.51361 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Sarmi-Jayapura Bay, Jayapura Bay -osa Osage -96.29489 36.78282 Siouan-Catawban, Siouan, Mississippi Valley-Ohio Valley Siouan, Mississippi Valley Siouan, Dhegihan -osi Osing 114.29235 -8.25262 Austronesian, Malayo-Polynesian, Javanese -oso Ososo 6.21509 7.42868 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, North-Central, Ghotuo-Uneme-Yekhee -oss Osetin 44.07725 42.36164 Indo-European, Indo-Iranian, Iranian, Eastern, Northeastern -ost Osatu 9.80188 6.20829 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tivoid -osu Southern One 141.85212 -3.41913 Torricelli, West Wapei, One -otd Dohoi 113.46875 -0.3955 Austronesian, Malayo-Polynesian, Greater Barito, West, North -ote Mezquital Otomi -99.55642 20.22745 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Oto-Pamean, Otomi -oti Oti -47.95049 -23.46447 Language isolate -otl Tilapa Otomi -99.5074 19.44026 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Oto-Pamean, Otomi -otm Eastern Highland Otomi -98.09783 20.59906 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Oto-Pamean, Otomi -otn Tenango Otomi -98.17509 20.42623 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Oto-Pamean, Otomi -otq Querétaro Otomi -100.11487 20.13959 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Oto-Pamean, Otomi -otr Otoro 30.57302 11.11873 Niger-Congo, Kordofanian, Heiban, West-Central, Central, Ebang-Logol, Utoro -ots Estado de México Otomi -99.60997 19.87809 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Oto-Pamean, Otomi -ott Temoaya Otomi -99.65409 19.6001 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Oto-Pamean, Otomi -otu Otuke -59.69859 -15.26978 Bororoan -otw Ottawa -81.78996 45.59244 Algic, Algonquian, Ojibwa-Potawatomi -otx Texcatepec Otomi -98.26631 20.7342 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Oto-Pamean, Otomi -otz Ixtenco Otomi -98.02718 19.21465 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Oto-Pamean, Otomi -oua Tagargrent 5.28444 31.94537 Afro-Asiatic, Berber, Northern, Zenati, Mzab-Wargla -oub Glio-Oubi -7.53001 5.79387 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Grebo, Glio-Oubi -oue Oune 155.70809 -6.36069 South Bougainville, Nasioi -oum Ouma 149.10098 -10.22877 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Central Papuan, Oumic -oun !O!ung 21.56895 -15.82234 Khoisan, Southern Africa, Northern -owi Owiniga 141.6973 -4.47476 Arai (Left May) -oyb Oy 106.65752 15.42002 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, West Bahnaric, Oi-The -oyd Oyda 36.85414 6.13322 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gimojan, Ometo-Gimira, Ometo, Central -oym Wayampi -52.95521 2.25217 Tupian, Tupí-Guaraní, Wayampí, Wayampí -oyy Oya'oya 150.65839 -10.53915 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, Suauic -ozm Koonzime 13.54152 3.25933 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Makaa-Njem (A.842) -pab Parecís -57.40595 -14.59295 Maipurean, Southern, Central, Paresí -pac Pacoh 107.12868 16.44399 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, East Katuic, Katu-Pacoh -pad Paumarí -64.28035 -5.78403 Arauan -pae Pagibete 22.12122 3.15636 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngombe (C.401) -paf Paranawat -59.05303 -9.34239 Tupian, Tupí-Guaraní, Kawahib, Parintintin -pag Pangasinan 120.36519 15.93774 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Southern Cordilleran, West Southern Cordilleran -pah Tenharim -61.93599 -7.92626 Tupian, Tupí-Guaraní, Kawahib, Parintintin -pai Pe 9.56437 9.27191 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Tarokoid -paj Ipeka-Tapuia -67.50277 0.69618 -pak Parakanã -50.06211 -4.64681 Tupian, Tupí-Guaraní, Tenetehara, Akwawa -pam Pampangan 120.50183 14.96027 Austronesian, Malayo-Polynesian, Philippine, Central Luzon, Pampangan -pan Eastern Panjabi 75.06356 30.86767 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Panjabi -pao Northern Paiute -119.53609 40.0799 Uto-Aztecan, Northern Uto-Aztecan, Numic, Western -pap Papiamentu -68.94557 12.14225 Creole, Iberian based -paq Parya 68.62345 38.50483 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Unclassified -par Panamint -117.90139 36.00073 Uto-Aztecan, Northern Uto-Aztecan, Numic, Central -pas Papasena 138.60529 -2.87535 Lakes Plain, Tariku, East -pat Papitalai 147.41695 -2.06222 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, East -pau Palauan 134.56389 7.48065 Austronesian, Malayo-Polynesian, Palauan -pav Pakaásnovos -64.56152 -10.69948 Chapacuran, Wari -paw Pawnee -96.89367 36.28618 Caddoan, Northern Caddoan, Kitsai-Proto-Pawnee, Proto-Pawnee -pax Pankarare -39.66666 -9.08332 Unclassified -pay Pech -85.55802 15.80331 Chibchan, Chibchan B -paz Pankararu -37.01665 -8.99999 Language isolate -pbb Páez -76.31254 2.61516 Paezan, Paezan -pbc Patamona -59.57716 4.75826 Cariban, North Amazonian, Pemón, Pemón proper, Kapong -pbe Mezontla Popoloca -97.58792 18.14416 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Popolocan, Popoloca -pbf Coyotepec Popoloca -97.62584 18.38139 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Popolocan, Popoloca -pbg Paraujano -71.83993 10.84271 Maipurean, Northern, Maritime, Ta-Maipurean -pbh Eñepa -65.84825 6.95035 Cariban, South Amazonian -pbi Parkwa 14.09644 11.02063 Afro-Asiatic, Chadic, Biu-Mandara, A, A.4, Mandara Proper, Podoko -pbl Mak 11.13373 9.37299 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Jen -pbn Kpasam 11.23104 8.75286 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Mumuye-Yandang, Yandang -pbo Papel -15.83879 11.8977 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Bak, Manjaku-Papel -pbp Badyara -13.35651 12.63202 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Eastern Senegal-Guinea, Tenda -pbr Pangwa 34.80386 -9.96782 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Bena-Kinga (G.64) -pbs Central Pame -99.28979 21.37622 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Oto-Pamean, Pame -pbt Southern Pashto 68.39587 30.27503 Indo-European, Indo-Iranian, Iranian, Eastern, Southeastern, Pashto -pbu Northern Pashto 71.35999 33.79404 Indo-European, Indo-Iranian, Iranian, Eastern, Southeastern, Pashto -pbv Pnar 92.52823 25.25926 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Khasian -pby Pyu 141.01776 -4.45003 Language isolate -pbz Palu 97.16665 18.49999 -pca Santa Inés Ahuatempan Popoloca -97.85991 18.38647 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Popolocan, Popoloca -pcb Pear 105.02774 13.593 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Pearic, Eastern -pcc Bouyei 106.18729 24.84839 Tai-Kadai, Kam-Tai, Tai, Northern -pcd Picard 2.78903 50.01797 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Gallo-Romance, Gallo-Rhaetian, Oïl, French -pce Pale Palaung 96.50917 20.66769 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Western Palaungic, Palaung -pcf Paliyan 77.1863 10.08696 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam, Malayalam -pcg Paniya 76.07794 11.73182 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam, Malayalam -pch Pardhan 79.77728 22.16662 Dravidian, South-Central, Gondi-Kui, Gondi -pci Duruwa 82.48808 19.05339 Dravidian, Central, Parji-Gadaba -pcj Parenga 83.97234 19.07501 Austro-Asiatic, Munda, South Munda, Koraput Munda, Sora-Juray-Gorum, Gorum -pck Paite Chin 93.30462 24.2166 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -pcl Pardhi 77.12342 19.99892 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -pcm Nigerian Pidgin 4.21068 9.65873 Creole, English based, Atlantic, Krio -pcn Piti 8.47037 10.13609 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Piti-Atsam -pcp Pacahuara -65.55679 -11.99684 Panoan, Bolivian Panoan -pcr Panang 86.83169 30.72725 -pcw Pyapun 9.43733 9.09539 Afro-Asiatic, Chadic, West, A, A.3, Angas Proper, 2 -pda Anam 145.05134 -4.68869 Trans-New Guinea, Madang, South Adelbert Range, Josephstaal, Pomoikan -pdc Pennsylvania German -81.034 40.496 Indo-European, Germanic, West, High German, German, Middle German, West Middle German -pdi Pa Di 102.891 29.986 Tai-Kadai, Kam-Tai, Tai, Southwestern -pdn Podena 139.45585 -2.20572 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Sarmi-Jayapura Bay, Sarmi -pdo Padoe 121.23639 -2.60642 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Bungku-Tolaki, Western, Interior -pdt Plautdietsch -107.88438 54.2871 Indo-European, Germanic, West, Low Saxon-Low Franconian, Low Saxon -pdu Kayan 96.9478 19.85402 Sino-Tibetan, Tibeto-Burman, Karenic, Northern -pea Peranakan Indonesian 112.61857 -7.982 Creole, Malay based -peb Eastern Pomo -122.58582 38.56467 Pomoan -pec Southern Pesisir 104.73986 -5.425 -ped Mala 145.03981 -4.35889 Trans-New Guinea, Madang, Croisilles, Pihom, Kaukombaran -pee Taje 120.07781 -0.72583 Austronesian, Malayo-Polynesian, Celebic, Tomini-Tolitoli, Tomini, Southern -pef Northeastern Pomo -122.50943 39.28938 Pomoan -peg Pengo 83.6552 19.34345 Dravidian, South-Central, Gondi-Kui, Konda-Kui, Manda-Kui, Manda-Pengo -peh Bonan 102.9947 35.69718 Altaic, Mongolic, Eastern, Mongour -pei Chichimeca-Jonaz -100.52427 21.29434 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Oto-Pamean -pej Northern Pomo -123.20894 39.10843 Pomoan, Western -pek Penchal 147.81018 -2.29891 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Southeast Islands -pel Pekal 101.69111 -3.02248 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -pem Phende 19.82753 -5.64735 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Pende (L.11) -pen Penesak 104.52852 -3.33922 -pep Kunja 141.42387 -8.92289 South-Central Papuan, Morehead-Upper Maro, Tonda -peq Southern Pomo -122.54519 38.76429 Pomoan, Western, Southern -pes Western Farsi 54.8362 30.5476 Indo-European, Indo-Iranian, Iranian, Western, Southwestern, Persian -pev Pemono -66.082 5.248 Cariban, Central, Mapoyo-Yavarana -pex Petats 154.59284 -5.34068 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Nehan-North Bougainville, Buka -pey Petjo 106.79976 -6.16593 Creole, Dutch based -pez Eastern Penan 113.967 4.575 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Penan -pfa Pááfang 152.2373 8.60286 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Ponapeic-Trukic, Trukic -pfe Peere 12.39599 7.68021 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Duru, Voko-Dowayo, Kutin -pfl Pfaelzisch 6.846 49.701 Indo-European, Germanic, West, High German, German, Middle German, West Middle German, Rhenisch Franconian -pga Sudanese Creole Arabic 28.774 5.654 Creole, Arabic based -pgg Pangwali 76.55688 32.97526 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Western Pahari -pgi Pagi 141.24636 -3.04649 Border, Bewani -pgk Rerep 167.65074 -16.29344 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Malekula Coastal -pgs Pangseng 11.196 9.304 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Mumuye-Yandang, Mumuye -pgu Pagu 127.78005 1.2134 West Papuan, North Halmahera, Galela-Loloda -pgy Pongyong 88.09253 26.86128 -pha Pa-Hng 105.21753 23.31562 Hmong-Mien, Hmongic, Pa-hng -phd Phudagi 73.36836 18.71534 Indo-European, Indo-Iranian, Indo-Aryan, Southern zone, Konkani -phg Phuong 107.4674 16.21184 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, East Katuic, Katu-Pacoh -phh Phula 103.34145 22.79148 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southeastern -phk Phake 95.81309 27.81965 Tai-Kadai, Kam-Tai, Tai, Southwestern -phl Phalura 71.84211 35.50956 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Shina -phm Phimbi 33.35136 -15.8364 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, N, Senga-Sena (N.41) -pho Phunoi 102.15764 21.66473 -phq Phana' 101.9775 21.93872 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southern -phr Pahari-Potwari 73.80708 33.6424 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Lahnda -pht Phu Thai 104.16764 16.89067 Tai-Kadai, Kam-Tai, Tai, Southwestern -phu Phuan 101.08696 15.48033 Tai-Kadai, Kam-Tai, Tai, Southwestern -phv Pahlavani 62.19785 31.32675 Indo-European, Indo-Iranian, Iranian, Western, Southwestern, Persian -phw Phangduwali 87.35371 27.15945 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -pia Pima Bajo -108.32633 28.65401 Uto-Aztecan, Southern Uto-Aztecan, Pimic -pib Yine -73.30868 -11.10862 Maipurean, Southern, Southern Outlier, Piro, Piro -pic Pinji 11.22303 -1.90305 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Tsogo (B.304) -pid Piaroa -66.75335 4.76284 Sálivan, Piaroa-Maco -pie Piro -106.41475 35.22912 -pif Pingelapese 160.71064 6.20743 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Ponapeic-Trukic, Ponapeic -pig Pisabo -73.3411 -6.32551 Panoan -pih Pitcairn-Norfolk 167.95473 -29.02592 Creole, English based, Pacific -pii Pini 121.99466 -26.80165 Australian, Pama-Nyungan, South-West, Wati -pij Pijao -75.33332 0.49999 Unclassified -pil Yom 1.81099 9.87186 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Yom-Nawdm -pim Powhatan -77.20752 36.99422 Algic, Algonquian, Eastern Algonquian -pin Piame 142.78426 -4.85835 Sepik, Sepik Hill, Sanio -pio Piapoco -69.46596 4.00287 Maipurean, Northern, Upper Amazon, Western Nawiki, Piapoco -pip Pero 11.04395 9.62092 Afro-Asiatic, Chadic, West, A, A.2, Tangale, Tangale Proper -pir Piratapuyo -69.52835 0.23882 Tucanoan, Eastern Tucanoan -pis Pijin 160.137 -9.567 Creole, English based, Pacific -pit Pitta Pitta 139.98275 -22.79522 Australian, Pama-Nyungan, Karnic, Palku -piu Pintupi-Luritja 130.64348 -23.29628 Australian, Pama-Nyungan, South-West, Wati -piv Pileni 167.20709 -9.95114 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Futunic -piw Pimbwe 31.42886 -6.81358 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Fipa-Mambwe (M.11) -pix Piu 146.4547 -6.96694 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, South, Hote-Buang, Buang -piy Piya-Kwonci 10.83786 9.31975 Afro-Asiatic, Chadic, West, A, A.2, Tangale, Tangale Proper -piz Pije 164.94166 -20.78239 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Northern, North, Nemi -pjt Pitjantjatjara 131.35737 -26.97044 Australian, Pama-Nyungan, South-West, Wati -pkb Upper Pokomo 40.05028 -1.48025 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Nyika-Taita (E.71) -pkg Pak-Tong 147.76651 -2.05269 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Pak-Tong -pkh Pankhu 92.5163 22.45696 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Central -pkn Pakanha 142.73992 -15.09085 Australian, Pama-Nyungan, Paman, Middle Pama -pko Pökoot 35.63066 1.59894 Nilo-Saharan, Eastern Sudanic, Nilotic, Southern, Kalenjin, Pokot -pkp Pukapuka -165.82762 -10.8831 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Pukapuka -pks Pakistan Sign Language 67.88427 28.06668 Deaf sign language -pkt Maleng 105.38028 17.88236 Austro-Asiatic, Mon-Khmer, Viet-Muong, Chut -pku Paku 115.08663 -1.9063 Austronesian, Malayo-Polynesian, Greater Barito, East, Central-South, South -pla Miani 145.27607 -4.42116 Trans-New Guinea, Madang, Croisilles, Pihom, Kaukombaran -plb Polonombauk 167.08963 -15.46534 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, East Santo, South -plc Central Palawano 117.83815 8.77013 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Palawanic -pld Polari -1.39091 51.78662 Unclassified -ple Palu'e 121.71811 -8.32877 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -plg Pilagá -60.15372 -25.00585 Guaykuruan, Southern -plh Paulohi 128.77917 -3.25404 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Piru Bay, East, Seram Straits, Solehua -pli Pali 76.62831 26.48838 Indo-European, Indo-Iranian, Indo-Aryan, Unclassified -plj Polci 9.53362 10.02581 Afro-Asiatic, Chadic, West, B, B.3, Zaar Proper -plk Kohistani Shina 73.32069 35.17408 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Shina -pll Shwe Palaung 96.93945 22.99767 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Western Palaungic, Palaung -plm Palembang 104.84211 -2.84773 -pln Palenquero -75.29491 10.38807 Creole, Spanish based -plo Oluta Popoluca -94.88634 17.89374 Mixe-Zoquean, Mixean -plp Palpa 83.39278 27.87406 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Eastern Pahari -plr Palaka Senoufo -4.9271 9.53815 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Senufo, Kpalaga -pls San Marcos Tlalcoyalco Popoloca -97.59358 18.74 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Popolocan, Popoloca -plt Plateau Malagasy 47.12111 -19.59065 Austronesian, Malayo-Polynesian, Greater Barito, East, Malagasy -plu Palikúr -51.40991 3.30107 Maipurean, Northern, Eastern, Palikur -plv Southwest Palawano 117.36004 8.67624 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Palawanic -plw Brooke's Point Palawano 117.87051 8.83891 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Palawanic -ply Bolyu 104.95452 24.70131 Austro-Asiatic, Mon-Khmer, Palyu -plz Paluan 116.34635 5.02715 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Murutic, Murut -pma Paama 168.23693 -16.47548 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -pmb Pambia 26.61 3.739 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Zande, Barambo-Pambia -pmc Palumata 128.762 -3.024 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, Buru -pme Pwaamei 164.76961 -20.84415 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Northern, North -pmf Pamona 121.44561 -1.43002 Austronesian, Malayo-Polynesian, Celebic, Kaili-Pamona, Northern, Pamona -pmi Northern Pumi 101.30511 28.66262 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Qiangic -pmj Southern Pumi 100.62232 27.84076 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Qiangic -pml Lingua Franca 10.85313 33.86126 Pidgin, Romance based -pmm Pol 13.65425 5.01597 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Kaka (A.92) -pmn Pam 14.28498 7.97779 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Mbum, Unclassified -pmo Pom 135.61944 -1.64224 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Yapen, Central-Western -pmq Northern Pame -99.64342 22.09683 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Oto-Pamean, Pame -pmr Paynamar 144.8791 -4.94303 Trans-New Guinea, Madang, South Adelbert Range, Wanang, Paynamar -pms Piemontese 8.32366 45.46333 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Gallo-Romance, Gallo-Italian -pmt Tuamotuan -140.6576 -21.70902 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, East, Central, Tahitic -pmu Mirpur Panjabi 74.37134 33.55823 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Lahnda -pmw Plains Miwok -121.42161 38.03083 Miwok-Costanoan, Miwokan, Eastern Miwokan -pmx Poumei Naga 94.46181 25.19444 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Angami-Pochuri -pmz Southern Pame -99.334 20.966 Otomanguean, Western Otomanguean, Oto-Pame-Chinantecan, Oto-Pamean, Pame -pna Punan Bah-Biau 113.15607 2.27377 Austronesian, Malayo-Polynesian, North Borneo, Rejang-Sajau -pnb Western Panjabi 73.46685 31.53068 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Lahnda -pnc Pannei 119.19136 -3.21973 Austronesian, Malayo-Polynesian, South Sulawesi, Northern, Pitu Ulunna Salu -pne Western Penan 114.42496 2.61641 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Penan -png Pongu 6.3745 10.0823 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Kamuku -pnh Penrhyn -157.9912 -8.95454 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, East, Central, Tahitic -pni Aoheng 114.12676 0.87404 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kayanic, Muller-Schwaner ‘Punan’ -pnm Punan Batu 1 113.92993 2.65327 Austronesian, Malayo-Polynesian, North Borneo, Melanau-Kajang, Kajang -pnn Pinai-Hagahai 144.13744 -5.12624 Piawi -pno Panobo -74.99999 -7.16666 Panoan, Mainline, Pano -pnp Pancana 122.96839 -5.29587 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Muna-Buton, Nuclear Muna-Buton, Munan, Munic, Western -pnq Pana -3.33354 13.21632 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Northern -pnr Panim 145.75242 -5.21388 Trans-New Guinea, Madang, Croisilles, Gum -pns Ponosakan 124.71199 0.91716 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Gorontalo-Mongondow, Mongondowic -pnt Pontic 22.92503 40.99391 Indo-European, Greek, Attic -pnu Jiongnai Bunu 110.00717 23.86921 Hmong-Mien, Hmongic, Bunu -pnv Pinigura 116.53759 -22.47294 Australian, Pama-Nyungan, South-West, Dhalandji -pnw Panytyima 118.72297 -22.78161 Australian, Pama-Nyungan, South-West, Inland Ngayarda -pnx Phong-Kniang 104.08797 19.96217 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Khmuic, Xinh Mul -pny Pinyin 10.06821 5.7991 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Ngemba -pnz Pana 15.72736 7.30841 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Mbum, Eastern Mbum, Karang -poa Eastern Pokomam -89.73796 14.73252 -pob Western Pokomchí -90.58131 15.35857 -poc Central Pokomam -90.45331 14.72427 Mayan, Yucatecan-Core Mayan, K’ichean-Mamean, K’ichean, Poqom-K’ichean, Poqom, Poqomam -pod Ponares -71.49999 4.83332 Maipurean, Unclassified -poe San Juan Atzingo Popoloca -97.37923 18.22245 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Popolocan, Popoloca -pof Poke 23.89718 0.73538 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Soko-Kele (C.53) -pog Potiguara -37.99999 -7.01666 Tupian, Tupí-Guaraní, Tupí, Tupí -poh Eastern Pokomchí -90.19328 15.29204 Mayan, Yucatecan-Core Mayan, K’ichean-Mamean, K’ichean, Poqom-K’ichean, Poqom, Poqomchi’ -poi Highland Popoluca -94.91088 18.19804 Mixe-Zoquean, Zoquean, Gulf Zoquean -poj Lower Pokomo 40.28966 -2.31587 -pok Pokangá -69.56072 0.35794 Tucanoan, Eastern Tucanoan, Bará-Tuyuka -pol Polish 19.13688 51.87823 Indo-European, Slavic, West, Lechitic -pom Southeastern Pomo -122.5985 38.93544 Pomoan -pon Pohnpeian 158.22314 6.87212 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Ponapeic-Trukic, Ponapeic -poo Central Pomo -123.66393 38.90547 Pomoan, Western, Southern -pop Pwapwa 164.5559 -20.81333 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Northern, North -poq Texistepec Popoluca -94.80765 17.89257 Mixe-Zoquean, Zoquean, Gulf Zoquean -por Portuguese -7.83932 39.44108 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Ibero-Romance, West Iberian, Portuguese-Galician -pos Sayula Popoluca -94.95308 17.86056 Mixe-Zoquean, Mixean -pot Potawatomi -95.82722 39.36358 Algic, Algonquian, Ojibwa-Potawatomi -pou Southern Pokomam -90.66308 14.43317 -pov Upper Guinea Crioulo -15.92488 11.06847 Creole, Portuguese based -pow San Felipe Otlaltepec Popoloca -97.74322 18.35936 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Popolocan, Popoloca -pox Polabian 13.99999 51.99999 -poy Pogolo 36.41485 -8.72283 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Pogolo-Ndamba (G.51) -ppa Pao 80.96186 24.06216 Sino-Tibetan, Tibeto-Burman, Unclassified -ppe Papi 142.01084 -4.4725 Sepik, Sepik Hill, Papi -ppi Paipai -115.87053 31.60625 Cochimí-Yuman, Yuman, Pai -ppk Uma 119.96795 -1.70416 Austronesian, Malayo-Polynesian, Celebic, Kaili-Pamona, Southern -ppl Pipil -89.44302 13.89305 Uto-Aztecan, Southern Uto-Aztecan, Corachol-Aztecan, Core Nahua -ppm Papuma 135.90724 -1.77301 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Yapen, Central-Western -ppn Papapana 155.28894 -5.92283 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Nehan-North Bougainville, Papapana -ppo Folopa 144.45842 -6.86321 Trans-New Guinea, Teberan -ppp Pelende 17.3142 -4.90877 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Yaka (H.31) -ppq Pei 142.24694 -4.43974 Sepik, Leonhard Schultze -ppr Piru 128.1967 -3.05368 -pps San Luís Temalacayuca Popoloca -97.54592 18.68115 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Popolocan, Popoloca -ppt Pare 141.6576 -6.46878 Trans-New Guinea, Awin-Pare -ppu Papora-Hoanya 120.57694 24.32398 Austronesian, Western Plains, Central Western Plains -ppv Papavô -72.02971 -9.26699 -pqa Pa'a 9.30091 11.01752 Afro-Asiatic, Chadic, West, B, B.2 -pqm Malecite-Passamaquoddy -67.63625 46.09915 Algic, Algonquian, Eastern Algonquian -prb Lua' 101.21733 19.1198 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Khmuic, Mal-Khmu’, Mal-Phrai -prc Parachi 70.88047 36.04323 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Ormuri-Parachi -prd Parsi-Dari 58.624 32.994 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Central Iran -pre Principense 7.392 1.614 Creole, Portuguese based -prf Paranan 122.37 17.04 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Northern Cordilleran, Northeastern Luzon -prg Prussian 14.757 52.394 Indo-European, Baltic, Western -prh Porohanon 124.45395 10.67263 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, Central, Peripheral -pri Paicî 165.15048 -21.096 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Northern, Central -prk Parauk 99.0428 22.62124 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Eastern Palaungic, Waic, Wa -prl Peruvian Sign Language -76.82131 -11.90078 Deaf sign language -prm Kibiri 144.29554 -7.45276 Trans-New Guinea, Kiwaian -prn Prasuni 70.8004 35.17314 Indo-European, Indo-Iranian, Indo-Aryan, Nuristani -prp Parsi 74.438 20.625 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Central Iran -prq Ashéninka Perené -74.91528 -10.97772 Maipurean, Southern, Campa, Ashéninga -prr Puri -43.60688 -20.73288 Purian -prs Eastern Farsi 62.14612 31.15621 Indo-European, Indo-Iranian, Iranian, Western, Southwestern, Persian -prt Phai 101.14636 19.1428 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Khmuic, Mal-Khmu’, Mal-Phrai -pru Puragi 132.30431 -2.05779 Trans-New Guinea, South Bird’s Head, South Bird’s Head Proper, Western -prv Provençal 5.76415 43.9926 -prw Parawen 145.4177 -5.0112 Trans-New Guinea, Madang, Croisilles, Pihom, Numugenan -prx Purik 76.01267 34.33855 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Western -pry Pray 3 101.02103 19.43064 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Khmuic, Mal-Khmu’, Mal-Phrai -prz Providencia Sign Language -74.48474 6.29325 Deaf sign language -psa Asue Awyu 139.12334 -5.98341 Trans-New Guinea, Ok-Awyu, Awyu-Dumut, Awyu -psc Persian Sign Language 51.09964 35.69219 Deaf sign language -psd Plains Indian Sign Language -99.24989 38.39406 Deaf sign language -pse Pasemah 103.3625 -3.97488 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -psg Penang Sign Language 100.254 5.375 Deaf sign language -psh Southwest Pashayi 69.87341 34.84777 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Pashayi -psi Southeast Pashayi 70.30351 34.43099 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Pashayi -psl Puerto Rican Sign Language -66.09192 18.45917 Deaf sign language -psm Pauserna -63.19031 -12.85527 Tupian, Tupí-Guaraní, Guarayú -psn Panasuan 119.64982 -2.24049 Austronesian, Malayo-Polynesian, South Sulawesi, Seko, Panasuan -pso Polish Sign Language 20.76105 52.00414 Deaf sign language -psp Philippine Sign Language 121.51221 16.91598 Deaf sign language -psq Pasi 142.30702 -3.95195 Sepik, Tama -psr Portuguese Sign Language -8.53355 38.54741 Deaf sign language -pss Kaulong 149.69627 -6.08192 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Southwest New Britain, Arawe-Pasismanua, Pasismanua -pst Central Pashto 69.45294 31.9153 Indo-European, Indo-Iranian, Iranian, Eastern, Southeastern, Pashto -psw Port Sandwich 167.77966 -16.49524 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Malekula Coastal -psy Piscataway -76.803 39.073 Algic, Algonquian, Eastern Algonquian, Nanticoke-Conoy -pta Pai Tavytera -56.11758 -23.15945 Tupian, Tupí-Guaraní, Guaraní, Guaraní -pth Pataxo-Hahahai -40.03332 -15.91666 Maxakalian -pti Pintiini 127.63234 -29.80596 Australian, Pama-Nyungan, South-West, Wati -ptn Patani 128.63354 0.34096 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, South Halmahera, Southeast -pto Zo'é -55.50746 -1.77208 Tupian -ptp Patep 146.63945 -6.91988 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, South, Hote-Buang, Buang, Mumeng -ptr Piamatsina 166.73828 -14.99588 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -ptt Enrekang 119.65983 -3.53848 Austronesian, Malayo-Polynesian, South Sulawesi, Northern, Masenrempulu -ptu Bambam 119.20134 -3.02759 Austronesian, Malayo-Polynesian, South Sulawesi, Northern, Pitu Ulunna Salu -ptv Port Vato 168.04551 -16.30825 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -ptw Pentlatch -124.68918 49.19362 -pua Western Highland Purepecha -102.154 19.43924 Tarascan -pub Purum 95.09354 25.3887 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -puc Punan Merap 116.25113 3.10143 Austronesian, Malayo-Polynesian, North Borneo, Rejang-Sajau -pud Punan Aput 116.0886 1.38035 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kayanic, Muller-Schwaner ‘Punan’ -pue Puelche -62.94127 -36.63757 Language isolate -puf Punan Merah 115.58788 0.50763 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kayanic, Muller-Schwaner ‘Punan’ -pug Phuie -3.47165 11.02348 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Western -pui Puinave -67.96124 3.88056 Puinavean -puj Punan Tubu 116.25998 2.86972 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Punan Tubu -puk Pu Ko 101.73083 20.25513 Tai-Kadai, Kam-Tai, Tai, Southwestern -pum Puma 86.83801 27.07738 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -pun Pubian 105.33909 -4.8008 -puo Puoc 104.0259 21.02809 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Khmuic, Xinh Mul -pup Pulabu 145.73801 -5.59558 Trans-New Guinea, Madang, Rai Coast, Kabenau -puq Puquina -69.96108 -15.8992 -pur Puruborá -62.43584 -11.42258 Tupian -put Putoh 116.44253 3.42467 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Kelabitic -puu Punu 11.35599 -2.69637 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Shira-Punu (B.43) -puw Puluwatese 149.31033 6.69748 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Ponapeic-Trukic, Trukic -pux Puari 141.71469 -2.90121 Skou, Skou-Serra-Piore, Serra Hills, Puari -puy Purisimeno -119.711 34.429 Chumashan, Central Chumash -puz Purum Naga 93.982 24.662 -pwa Pawaia 145.08142 -6.88021 Trans-New Guinea, Pawaian -pwg Gapapaiwa 149.85373 -9.73317 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Are-Taupota, Are -pwm Molbog 117.01027 7.93444 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Palawanic -pwn Paiwan 120.80566 22.32714 Austronesian, Paiwan -pwo Pwo Western Karen 97.70436 17.36215 Sino-Tibetan, Tibeto-Burman, Karenic, Peripheral -pwr Powari 79.239 21.797 Indo-European, Indo-Iranian, Indo-Aryan, Central zone -pww Pwo Northern Karen 98.27092 18.01601 Sino-Tibetan, Tibeto-Burman, Karenic, Peripheral -pxm Quetzaltepec Mixe -95.67269 16.92147 Mixe-Zoquean, Mixean, Oaxaca Mixean -pye Pye Krumen -7.01481 5.00716 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Grebo, Ivorian -pym Fyam 9.22293 9.59006 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Southeastern -pyn Poyanáwa -73.07577 -7.46909 Panoan, Mainline -pyu Pyuma 120.99631 22.64302 Austronesian, Puyuma -pyy Pyen 100.02854 20.75898 -qua Quapaw -94.66336 36.94712 Siouan-Catawban, Siouan, Mississippi Valley-Ohio Valley Siouan, Mississippi Valley Siouan, Dhegihan -qub Huallaga Huánuco Quechua -75.59401 -9.57135 Quechuan, Central Quechua, Ap-am-ah -quc Central Quiché -91.16965 14.52777 Mayan, Yucatecan-Core Mayan, K’ichean-Mamean, K’ichean, Poqom-K’ichean, Core K’ichean -qud Calderón Highland Quichua -78.25868 -0.36205 Quechuan, Peripheral Quechua, Chinchay, Northern Chinchay -quf Lambayeque Quechua -79.46799 -6.1715 Quechuan, Peripheral Quechua, Yungay, Northern -qug Chimborazo Highland Quichua -78.85209 -1.36727 Quechuan, Peripheral Quechua, Chinchay, Northern Chinchay -quh South Bolivian Quechua -66.44806 -19.43034 Quechuan, Peripheral Quechua, Chinchay, Southern Chinchay -qui Quileute -124.60311 47.91056 Chimakuan -quj Joyabaj Quiché -90.83792 15.01568 -quk Chachapoyas Quechua -77.66152 -6.27021 Quechuan, Peripheral Quechua, Chinchay, Northern Chinchay -qul North Bolivian Quechua -68.78939 -14.40136 Quechuan, Peripheral Quechua, Chinchay, Southern Chinchay -qum Sipacapense -91.7041 15.23054 Mayan, Yucatecan-Core Mayan, K’ichean-Mamean, K’ichean, Poqom-K’ichean, Core K’ichean -qun Quinault -124.16024 47.4214 Salish, Tsamosan, Maritime -qup Southern Pastaza Quechua -76.52697 -3.32733 Quechuan, Peripheral Quechua, Chinchay, Northern Chinchay -quq Quinqui -3.68704 40.2638 Unclassified -qur Yanahuanca Pasco Quechua -76.53144 -10.49293 Quechuan, Central Quechua, Wankay -qus Santiago del Estero Quichua -63.24657 -27.82096 Quechuan, Peripheral Quechua, Chinchay, Southern Chinchay -qut West Central Quiché -91.55084 14.7907 -quu Eastern Quiché -91.09989 14.95595 -quv Sacapulteco -91.10904 15.27401 Mayan, Yucatecan-Core Mayan, K’ichean-Mamean, K’ichean, Poqom-K’ichean, Core K’ichean -quw Tena Lowland Quichua -77.54039 -0.76271 Quechuan, Peripheral Quechua, Chinchay, Northern Chinchay -qux Yauyos Quechua -75.76589 -13.11443 Quechuan, Central Quechua, Wankay -quy Ayacucho Quechua -74.32246 -13.84714 Quechuan, Peripheral Quechua, Chinchay, Southern Chinchay, Southern Peruvian Quechua -quz Cusco Quechua -71.76625 -14.08527 Quechuan, Peripheral Quechua, Chinchay, Southern Chinchay, Southern Peruvian Quechua -qva Ambo-Pasco Quechua -76.11354 -10.51379 Quechuan, Central Quechua, Ap-am-ah, Alto Pativilca -qvc Cajamarca Quechua -78.32141 -7.09314 Quechuan, Peripheral Quechua, Yungay, Northern -qve Eastern Apurímac Quechua -72.6686 -14.17541 Quechuan, Peripheral Quechua, Chinchay, Southern Chinchay, Southern Peruvian Quechua -qvh Huamalíes-Dos de Mayo Huánuco Quechua -76.33719 -9.15718 Quechuan, Central Quechua, Ap-am-ah, Alto Pativilca -qvi Imbabura Highland Quichua -78.37286 0.31776 Quechuan, Peripheral Quechua, Chinchay, Northern Chinchay -qvj Loja Highland Quichua -79.29151 -3.69352 Quechuan, Peripheral Quechua, Chinchay, Northern Chinchay -qvl Cajatambo North Lima Quechua -76.96018 -10.41263 Quechuan, Central Quechua, Wankay -qvm Margos-Yarowilca-Lauricocha Quechua -76.49806 -9.84463 Quechuan, Central Quechua, Ap-am-ah, Alto Pativilca -qvn North Junín Quechua -75.81275 -11.21321 Quechuan, Central Quechua, Wankay -qvo Napo Lowland Quechua -74.15518 -2.10159 Quechuan, Peripheral Quechua, Chinchay, Northern Chinchay -qvp Pacaraos Quechua -76.73046 -11.14278 Quechuan, Central Quechua -qvs San Martín Quechua -76.6608 -6.9582 Quechuan, Peripheral Quechua, Chinchay, Northern Chinchay -qvw Huaylla Wanca Quechua -75.20551 -12.18092 Quechuan, Central Quechua, Wankay -qvy Queyu 100.8126 30.31133 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Qiangic -qvz Northern Pastaza Quichua -77.19858 -1.63641 Quechuan, Peripheral Quechua, Chinchay, Northern Chinchay -qwa Corongo Ancash Quechua -77.98643 -8.57647 Quechuan, Central Quechua, Waylay, Conchucos -qwc Classical Quechua -76.49999 -9.99999 Quechuan, Peripheral Quechua, Chinchay, Southern Chinchay, Southern Peruvian Quechua -qwh Huaylas Ancash Quechua -77.77681 -9.38709 Quechuan, Central Quechua, Waylay -qws Sihuas Ancash Quechua -77.53185 -8.49346 Quechuan, Central Quechua, Waylay, Conchucos -qxa Chiquián Ancash Quechua -77.41515 -10.18311 Quechuan, Central Quechua, Waylay -qxc Chincha Quechua -75.649 -12.85 Quechuan, Central Quechua, Wankay -qxh Panao Huánuco Quechua -75.4382 -9.85887 Quechuan, Central Quechua, Ap-am-ah, Alto Marañón -qxi San Andrés Quiché -90.93979 15.18443 -qxl Salasaca Highland Quichua -78.39531 -1.35447 Quechuan, Peripheral Quechua, Chinchay, Northern Chinchay -qxn Northern Conchucos Ancash Quechua -77.41462 -8.97356 Quechuan, Central Quechua, Waylay, Conchucos -qxo Southern Conchucos Ancash Quechua -76.98537 -9.30995 Quechuan, Central Quechua, Waylay, Conchucos -qxp Puno Quechua -70.20838 -14.60798 Quechuan, Peripheral Quechua, Chinchay, Southern Chinchay, Southern Peruvian Quechua -qxq Qashqa'i 52.83349 28.25931 Altaic, Turkic, Southern -qxr Cañar Highland Quichua -78.96725 -2.48314 Quechuan, Peripheral Quechua, Chinchay, Northern Chinchay -qxs Southern Qiang 103.38351 31.53925 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Qiangic -qxt Santa Ana de Tusi Pasco Quechua -76.27527 -10.33016 Quechuan, Central Quechua, Wankay -qxu Arequipa-La Unión Quechua -72.63326 -15.18063 Quechuan, Peripheral Quechua, Chinchay, Southern Chinchay, Southern Peruvian Quechua -qxw Jauja Wanca Quechua -75.2786 -11.67473 Quechuan, Central Quechua, Wankay -raa Dungmali 87.33279 26.98127 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -rab Camling 86.76116 27.33713 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -rac Rasawa 136.35237 -2.37609 Lakes Plain, Rasawa-Saponi -rad Rade 108.40989 12.979 Austronesian, Malayo-Polynesian, Malayo-Chamic, Chamic, Highlands -rae Ranau 104.03249 -4.72129 -raf Western Meohang 87.28934 27.4265 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -rag Logooli 34.72895 0.09487 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Logooli-Kuria (E.41) -rah Rabha 91.16887 25.82476 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Bodo-Koch, Koch -rai Ramoaaina 152.45078 -4.17306 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Patpatar-Tolai -rak Tulu-Bohuai 146.93409 -2.14155 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, West -ral Ralte 94.79056 24.98939 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -ram Canela -45.1299 -6.10712 Jean, Northern, Timbira -ran Riantana 138.48381 -7.50746 Trans-New Guinea, Kolopom -rao Rao 144.51119 -4.85243 Ramu-Lower Sepik, Ramu, Middle Ramu -rap Rapa Nui -109.34249 -27.11299 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, East, Rapanui -raq Saam 87.95341 26.84425 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -rar Rarotongan -159.7713 -21.22769 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, East, Central, Tahitic -ras Tegali 31.11123 11.95226 Niger-Congo, Kordofanian, Rashad -rat Razajerdi 50.002 36.267 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Talysh -rau Raute 81.16166 28.95183 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Central Himalayan, Raute-Raji -rav Sampang 87.00191 27.29991 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -raw Rawang 97.96018 26.88115 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Nungish -rax Rang 10.58 8.001 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Mumuye-Yandang, Mumuye -ray Rapa -144.33752 -27.63043 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, East, Central -raz Rahambuu 121.0587 -3.24627 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Bungku-Tolaki, Western, West Coast -rbb Rumai Palaung 96.67992 23.13363 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Western Palaungic, Palaung -rcf Réunion Creole French 55.53206 -21.11306 Creole, French based -rdb Rudbari 49.88008 37.08782 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Talysh -rea Rerau 145.7158 -5.51361 Trans-New Guinea, Madang, Rai Coast, Nuru -reb Rembong 120.97294 -8.53361 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -ree Rejang Kayan 114.16931 2.71903 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kayanic, Kayan Proper -reg Kara 33.04883 -1.83511 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Haya-Jita (E.252) -rei Reli 82.49957 18.12125 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Oriya -rej Rejang 102.43359 -3.33056 Austronesian, Malayo-Polynesian, Rejang -rel Rendille 37.36078 2.27065 Afro-Asiatic, Cushitic, East, Rendille-Boni -rem Remo -74.08332 -7.33333 Panoan, Mainline, Shipibo -ren Rengao 107.85923 14.6066 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, North Bahnaric, West, Rengao -rer Rer Bare 41.70648 4.11661 Unclassified -res Reshe 4.62395 10.77046 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Reshe -ret Retta 124.35951 -8.22481 Trans-New Guinea, West, Timor-Alor-Pantar, Alor-Pantar, Pantar -rey Reyesano -67.08332 -14.83332 Tacanan, Tacana -rga Roria 166.84305 -15.40476 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -rge Romano-Greek 23.21639 38.63471 Mixed language, Greek-Romani -rgk Rangkas 80.08455 29.22776 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Himalayish, Almora -rgn Romagnol 12.203529 44.418360 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Gallo-Romance, Gallo-Italian -rgr Resígaro -71.35778 -2.48139 Maipurean, Northern, Upper Amazon -rgs Southern Roglai 108.31809 11.30027 Austronesian, Malayo-Polynesian, Malayo-Chamic, Chamic, Highlands, Chru-Northern, Northern Cham -rgu Ringgou 123.31084 -10.55153 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor, Rote -rhp Yahang 142.40006 -3.73035 Torricelli, Maimai, Maimai Proper -ria Riang 92.22189 24.05958 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Bodo-Koch, Bodo-Garo, Bodo -rie Rien 102.59119 19.50841 Tai-Kadai, Kam-Tai, Tai -rif Tarifit -3.40582 34.81533 Afro-Asiatic, Berber, Northern, Zenati, Riff -ril Riang 98.76231 24.06359 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Western Palaungic, Riang -rim Nyaturu 34.66567 -5.12263 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, F, Nilamba-Rangi (F.32) -rin Nungu 8.62164 8.95481 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Southwestern, A -rir Ribun 110.20707 0.32189 Austronesian, Malayo-Polynesian, Land Dayak, Southern -rit Ritarungo 135.25857 -13.45592 Australian, Pama-Nyungan, Yuulngu, Dhuwal -riu Riung 121.12218 -8.60342 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -rjb Rajbanshi 88.7954 26.38773 -rjg Rajong 120.70299 -8.78645 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -rji Raji 81.577 28.61511 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Central Himalayan, Raute-Raji -rka Kraol 106.53864 12.8107 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, South Bahnaric, Sre-Mnong, Mnong, Southern-Central Mnong -rkb Rikbaktsa -58.19424 -11.18865 Language isolate -rkh Rakahanga-Manihiki -160.97713 -10.38512 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, East, Central, Tahitic -rkm Marka -3.41602 12.01344 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding, Manding-East, Marka-Dafin -rma Rama -83.85714 11.50069 Chibchan, Chibchan B, Votic -rmb Rembarunga 134.30755 -12.96079 Australian, Gunwingguan, Rembargic -rmc Carpathian Romani 13.99687 49.44897 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Romani, Northern -rmd Traveller Danish 12.05895 55.5605 Mixed language, Danish-Romani -rme Angloromani 0.09783 51.96625 Mixed language, English-Romani -rmf Kalo Finnish Romani 21.68145 61.29634 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Romani, Northern -rmg Traveller Norwegian 9.48913 62.62172 Mixed language, Norwegian-Romani -rmh Murkim 140.91328 -4.07548 Unclassified -rmi Lomavren 44.86378 39.9024 Mixed language, Armenian-Romani -rmk Romkun 144.68912 -4.58919 Ramu-Lower Sepik, Ramu, Tamolan -rml Baltic Romani 21.32363 50.20866 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Romani, Northern -rmm Roma 127.42792 -7.58643 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Southwest Maluku, Kisar-Roma -rmn Balkan Romani 21.68511 42.9675 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Romani, Balkan -rmo Sinte Romani 21.14968 45.03991 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Romani, Northern -rmp Rempi 145.78187 -5.02487 Trans-New Guinea, Madang, Croisilles, Hanseman -rmr Calo -3.33433 39.27219 -rms Romanian Sign Language 26.2924 44.92922 Deaf sign language -rmt Domari 50.00536 31.85204 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Dom -rmu Tavringer Romani 13.44116 57.49853 Mixed language, Swedish-Romani -rmw Welsh Romani -3.7888 52.11655 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Romani, Northern -rmx Romam 107.44707 14.33996 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, Central Bahnaric -rmy Vlax Romani 25.76637 44.12793 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Romani, Vlax -rna Runa -76.49999 2.74999 Chocoan -rnd Ruund 23.03685 -10.35286 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Lunda (L.53) -rng Ronga 32.68828 -26.4325 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Tswa-Rhonga (S.54) -rnn Roon 134.55627 -2.43005 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Yapen, Central-Western -rnp Rongpo 79.567 30.528 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Himalayish, Kinauri -rnw Rungwa 31.76141 -7.24959 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Fipa-Mambwe (M.12) -rob Tae' 120.13914 -2.58205 Austronesian, Malayo-Polynesian, South Sulawesi, Northern, Toraja-Sa’dan -roc Cacgia Roglai 109.13813 11.64895 Austronesian, Malayo-Polynesian, Malayo-Chamic, Chamic, Highlands, Chru-Northern, Northern Cham -rod Rogo 6.946 10.56 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Kamuku -roe Ronji 146.73058 -5.80782 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Roinji-Nenaya -rof Rombo 37.53819 -3.07772 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Chaga (E.623) -rog Northern Roglai 108.8486 12.19672 Austronesian, Malayo-Polynesian, Malayo-Chamic, Chamic, Highlands, Chru-Northern, Northern Cham -roh Romansch 9.92812 46.55377 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Gallo-Romance, Gallo-Rhaetian, Rhaetian -rol Romblomanon 122.56031 12.40466 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, Central, Romblon -ron Romanian 24.97773 45.73279 Indo-European, Italic, Romance, Eastern -roo Rotokas 155.15365 -5.94339 North Bougainville, Rotokas -rop Kriol 137.669 -18.135 Creole, English based, Pacific -ror Rongga 120.70212 -8.84604 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -rou Runga 21.20573 10.51127 Nilo-Saharan, Maban, Runga-Kibet -row Dela-Oenale 122.85241 -10.84686 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor, Rote -rpn Repanbitip 167.61883 -16.32646 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Malekula Interior, Small Nambas -rpt Rapting 145.67105 -4.99351 Trans-New Guinea, Madang, Croisilles, Hanseman -rri Ririo 156.91998 -6.88927 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Choiseul -rro Waima 146.54377 -8.67145 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Central Papuan, West Central Papuan, Nuclear -rsb Romano-Serbian 20.37623 45.25524 Mixed language, Serbian-Romani -rsi Rennellese Sign Language 160.219 -11.615 Deaf sign language -rsl Russian Sign Language 37.78417 55.71781 Deaf sign language -rth Ratahan 124.85799 1.07592 Austronesian, Malayo-Polynesian, Philippine, Sangiric, Southern -rtm Rotuman 177.06614 -12.50082 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, West Fijian-Rotuman, Rotuman -rtw Rathawi 73.186 22.309 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -rub Gungu 31.48191 2.06754 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Nyoro-Ganda (E.101) -ruc Ruli 32.4179 1.41726 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Nyoro-Ganda (E.103) -rue Rusyn 23.48657 48.42753 Indo-European, Slavic, East -ruf Luguru 37.55569 -6.86828 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Zigula-Zaramo (G.35) -rug Roviana 157.4081 -8.20493 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, New Georgia, West -ruh Ruga 91.469 25.506 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Bodo-Koch, Koch -rui Rufiji 38.71326 -7.99059 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Matuumbi (P.12) -ruk Che 8.67024 10.00312 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Southwestern, A -run Rundi 29.92039 -3.51292 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Ruanda-Rundi (D.62) -ruo Istro Romanian 14.2 45.433 Indo-European, Italic, Romance, Eastern -rup Macedo Romanian 21.25007 39.75069 Indo-European, Italic, Romance, Eastern -ruq Megleno Romanian 22.35757 41.0574 Indo-European, Italic, Romance, Eastern -rus Russian 84.43421 50.83934 Indo-European, Slavic, East -rut Rutul 47.32436 41.61866 North Caucasian, East Caucasian, Lezgic, Nuclear Lezgic, West Lezgic -ruu Lanas Lobu 116.57736 5.39196 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Paitanic, Upper Kinabatangan -ruy Mala 8.09838 10.57759 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Kauru -ruz Ruma 8.21883 10.57101 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Kauru -rwa Rawo 141.603 -2.84201 Skou, Skou-Serra-Piore, Serra Hills, Rawo-Main Serra, Rawo -rwk Rwa 36.76855 -3.42862 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Chaga (E.621) -rwm Amba 30.10089 0.8528 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Lega-Holoholo (D.22) -rwo Rawa 145.93659 -5.83155 Trans-New Guinea, Finisterre-Huon, Finisterre, Gusap-Mot -rwr Marwari 72.66615 26.72618 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Marwari -rws Rawas 102.76718 -2.88876 -ryn Northern Amami-Oshima 129.45346 28.20991 Japonic, Ryukyuan, Amami-Okinawan, Northern Amami-Okinawan -rys Yaeyama 123.80106 24.34006 Japonic, Ryukyuan, Sakishima -ryu Central Okinawan 127.7816 26.14854 Japonic, Ryukyuan, Amami-Okinawan, Southern Amami-Okinawan -saa Saba 18.49058 11.30721 Afro-Asiatic, Chadic, East, B, B.3 -sab Buglere -81.25648 8.57695 Chibchan, Chibchan A, Guaymiíc -sac Mesquakie -96.75678 35.65744 Algic, Algonquian, Fox -sad Sandawe 35.48081 -5.26918 Khoisan, Sandawe -sae Sabanês -60.33498 -12.98572 Nambiquaran -saf Safaliba -2.58467 8.93768 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Western, Northwest -sag Sango 22.37481 4.45055 Creole, Ngbandi based -sah Yakut 133.98031 61.69744 Altaic, Turkic, Northern -saj Sahu 127.49252 1.00742 West Papuan, North Halmahera, Sahu -sak Sake 11.78704 0.25188 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Kele (B.251) -sam Samaritan Aramaic 35.25798 32.31075 Afro-Asiatic, Semitic, Central, Aramaic, Western -san Sanskrit 81.94673 25.38492 Indo-European, Indo-Iranian, Indo-Aryan -sao Sause 139.62656 -3.16632 Tor-Kwerba, Orya-Tor, Sause -sap Sanapaná -58.90698 -22.11454 -saq Samburu 37.05388 1.60735 Nilo-Saharan, Eastern Sudanic, Nilotic, Eastern, Lotuxo-Teso, Lotuxo-Maa, Ongamo-Maa -sar Saraveca -65.39446 -11.94232 Maipurean, Southern, Central, Paresí -sas Sasak 116.2841 -8.58349 Austronesian, Malayo-Polynesian, Bali-Sasak-Sumbawa, Sasak-Sumbawa -sat Santali 87.11775 23.9076 Austro-Asiatic, Munda, North Munda, Kherwari, Santali -sau Saleman 129.42743 -2.82548 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Sawai-Nuaulu -sav Saafi-Saafi -17.05679 14.62497 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Cangin -saw Sawi 138.64289 -5.99286 Trans-New Guinea, Ok-Awyu, Awyu-Dumut, Sawi -sax Sa 168.22772 -15.95342 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -say Saya 9.71748 9.69441 Afro-Asiatic, Chadic, West, B, B.3, Zaar Proper -saz Saurashtra 77.94271 9.99172 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Gujarati -sba Ngambay 15.88734 8.76937 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Sara Proper -sbb Simbo 156.54142 -8.26947 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, New Georgia, West -sbc Kele 147.06391 -2.09163 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, East -sbd Southern Samo -2.9052 12.71302 Niger-Congo, Mande, Eastern, Eastern, Samo -sbe Saliba 150.72725 -10.61476 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, Suauic -sbf Shabo 35.22304 7.64407 Unclassified -sbg Seget 131.21812 -1.36931 West Papuan, West Bird’s Head -sbh Sori-Harengan 146.64176 -1.98384 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, West -sbi Seti 141.82694 -3.45521 Torricelli, West Wapei -sbj Surbakhal 21.62433 13.13312 Nilo-Saharan, Maban, Surbakhal -sbk Safwa 33.47662 -8.54936 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Nyiha-Safwa (M.25) -sbl Botolan Sambal 120.16443 15.23154 Austronesian, Malayo-Polynesian, Philippine, Central Luzon, Sambalic -sbm Sagala 36.91533 -6.98537 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Zigula-Zaramo (G.39) -sbn Sindhi Bhil 69.00076 24.54084 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Sindhi -sbo Sabüm 101.06484 5.34694 Austro-Asiatic, Mon-Khmer, Aslian, Senoic -sbp Sangu 33.9972 -8.38573 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Bena-Kinga (G.61) -sbq Sileibi 145.22499 -4.98243 Trans-New Guinea, Madang, South Adelbert Range, Josephstaal, Sikan -sbr Sembakung Murut 116.67321 4.39477 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Murutic, Tidong -sbs Subiya 24.92927 -17.68242 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Subiya-Totela (K.42) -sbt Kimki 140.88383 -4.2742 Unclassified -sbu Stod Bhoti 77.116 32.497 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, Western -sbw Simba 11.17825 -1.28107 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Tsogo (B.302) -sbx Seberuang 111.21207 -0.02463 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Ibanic -sby Soli 28.79335 -15.52127 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Lenje-Tonga (M.62) -sbz Sara Kaba 22.16374 10.53762 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Sara Proper, Sara Kaba -sca Sansu 100.09861 21.64019 -scb Chut 105.78465 17.74065 Austro-Asiatic, Mon-Khmer, Viet-Muong, Chut -sce Dongxiang 103.55807 35.58083 Altaic, Mongolic, Eastern, Mongour -scf San Miguel Creole French -81.25639 8.32601 Creole, French based -scg Sanggau 110.40412 -0.13152 Austronesian, Malayo-Polynesian, Land Dayak -sch Sakechep 93.949 25.994 Sino-Tibetan, Tibeto-Burman, Unclassified -sci Sri Lankan Creole Malay 79.86404 6.91603 Creole, Malay based -sck Sadri 84.81136 23.65853 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bihari -scl Shina 75.79188 34.6669 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Shina -scn Sicilian 14.04144 37.57354 Indo-European, Italic, Romance, Italo-Western, Italo-Dalmatian -sco Scots -4.00282 56.18608 Indo-European, Germanic, West, English -scp Helambu Sherpa 85.62893 27.92119 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, gTsang -scq Sa'och 103.83516 10.87391 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Pearic, Western, Chong -scs North Slavey -123.64125 63.26714 Eyak-Athabaskan, Athabaskan, Northern Athabaskan, Slavey-Hare -scu Shumcho 78.38646 31.68622 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Himalayish, Kinauri -scv Sheni 8.63921 10.52559 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Jera -scw Sha 8.77569 9.23281 Afro-Asiatic, Chadic, West, A, A.4, Ron Proper -scy Scanian 13.98729 55.93994 -sda Toraja-Sa'dan 119.8292 -2.97144 Austronesian, Malayo-Polynesian, South Sulawesi, Northern, Toraja-Sa’dan -sdb Shabak 43.144 36.375 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Zaza-Gorani -sdc Sassarese Sardinian 8.39332 40.74795 Indo-European, Italic, Romance, Southern, Sardinian -sdd Semendo 103.82807 -4.07621 -sde Surubu 8.27136 10.22536 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Kauru -sdf Sarli 43.644 36.021 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Zaza-Gorani -sdg Savi 71.32034 35.01082 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Shina -sdh Southern Kurdish 47.09606 32.9398 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Kurdish -sdi Sindang Kelingi 103.45136 -3.52245 -sdj Suundi 13.32125 -4.58488 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Kikongo (H.131) -sdl Saudi Arabian Sign Language 46.47139 23.61401 Deaf sign language -sdm Semandang 110.52664 -0.75188 Austronesian, Malayo-Polynesian, Land Dayak, Southern -sdn Gallurese Sardinian 9.24279 41.11312 Indo-European, Italic, Romance, Southern, Sardinian -sdo Bukar Sadong 110.59429 1.09001 Austronesian, Malayo-Polynesian, Land Dayak, Bidayuh, Eastern -sdp Sherdukpen 92.57987 27.00345 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Kho-Bwa -sdr Oraon Sadri 88.91575 24.74581 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bihari -sds Sened 9.43778 34.46781 Afro-Asiatic, Berber, Northern, Zenati, East -sdt Shuadit 5.06601 44.16916 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Ibero-Romance, Oc -sdu Sarudu 119.34941 -1.7094 Austronesian, Malayo-Polynesian, Celebic, Kaili-Pamona, Southern -sdx Sibu 111.76305 2.26758 Austronesian, Malayo-Polynesian, North Borneo, Melanau-Kajang, Melanau -sdz Sallands 6.29104 52.44816 Indo-European, Germanic, West, Low Saxon-Low Franconian, Low Saxon -sea Semai 101.47651 4.13257 Austro-Asiatic, Mon-Khmer, Aslian, Senoic -seb Shempire Senoufo -6.37129 10.48673 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Senufo, Suppire-Mamara -sec Sechelt -123.76474 49.47575 Salish, Central Salish -sed Sedang 108.02703 14.77933 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, North Bahnaric, West, Sedang-Todrah, Sedang -see Seneca -78.7867 42.14143 Iroquoian, Northern Iroquoian, Five Nations-Huronian-Susquehannock, Five Nations-Susquehannock -sef Cebaara Senoufo -6.15264 9.50768 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Senufo, Senari -seg Segeju 39.12249 -5.00659 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Nyika-Taita (E.731) -seh Sena 34.98294 -19.79329 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, N, Senga-Sena (N.44) -sei Seri -112.38366 28.98767 Language isolate -sej Sene 147.80729 -6.3859 Trans-New Guinea, Finisterre-Huon, Huon, Eastern -sek Sekani -125.66411 57.44212 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -sel Selkup 82.30036 59.94093 Uralic, Samoyed, Southern Samoyed -sen Nanerigé Sénoufo -4.92148 11.75478 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Senufo, Suppire-Mamara -seo Suarmin 141.97768 -4.95072 Sepik, Sepik Hill, Papi -sep Sìcìté Sénoufo -5.24849 11.00096 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Senufo, Suppire-Mamara -seq Senara Sénoufo -5.28216 10.49874 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Senufo, Senari -ser Serrano -116.77196 33.94787 Uto-Aztecan, Northern Uto-Aztecan, Takic -ses Koyraboro Senni Songhay -0.55187 16.96338 Nilo-Saharan, Songhai, Southern -set Sentani 140.51249 -2.6013 East Bird’s Head-Sentani, Sentani, Sentani Proper -seu Serui-Laut 136.25218 -1.87766 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Yapen, Central-Western -sev Nyarafolo Senoufo -5.11685 9.66934 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Senufo, Tagwana-Djimini -sew Sewa Bay 150.95608 -10.02772 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Dobu-Duau -sey Secoya -76.15529 -0.2684 Tucanoan, Western Tucanoan, Macaguaje -sez Senthang Chin 93.80869 21.89355 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Maraic -sfs South African Sign Language 28.11864 -25.96551 Deaf sign language -sfw Sehwi -2.73146 6.3172 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Central, Bia, Northern -sgb Mag-Anchi Ayta 120.45949 15.19541 Austronesian, Malayo-Polynesian, Philippine, Central Luzon, Sambalic -sge Segai 116.95439 1.97695 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kayanic, Modang -sgg Swiss-German Sign Language 9.07557 47.10693 Deaf sign language -sgh Shughni 72.12066 38.19631 Indo-European, Indo-Iranian, Iranian, Eastern, Southeastern, Pamir, Shugni-Yazgulami -sgi Suga 12.37786 7.12906 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Mambiloid, Suga-Vute, Suga -sgl Sanglechi-Ishkashimi 71.4956 36.49571 -sgm Singa 33.89965 -0.24587 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Logooli-Kuria (E.406) -sgo Songa 26.01597 -4.01205 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Unclassified -sgp Singpho 95.606 27.296 Sino-Tibetan, Tibeto-Burman, Sal, Jingpho-Luish, Jingpho -sgr Sangisari 46.50965 36.82123 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Semnani -sgt Brokpake 91.99717 27.34381 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, Southern -sgu Salas 130.5302 -3.14654 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Manusela-Seti -sgw Sebat Bet Gurage 37.98907 8.11879 Afro-Asiatic, Semitic, South, Ethiopian, South, Outer, tt-Group -sgx Sierra Leone Sign Language -13.235 8.483 Deaf sign language -sgz Sursurunga 152.76834 -3.99078 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Patpatar-Tolai -sha Shall-Zwall 9.64988 9.87556 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Beromic -shb Ninam -62.50232 3.61595 Yanomaman -shc Sonde 18.35547 -6.32223 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Yaka (H.321) -she Sheko 35.28257 7.05022 Afro-Asiatic, Omotic, North, Dizoid -shg Shua 26.02385 -21.51998 Khoisan, Southern Africa, Central, Tshu-Khwe, North Central -shh Shoshoni -108.80667 43.0038 Uto-Aztecan, Northern Uto-Aztecan, Numic, Central -shi Tachelhit -8.18677 30.28138 Afro-Asiatic, Berber, Northern, Atlas -shj Shatt 29.76866 10.8525 Nilo-Saharan, Eastern Sudanic, Western, Daju, Eastern Daju -shk Shilluk 31.79263 9.85472 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Luo, Northern, Shilluk -shl Shendu 92.56042 22.18949 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Southern -shm Shahrudi 50.20736 36.75813 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Talysh -shn Shan 98.13633 21.58197 Tai-Kadai, Kam-Tai, Tai, Southwestern -sho Shanga 4.41464 11.27523 Niger-Congo, Mande, Eastern, Eastern, Kyanga -shp Shipibo-Conibo -74.82192 -7.17105 Panoan, Mainline, Shipibo -shq Sala 27.45344 -15.58479 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Lenje-Tonga (M.631) -shr Shi 28.61219 -2.55777 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Shi-Hunde (D.53) -shs Shuswap -119.66696 50.87341 Salish, Interior -sht Shasta -122.73821 41.75866 Language isolate -shu Chadian Spoken Arabic 19.26143 14.63233 Afro-Asiatic, Semitic, Central, South, Arabic -shv Shehri 53.99526 17.29154 Afro-Asiatic, Semitic, South, South Arabian -shw Shwai 30.35333 11.27079 Niger-Congo, Kordofanian, Heiban, West-Central, Shirumba -shx She 114.81419 23.03995 Hmong-Mien, Ho Nte -shy Tachawit 6.88901 35.18674 Afro-Asiatic, Berber, Northern, Zenati, Shawiya -shz Syenara Senoufo -5.8581 10.59538 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Senufo, Senari -sia Akkala Saami 32.40457 67.8625 Uralic, Sami, Eastern -sib Sebob Kenyah 114.1783 3.42701 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kenyah, Kayanic Kenyah -sic Malinguat 143.34413 -4.06297 -sid Sidamo 38.3729 6.74176 Afro-Asiatic, Cushitic, East, Highland -sie Simaa 22.64548 -15.7434 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Luyana (K.35) -sif Siamou -4.92143 10.99802 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Seme -sig Paasaal -1.8048 10.20039 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Western -sih Zire 165.48187 -21.65441 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Southern, South, Zire-Tiri -sii Shom Peng 93.80636 7.02099 Austro-Asiatic, Mon-Khmer, Nicobar, Shom Peng -sij Numbami 147.29775 -7.52806 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, Numbami -sik Sikiana -55.96023 2.12471 Cariban, Kashuyana -sil Tumulung Sisaala -1.79707 10.63451 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Western -sim Mende 142.68288 -3.67233 Sepik, Nukuma -sin Sinhala 80.78983 6.3914 Indo-European, Indo-Iranian, Indo-Aryan, Sinhalese-Maldivian -sip Sikkimese 88.59153 27.85795 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, Southern -siq Sonia 142.58885 -6.42736 Trans-New Guinea, Bosavi -sir Siri 9.66743 10.76404 Afro-Asiatic, Chadic, West, B, B.2 -sis Siuslaw -124.3786 42.51107 Language isolate -siu Sinagen 142.36705 -3.42446 Torricelli, Wapei-Palei, Wapei -siv Sumariup 143.23871 -4.73083 Sepik, Sepik Hill, Bahinemo -siw Siwai 155.45177 -6.6429 South Bougainville, Buin -six Sumau 145.47407 -5.48556 Trans-New Guinea, Madang, Rai Coast, Peka -siy Sivandi 48.04324 33.42709 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Central Iran -siz Siwi 25.51974 29.20228 Afro-Asiatic, Berber, Eastern, Siwa -sja Epena -77.19119 2.87807 Chocoan, Emberá, Southern Emberá -sjb Sajau Basap 117.40071 2.43432 Austronesian, Malayo-Polynesian, North Borneo, Rejang-Sajau -sjd Kildin Saami 35.83479 68.21579 Uralic, Sami, Eastern -sje Pite Saami 19.26125 65.64707 Uralic, Sami, Western, Northern -sjg Assangori 21.74501 13.74064 Nilo-Saharan, Eastern Sudanic, Western, Tama, Tama-Sungor -sjk Kemi Saami 27.537 67.093 -sjl Sajalong 96.66328 27.65952 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Hrusish -sjm Mapun 118.4771 7.00246 Austronesian, Malayo-Polynesian, Greater Barito, Sama-Bajaw, Sulu-Borneo, Borneo Coast Bajaw -sjo Xibe 81.00336 43.58535 Altaic, Tungusic, Southern, Southwest -sjp Surajpuri 85.792 25.686 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bihari -sjr Siar-Lak 152.89174 -4.62059 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Patpatar-Tolai -sjs Senhaja de Srair -4.51293 34.99924 Afro-Asiatic, Berber, Northern, Zenati, Riff -sjt Ter Saami 38.50607 67.24584 Uralic, Sami, Eastern -sju Ume Saami 18.64604 64.63829 Uralic, Sami, Southern -sjw Shawnee -96.76345 35.35397 Algic, Algonquian -ska Skagit -121.99099 48.53138 Salish, Central Salish, Lushootseed -skb Saek 104.82034 17.48292 Tai-Kadai, Kam-Tai, Tai, Northern -skc Sauk 146.75893 -6.31958 Trans-New Guinea, Finisterre-Huon, Finisterre, Erap -skd Southern Sierra Miwok -120.50708 38.2363 Miwok-Costanoan, Miwokan, Eastern Miwokan, Sierra Miwok -ske Seke 168.19662 -15.8839 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -skf Sakirabiá -62.09274 -13.05395 Tupian, Tuparí -skg Sakalava Malagasy 45.9515 -16.90793 Austronesian, Malayo-Polynesian, Greater Barito, East, Malagasy -skh Sikule 95.96357 2.69113 Austronesian, Malayo-Polynesian, Northwest Sumatra-Barrier Islands, Nias -ski Sika 122.38007 -8.67302 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -skj Seke 83.80638 28.9251 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Bodish, Gurung-Tamang, Gurungic -skk Sok 106.8398 15.1665 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, West Bahnaric, Oi-The -skl Selako 109.29268 1.1389 -skm Sakam 146.70211 -6.18726 Trans-New Guinea, Finisterre-Huon, Finisterre, Uruwa -skn Kolibugan Subanon 122.56737 7.77212 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Subanon, Eastern -sko Seko Tengah 119.8226 -2.22069 Austronesian, Malayo-Polynesian, South Sulawesi, Seko -skp Sekapan 113.56159 2.47567 Austronesian, Malayo-Polynesian, North Borneo, Melanau-Kajang, Kajang -skq Sininkere -0.78772 13.72058 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding -skr Seraiki 71.35183 30.45464 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Lahnda -sks Maia 145.09554 -4.50212 Trans-New Guinea, Madang, Croisilles, Pihom, Kaukombaran -skt Sakata 17.96686 -2.85653 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.34) -sku Sakao 167.0508 -15.07565 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, East Santo, North -skv Skou 140.90195 -2.64378 Skou, Skou-Serra-Piore, Nuclear Skou, Skou -skw Skepi Creole Dutch -58.56256 6.05191 Creole, Dutch based -skx Seko Padang 119.95888 -2.14311 Austronesian, Malayo-Polynesian, South Sulawesi, Seko -sky Sikaiana 162.73348 -8.38182 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Ellicean -skz Sekar 132.46881 -2.65849 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, North Bomberai -slb Kahumamahon Saluan 121.3 -2.748 -slc Sáliba -71.25491 4.85971 Sálivan -sld Sissala -2.38217 11.0916 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Western -sle Sholaga 78.65607 28.86326 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam, Tamil -slf Swiss-Italian Sign Language 8.79111 46.30761 Deaf sign language -slg Selungai Murut 116.48251 4.25799 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Murutic, Murut -slh Southern Puget Sound Salish -122.14073 47.26303 Salish, Central Salish, Lushootseed -sli Lower Silesian 16.485 50.918 Indo-European, Germanic, West, High German, German, Middle German, East Middle German -slj Salumá -56.5107 1.74782 Cariban, Tiriyó -slk Slovak 19.66064 48.82175 Indo-European, Slavic, West, Czech-Slovak -sll Salt-Yui 145.02097 -6.26519 Trans-New Guinea, Chimbu-Wahgi, Chimbu -slm Pangutaran Sama 120.53586 6.27167 Austronesian, Malayo-Polynesian, Greater Barito, Sama-Bajaw, Sulu-Borneo, Western Sulu Sama -sln Salinan -121.71773 37.66462 Language isolate -slp Lamaholot 122.80341 -8.36439 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -slq Salchuq 47.34872 37.03921 Altaic, Turkic, Southern, Azerbaijani -slr Salar 102.81943 35.54568 Altaic, Turkic, Southern -sls Singapore Sign Language 103.86376 1.33069 Deaf sign language -slt Sila 101.81608 21.14085 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southern -slu Selaru 130.96124 -8.18376 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Southeast Maluku, Southern -slv Slovenian 14.97454 46.06541 Indo-European, Slavic, South, Western -slw Sialum 147.57361 -6.07688 Trans-New Guinea, Finisterre-Huon, Huon, Western -slx Salampasu 23.15022 -5.44937 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Lunda (L.51) -sly Selayar 120.49606 -6.10145 Austronesian, Malayo-Polynesian, South Sulawesi, Makassar -slz Ma'ya 130.90913 -1.22329 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Raja Ampat -sma South Saami 15.34909 63.6263 Uralic, Sami, Western, Southern -smb Simbari 145.60346 -7.02259 Trans-New Guinea, Angan, Nuclear Angan -smc Som 146.65081 -6.07366 Trans-New Guinea, Finisterre-Huon, Finisterre, Uruwa -smd Sama 13.87134 -9.86931 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Kimbundu (H.22) -sme North Saami 20.12405 69.29134 Uralic, Sami, Western, Northern -smf Auwe 141.25383 -3.33662 Border, Waris -smg Simbali 151.95722 -4.88618 East New Britain, Baining -smh Samei 99.92174 24.78593 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Northern -smj Lule Saami 19.78583 66.46427 Uralic, Sami, Western, Northern -smk Bolinao 119.8527 16.30706 Austronesian, Malayo-Polynesian, Philippine, Central Luzon, Sambalic -sml Central Sama 120.12901 5.25668 Austronesian, Malayo-Polynesian, Greater Barito, Sama-Bajaw, Sulu-Borneo, Inner Sulu Sama -smm Musasa 87.53044 26.73287 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bihari -smn Inari Saami 27.86583 69.42289 Uralic, Sami, Eastern -smo Samoan -172.48244 -13.62702 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Samoan -smp Samaritan 35.44874 32.08173 Afro-Asiatic, Semitic, Central, South, Canaanite -smq Samo 142.1952 -6.15496 Trans-New Guinea, East Strickland -smr Simeulue 96.27569 2.50288 Austronesian, Malayo-Polynesian, Northwest Sumatra-Barrier Islands -sms Skolt Saami 28.66508 69.08118 Uralic, Sami, Eastern -smt Simte 93.3265 24.54438 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -smu Somray 103.1387 12.24296 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Pearic, Western, Samre -smv Samvedi 74.9104 18.30684 Indo-European, Indo-Iranian, Indo-Aryan, Southern zone, Konkani -smw Sumbawa 117.47199 -8.71919 Austronesian, Malayo-Polynesian, Bali-Sasak-Sumbawa, Sasak-Sumbawa -smx Samba 17.16583 -6.21344 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Pende (L.12) -smy Semnani 53.2868 35.5295 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Semnani -smz Simeku 155.42269 -6.23022 South Bougainville, Nasioi -sna Shona 30.5723 -18.58079 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Shona (S.10) -snb Sebuyau 110.48038 1.42104 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Ibanic -snc Sinaugoro 147.86105 -9.79791 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Central Papuan, Sinagoro-Keapara -snd Sindhi 68.45895 24.61278 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Sindhi -sne Jagoi 109.98532 1.54467 Austronesian, Malayo-Polynesian, Land Dayak, Bidayuh, Core, Western -snf Noon -16.92051 14.79201 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Cangin -sng Sanga 26.84621 -10.02359 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Luba (L.35) -snh Shinabo -62.34039 -14.37979 Panoan, Bolivian Panoan, Chákobo -sni Sensi -74.91665 -7.24999 Panoan -snj Riverain Sango 21.17331 4.32811 Creole, Ngbandi based -snk Soninke -9.56978 14.45077 Niger-Congo, Mande, Western, Northwestern, Soninke-Bobo, Soninke-Boso, Soninke -snl Sangil 125.37833 5.40229 Austronesian, Malayo-Polynesian, Philippine, Sangiric, Northern -snm Southern Ma'di 31.25 2.8735 Nilo-Saharan, Central Sudanic, East, Moru-Madi, Southern -snn Siona -75.89759 0.32107 Tucanoan, Western Tucanoan, Macaguaje -sno Snohomish -122.13777 47.93414 Salish, Central Salish, Lushootseed -snp Siane 145.24661 -6.13188 Trans-New Guinea, Kainantu-Goroka, Gorokan, Siane -snq Sangu 11.90984 -1.52694 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Shira-Punu (B.42) -snr Sihan 145.57365 -5.28029 Trans-New Guinea, Madang, Croisilles, Gum -sns South West Bay 167.47696 -16.51163 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Malekula Coastal -snu Senggi 140.77017 -3.41983 Border, Waris -snv Sa'ban 115.53411 3.48413 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Kelabitic -snw Selee 0.42458 7.17462 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Lelemi, Likpe-Santrokofi -snx Sam 145.81346 -5.55572 Trans-New Guinea, Madang, Rai Coast, Mindjim -sny Saniyo-Hiyewe 142.36939 -4.4376 Sepik, Sepik Hill, Sanio -snz Sinsauru 145.59921 -5.64336 Trans-New Guinea, Madang, Rai Coast, Evapia -soa Thai Song 99.86509 13.2136 Tai-Kadai, Kam-Tai, Tai, Southwestern -sob Sobei 138.74987 -1.86998 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Sarmi-Jayapura Bay, Sarmi -soc So 23.69065 1.25037 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Soko-Kele (C.52) -sod Songoora 26.34775 -2.21871 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Lega-Holoholo (D.24) -soe Songomeno 21.42233 -3.81041 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bushoong (C.82) -soh Aka 33.6524 11.21009 Nilo-Saharan, Eastern Sudanic, Eastern, Eastern Jebel, Aka-Kelo-Molo -soi Sonha 81.21849 28.77817 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Unclassified -soj Soi 54.59641 31.85423 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Central Iran -sok Sokoro 17.64235 11.46343 Afro-Asiatic, Chadic, East, B, B.3 -sol Solos 154.62419 -5.41042 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Nehan-North Bougainville, Solos -som Somali 47.04801 5.25933 Afro-Asiatic, Cushitic, East, Somali -soo Songo 18.49777 -4.55057 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Tiene-Yanzi (B.85) -sop Songe 25.27647 -5.71993 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, L, Songe (L.23) -soq Kanasi 149.75093 -10.16585 Trans-New Guinea, Southeast Papuan, Dagan -sor Somrai 16.67839 9.65897 Afro-Asiatic, Chadic, East, A, A.1, 1 -sos Seeku -4.58203 11.12852 Niger-Congo, Mande, Western, Northwestern, Samogo -sot Southern Sotho 28.24741 -30.3583 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Sotho-Tswana (S.33) -sou Southern Thai 99.7031 6.85668 Tai-Kadai, Kam-Tai, Tai, Southwestern -sov Sonsorol 134.56514 7.47282 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Ponapeic-Trukic, Trukic -sow Sowanda 141.08642 -3.36442 Border, Waris -sox So 12.52498 3.68257 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Makaa-Njem (A.82) -soy Miyobe 1.38662 9.94886 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Gurma -soz Temi 35.80345 -2.19303 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Temi (E.46) -spa Spanish -2.98782 40.0288 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Ibero-Romance, West Iberian, Castilian -spb Sepa 129.24344 -3.36682 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Piru Bay, East -spc Sapé -63.23631 4.9447 Language isolate -spd Saep 146.07781 -5.64812 Trans-New Guinea, Madang, Rai Coast, Yaganon -spe Sepa 144.96477 -4.27 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Schouten, Kairiru-Manam, Manam -spg Sian 113.84266 2.66154 Austronesian, Malayo-Polynesian, North Borneo, Melanau-Kajang, Kajang -spi Saponi 136.51899 -2.37997 Lakes Plain, Rasawa-Saponi -spk Sengo 142.95637 -4.02247 Sepik, Ndu -spl Selepet 147.23425 -6.03532 Trans-New Guinea, Finisterre-Huon, Huon, Western -spm Sepen 144.80885 -4.22789 Ramu-Lower Sepik, Ramu, Mikarew -spo Spokane -118.06211 47.90869 Salish, Interior, Southern, Kalispel -spp Supyire Senoufo -5.87709 11.63201 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Senufo, Suppire-Mamara -spq Loreto-Ucayali Spanish -73.65068 -4.74563 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Ibero-Romance, West Iberian, Castilian -spr Saparua 128.63857 -3.58314 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Piru Bay, East, Seram Straits, Uliase, Hatuhaha, Saparua -sps Saposa 154.73162 -5.64103 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Nehan-North Bougainville, Saposa-Tinputz -spt Spiti Bhoti 77.833 32.526 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, Western -spu Sapuan 106.84294 15.36919 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, West Bahnaric, Oi-The -spy Sabaot 34.66642 1.01297 Nilo-Saharan, Eastern Sudanic, Nilotic, Southern, Kalenjin, Elgon -sqa Shama-Sambuga 6.20275 10.43695 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Kamuku -sqh Shau 9.06674 10.275 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Jera -sqi Albanian 20.18 39.85 Indo-European, Albanian -sqm Suma 17.00927 7.0953 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Gbaya-Manza-Ngbaka -sqn Susquehannock -76.208 41.169 -sqo Sorkhei 53.21897 35.45652 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Semnani -sqq Sou 106.53974 14.687 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, West Bahnaric, Brao-Kravet -sqs Sri Lankan Sign Language 79.85696 7.10588 Deaf sign language -sqt Soqotri 53.91675 12.48924 Afro-Asiatic, Semitic, South, South Arabian -squ Squamish -123.01406 49.32306 Salish, Central Salish -sra Saruga 145.57798 -5.08824 Trans-New Guinea, Madang, Croisilles, Hanseman -srb Sora 84.19005 19.12127 Austro-Asiatic, Munda, South Munda, Koraput Munda, Sora-Juray-Gorum, Sora-Juray -src Logudorese Sardinian 9.09957 40.49001 Indo-European, Italic, Romance, Southern, Sardinian -sre Sara 109.6155 1.20403 Austronesian, Malayo-Polynesian, Land Dayak, Bakati’ -srf Nafi 146.81512 -6.43306 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, Markham, Lower, Busu -srg Sulod 122.55113 11.24728 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine -srh Sarikoli 75.14486 37.90501 Indo-European, Indo-Iranian, Iranian, Eastern, Southeastern, Pamir, Shugni-Yazgulami -sri Siriano -70.43739 0.7951 Tucanoan, Eastern Tucanoan, Desano-Siriano -srj Serawai 102.78718 -4.13516 -srk Serudung Murut 117.27931 4.39954 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Murutic, Tidong -srl Isirawa 138.59509 -1.88775 Tor-Kwerba, Greater Kwerba, Isirawa -srm Saramaccan -55.67555 4.56627 Creole, English based -srn Sranan -56.19406 5.79102 Creole, English based, Atlantic, Suriname -sro Campidanese Sardinian 9.03935 39.05656 Indo-European, Italic, Romance, Southern, Sardinian -srp Serbian 20.71963 44.33302 Indo-European, Slavic, South, Western -srq Sirionó -63.9688 -15.52979 Tupian, Tupí-Guaraní, Guarayú, Sirionó -srr Serer-Sine -16.37155 14.23328 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Senegambian, Serer -srs Sarsi -114.301 50.8822 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -srt Sauri 136.7902 -2.33349 East Geelvink Bay -sru Suruí -61.28185 -11.0989 Tupian, Mondé -srv Waray Sorsogon 124.01464 12.67953 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, Central, Warayan, Gubat -srw Serua 128.96625 -3.21229 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Southwest Maluku, Teun-Nila-Serua, Nila-Serua -srx Sirmauri 77.58368 25.03821 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Western Pahari -sry Sera 141.9508 -2.9854 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Schouten, Siau -srz Shahmirzadi 53.32002 35.77796 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Caspian -ssb Southern Sama 119.92596 5.13894 Austronesian, Malayo-Polynesian, Greater Barito, Sama-Bajaw, Sulu-Borneo, Inner Sulu Sama -ssd Siroi 145.9938 -5.52893 Trans-New Guinea, Madang, Rai Coast, Kabenau -sse Balangingi 121.18343 5.81629 Austronesian, Malayo-Polynesian, Greater Barito, Sama-Bajaw, Sulu-Borneo, Inner Sulu Sama -ssf Thao 120.92981 23.83329 Austronesian, Western Plains, Thao -ssg Seimat 145.074 -1.5297 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Western -ssh Shihhi Spoken Arabic 56.12282 25.97262 Afro-Asiatic, Semitic, Central, South, Arabic -ssi Sansi 76.822 29.373 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Western Hindi, Hindustani, Sansi -ssj Sausi 145.49195 -5.6873 Trans-New Guinea, Madang, Rai Coast, Evapia -ssk Sunam 78.45134 31.80796 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Himalayish, Kinauri -ssl Western Sisaala -2.36423 10.85614 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Western -ssm Semnam 101.05796 5.27617 Austro-Asiatic, Mon-Khmer, Aslian, Senoic -ssn Sanye 37.85681 0.55656 Afro-Asiatic, Cushitic, East, Oromo -sso Sissano 142.04893 -3.01976 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Schouten, Siau -ssp Spanish Sign Language -3.70738 40.03136 Deaf sign language -ssq So'a 121.04764 -8.6778 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -ssr Swiss-French Sign Language 6.78425 46.72252 Deaf sign language -sss Sô 105.42704 17.01621 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, West Katuic, Brou-So -sst Sinasina 145.03242 -6.08728 Trans-New Guinea, Chimbu-Wahgi, Chimbu -ssu Susuami 146.56144 -7.19275 Trans-New Guinea, Angan, Nuclear Angan -ssv Shark Bay 167.13583 -15.35492 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, East Santo, South -ssw Swati 31.46568 -26.52359 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Nguni (S.43) -ssx Samberigi 143.95093 -6.7028 Trans-New Guinea, Engan, Angal-Kewa -ssy Saho 40.10464 14.7588 Afro-Asiatic, Cushitic, East, Saho-Afar -ssz Sengseng 149.7841 -6.16474 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Southwest New Britain, Arawe-Pasismanua, Pasismanua -sta Settla 28.69228 -15.60667 Pidgin, Swahili based -stb Northern Subanen 123.58754 8.5232 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Subanon, Eastern -stc Santa Cruz 165.83507 -10.67714 -std Sentinel 92.25339 11.55297 Andamanese, South Andamanese -ste Liana-Seti 129.89879 -3.11832 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Manusela-Seti -stf Seta 141.74786 -3.42155 Torricelli, West Wapei -stg Trieng 107.51545 15.50022 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, North Bahnaric, West -sth Shelta -7.73983 53.79071 Mixed language, Irish-undocumented -sti Bulo Stieng 107.04075 11.81581 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, South Bahnaric, Stieng-Chrau -stj Matya Samo -3.25128 13.10271 Niger-Congo, Mande, Eastern, Eastern, Samo -stk Arammba 141.44504 -8.29593 South-Central Papuan, Morehead-Upper Maro, Tonda -stl Stellingwerfs 6.09112 52.89329 Indo-European, Germanic, West, Low Saxon-Low Franconian, Low Saxon -stm Setaman 141.83348 -5.31134 Trans-New Guinea, Ok-Awyu, Ok, Mountain -stn Owa 162.30467 -10.82553 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Malaita-San Cristobal, San Cristobal -sto Stoney -114.98424 51.19392 Siouan-Catawban, Siouan, Mississippi Valley-Ohio Valley Siouan, Mississippi Valley Siouan, Dakota -stp Southeastern Tepehuan -103.98322 23.15844 Uto-Aztecan, Southern Uto-Aztecan, Pimic, Tepehuan -stq Saterfriesisch 7.721 53.117 Indo-European, Germanic, West, Frisian -str Straits Salish -123.43771 48.67342 Salish, Central Salish -sts Shumashti 70.56956 34.47557 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Kunar -stt Budeh Stieng 106.69098 11.69167 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, South Bahnaric -stu Samtao 98.92674 21.70879 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Eastern Palaungic, Angkuic -stw Satawalese 147.03831 7.36084 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Ponapeic-Trukic, Trukic -sua Sulka 151.89079 -5.03471 Language isolate -sub Suku 17.77356 -5.76495 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Yaka (H.32) -suc Western Subanon 122.34101 7.79964 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Subanon -sue Suena 147.53436 -7.76339 Trans-New Guinea, Greater Binanderean, Binanderean, North Binanderean -suf Tarpia 139.97465 -2.38121 -sug Suganga 141.19955 -4.5071 Trans-New Guinea, Ok-Awyu, Ok, Mountain -suh Suba 34.13536 -0.6677 -sui Suki 141.84239 -8.04783 Trans-New Guinea, Gogodala-Suki, Suki -suj Shubi 31.06809 -2.97663 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Ruanda-Rundi (D.64) -suk Sukuma 32.87653 -3.16082 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, F, Sukuma-Nyamwezi (F.21) -sul Surigaonon 125.89586 9.14563 -sum Sumo-Mayangna -84.52658 13.01405 Misumalpan -sun Sunda 107.10636 -6.89708 Austronesian, Malayo-Polynesian, Sundanese -suq Suri 35.35252 6.04181 Nilo-Saharan, Eastern Sudanic, Eastern, Surmic, South, Southeast, Pastoral, Suri -sur Mwaghavul 8.96522 9.47205 Afro-Asiatic, Chadic, West, A, A.3, Angas Proper, 1 -sus Susu -13.28891 9.07861 Niger-Congo, Mande, Western, Central-Southwestern, Central, Susu-Yalunka -sut Subtiaba -86.91665 12.46666 Otomanguean, Western Otomanguean, Tlapantec-Manguean, Tlapantec-Subtiaba -suu Sungkai 104.45891 -4.63228 -suv Sulung 92.35574 27.65889 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Kho-Bwa -suw Sumbwa 31.94568 -3.47335 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, F, Sukuma-Nyamwezi (F.23) -suy Suyá -53.07426 -11.51782 Jean, Northern -suz Sunwar 86.24762 27.52009 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Western -sva Svan 42.59155 42.91337 Kartvelian, Svan -svb Ulau-Suain 142.84499 -3.32876 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Schouten, Siau -svc Vincentian Creole English -61.19632 13.24357 Creole, English based, Atlantic, Eastern, Southern -sve Serili 129.90062 -8.11241 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Babar, South, Masela-South Babar -svk Slovakian Sign Language 18.12475 48.04632 Deaf sign language -svr Savara 84.14137 18.73023 Dravidian, South-Central, Telugu -svs Savosavo 159.81438 -9.12853 Central Solomons -swb Comorian 44.37088 -12.21233 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Swahili (G.44) -swc Congo Swahili 27.41958 -7.2692 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Swahili (G.40) -swe Swedish 17.615 59.00805 Indo-European, Germanic, North, East Scandinavian, Danish-Swedish, Swedish -swf Sere 27.46881 4.71127 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Sere, Sere-Bviri, Ndogo-Sere -swg Swabian 7.12775 49.38788 Indo-European, Germanic, West, High German, German, Upper German, Alemannic -swh Swahili 39.3822 -6.3374 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Swahili (G.42) -swi Sui 108.01286 25.80351 Tai-Kadai, Kam-Tai, Kam-Sui -swj Sira 10.46345 -1.78084 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Shira-Punu (B.41) -swk Malawi Sena 34.99095 -16.6183 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, N, Senga-Sena (N.441) -swl Swedish Sign Language 16.11326 58.92897 Deaf sign language -swm Samosa 145.53729 -5.01391 Trans-New Guinea, Madang, Croisilles, Hanseman -swn Sawknah 15.97425 29.16 Afro-Asiatic, Berber, Eastern, Awjila-Sokna -swp Suau 150.20977 -10.66062 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, Suauic -swq Sharwa 13.56571 10.14138 Afro-Asiatic, Chadic, Biu-Mandara, A, A.8 -swr Saweru 136.29569 -1.91473 West Papuan, Yapen -sws Seluwasan 131.25029 -7.59918 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Southeast Maluku, Southern -swt Sawila 125.07769 -8.29105 Trans-New Guinea, West, Timor-Alor-Pantar, Tanglapui -swu Suwawa 123.36187 0.4907 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Gorontalo-Mongondow, Gorontalic -swv Shekhawati 75.407 27.34 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Marwari -sww Sowa 168.18653 -15.82653 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -swx Suruahá -66.31458 -6.82525 Arauan -swy Sarua 17.03098 10.59874 Afro-Asiatic, Chadic, East, A, A.1, 2 -sxb Suba 34.10 -0.96 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Logooli-Kuria (E.403) -sxe Sighu 13.12143 -0.95605 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Kele (B.202) -sxg Shixing 100.40036 28.38951 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Naic -sxm Samre 103.978 13.47899 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Pearic, Western, Samre -sxn Sangir 125.73408 3.48871 Austronesian, Malayo-Polynesian, Philippine, Sangiric, Northern -sxr Saaroa 120.71074 23.2632 Austronesian, Tsouic -sxs Sasaru 6.07531 7.06193 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, North-Central, Ghotuo-Uneme-Yekhee -sxu Upper Saxon 12.692 51.152 Indo-European, Germanic, West, High German, German, Middle German, East Middle German -sxw Saxwe Gbe 1.92015 6.58269 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe -sya Siang 114.69349 -0.38398 Austronesian, Malayo-Polynesian, Greater Barito, West, North -syb Central Subanen 123.01765 8.12701 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Subanon, Eastern -syc Syriac 41.623 37.42263 Afro-Asiatic, Semitic, Central, Aramaic, Eastern -syi Seki 9.97856 2.12326 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Kele (B.21) -syk Sukur 13.64369 10.8933 Afro-Asiatic, Chadic, Biu-Mandara, A, A.6 -syl Sylheti 92.06594 24.91648 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bengali-Assamese -sym Maya Samo -2.72732 13.18114 Niger-Congo, Mande, Eastern, Eastern, Samo -syn Senaya 51.43631 35.77764 Afro-Asiatic, Semitic, Central, Aramaic, Eastern, Central, Northeastern -syo Suoy 104.13608 11.93601 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Pearic, Western, Suoy -sys Sinyar 22.42311 11.96552 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sinyar -syw Kagate 86.16753 27.44921 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, gTsang -sza Semelai 102.8062 2.82799 Austro-Asiatic, Mon-Khmer, Aslian, South Aslian -szb Ngalum 140.57094 -4.86563 Trans-New Guinea, Ok-Awyu, Ok, Ngalum -szc Semaq Beri 102.81572 4.1217 Austro-Asiatic, Mon-Khmer, Aslian, South Aslian -szd Seru 112.13325 1.73885 Austronesian, Malayo-Polynesian, North Borneo, Melanau-Kajang, Melanau -sze Seze 34.64486 9.50764 Afro-Asiatic, Omotic, North, Mao, West -szg Sengele 17.2965 -1.92256 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.33) -szk Sizaki 33.86995 -1.9064 -szn Sula 125.9656 -2.30765 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, Sula -szp Suabo 132.15658 -2.07971 Trans-New Guinea, South Bird’s Head, Inanwatan -szv Isu 9.36535 3.96758 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Duala (A.23) -szw Sawai 128.08564 0.51111 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, South Halmahera, Southeast -taa Lower Tanana -149.45142 64.88341 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -tab Tabassaran 47.83791 42.01976 North Caucasian, East Caucasian, Lezgic, Nuclear Lezgic, East Lezgic -tac Lowland Tarahumara -107.85428 27.46229 Uto-Aztecan, Southern Uto-Aztecan, Taracahitic, Tarahumaran, Tarahumara -tad Tause 136.89869 -2.8406 Lakes Plain, Tariku, West -tae Tariano -68.50111 0.21359 Maipurean, Northern, Upper Amazon, Eastern Nawiki -taf Tapirapé -50.54379 -10.53729 Tupian, Tupí-Guaraní, Tenetehara -tag Tagoi 30.93062 12.03457 Niger-Congo, Kordofanian, Rashad -tah Tahitian -149.37601 -17.64783 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, East, Central, Tahitic -taj Eastern Tamang 85.83794 27.53702 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Bodish, Gurung-Tamang, Tamang -tak Tala 9.85457 10.23301 Afro-Asiatic, Chadic, West, B, B.3, Guruntum -tal Tal 9.50774 9.15354 Afro-Asiatic, Chadic, West, A, A.3, Angas Proper, 2 -tam Tamil 78.47141 10.87701 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam, Tamil -tan Tangale 11.32278 9.75444 Afro-Asiatic, Chadic, West, A, A.2, Tangale, Tangale Proper -tao Yami 121.54423 22.055 Austronesian, Malayo-Polynesian, Philippine, Bashiic, Yami -tap Taabwa 29.30718 -6.7963 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Bemba (M.41) -taq Tamasheq -1.15972 19.88097 Afro-Asiatic, Berber, Tamasheq, Southern -tar Central Tarahumara -107.15356 27.56478 Uto-Aztecan, Southern Uto-Aztecan, Taracahitic, Tarahumaran, Tarahumara -tas Tay Boi 108.25717 13.8962 Pidgin, French based -tat Tatar 50.77265 55.37514 Altaic, Turkic, Western, Uralian -tau Upper Tanana -141.87333 63.01065 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -tav Tatuyo -70.53265 0.55582 Tucanoan, Eastern Tucanoan, Carapano -taw Tai 144.65989 -5.29223 Trans-New Guinea, Madang, Kalam-Kobon -tax Tamki 18.22955 11.49256 Afro-Asiatic, Chadic, East, B, B.3 -tay Atayal 121.38819 24.52089 Austronesian, Atayalic -taz Tocho 30.15669 10.88282 Niger-Congo, Kordofanian, Talodi, Talodi Proper, Tocho -tba Tubarão -60.53527 -12.66946 Language isolate -tbb Tapeba -40.33333 -4.99999 Unclassified -tbc Takia 145.97454 -4.69057 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Bel, Nuclear Bel, Northern -tbd Kaki Ae 145.81569 -7.9946 Trans-New Guinea, Eleman, Tate -tbe Tanimbili 166.50726 -11.29748 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Temotu, Utupua-Vanikoro, Utupua -tbf Mandara 151.95641 -2.7828 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, Lavongai-Nalik -tbg North Tairora 145.95929 -6.51563 Trans-New Guinea, Kainantu-Goroka, Kainantu, Tairora -tbh Thurawal 147.47512 -35.28532 Australian, Pama-Nyungan, Yuin -tbi Gaam 33.97968 11.46742 Nilo-Saharan, Eastern Sudanic, Eastern, Eastern Jebel, Gaam -tbj Tiang 150.93502 -2.95505 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, Lavongai-Nalik -tbk Calamian Tagbanwa 120.0938 12.07158 Austronesian, Malayo-Polynesian, Philippine, Kalamian -tbl Tboli 124.53755 6.20377 Austronesian, Malayo-Polynesian, Philippine, Bilic, Tboli -tbm Tagbu 26.44754 4.6852 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Sere, Sere-Bviri, Ndogo-Sere -tbn Barro Negro Tunebo -72.04398 6.12622 Chibchan, Chibchan B, Eastern Chibchan, Colombian, Southern Colombian, Cundicocuyese -tbo Tawala 150.64383 -10.3115 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Are-Taupota, Taupota -tbp Taworta 139.06064 -3.43455 Lakes Plain, East -tbr Tumtum 30.4128 10.63777 Nilo-Saharan, Kadugli-Krongo -tbs Tanguat 144.92706 -4.57282 Ramu-Lower Sepik, Ramu, Tanggu -tbt Tembo 28.57779 -1.91863 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Shi-Hunde (D.531) -tbu Tubar -110.99999 29.99999 Uto-Aztecan, Southern Uto-Aztecan, Taracahitic -tbv Tobo 147.37562 -6.36263 Trans-New Guinea, Finisterre-Huon, Huon, Western -tbw Tagbanwa 118.49736 9.54263 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Palawanic -tbx Kapin 146.52882 -7.05732 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, South, Hote-Buang, Buang -tby Tabaru 127.63279 1.46563 West Papuan, North Halmahera, Galela-Loloda -tbz Ditammari 1.33444 10.1856 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Eastern -tca Ticuna -68.59012 -3.26422 Language isolate -tcb Tanacross -143.3381 63.40459 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -tcc Datooga 35.23207 -4.4131 Nilo-Saharan, Eastern Sudanic, Nilotic, Southern, Tatoga -tcd Tafi 0.39875 6.79522 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Avatime-Nyangbo -tce Southern Tutchone -136.57324 60.78227 Eyak-Athabaskan, Athabaskan, Northern Athabaskan, Tuchone -tcf Malinaltepec Tlapanec -98.63221 17.21223 Otomanguean, Western Otomanguean, Tlapantec-Manguean, Tlapantec-Subtiaba, Tlapantec -tcg Tamagario 138.89162 -6.64493 Trans-New Guinea, Kayagar -tch Turks and Caicos Creole English -71.74512 21.80781 Creole, English based, Atlantic, Eastern -tci Wára 141.52007 -8.64917 South-Central Papuan, Morehead-Upper Maro, Tonda -tck Tchitchege 13.60008 -2.03393 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Teke (B.701) -tcl Taman 95.11708 25.15664 Sino-Tibetan, Tibeto-Burman, Sal, Jingpho-Luish, Jingpho -tcm Tanahmerah 133.17979 -2.5523 Trans-New Guinea, Tanah Merah -tcn Tichurong 83.46725 28.95064 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, gTsang -tco Taungyo 96.74008 20.41039 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Burmish, Southern -tcp Tawr Chin 94.09572 22.49964 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Central -tcq Kaiy 138.16077 -2.94448 Lakes Plain, Tariku, East -tcs Torres Strait Creole 142.692 -11.066 Creole, English based, Pacific -tct T'en 107.30906 25.67173 Tai-Kadai, Kam-Tai, Kam-Sui -tcu Southeastern Tarahumara -106.70616 26.72824 Uto-Aztecan, Southern Uto-Aztecan, Taracahitic, Tarahumaran, Tarahumara -tcw Totonac, Tecpatlán -98.20619 19.04129 Totonacan, Totonac -tcx Toda 77.0168 11.41841 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Toda-Kota -tcy Tulu 75.26509 12.81143 Dravidian, Southern, Tulu -tcz Thado Chin 93.88243 24.27033 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -tda Tagdal 6.83992 16.19078 Mixed language, Songhay-Berber -tdb Panchpargania 85.79659 23.44696 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bihari -tdc Emberá-Tadó -76.32548 5.2824 Chocoan, Emberá, Southern Emberá -tdd Tai Nüa 98.10733 24.38344 Tai-Kadai, Kam-Tai, Tai, Southwestern -tdf Talieng 106.10205 16.52875 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, North Bahnaric, West -tdg Western Tamang 85.05628 28.02386 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Bodish, Gurung-Tamang, Tamang -tdh Thulung 86.68349 27.53079 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Western -tdi Tomadino 121.94366 -2.56493 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Bungku-Tolaki, Western, Interior -tdj Tajio 120.00958 -0.31553 Austronesian, Malayo-Polynesian, Celebic, Tomini-Tolitoli, Tomini, Southern -tdk Tambas 9.32836 9.36039 Afro-Asiatic, Chadic, West, A, A.4, Fyer -tdl Sur 9.49007 9.47958 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Tarokoid -tdn Tondano 124.96386 1.28024 Austronesian, Malayo-Polynesian, Philippine, Minahasan, North, Northeast -tdo Teme 11.38936 8.74437 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Mumuye-Yandang, Mumuye -tdq Tita 10.12723 8.19382 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Central, Jukun-Mbembe-Wurbo, Wurbo -tdr Todrah 108.11401 14.5672 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, North Bahnaric, West, Sedang-Todrah, Todrah-Monom -tds Doutai 138.21961 -3.24832 Lakes Plain, Tariku, East -tdt Tetun Dili 125.58265 -8.58405 Creole, Tetun based -tdu Tempasuk Dusun 116.54476 6.36389 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Dusun, Central -tdv Toro 8.58194 9.09143 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau -tdx Tandroy-Mahafaly Malagasy 45.15152 -24.80155 Austronesian, Malayo-Polynesian, Greater Barito, East, Malagasy -tdy Tadyawan 121.30537 13.02115 Austronesian, Malayo-Polynesian, Philippine, North Mangyan -tea Temiar 101.43761 4.974 Austro-Asiatic, Mon-Khmer, Aslian, Senoic -teb Tetete -76.5761 -0.02668 Tucanoan, Western Tucanoan -ted Tepo Krumen -7.25112 4.90629 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Grebo, Ivorian -tee Huehuetla Tepehua -97.93472 20.61888 Totonacan, Tepehua -tef Teressa 93.12972 8.23716 Austro-Asiatic, Mon-Khmer, Nicobar, Chowra-Teressa -teg Teke-Tege 14.86636 -1.61688 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Teke (B.71) -teh Tehuelche -68.32346 -47.57963 Chon -tei Torricelli 142.62226 -3.45292 Torricelli, Kombio-Arapesh, Kombio -tek Ibali Teke 16.65287 -3.69256 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Teke (B.75) -tel Telugu 80.95603 16.60602 Dravidian, South-Central, Telugu -tem Themne -12.33307 8.90294 Niger-Congo, Atlantic-Congo, Atlantic, Southern, Mel, Temne, Temne-Banta -ten Tama -75.24999 1.03332 Tucanoan, Western Tucanoan -teo Teso 33.61811 1.80145 Nilo-Saharan, Eastern Sudanic, Nilotic, Eastern, Lotuxo-Teso, Teso-Turkana, Teso -tep Tepecano -101.72887 19.2343 Uto-Aztecan, Southern Uto-Aztecan, Pimic -teq Temein 29.3898 11.8275 Nilo-Saharan, Eastern Sudanic, Western, Temein -ter Terêna -56.03292 -20.66136 Maipurean, Southern, Southern Outlier, Terena -tes Tengger 113.03667 -7.89069 Austronesian, Malayo-Polynesian, Javanese -tet Tetun 124.93922 -9.32104 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor -teu Soo 34.75954 2.58367 Nilo-Saharan, Eastern Sudanic, Kuliak, Ngangea-So -tev Teor 131.737 -4.74159 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Teor-Kur -tew Tewa -106.12405 35.90532 Kiowa-Tanoan -tex Tennet 32.63072 4.91107 Nilo-Saharan, Eastern Sudanic, Eastern, Surmic, South, Southwest, Didinga-Murle, Tennet -tey Tulishi 29.10797 11.45068 Nilo-Saharan, Kadugli-Krongo -tfi Tofin Gbe 2.43226 6.51774 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe, Aja -tfn Tanaina -150.75926 60.47124 Eyak-Athabaskan, Athabaskan, Northern Athabaskan -tfo Tefaro 136.75309 -2.35042 East Geelvink Bay -tfr Teribe -82.661 9.20828 Chibchan, Chibchan A -tft Ternate 127.33347 0.80562 West Papuan, North Halmahera, Ternate-Tidore -tga Sagalla 38.50373 -3.60164 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Nyika-Taita (E.741) -tgb Tebilung 116.67019 6.56097 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Dusun -tgc Tigak 150.89272 -2.70951 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, Lavongai-Nalik -tgd Ciwogai 9.88558 10.88806 Afro-Asiatic, Chadic, West, B, B.2 -tge Eastern Gorkha Tamang 84.94506 28.22132 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Bodish, Gurung-Tamang, Tamang -tgf Chalikha 91.26196 27.32312 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, East Bodish, Bumthang -tgg Tangga 153.61121 -4.08824 -tgh Tobagonian Creole English -60.67915 11.23879 Creole, English based, Atlantic, Eastern, Southern -tgi Lawunuia 155.12887 -6.15201 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Piva-Banoni -tgk Tajiki 69.81948 38.56749 Indo-European, Indo-Iranian, Iranian, Western, Southwestern, Persian -tgl Tagalog 121.74695 14.06 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Tagalog -tgo Sudest 153.48807 -11.52292 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Kilivila-Louisiades, Nimoa-Sudest -tgp Tangoa 166.95814 -15.56432 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -tgq Tring 110.03632 1.335 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Kelabitic -tgr Tareng 107.29597 15.49282 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, East Katuic, Katu-Pacoh -tgs Nume 167.56211 -14.20897 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -tgt Central Tagbanwa 119.33825 10.65188 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Palawanic -tgu Tanggu 144.91557 -4.4621 Ramu-Lower Sepik, Ramu, Tanggu -tgv Tingui-Boto -37.53797 -11.58159 Unclassified -tgw Tagwana Senoufo -5.17372 8.67053 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Senufo, Tagwana-Djimini -tgx Tagish -134.79868 60.24197 Eyak-Athabaskan, Athabaskan, Northern Athabaskan, Tahltan -tgy Togoyo 34.20235 5.29482 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Sere, Indri-Togoyo -tha Thai 100.75985 14.49256 Tai-Kadai, Kam-Tai, Tai, Southwestern -thc Tai Hang Tong 104.22485 19.12821 Tai-Kadai, Kam-Tai, Tai, Southwestern -thd Thayore 142.03413 -14.8159 Australian, Pama-Nyungan, Paman, Western Pama -the Chitwania Tharu 84.40825 27.58247 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Unclassified -thf Thangmi 86.18236 27.68775 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Central Himalayan, Thangmi-Baraamu -thh Northern Tarahumara -107.65788 28.60767 Uto-Aztecan, Southern Uto-Aztecan, Taracahitic, Tarahumaran, Tarahumara -thi Tai Long 102.4067 20.04497 Tai-Kadai, Kam-Tai, Tai, Southwestern -thk Tharaka 38.07303 -0.13221 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Kikuyu-Kamba (E.54) -thl Dangaura Tharu 82.10117 28.02089 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Unclassified -thm Aheu 103.44551 17.29401 Austro-Asiatic, Mon-Khmer, Viet-Muong, Thavung -thp Thompson -120.19267 50.16675 Salish, Interior, Northern -thq Kochila Tharu 87.08012 26.74423 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Unclassified -thr Rana Tharu 80.47576 28.70666 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Unclassified -ths Thakali 83.64661 28.70139 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Bodish, Gurung-Tamang, Gurungic -tht Tahltan -130.05238 58.44982 Eyak-Athabaskan, Athabaskan, Northern Athabaskan, Tahltan -thu Thuri 26.48576 8.72567 Nilo-Saharan, Eastern Sudanic, Nilotic, Western, Luo, Northern, Thuri -thv Tahaggart Tamahaq 6.75532 22.75324 Afro-Asiatic, Berber, Tamasheq, Northern -thw Thudam 87.61887 27.76778 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Unclassified -thx The 106.66702 14.67325 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, West Bahnaric, Oi-The -thy Tha 11.17512 9.21338 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Jen -thz Tayart Tamajeq 7.6743 16.92319 Afro-Asiatic, Berber, Tamasheq, Southern -tia Tidikelt Tamazight 1.86218 27.01903 Afro-Asiatic, Berber, Northern, Zenati, Tidikelt -tic Tira 30.8092 11.09635 Niger-Congo, Kordofanian, Heiban, West-Central, Western -tid Tidong 117.20837 3.44462 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Murutic, Tidong -tie Tingal 31.12441 12.17974 -tif Tifal 141.2934 -5.03899 Trans-New Guinea, Ok-Awyu, Ok, Mountain -tig Tigré 38.42528 16.75997 Afro-Asiatic, Semitic, South, Ethiopian, North -tih Timugon Murut 115.82568 5.1796 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Dayic, Murutic, Murut -tii Tiene 16.47651 -2.84694 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Tiene-Yanzi (B.81) -tij Tilung 86.46935 27.22028 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Western -tik Tikar 11.61045 5.87004 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tikar -til Tillamook -122.76948 44.09239 Salish -tim Timbe 147.05718 -6.06875 Trans-New Guinea, Finisterre-Huon, Huon, Western -tin Tindi 45.92268 42.33164 North Caucasian, East Caucasian, Avar-Andic, Andic -tio Teop 154.97081 -5.67474 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Nehan-North Bougainville, Saposa-Tinputz -tip Trimuris 138.0273 -2.15863 Tor-Kwerba, Greater Kwerba, Kwerba, Nuclear -tiq Tiéfo -4.52619 10.71843 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Tiefo -tir Tigrigna 38.13536 14.07474 Afro-Asiatic, Semitic, South, Ethiopian, North -tis Masadiit Itneg 120.82945 17.4501 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Kalinga-Itneg, Itneg -tit Tinigua -73.768 2.716 Tiniguan -tiu Adasen Itneg 120.90528 17.81873 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Northern Cordilleran, Cagayan Valley, Isnag -tiv Tiv 8.90994 7.29731 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tivoid -tiw Tiwi 130.94911 -11.63078 Australian, Tiwian -tix Southern Tiwa -106.66059 34.7873 Kiowa-Tanoan, Tanoan -tiy Tiruray 124.12673 6.77321 Austronesian, Malayo-Polynesian, Philippine, Bilic -tiz Tai Hongjin 102.58554 23.3088 Tai-Kadai, Kam-Tai, Tai, Southwestern -tja Tajuasohn -8.98904 5.50685 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Klao -tjg Tunjung 115.88324 -0.29048 Austronesian, Malayo-Polynesian, Greater Barito, Barito-Mahakam -tji Northern Tujia 109.75865 29.3016 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Tujia -tjn Tonjon -4.40666 8.357 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Jogo-Jeri, Jogo -tjo Temacine Tamazight 6.06562 33.34886 Afro-Asiatic, Berber, Northern, Zenati, Mzab-Wargla -tjs Southern Tujia 110.02242 28.23683 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Tujia -tju Tjurruru 118.267 -22.842 Australian, Pama-Nyungan, South-West, Inland Ngayarda -tka Truka -38.99999 -8.49999 Unclassified -tkb Buksa 79.42331 29.0853 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Unclassified -tkd Tukudede 125.2828 -8.6788 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor -tke Takwane 36.24898 -16.22762 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Makhuwa (P.31) -tkf Tukumanfed -61.42 -11.518 Tupian, Tupí-Guaraní, Kawahib, Parintintin -tkk Takpa 88.42538 28.16517 -tkl Tokelauan -171.85391 -9.19298 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Tokelauan -tkm Takelma -123.452 42.423 -tkn Toku-No-Shima 128.96117 27.77365 Japonic, Ryukyuan, Amami-Okinawan, Northern Amami-Okinawan -tkp Anuta 168.8223 -12.27661 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Futunic -tkq Tee 7.37553 4.73213 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Ogoni, East -tkr Tsakhur 46.88585 41.59156 North Caucasian, East Caucasian, Lezgic, Nuclear Lezgic, West Lezgic -tks Takestani 47.99538 38.19713 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Talysh -tkt Kathoriya Tharu 80.89308 28.58666 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Unclassified -tku Totonac, Upper Necaxa -98.05606 20.18340 Totonacan, Totonac -tkw Teanu 166.86796 -11.6752 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Temotu, Utupua-Vanikoro -tkx Tangko 140.26914 -5.13343 Trans-New Guinea, Ok-Awyu, Ok, Tangko -tkz Takua 108.0455 15.42987 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, North Bahnaric, East, Takua -tla Southwestern Tepehuan -104.68847 23.25534 Uto-Aztecan, Southern Uto-Aztecan, Pimic, Tepehuan -tlb Tobelo 128.15361 1.0946 West Papuan, North Halmahera, Galela-Loloda -tlc Yecuatla Totonac -96.87408 20.1765 Totonacan, Totonac -tld Talaud 126.79467 4.11846 Austronesian, Malayo-Polynesian, Philippine, Sangiric, Northern -tle Talai 35.51011 0.89614 -tlf Telefol 141.73053 -5.07444 Trans-New Guinea, Ok-Awyu, Ok, Mountain -tlg Tofanma 140.59074 -3.74322 Unclassified -tli Tlingit -135.65361 59.0553 Eyak-Athabaskan, Tlingit -tlj Talinga-Bwisi 30.03609 0.70122 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Nyoro-Ganda (E.102) -tlk Taloki 122.87168 -4.6478 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Bungku-Tolaki, Eastern, East Coast, Kulisusu -tll Tetela 24.54596 -4.29314 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Tetela (C.71) -tlm Tolomako 166.7723 -15.15686 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -tln Talondo' 119.35023 -2.4525 Austronesian, Malayo-Polynesian, South Sulawesi, Northern, Toraja-Sa’dan -tlo Talodi 30.48154 10.64529 Niger-Congo, Kordofanian, Talodi, Talodi Proper, Jomang -tlp Filomena Mata-Coahuitlan Totonac -97.59312 20.14152 Totonacan, Totonac -tlq Tai Loi 100.91936 21.53081 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Eastern Palaungic, Angkuic -tlr Talise 160.231 -9.76764 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Southeast Solomonic, Gela-Guadalcanal, Guadalcanal -tls Tambotalo 167.13905 -15.50043 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -tlt Teluti 129.66284 -3.2969 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Piru Bay, East -tlu Tulehu 128.31046 -3.57785 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Piru Bay, East, Seram Straits, Ambon -tlv Taliabu 124.86921 -1.79516 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, Sula, Taliabo -tlw South Wemale 128.54706 -3.29102 -tlx Khehek 146.74577 -2.06626 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, West -tly Talysh 48.59481 38.7389 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Talysh -tlz Toala' 120.40602 -2.60769 -tma Tama 21.99515 14.33195 Nilo-Saharan, Eastern Sudanic, Western, Tama, Tama-Sungor -tmb Katbol 167.48414 -16.27015 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Malekula Interior, Malekula Central -tmc Tumak 17.42159 9.43747 Afro-Asiatic, Chadic, East, A, A.1, 1 -tmd Haruai 144.3375 -5.09522 Piawi -tme Tremembé -40.20404 -3.09359 Unclassified -tmf Toba-Maskoy -58.01584 -21.54741 Mascoyan, Mascoy -tmg Ternateno 127.56682 0.93149 Creole, Portuguese based -tmi Tutuba 167.21849 -15.49131 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -tmj Samarokena 138.3397 -1.84878 Tor-Kwerba, Greater Kwerba, Kwerba, West Coast -tmk Northwestern Tamang 85.16479 27.9087 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Bodish, Gurung-Tamang, Tamang -tml Tamnim Citak 139.23298 -5.57962 Trans-New Guinea, Asmat-Kamoro, Asmat -tmm Tai Thanh 104.93267 19.66003 Tai-Kadai, Kam-Tai, Tai, Southwestern -tmn Taman 112.97535 1.00003 Austronesian, Malayo-Polynesian, South Sulawesi, Bugis, Tamanic -tmo Temoq 102.91576 3.11331 Austro-Asiatic, Mon-Khmer, Aslian, South Aslian -tmp Tai Mène 104.72923 18.33998 Tai-Kadai, Kam-Tai, Tai, Northern -tmq Tumleo 142.34587 -3.14955 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Schouten, Siau -tmr Jewish Babylonian Aramaic 44.245 32.273 Afro-Asiatic, Semitic, Central, Aramaic, Eastern, Central, Northeastern -tms Tima 29.16324 11.71758 Niger-Congo, Kordofanian, Katla -tmt Tasmate 166.6642 -15.07915 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -tmu Iau 137.68981 -3.14537 Lakes Plain, Tariku, Central -tmv Tembo 20.36849 2.0246 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.371) -tmw Temuan 101.90581 2.78176 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -tmx Tomyang 87.25252 27.58711 -tmy Tami 147.73151 -6.70017 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Tami -tmz Tamanaku -65.883 2.765 Cariban, Central, Mapoyo-Yavarana -tna Tacana -68.04056 -13.39249 Tacanan, Tacana -tnb Western Tunebo -72.65068 6.90704 Chibchan, Chibchan B, Eastern Chibchan, Colombian, Southern Colombian, Cundicocuyese -tnc Tanimuca-Retuarã -70.38531 -0.59023 Tucanoan, Western Tucanoan -tnd Angosturas Tunebo -71.92117 6.54198 Chibchan, Chibchan B, Eastern Chibchan, Colombian, Southern Colombian, Cundicocuyese -tne Tinoc Kallahan 120.99378 16.78986 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Southern Cordilleran, West Southern Cordilleran, Nuclear Southern Cordilleran, Kallahan -tnf Tangshewi 71.25419 38.22673 -tng Tobanga 16.20899 9.8289 Afro-Asiatic, Chadic, East, A, A.2, 2 -tnh Maiani 145.23912 -4.55066 Trans-New Guinea, Madang, Croisilles, Pihom, Kaukombaran -tni Tandia 134.53168 -2.84228 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Tandia -tnj Tanjong 112.38262 2.03781 -tnk Kwamera 169.44199 -19.59545 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, South Vanuatu, Tanna -tnl Lenakel 169.26061 -19.4763 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, South Vanuatu, Tanna -tnm Tabla 140.39629 -2.45368 East Bird’s Head-Sentani, Sentani, Sentani Proper -tnn North Tanna 169.30251 -19.37332 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, South Vanuatu, Tanna -tno Toromono -67.39312 -13.30281 Tacanan, Chama -tnp Whitesands 169.38113 -19.50195 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, South Vanuatu, Tanna -tnq Taino -77.41868 25.05418 Maipurean, Northern, Maritime, Ta-Maipurean -tnr Budik -12.47963 12.75312 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Eastern Senegal-Guinea, Tenda -tns Tenis 150.92336 -2.71805 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, St. Matthias -tnt Tontemboan 124.65429 1.24813 Austronesian, Malayo-Polynesian, Philippine, Minahasan, North -tnu Tay Khang 104.36727 18.66237 Tai-Kadai, Kam-Tai, Tai -tnv Tangchangya 92.50734 22.31851 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bengali-Assamese -tnw Tonsawang 124.6516 1.0539 Austronesian, Malayo-Polynesian, Philippine, Minahasan -tnx Tanema 160.94204 -8.73605 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Temotu, Utupua-Vanikoro -tny Tongwe 30.08074 -6.43051 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, F, Tongwe-Bende (F.11) -tnz Tonga 99.97463 7.09112 Austro-Asiatic, Mon-Khmer, Aslian, North Aslian, Tonga -tob Toba -59.14285 -26.46903 Guaykuruan, Southern -toc Coyutla Totonac -97.68515 20.54467 Totonacan, Totonac -tod Toma -9.23439 8.20383 Niger-Congo, Mande, Western, Central-Southwestern, Southwestern, Mende-Loma, Loma -toe Tomedes -69.66665 3.24999 Maipurean, Unclassified -tof Gizrra 142.80391 -9.183 Eastern Trans-Fly -tog Tonga 34.06129 -12.08164 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, N, Manda (N.15) -toh Gitonga 35.15768 -23.79642 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Copi (S.62) -toi Tonga 26.63571 -16.90839 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Lenje-Tonga (M.64) -toj Tojolabal -91.78248 16.25715 Mayan, Yucatecan-Core Mayan, Q’anjob’alan-Chujean, Chujean -tol Tolowa -124.09955 41.9192 Eyak-Athabaskan, Athabaskan, Pacific Coast Athabaskan, Oregon Athabaskan, Tolowa-Chetco -tom Tombulu 124.75394 1.39715 Austronesian, Malayo-Polynesian, Philippine, Minahasan, North, Northeast -ton Tongan -175.196 -21.19511 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Tongic -too Xicotepec de Juárez Totonac -97.7463 20.65321 Totonacan, Totonac -top Papantla Totonac -97.25539 20.56709 Totonacan, Totonac -toq Toposa 34.21591 5.15904 Nilo-Saharan, Eastern Sudanic, Nilotic, Eastern, Lotuxo-Teso, Teso-Turkana, Turkana -tor Togbo-Vara Banda 19.61383 4.96476 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Banda, Central, Central Core, Togbo-Vara -tos Highland Totonac -97.61589 20.37979 Totonacan, Totonac -tot Patla-Chicontla Totonac -97.84358 20.2957 -tou Tho 105.36278 19.3563 Austro-Asiatic, Mon-Khmer, Viet-Muong, Cuoi -tov Upper Taromi 48.73009 36.59976 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Talysh -tow Jemez -106.7662 35.59942 Kiowa-Tanoan -tox Tobian 134.2633 7.03081 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Ponapeic-Trukic, Trukic -toy Topoiyo 119.31384 -2.06702 Austronesian, Malayo-Polynesian, Celebic, Kaili-Pamona, Northern, Kaili -toz To 15.29023 7.59244 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Mbum, Unclassified -tpa Taupota 150.37277 -10.2275 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Are-Taupota, Taupota -tpc Azoyú Tlapanec -98.52413 16.75845 Otomanguean, Western Otomanguean, Tlapantec-Manguean, Tlapantec-Subtiaba, Tlapantec -tpe Tippera 92.07473 23.58637 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Bodo-Koch, Bodo-Garo, Bodo -tpg Kula 125.00419 -8.2384 Trans-New Guinea, West, Timor-Alor-Pantar, Tanglapui -tpi Tok Pisin 147.3031 -9.41971 Creole, English based, Pacific -tpj Tapieté -61.6792 -19.8648 Tupian, Tupí-Guaraní, Guaraní, Guaraní -tpk Tupinikin -40.41666 -18.99999 Tupian, Tupí-Guaraní, Tupí, Tupí -tpl Tlacoapa Tlapanec -98.80129 17.32616 Otomanguean, Western Otomanguean, Tlapantec-Manguean, Tlapantec-Subtiaba, Tlapantec -tpm Tampulma -1.35467 9.75577 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Western -tpn Tupinamba -63.24999 -8.16666 -tpo Tai Pao 104.65808 18.55623 Tai-Kadai, Kam-Tai, Tai -tpp Pisaflores Tepehua -98.03053 20.70392 Totonacan, Tepehua -tpq Tukpa 78.16268 31.4925 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Himalayish, Kinauri -tpr Tuparí -62.2544 -11.88837 Tupian, Tuparí -tpt Tlachichilco Tepehua -98.19468 20.70402 Totonacan, Tepehua -tpu Tampuan 107.24544 13.56447 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, Central Bahnaric -tpv Tanapag 145.75662 15.23702 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Ponapeic-Trukic, Trukic -tpw Tupi -46.636 -23.534 -tpx Acatepec Tlapanec -99.06022 17.10338 Otomanguean, Western Otomanguean, Tlapantec-Manguean, Tlapantec-Subtiaba, Tlapantec -tpy Trumaí -53.5717 -11.81195 Language isolate -tpz Tinputz 154.97241 -5.58358 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Nehan-North Bougainville, Saposa-Tinputz -tqb Tembé -48.23594 -2.6123 Tupian, Tupí-Guaraní, Tenetehara, Tenetehara -tql Lehali 167.33244 -13.5043 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -tqm Turumsa 142.5676 -7.93238 Trans-New Guinea, Bosavi -tqn Tenino -121.43977 44.79848 Sahaptian, Sahaptin -tqo Toaripi 146.20608 -8.07231 Trans-New Guinea, Eleman, Nuclear Eleman, Eastern -tqp Tomoip 151.82777 -5.30721 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, Tomoip -tqq Tunni 43.68471 1.06167 Afro-Asiatic, Cushitic, East, Somali -tqr Torona 30.34102 11.12536 Niger-Congo, Kordofanian, Talodi, Talodi Proper, Tocho -tqt Ozumatlán Totonac -97.94857 20.45744 Totonacan, Totonac -tqu Touo 157.29578 -8.58405 Central Solomons -tqw Tonkawa -100.65509 36.2903 Language isolate -tra Tirahi 69.59007 34.17924 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Kohistani -trb Terebu 143.83467 -3.68721 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Schouten, Kairiru-Manam, Kairiru -trc Copala Triqui -97.98262 17.15414 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Trique -trd Turi 84.47124 22.01224 Austro-Asiatic, Munda, North Munda, Kherwari, Santali -tre East Tarangan 134.2884 -6.76213 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Aru -trf Trinidadian Creole English -61.41713 10.4208 Creole, English based, Atlantic, Eastern, Southern -trg Lishan Didan 34.82811 32.01438 Afro-Asiatic, Semitic, Central, Aramaic, Eastern, Central, Northeastern -trh Turaka 149.56671 -9.83576 Trans-New Guinea, Southeast Papuan, Dagan -tri Trió -55.6555 3.16414 Cariban, Tiriyó, Tiriyó -trj Toram 19.52541 11.20271 Afro-Asiatic, Chadic, East, B, B.1, 2 -trl Traveller Scottish -4.38593 55.98292 Unclassified -trm Tregami 70.96173 34.75482 Indo-European, Indo-Iranian, Indo-Aryan, Nuristani -trn Trinitario -65.40956 -15.33313 Maipurean, Southern, Southern Outlier, Mojo, Mojo -tro Tarao Naga 94.17031 24.40033 Sino-Tibetan, Tibeto-Burman, Unclassified -trp Kok Borok 91.55231 23.3317 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Bodo-Koch, Bodo-Garo, Bodo -trq San Martín Itunyoso Triqui -97.92019 17.24284 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Trique -trr Taushiro -75.5603 -3.22497 Language isolate -trs Chicahuaxtla Triqui -97.85471 17.16278 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Trique -trt Tunggare 135.55117 -3.37462 East Geelvink Bay -tru Turoyo 41.83382 37.38703 Afro-Asiatic, Semitic, Central, Aramaic, Eastern, Central, Northwestern -trv Taroko 121.35776 23.90324 Austronesian, Atayalic -trw Torwali 72.53165 35.31014 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Kohistani -trx Tringgus 109.94987 1.4313 Austronesian, Malayo-Polynesian, Land Dayak, Bidayuh, Core, Sembaan -try Turung 92.26757 26.34412 Sino-Tibetan, Tibeto-Burman, Sal, Jingpho-Luish, Jingpho -trz Torá -61.74165 -6.19532 Chapacuran, Itene -tsa Tsaangi 12.59587 -2.85267 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Nzebi (B.53) -tsb Tsamai 36.9139 5.3097 Afro-Asiatic, Cushitic, East, Dullay -tsc Tswa 34.33359 -23.01304 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Tswa-Rhonga (S.51) -tsd Tsakonian 22.73411 37.14054 Indo-European, Greek, Doric -tse Tunisian Sign Language 10.03348 36.49562 Deaf sign language -tsf Southwestern Tamang 84.90357 27.57218 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Bodish, Gurung-Tamang, Tamang -tsg Tausug 121.14904 6.00247 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, South, Butuan-Tausug -tsh Tsuvan 13.62801 10.15511 Afro-Asiatic, Chadic, Biu-Mandara, A, A.8 -tsi Tsimshian -130.38016 54.40812 Tsimshian -tsj Tshangla 91.3355 27.15114 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish -tsk Tseku 90.36254 28.47904 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish -tsl Ts'ün-Lao 102.9261 21.3616 Tai-Kadai, Kam-Tai, Tai, Central -tsm Turkish Sign Language 28.85551 41.02675 Deaf sign language -tsn Tswana 24.68016 -24.56975 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Sotho-Tswana (S.31) -tso Tsonga 30.715 -23.46659 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Tswa-Rhonga (S.53) -tsp Northern Toussian -4.88274 11.13303 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Tusia -tsq Thai Sign Language 100.44545 13.7837 Deaf sign language -tsr Akei 166.76672 -15.6377 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -tss Taiwan Sign Language 121.30519 25.02062 Deaf sign language -tsu Tsou 120.78663 23.21605 Austronesian, Tsouic -tsv Tsogo 11.13589 -1.55469 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Tsogo (B.31) -tsw Tsishingini 5.11073 10.2882 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Kambari -tsx Mubami 142.99792 -7.5501 Trans-New Guinea, Inland Gulf, Minanibai -tsz Purepecha -101.6314 19.44665 Tarascan -tta Tutelo -96.93055 40.0695 -ttb Gaa 11.96032 8.4809 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Dakoid -ttc Tektiteko -92.01564 15.34372 Mayan, Yucatecan-Core Mayan, K’ichean-Mamean, Mamean, Teco-Mam -ttd Tauade 147.09377 -8.3486 Trans-New Guinea, Southeast Papuan, Goilalan, Kunimaipa -tte Bwanabwana 151.03439 -10.65985 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, Suauic -ttf Tuotomb 10.65924 4.65626 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Basaa (A.461) -ttg Tutong 2 114.63828 4.74327 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Berawan-Lower Baram, Lower Baram, Central, B -tth Upper Ta'oih 106.90474 16.20063 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, Central Katuic, Ta’oih -tti Tobati 140.71017 -2.56434 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Sarmi-Jayapura Bay, Jayapura Bay -ttj Tooro 30.63887 0.57291 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Nyoro-Ganda (E.12) -ttk Totoro -76.63789 2.55149 Paezan, Coconuco -ttl Totela 24.66987 -16.30451 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Subiya-Totela (K.41) -ttm Northern Tutchone -136.64414 62.82351 Eyak-Athabaskan, Athabaskan, Northern Athabaskan, Tuchone -ttn Towei 140.80325 -3.87428 Pauwasi, Western -tto Lower Ta'oih 106.87347 15.9083 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, Central Katuic, Ta’oih -ttp Tombelala 121.91495 -2.50998 Austronesian, Malayo-Polynesian, Celebic, Kaili-Pamona, Northern, Pamona -ttq Tawallammat Tamajaq 3.71384 14.91766 Afro-Asiatic, Berber, Tamasheq, Southern -ttr Tera 11.80953 11.0376 Afro-Asiatic, Chadic, Biu-Mandara, A, A.1, Western -tts Northeastern Thai 102.98638 14.32526 Tai-Kadai, Kam-Tai, Tai, Southwestern -ttt Muslim Tat 48.81009 41.09077 Indo-European, Indo-Iranian, Iranian, Western, Southwestern, Tat -ttu Torau 155.49575 -6.19922 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Mono-Uruava -ttv Titan 146.88795 -2.18168 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, East -ttw Tutoh Kenyah 114.82014 3.85226 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kenyah, Kayanic Kenyah -ttx Tutong 1 114.73115 4.57846 -tty Sikaritai 138.2874 -2.80285 Lakes Plain, Tariku, East -ttz Tsum 85.08175 28.47193 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, gTsang -tua Wiarumus 143.75606 -3.63409 Torricelli, Marienberg -tub Tubatulabal -117.163 35.327 Uto-Aztecan, Northern Uto-Aztecan -tuc Mutu 148.01357 -5.79405 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Ngero, Tuam -tud Tuxa -41.16665 -12.04999 Language isolate -tue Tuyuca -70.11861 0.51905 Tucanoan, Eastern Tucanoan, Bará-Tuyuka -tuf Central Tunebo -72.23365 6.66535 Chibchan, Chibchan B, Eastern Chibchan, Colombian, Southern Colombian, Cundicocuyese -tug Tunia 18.20595 9.42506 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Bua -tuh Taulil 152.09499 -4.44425 East New Britain, Taulil -tui Tupuri 14.81648 10.18793 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Mbum, Northern, Tupuri-Mambai -tuj Tugutil 128.22346 0.5806 West Papuan, North Halmahera, Galela-Loloda -tuk Turkmen 59.60419 37.19072 Altaic, Turkic, Southern, Turkmenian -tul Tula 11.52551 9.84629 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Waja, Tula -tum Tumbuka 33.75065 -11.4628 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, N, Tumbuka (N.21) -tun Tunica -92.54026 30.98879 Language isolate -tuo Tucano -69.20065 0.52993 Tucanoan, Eastern Tucanoan, Tucano -tuq Tedaga 18.19888 20.6143 Nilo-Saharan, Saharan, Western, Tebu -tur Turkish 34.90639 36.72344 Altaic, Turkic, Southern, Turkish -tus Tuscarora -79.89399 43.08417 Iroquoian, Northern Iroquoian, Tuscarora-Nottoway -tuu Tututni -124.29303 42.55628 Eyak-Athabaskan, Athabaskan, Pacific Coast Athabaskan, Oregon Athabaskan, Tututni-Chasta Costa-Coquille -tuv Turkana 35.41186 3.41461 Nilo-Saharan, Eastern Sudanic, Nilotic, Eastern, Lotuxo-Teso, Teso-Turkana, Turkana -tux Tuxinawa -69.01666 -9.74999 Panoan, Mainline -tuy North Tugen 35.84986 0.66573 Nilo-Saharan, Eastern Sudanic, Nilotic, Southern, Kalenjin, Nandi-Markweta, Nandi -tuz Turka -4.92082 10.71141 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Kirma-Tyurama -tva Vaghua 156.5421 -6.68712 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Choiseul -tvd Tsuvadi 5.22095 10.84208 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Kambari -tve Te'un 128.96625 -3.21229 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Southwest Maluku, Teun-Nila-Serua, Teun -tvk Southeast Ambrym 168.21111 -16.29747 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -tvl Tuvaluan 178.69192 -7.4778 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Ellicean -tvm Tela-Masbuar 129.68667 -8.01195 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Babar, South, Southwest Babar -tvn Tavoyan 98.32676 14.05959 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Burmish, Southern -tvo Tidore 127.74566 0.02461 West Papuan, North Halmahera, Ternate-Tidore -tvs Taveta 37.70607 -3.41822 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Nyika-Taita (E.74) -tvt Tutsa Naga 95.8 27.161 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Northern Naga -tvw Sedoa 120.37752 -1.37295 Austronesian, Malayo-Polynesian, Celebic, Kaili-Pamona, Northern, Kaili -tvy Timor Pidgin 125.58973 -8.65995 Creole, Portuguese based -twa Twana -121.76538 47.7419 Salish, Central Salish -twb Western Tawbuid 121.02597 12.82269 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, South Mangyan, Buhid-Taubuid -twc Teshenawa 8.35594 9.64189 -twd Twents 6.77085 52.29257 Indo-European, Germanic, West, Low Saxon-Low Franconian, Low Saxon -twe Tewa 124.17361 -8.37662 Trans-New Guinea, West, Timor-Alor-Pantar, Alor-Pantar, Pantar -twf Northern Tiwa -105.60444 36.42765 Kiowa-Tanoan, Tanoan -twg Tereweng 124.27121 -8.48063 Trans-New Guinea, West, Timor-Alor-Pantar, Alor-Pantar, Pantar -twh Tai Dón 103.9429 22.46151 Tai-Kadai, Kam-Tai, Tai, Southwestern -twl Tawara 31.62099 -16.01674 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Shona (S.11) -twn Twendi 11.70017 6.36656 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Mambiloid, Mambila-Konja, Konja -two Tswapong 27.42009 -23.40552 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Sotho-Tswana (S.32) -twp Ere 147.08286 -2.15569 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Eastern, Manus, East -twq Tasawaq 6.92037 16.78141 Nilo-Saharan, Songhai, Northern -twr Southwestern Tarahumara -107.57815 27.03137 Uto-Aztecan, Southern Uto-Aztecan, Taracahitic, Tarahumaran, Tarahumara -twt Turiwara -41.99999 -2.99999 Tupian, Tupí-Guaraní, Wayampí, Amanayé -twu Termanu 123.16898 -10.73264 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor, Rote -tww Tuwari 142.09522 -4.80315 Sepik, Leonhard Schultze -twx Tewe 33.82463 -18.44585 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Shona (S.13) -twy Tawoyan 115.20393 -1.30017 Austronesian, Malayo-Polynesian, Greater Barito, East, North -txa Tombonuwo 117.32188 6.2892 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Paitanic -txc Tsetsaut -139.17812 62.06753 -txe Totoli 120.87458 1.14995 Austronesian, Malayo-Polynesian, Celebic, Tomini-Tolitoli, Tolitoli -txi Ikpeng -53.49553 -11.37822 Cariban, South Amazonian, Arara -txm Tomini 120.89031 0.42569 Austronesian, Malayo-Polynesian, Celebic, Tomini-Tolitoli, Tomini, Northern -txn West Tarangan 134.16821 -6.62046 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Aru -txo Toto 88.975 26.67 Sino-Tibetan, Tibeto-Burman, Sal, Dhimalish -txq Tii 122.96321 -10.84247 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor, Rote -txs Tonsea 125.05212 1.51393 Austronesian, Malayo-Polynesian, Philippine, Minahasan, North, Northeast -txt Citak 139.46085 -5.58276 Trans-New Guinea, Asmat-Kamoro, Asmat -txu Kayapó -51.67367 -7.77352 Jean, Northern -txx Tatana 115.55311 5.49808 Austronesian, Malayo-Polynesian, North Borneo, Sabahan, Dusunic, Bisaya -txy Tanosy Malagasy 47.13566 -24.91865 Austronesian, Malayo-Polynesian, Greater Barito, East, Malagasy -tya Tauya 145.3657 -5.74255 Trans-New Guinea, Madang, Rai Coast, Biyom-Tauya -tye Kyenga 3.6404 11.602 Niger-Congo, Mande, Eastern, Eastern, Kyanga -tyh O'du 104.43595 19.42572 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Khmuic, Mal-Khmu’, Khmu’ -tyi Teke-Tsaayi 13.86035 -2.98028 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Teke (B.73) -tyj Tai Do 104.93774 19.1801 Tai-Kadai, Kam-Tai, Tai -tyl Thu Lao 104.25078 22.75275 Tai-Kadai, Kam-Tai, Tai, Southwestern -tyn Kombai 139.90245 -5.54543 Trans-New Guinea, Ok-Awyu, Awyu-Dumut, Dumut -typ Thaypan 143.32412 -14.82924 Australian, Pama-Nyungan, Paman, Rarmul Pama -tyr Tai Daeng 104.7046 20.90556 Tai-Kadai, Kam-Tai, Tai, Southwestern -tys Tày Sa Pa 103.80538 22.29499 Tai-Kadai, Kam-Tai, Tai, Southwestern -tyt Tày Tac 104.00762 21.38306 Tai-Kadai, Kam-Tai, Tai, Southwestern -tyu Kua 26.01579 -22.02366 Khoisan, Southern Africa, Central, Tshu-Khwe, Northeast -tyv Tuvin 95.26872 50.86222 Altaic, Turkic, Northern -tyx Teke-Tyee 13.86684 -3.50685 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Teke (B.73) -tyz Tày 106.16715 21.64483 Tai-Kadai, Kam-Tai, Tai, Central -tza Tanzanian Sign Language 39.12697 -6.82431 Deaf sign language -tzb Bachajón Tzeltal -91.72933 16.62548 -tzc Chamula Tzotzil -92.74458 16.73615 -tze Chenalhó Tzotzil -92.55566 16.83587 -tzh Oxchuc Tzeltal -92.27861 16.63841 Mayan, Yucatecan-Core Mayan, Core Mayan, Cholan-Tzeltalan, Tzeltalan, Tzeltal -tzj Eastern Tzutujil -91.20122 14.63507 Mayan, Yucatecan-Core Mayan, K’ichean-Mamean, K’ichean, Poqom-K’ichean, Core K’ichean, Kaqchikel-Tz’utujil -tzm Central Atlas Tamazight -4.0699 32.6087 Afro-Asiatic, Berber, Northern, Atlas -tzn Tugun 126.7001 -7.72555 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Southwest Maluku, Wetar -tzo Venustiano Carranza Tzotzil -92.59968 16.26588 Mayan, Yucatecan-Core Mayan, Core Mayan, Cholan-Tzeltalan, Tzeltalan, Tzotzil -tzs San Andrés Larrainzar Tzotzil -92.79491 16.90594 -tzt Western Tzutujil -91.2924 14.69511 -tzu Huixtán Tzotzil -92.39945 16.54132 -tzx Tabriak 143.59259 -4.49162 Ramu-Lower Sepik, Lower Sepik, Karawari -tzz Zinacantán Tzotzil -92.73881 16.63623 -uam Uamue -38.74999 -8.49999 Language isolate -uan Kuan 105.31038 18.07692 Tai-Kadai, Kam-Tai, Tai -uar Tairuma 145.73197 -7.94866 Trans-New Guinea, Eleman, Nuclear Eleman, Eastern -uba Ubang 9.2616 6.40906 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Bendi -ubi Ubi 18.55796 11.80055 Afro-Asiatic, Chadic, East, B, B.1, 1 -ubm Upper Baram Kenyah 115.10401 3.08398 -ubr Ubir 149.39621 -9.59044 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Are-Taupota, Are -ubu Umbu-Ungu 143.96989 -5.9513 Trans-New Guinea, Chimbu-Wahgi, Hagen, Kaugel -uby Ubykh 28.66606 41.0202 North Caucasian, West Caucasian, Ubyx -uda Uda 8.06562 4.70196 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Enwang-Uda -ude Udihe 135.67762 46.63086 Altaic, Tungusic, Southern, Southeast, Udihe -udi Udi 47.7236 40.9 North Caucasian, East Caucasian, Lezgic, Udi -udj Ujir 134.25689 -5.69329 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Aru -udl Wuzlam 14.13782 10.95502 Afro-Asiatic, Chadic, Biu-Mandara, A, A.5 -udm Udmurt 52.63548 56.12921 Uralic, Permian -udu Uduk 34.43319 8.25299 Nilo-Saharan, Komuz, Koman -ues Kioko 122.95138 -4.99012 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Muna-Buton, Nuclear Muna-Buton, Munan, Munic, Western -ufi Ufim 146.24488 -6.05128 Trans-New Guinea, Finisterre-Huon, Finisterre, Gusap-Mot -ugb Kuku-Ugbanh 141.56884 -13.98822 Australian, Pama-Nyungan, Paman, Middle Pama -uge Ughele 157.3407 -8.45725 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, New Georgia, West -ugn Ugandan Sign Language 32.4829 0.2475 Deaf sign language -ugo Ugong 100.09778 14.24081 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Unclassified -ugy Uruguayan Sign Language -56.4509 -34.59671 Deaf sign language -uha Uhami 5.68537 7.38143 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Northwestern, Osse -uhn Damal 137.49561 -4.17345 Trans-New Guinea, Damal -uig Uyghur 81.96424 36.36305 Altaic, Turkic, Eastern -uis Uisai 155.70566 -6.55533 South Bougainville, Buin -uiv Iyive 9.54765 6.39734 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tivoid -uji Tanjijili 6.87432 9.40121 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Southern -uka Kaburi 132.52827 -1.92547 Trans-New Guinea, South Bird’s Head, South Bird’s Head Proper, Western -ukg Ukuriguma 145.51442 -4.94407 Trans-New Guinea, Madang, Croisilles, Pihom, Numugenan -ukh Ukhwejo 16.26705 2.9095 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Makaa-Njem (A.802) -ukl Ukrainian Sign Language 30.55304 50.41113 Deaf sign language -ukp Ukpe-Bayobiri 9.02603 6.52883 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Bendi -ukq Ukwa 7.96002 5.59913 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Efik -ukr Ukrainian 31.16814 49.35573 Indo-European, Slavic, East -uks Urubú-Kaapor Sign Language -46.42134 -2.54091 Deaf sign language -uku Ukue 5.58213 7.48032 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Northwestern, Osse -ukw Ukwuani-Aboh-Ndoni 6.48559 5.78892 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Igboid, Igbo -ula Fungwa 6.59138 10.50213 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Western, Kamuku -ulb Ulukwumi 6.59202 6.4974 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Defoid, Yoruboid, Edekiri -ulc Ulch 140.29045 51.85209 Altaic, Tungusic, Southern, Southeast, Nanaj -ulf Usku 140.50189 -3.63853 Unclassified -uli Ulithian 151.58297 7.3402 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Ponapeic-Trukic, Trukic -ulk Meriam 143.77282 -9.59575 Eastern Trans-Fly -ull Ullatan 77.09056 9.46719 Dravidian, Southern, Unclassified -ulm Ulumanda' 118.99377 -3.00933 Austronesian, Malayo-Polynesian, South Sulawesi, Northern, Pitu Ulunna Salu -uln Unserdeutsch 152.18315 -4.19566 Creole, German based -uma Umatilla -118.55167 45.63915 Sahaptian, Sahaptin -umb Umbundu 14.41483 -12.47635 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, R, Umbundu (R.11) -umd Umbindhamu 143.32815 -13.921 Australian, Pama-Nyungan, Paman, Umbindhamuic -umg Umbuygamu 143.6305 -14.25876 Australian, Pama-Nyungan, Paman, Lamalamic -umi Ukit 114.57932 1.56623 Austronesian, Malayo-Polynesian, North Borneo, Melanau-Kajang, Kajang -umm Umon 8.10335 5.37438 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Central, North-South, Ubaghara-Kohumono, Kohumono -umo Umotina -57.41916 -15.59288 Bororoan -ump Umpila 143.46729 -13.15275 Australian, Pama-Nyungan, Paman, Northeastern Pama -umr Umbugarla 131.82455 -12.93247 Australian, Umbugarla-Ngumbur -ums Pendau 119.86161 -0.11396 Austronesian, Malayo-Polynesian, Celebic, Tomini-Tolitoli, Tomini, Southern -umu Munsee -81.91658 42.59677 Algic, Algonquian, Eastern Algonquian, Delaware -una North Watut 146.21818 -6.64084 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, Markham, Watut -une Uneme 6.13427 6.97237 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, North-Central, Ghotuo-Uneme-Yekhee -ung Ngarinyin 126.43311 -16.40063 Australian, Worrorran -unk Enawené-Nawé -58.9802 -12.43024 Maipurean, Unclassified -unm Unami -98.32013 35.02644 Algic, Algonquian, Eastern Algonquian, Delaware -unp Worora 124.66753 -16.10935 -unz Unde Kaili 119.67323 -0.85876 Austronesian, Malayo-Polynesian, Celebic, Kaili-Pamona, Northern, Kaili -uok Uokha 5.97783 7.00611 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, North-Central -upi Umeda 141.15692 -3.34565 Border, Bewani -upv Uripiv-Wala-Rano-Atchin 167.34643 -16.00951 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Malekula Coastal -ura Urarina -75.42107 -4.44006 Language isolate -urb Urubú-Kaapor -46.22037 -2.46455 Tupian, Tupí-Guaraní, Wayampí, Amanayé -urc Urningangg 133.0231 -13.47664 Australian, Giimbiyu -urd Urdu 67.05585 24.88813 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Western Hindi, Hindustani -ure Uru -68.97119 -16.72547 Chipaya-Uru -urf Uradhi 142.13487 -12.06792 Australian, Pama-Nyungan, Paman, Northern Pama -urg Urigina 145.50708 -5.58982 Trans-New Guinea, Madang, Rai Coast, Peka -urh Urhobo 5.86148 5.31155 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Edoid, Southwestern -uri Urim 142.65316 -3.58018 Torricelli, Urim -urk Urak Lawoi' 99.07682 7.5258 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic -url Urali 76.80069 10.8519 Dravidian, Southern, Tamil-Kannada, Kannada -urm Urapmin 141.54009 -5.08704 Trans-New Guinea, Ok-Awyu, Ok, Mountain -urn Uruangnirin 132.7454 -3.45498 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, North Bomberai -uro Ura 151.95294 -4.64226 East New Britain, Baining -urp Uru-Pa-In -62.7226 -11.29459 Tupian, Tupí-Guaraní, Kawahib -urr Lehalurup 167.33649 -13.5406 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -urt Urat 142.79038 -3.60065 Torricelli, Wapei-Palei, Urat -uru Urumi -63.848 -9.08 Tupian, Ramarama -urv Uruava 155.57304 -6.23314 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Mono-Uruava -urw Sop 145.36115 -5.49605 Trans-New Guinea, Madang, Rai Coast, Peka -urx Urimo 143.70061 -3.86066 Torricelli, Marienberg -ury Orya 139.88989 -2.76483 Tor-Kwerba, Orya-Tor, Orya -urz Uru-Eu-Wau-Wau -63.80859 -10.91762 Tupian, Tupí-Guaraní, Kawahib -usa Usarufa 145.63291 -6.38898 Trans-New Guinea, Kainantu-Goroka, Kainantu, Gadsup-Auyana-Awa -ush Ushojo 72.64297 35.15835 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Shina -usi Usui 91.78792 23.01305 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Bodo-Koch, Bodo-Garo, Bodo -usk Usaghade 8.66795 4.52144 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Lower Cross, Obolo, Usaghade -usp Uspanteco -90.88929 15.36484 Mayan, Yucatecan-Core Mayan, K’ichean-Mamean, K’ichean -usu Uya 145.4704 -5.32246 Trans-New Guinea, Madang, Rai Coast, Nuru -uta Otank 9.34019 6.54809 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Tivoid -ute Ute-Southern Paiute -110.3055 40.09648 Uto-Aztecan, Northern Uto-Aztecan, Numic, Southern -utp Amba 166.49752 -11.29577 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Temotu, Utupua-Vanikoro, Utupua -utr Etulo 9.44447 7.75865 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Idomoid, Akweya, Etulo-Idoma, Etulo -utu Utu 145.54353 -5.16422 Trans-New Guinea, Madang, Croisilles, Hanseman -uum Urum 43.994 42.03792 Altaic, Turkic -uun Kulon-Pazeh 120.97577 23.75624 Austronesian, Northwest Formosan -uur Ura 169.08428 -18.67465 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, South Vanuatu, Erromanga -uuu U 101.77163 22.67668 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Eastern Palaungic, Angkuic -uve West Uvean 166.58936 -20.41454 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, Futunic -uvh Uri 146.60839 -6.41993 Trans-New Guinea, Finisterre-Huon, Finisterre, Erap -uvl Lote 150.9105 -5.954 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Mengen -uwa Kuku-Uwanh 141.72365 -14.07563 Australian, Pama-Nyungan, Paman, Middle Pama -uya Doko-Uyanga 8.26925 5.39961 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Agoi-Doko-Iyoniyong -uzb Uzbek 67 37 Altaic, Turkic, Eastern -uzn Northern Uzbek 68.36695 38.1793 Altaic, Turkic, Eastern -uzs Southern Uzbek 66.51 36.39468 Altaic, Turkic, Eastern -vaa Vaagri Booli 79.53351 12.215 Indo-European, Indo-Iranian, Indo-Aryan, Unclassified -vae Vale 18.55852 7.49943 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Sara-Bagirmi, Sara, Vale -vaf Vafsi 50.00127 34.53095 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Central Iran -vag Vagla -2.31333 9.33848 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Western -vah Varhadi-Nagpuri 79.75164 20.7139 Indo-European, Indo-Iranian, Indo-Aryan, Southern zone, Unclassified -vai Vai -11.22506 6.94978 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Vai-Kono -vaj Vasekela Bushman 18.18637 -18.26747 Khoisan, Southern Africa, Northern -val Vehes 146.89473 -6.92151 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, South, Hote-Buang, Buang -vam Vanimo 141.25826 -2.68501 Skou, Skou-Serra-Piore, Nuclear Skou, Eastern Skou -van Valman 142.49904 -3.24963 Torricelli, Wapei-Palei, Wapei -vao Vao 167.27077 -15.91787 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Malekula Coastal -vap Vaiphei 93.7195 24.13781 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -var Huarijio -108.43724 27.86854 Uto-Aztecan, Southern Uto-Aztecan, Taracahitic, Tarahumaran -vas Vasavi 73.86524 21.36235 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Gujarati -vau Vanuma 29.81348 0.93847 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.331) -vav Varli 73.29746 20.56353 Indo-European, Indo-Iranian, Indo-Aryan, Southern zone, Konkani -vay Wayu 86.12266 27.30471 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Western -vbb Southeast Babar 129.80038 -7.94359 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Babar, South, Masela-South Babar -vec Venetian 12.19705 45.50285 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Gallo-Romance, Gallo-Italian -ved Veddah 81.26177 6.97396 Indo-European, Indo-Iranian, Indo-Aryan, Sinhalese-Maldivian -vel Veluws 5.94408 52.27016 Indo-European, Germanic, West, Low Saxon-Low Franconian, Low Saxon -vem Vemgo-Mabas 13.6466 10.85252 Afro-Asiatic, Chadic, Biu-Mandara, A, A.4, Lamang -ven Venda 29.92092 -22.84889 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Venda (S.21) -veo Ventureno -119.711 34.429 Chumashan, Central Chumash -vep Veps 34.7865 60.33531 Uralic, Finnic -ver Mom Jango 12.62625 8.97375 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Duru, Voko-Dowayo, Vere-Dowayo, Vere-Gimme, Vere -vgr Vaghri 68.6051 26.14035 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Gujarati -vic Virgin Islands Creole English -64.73629 17.74048 Creole, English based, Atlantic, Eastern, Southern -vid Vidunda 36.93162 -7.52674 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Zigula-Zaramo (G.38) -vie Vietnamese 106.91747 17.11945 Austro-Asiatic, Mon-Khmer, Viet-Muong, Vietnamese -vif Vili 11.75978 -4.36085 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Kikongo (H.12) -vig Viemo -3.84128 10.84288 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Viemo -vil Vilela -58.96612 -27.40626 Language isolate -vin Vinza 30.56989 -4.99312 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Ruanda-Rundi (D.67) -vis Vishavan 76.75928 10.17509 Dravidian, Unclassified -vit Viti 11.10872 6.66524 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Unclassified -viv Iduna 150.24037 -9.34361 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Bwaidoga -vka Kariyarra 118.613 -20.445 Australian, Pama-Nyungan, South-West, Coastal Ngayarda -vki Ija-Zuba 6.9861 8.97183 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Unclassified -vkj Kujarge 22.19559 11.74732 Unclassified -vkk Kaur 103.5116 -4.6251 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -vkl Kulisusu 123.04488 -4.58411 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Bungku-Tolaki, Eastern, East Coast, Kulisusu -vkm Kamakan -40.34337 -13.06782 Kamakanan, Kamakán -vko Kodeoha 120.93713 -3.39566 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Bungku-Tolaki, Western, West Coast -vkp Korlai Creole Portuguese 73.00991 19.03482 Creole, Portuguese based -vkt Tenggarong Kutai Malay 117.64535 0.71803 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -vku Kurrama 117.51025 -22.21338 Australian, Pama-Nyungan, South-West, Coastal Ngayarda -vky Kayu Agung 104.86701 -3.2634 -vlp Valpei 166.60553 -14.712 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -vlr Vatrata 167.47532 -13.8096 -vls Vlaams 3.03347 51.03778 Indo-European, Germanic, West, Low Saxon-Low Franconian, Low Franconian -vma Martuyhunira 116.6074 -20.92944 Australian, Pama-Nyungan, South-West, Coastal Ngayarda -vmb Mbabaram 143.43797 -20.13889 Australian, Pama-Nyungan, Paman, Southern Pama -vmc Juxtlahuaca Mixtec -98.01463 17.3518 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -vmd Mudu Koraga 75.10613 12.62244 Dravidian, Southern, Tulu, Koraga -vme East Masela 129.87322 -8.13455 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Babar, South, Masela-South Babar -vmf Mainfrankisch 8.621 50.005 Indo-European, Germanic, West, High German, German, Upper German -vmg Minigir 152.0052 -4.31803 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Mono-Uruava -vmh Maraghei 49.9665 36.82593 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Talysh -vmi Miwa 126.9212 -14.34845 Australian, Worrorran -vmj Ixtayutla Mixtec -97.57591 16.57738 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -vmk Makhuwa-Shirima 36.52488 -14.25105 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Makhuwa (P.31) -vml Malgana 114.245 -26.211 Australian, Pama-Nyungan, South-West, Malgana -vmm Mitlatongo Mixtec -97.17573 17.16002 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -vmo Muko-Muko 101.20544 -2.50795 -vmp Soyaltepec Mazatec -96.49456 18.28675 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Popolocan, Mazatec -vmq Soyaltepec Mixtec -97.19211 17.55605 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -vmr Marenje 35.7425 -16.21286 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Makhuwa (P.31) -vms Moksela 128.654 -3.098 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, Buru -vmu Muluridyi 145.329 -17.06013 Australian, Pama-Nyungan, Yalandyic -vmv Valley Maidu -121.19078 39.80783 Maiduan, Maidu -vmw Makhuwa 38.80519 -14.85088 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Makhuwa (P.31) -vmx Tamazola Mixtec -97.09983 17.12577 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -vmy Ayautla Mazatec -96.59516 18.0993 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Popolocan, Mazatec -vmz Mazatlán Mazatec -96.88892 18.08289 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Popolocan, Mazatec -vnk Vano 165.92732 -10.68653 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Temotu, Utupua-Vanikoro -vnm Vinmavis 167.42689 -16.22534 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Malekula Interior, Malekula Central -vnp Vunapu 166.69119 -14.84766 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -vor Voro 12.07192 9.78323 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Yungur, Yungur-Roba -vot Vod 28.6235 59.38017 Uralic, Finnic -vrs Varisi 156.65519 -6.83443 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, New Ireland, South New Ireland-Northwest Solomonic, Choiseul -vrt Burmbar 167.73124 -16.41653 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, Malekula Coastal -vsi Moldova Sign Language 28.694 47.107 Deaf sign language -vsl Venezuelan Sign Language -66.76784 10.32937 Deaf sign language -vum Vumbu 10.64985 -2.17673 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Shira-Punu (B.403) -vun Vunjo 37.58474 -3.42531 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, E, Chaga (E.622) -vut Vute 12.20681 5.48283 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Mambiloid, Suga-Vute, Vute -waa Walla Walla -118.42416 45.72055 Sahaptian, Sahaptin -wab Wab 146.46132 -5.61216 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Bel, Astrolabe -wac Wasco-Wishram -121.50876 45.02783 Chinookan, Upper Chinookan -wad Wandamen 133.99592 -2.25622 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Yapen, Central-Western -wae Walser 9.22649 46.58089 Indo-European, Germanic, West, High German, German, Upper German, Alemannic -waf Wakona -36.49999 -9.91666 Unclassified -wag Wa'ema 150.39832 -10.28966 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Are-Taupota, Taupota -wah Watubela 131.64135 -4.47294 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Banda-Geser, Geser-Gorom -wai Wares 139.33731 -2.47357 Tor-Kwerba, Orya-Tor, Tor -waj Waffa 146.08994 -6.55783 Trans-New Guinea, Kainantu-Goroka, Kainantu, Tairora -wal Wolaytta 37.75373 6.32668 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gimojan, Ometo-Gimira, Ometo, Central -wam Wampanoag -73.31478 41.70504 Algic, Algonquian, Eastern Algonquian -wan Wan -5.82092 7.88773 Niger-Congo, Mande, Eastern, Southeastern, Nwa-Ben, Wan-Mwan -wao Wappo -122.49999 38.25 Yukian -wap Wapishana -59.33072 2.69278 Maipurean, Northern, Maritime, Wapixana -waq Wageman 131.89332 -13.86272 Australian, Gunwingguan, Wagiman -war Waray-Waray 125.01203 11.49115 Austronesian, Malayo-Polynesian, Philippine, Greater Central Philippine, Central Philippine, Bisayan, Central, Warayan, Samar-Waray -was Washo -119.6403 38.81841 Language isolate -wat Kaninuwa 150.25287 -9.23148 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Are-Taupota, Are -wau Waurá -53.69711 -13.29598 Maipurean, Southern, Central, Waurá, Waurá-Meinaku -wav Waka 11.49321 8.79968 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Mumuye-Yandang, Mumuye -waw Waiwai -59.63415 1.35251 Cariban, Waiwai -wax Watam 144.58253 -4.02591 Ramu-Lower Sepik, Ramu, Ottilien, Watam -way Wayana -54.21485 3.14984 Cariban, Central, Wayana -waz Wampur 146.12645 -6.33644 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, Markham, Upper, Mountain -wba Warao -61.52454 9.14805 Language isolate -wbb Wabo 136.75728 -1.77297 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Yapen, East -wbe Waritai 138.45641 -3.23021 Lakes Plain, Tariku, East -wbf Wara -5.37515 10.72826 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Wara-Natioro -wbh Wanda 32.43753 -8.34522 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, M, Nyiha-Safwa (M.21) -wbi Wanji 34.0757 -9.00683 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Bena-Kinga (G.66) -wbj Alagwa 35.72313 -4.64148 Afro-Asiatic, Cushitic, South -wbk Waigali 70.97609 35.03578 Indo-European, Indo-Iranian, Indo-Aryan, Nuristani -wbl Wakhi 74.6663 36.83882 Indo-European, Indo-Iranian, Iranian, Eastern, Southeastern, Pamir -wbm Wa 98.6316 23.58436 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Eastern Palaungic, Waic, Wa -wbp Warlpiri 131.04996 -20.1008 Australian, Pama-Nyungan, South-West, Ngarga -wbq Waddar 77.1673 19.88375 Dravidian, South-Central, Telugu -wbr Wagdi 73.90223 23.68876 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Bhil -wbt Wanman 122.32463 -22.70784 Australian, Pama-Nyungan, South-West, Wati -wbv Wajarri 117.15302 -28.17608 Australian, Pama-Nyungan, South-West, Wadjari -wbw Woi 135.48374 -1.62746 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Yapen, Central-Western -wca Yanomámi -62.85224 2.48999 Yanomaman -wci Waci Gbe 1.52851 6.50092 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe -wdd Wandji 12.89509 -1.51945 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Nzebi (B.501) -wdg Wadaginam 144.97231 -4.52754 Trans-New Guinea, Madang, South Adelbert Range, Josephstaal, Wadaginam -wdj Wadjiginy 130.73661 -12.85959 Australian, Daly, Bringen-Wagaydy, Wagaydy -wdu Wadjigu 147.42089 -23.80289 Australian, Pama-Nyungan, Maric -wea Wewaw 97.78084 27.61157 Sino-Tibetan, Tibeto-Burman, Karenic, Southern -wec Wè Western -8.40234 6.36463 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Wee, Guere-Krahn -wed Wedau 150.17188 -10.12464 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Are-Taupota, Taupota -weh Weh 10.12104 6.46164 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Ring, West -wei Were 142.44711 -8.42194 Trans-New Guinea, Tirio -wem Weme Gbe 2.47457 6.77227 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe, Aja -weo North Wemale 128.8392 -3.05143 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Nunusaku, Three Rivers, Wemale -wep Westphalien 7.499 51.459 Indo-European, Germanic, West, Low Saxon-Low Franconian, Low Saxon -wer Weri 146.91368 -7.71834 Trans-New Guinea, Southeast Papuan, Goilalan, Kunimaipa -wes Cameroon Pidgin 9.80166 5.43932 Creole, English based, Atlantic, Krio -wet Perai 126.57638 -7.62349 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Southwest Maluku, Wetar -weu Welaung 98.3197 27.04569 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Southern -wew Wejewa 119.34902 -9.55099 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Sumba-Hawu, Sumba -wfg Yafi 140.89701 -3.39765 Pauwasi, Eastern -wga Wagaya 137.62348 -20.329 Australian, Pama-Nyungan, Wagaya-Warluwaric, Warluwara-Thawa -wgg Wangganguru 135.94079 -25.81485 Australian, Pama-Nyungan, Karnic, Palku -wgi Wahgi 144.66454 -6.11629 Trans-New Guinea, Chimbu-Wahgi, Wahgi -wgo Waigeo 130.91683 -0.17957 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Raja Ampat -wgw Wagawaga 150.37814 -10.41792 -wgy Warrgamay 146.17863 -18.54681 Australian, Pama-Nyungan, Dyirbalic -wha Manusela 129.42868 -3.1109 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Central Maluku, East, Seram, Manusela-Seti -whg North Wahgi 144.8043 -5.75356 Trans-New Guinea, Chimbu-Wahgi, Wahgi -whk Wahau Kenyah 116.65543 1.56635 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kenyah, Kayanic Kenyah -whu Wahau Kayan 116.6795 1.42088 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kayanic, Kayan Proper -wib Southern Toussian -4.65678 10.87695 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Tusia -wic Wichita -98.18314 35.06648 Caddoan, Northern Caddoan -wie Wik-Epa 141.85775 -13.84599 Australian, Pama-Nyungan, Paman, Middle Pama -wif Wik-Keyangan 142.00476 -14.26486 Australian, Pama-Nyungan, Paman, Middle Pama -wig Wik-Ngathana 141.53188 -13.8691 Australian, Pama-Nyungan, Paman, Middle Pama -wih Wik-Me'anha 141.92538 -14.05797 Australian, Pama-Nyungan, Paman, Middle Pama -wii Wiaki 142.33033 -3.59408 Torricelli, Maimai, Wiaki -wij Wik-Iiyanh 142.78055 -14.12728 Australian, Pama-Nyungan, Paman, Middle Pama -wik Wikalkan 141.55731 -13.68352 Australian, Pama-Nyungan, Paman, Middle Pama -wil Wilawila 126.60003 -14.91051 Australian, Worrorran -wim Wik-Mungkan 141.81611 -13.98051 Australian, Pama-Nyungan, Paman, Middle Pama -win Ho-Chunk -96.58947 42.21233 Siouan-Catawban, Siouan, Mississippi Valley-Ohio Valley Siouan, Mississippi Valley Siouan, Chiwere-Winnebago -wir Wirafed -59.47688 -9.30537 Tupian, Tupí-Guaraní, Kawahib, Parintintin -wit Wintu -122.44538 39.71756 -wiu Wiru 144.21446 -6.35863 Trans-New Guinea, Wiru -wiv Muduapa 149.48864 -4.69751 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Meso Melanesian, Bali-Vitu -wiw Wirangu 131.71901 -31.63562 -wiy Wiyot -122.95235 39.24921 Algic, Ritwan -wja Waja 11.72062 9.91175 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Waja, Tula -wji Warji 9.56925 11.17175 Afro-Asiatic, Chadic, West, B, B.2 -wka Kwadza 35.18279 -4.00743 Afro-Asiatic, Cushitic, South -wkd Wakde 139.00824 -1.98457 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Sarmi-Jayapura Bay, Sarmi -wkw Wakawaka 151.868 -26.24803 Australian, Pama-Nyungan, Waka-Kabic, Miyan -wla Walio 142.23075 -4.41234 Sepik, Leonhard Schultze -wlc Mwali Comorian 43.74103 -12.31641 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Swahili (G.44) -wlg Kunbarlang 133.72271 -11.91327 Australian, Gunwingguan, Gunwinggic -wli Waioli 127.49406 1.2341 West Papuan, North Halmahera, Sahu -wlk Wailaki -123.28378 39.15128 Eyak-Athabaskan, Athabaskan, Pacific Coast Athabaskan, California Athabaskan -wll Wali 29.12281 11.86337 Nilo-Saharan, Eastern Sudanic, Eastern, Nubian, Central, Hill, Unclassified -wln Walloon 5.14509 50.22351 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Gallo-Romance, Gallo-Rhaetian, Oïl, French -wlo Wolio 122.71293 -5.43993 Austronesian, Malayo-Polynesian, Celebic, Wotu-Wolio, Wolio-Kamaru -wlr Wailapa 166.90179 -15.5656 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -wls Wallisian -176.17319 -13.28543 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, East Fijian-Polynesian, Polynesian, Nuclear, Samoic-Outlier, East Uvean-Niuafo’ou -wlu Wuliwuli 149.843 -24.415 Australian, Pama-Nyungan, Waka-Kabic, Miyan -wlv Wichí Lhamtés Vejoz -61.91171 -24.21891 Matacoan, Mataco -wlw Walak 138.83988 -3.8238 Trans-New Guinea, West, Dani, Dani Proper -wlx Wali -2.31263 10.02119 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Western, Northwest -wly Waling 86.48373 26.6369 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -wma Mawa 9.72407 10.85268 Unclassified -wmb Wambaya 135.68289 -17.49595 Australian, West Barkly -wmc Wamas 145.54112 -4.97757 Trans-New Guinea, Madang, Croisilles, Hanseman -wme Wambule 86.47646 27.14808 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Western -wmh Waima'a 126.31696 -8.53416 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Timor-Babar, Nuclear Timor -wmi Wamin 143.94347 -18.37266 Australian, Pama-Nyungan, Paman, Southern Pama -wmm Maiwa 119.97793 -3.59444 Austronesian, Malayo-Polynesian, South Sulawesi, Northern, Masenrempulu -wmn Waamwang 164.40905 -20.50144 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Northern, North, Hmwaveke -wmo Wom 142.87008 -3.5332 Torricelli, Kombio-Arapesh, Kombio -wms Wambon 140.48035 -5.44334 Trans-New Guinea, Ok-Awyu, Awyu-Dumut, Dumut -wmt Walmajarri 126.11319 -19.72293 Australian, Pama-Nyungan, South-West, Ngumbin -wmw Mwani 40.46007 -12.58208 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Swahili (G.403) -wnb Wanambre 145.41873 -4.78822 Trans-New Guinea, Madang, Croisilles, Pihom, Tiboran -wnc Wantoat 146.51343 -6.15216 Trans-New Guinea, Finisterre-Huon, Finisterre, Wantoat -wnd Wandarang 135.7048 -14.29959 Australian, Gunwingguan, Maran, Mara -wne Waneci 67.83272 30.05005 Indo-European, Indo-Iranian, Iranian, Eastern, Southeastern, Pashto -wng Wanggom 140.19449 -5.60094 Trans-New Guinea, Ok-Awyu, Awyu-Dumut, Dumut -wni Ndzwani Comorian 44.37088 -12.21233 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Swahili (G.44) -wnk Wanukaka 119.46801 -9.69834 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Sumba-Hawu, Sumba -wnm Wanggamala 137.43344 -24.70217 Australian, Pama-Nyungan, Karnic, Palku -wno Wano 137.67754 -3.47858 Trans-New Guinea, West, Dani, Wano -wnp Wanap 142.49964 -3.59639 Torricelli, Wapei-Palei, Palei -wnu Usan 145.36225 -4.84265 Trans-New Guinea, Madang, Croisilles, Pihom, Numugenan -woa Tyaraity 130.6759 -12.48677 Australian, Daly, Malagmalag, Malagmalag Proper -wob Wè Northern -7.24617 7.40391 Niger-Congo, Atlantic-Congo, Volta-Congo, Kru, Western, Wee, Wobe -woc Wogeo 144.08925 -3.20238 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Schouten, Kairiru-Manam, Manam -wod Wolani 136.70289 -3.41642 Trans-New Guinea, West, Wissel Lakes -woe Woleaian 143.91592 7.37957 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Micronesian, Micronesian Proper, Ponapeic-Trukic, Trukic -wof Gambian Wolof -16.15435 13.53369 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Senegambian, Fula-Wolof, Wolof -wog Wogamusin 142.40054 -4.22936 Sepik, Wogamusin-Chenapian -woi Kamang 124.7923 -8.26897 Trans-New Guinea, West, Timor-Alor-Pantar, Alor-Pantar, Alor -wok Longto 13.05682 8.33313 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Duru, Voko-Dowayo, Voko -wol Wolof -16.20793 15.43737 Niger-Congo, Atlantic-Congo, Atlantic, Northern, Senegambian, Fula-Wolof, Wolof -wom Wom 12.45334 8.92708 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Leko-Nimbari, Leko -won Wongo 20.5054 -5.73837 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bushoong (C.85) -woo Manombai 134.3295 -5.94468 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Aru -wor Woria 136.51899 -2.37997 East Geelvink Bay -wos Hanga Hundi 142.84869 -3.90364 Sepik, Ndu -wow Wawonii 123.10032 -4.13587 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Bungku-Tolaki, Eastern, East Coast -woy Weyto 35.63369 11.94153 Unclassified -wpc Maco -66.58126 4.5621 Sálivan, Piaroa-Maco -wra Warapu 142.01231 -3.07263 Skou, Skou-Serra-Piore, Serra Hills, Piore River -wrb Warluwara 138.73801 -22.29092 Australian, Pama-Nyungan, Wagaya-Warluwaric, Warluwara-Thawa -wrd Warduji 71.14749 36.60835 Unclassified -wre Ware 36.33784 -3.00034 -wrg Warungu 144.37004 -18.24957 Australian, Pama-Nyungan, Maric -wrh Wiradhuri 145.99414 -34.07423 Australian, Pama-Nyungan, Wiradhuric -wri Wariyangga 116.927 -24.353 Australian, Pama-Nyungan, South-West, Inland Ngayarda -wrl Warlmanpa 133.86247 -18.94897 Australian, Pama-Nyungan, South-West, Ngarga -wrm Warumungu 134.37481 -20.64791 Australian, Pama-Nyungan, Warumungic -wrn Warnang 31.15736 10.59398 Niger-Congo, Kordofanian, Heiban, Eastern -wrp Waropen 136.63287 -2.31142 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Waropen -wrr Wardaman 132.60421 -15.41548 Australian, Gunwingguan, Yangmanic -wrs Waris 141.10645 -3.277 Border, Waris -wru Waru 122.05801 -3.412 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Bungku-Tolaki, Western, West Coast -wrv Waruna 142.46979 -8.23565 Trans-New Guinea, Gogodala-Suki, Gogodala -wrw Gugu Warra 142.569 -12.713 Australian, Pama-Nyungan, Paman, Mbariman -wrx Wae Rana 120.79339 -8.74889 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -wry Merwari 74.095 26.771 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Rajasthani, Marwari -wrz Waray 131.23575 -13.09414 Australian, Gunwingguan, Warayan -wsa Warembori 137.5662 -1.65941 Lower Mamberamo -wsi Wusi 166.696 -15.27863 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, West Santo -wsk Waskia 145.97883 -4.57978 Trans-New Guinea, Madang, South Adelbert Range, Kowan -wsr Owenia 145.81705 -6.70452 Trans-New Guinea, Kainantu-Goroka, Kainantu, Owenia -wss Wasa -2.16028 5.74109 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Nyo, Potou-Tano, Tano, Central, Akan -wsu Wasu -36.83332 -9.74999 Unclassified -wsv Wotapuri-Katarqalai 70.8565 34.70327 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Kohistani -wtf Dumpu 145.65507 -5.82002 Trans-New Guinea, Madang, Rai Coast, Evapia -wti Berta 34.88833 10.42622 Nilo-Saharan, Berta -wtk Watakataui 143.00482 -4.58965 Sepik, Sepik Hill, Bahinemo -wtm Mewati 76.947 27.736 Indo-European, Indo-Iranian, Indo-Aryan, Central zone, Unclassified -wtw Wotu 120.90044 -2.59593 Austronesian, Malayo-Polynesian, Celebic, Wotu-Wolio -wua Wikngenchera 141.59876 -13.49573 Australian, Pama-Nyungan, Paman, Middle Pama -wub Wunambal 125.72002 -14.83473 Australian, Worrorran -wud Wudu 1.53522 7.57619 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe -wuh Wutunhua 101.95654 35.26904 Mixed language, Chinese-Tibetan-Bonan Mongour -wul Silimo 139.00335 -4.52544 Trans-New Guinea, West, Dani, Ngalik -wum Wumbvu 12.25116 -2.299 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Kele (B.24) -wun Bungu 32.8801 -8.32587 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, F, Sukuma-Nyamwezi (F.25) -wur Wurrugu 132.303 -11.364 Australian, Yiwaidjan, Yiwaidjic -wut Wutung 141.10425 -2.64636 Skou, Skou-Serra-Piore, Nuclear Skou, Eastern Skou -wuu Wu Chinese 119.68246 29.86209 Sino-Tibetan, Chinese -wuv Wuvulu-Aua 142.85072 -1.73938 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Admiralty Islands, Western -wux Wulna 131.26054 -12.30224 Australian, Limilngan-Wulna -wuy Wauyai 130.59741 -0.2828 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Raja Ampat -wwa Waama 1.65318 10.59559 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Eastern -wwo Wetamut 167.54977 -14.29165 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, North and Central Vanuatu, Northeast Vanuatu-Banks Islands, East Vanuatu -wwr Warrwa 123.97143 -17.09646 Australian, Nyulnyulan -www Wawa 11.78018 6.68974 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Northern, Mambiloid, Suga-Vute, Vute -wxa Waxianghua 110.3618 28.64404 Unclassified -wya Wyandot -103.01664 36.38053 Iroquoian, Northern Iroquoian, Five Nations-Huronian-Susquehannock, Huronian, Huron-Petun -wyb Wangaaybuwan-Ngiyambaa 146.17959 -30.64808 Australian, Pama-Nyungan, Wiradhuric -wyr Wayoró -61.30635 -12.69447 Tupian, Tuparí -wyy Western Fijian 177.6574 -17.83546 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, Central Pacific, West Fijian-Rotuman, West Fijian -xac Kachari 92.317 26.6882 Sino-Tibetan, Tibeto-Burman, Sal, Bodo-Garo-Northern Naga, Bodo-Koch, Bodo-Garo, Bodo -xah Kahayan 113.72967 -1.59815 -xai Kaimbe -41.99999 -12.99999 Unclassified -xal Kalmyk-Oirat 45.42443 46.75922 Altaic, Mongolic, Eastern, Oirat-Khalkha, Oirat-Kalmyk-Darkhat -xam Xam 20.17325 -31.76115 Khoisan, Southern Africa, Southern, !Kwi -xan Xamtanga 38.83518 12.44788 Afro-Asiatic, Cushitic, Central, Eastern -xao Khao 103.46701 21.45432 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Khmuic, Khao -xar Karami 143.11666 -7.13333 Trans-New Guinea, Inland Gulf, Minanibai -xas Kamas 89.888 52.12934 Uralic, Samoyed, Southern Samoyed -xat Katawixi -64.83193 -7.25015 Katukinan -xau Kauwera 138.15745 -2.22799 Tor-Kwerba, Greater Kwerba, Kwerba, Nuclear -xav Xavánte -52.43669 -14.30173 Jean, Central -xaw Kawaiisu -118.67889 36.05383 Uto-Aztecan, Northern Uto-Aztecan, Numic, Southern -xay Kayan Mahakam 114.45183 0.91787 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kayanic, Kayan Proper -xba Kamba -57.33332 -18.83332 Unclassified -xbi Kombio 142.69357 -3.48467 Torricelli, Kombio-Arapesh, Kombio -xbr Kambera 120.23531 -9.88447 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Sumba-Hawu, Sumba -xbw Kambiwa -37.49999 -8.16666 Unclassified -xbx Kabixí -58.9931 -14.24031 Chapacuran, Itene -xdy Malayic Dayak 111.13647 -2.78384 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic -xed Hdi 13.76897 10.91837 Afro-Asiatic, Chadic, Biu-Mandara, A, A.4, Lamang -xeg Xegwi 20.72587 -27.66623 Khoisan, Southern Africa, Southern, !Kwi -xel Kelo 34.3816 10.92914 Nilo-Saharan, Eastern Sudanic, Eastern, Eastern Jebel, Aka-Kelo-Molo -xem Kembayan 110.4678 0.66181 Austronesian, Malayo-Polynesian, Land Dayak, Southern -xer Xerénte -48.26292 -9.59426 Jean, Central -xes Kesawai 145.5796 -5.76797 Trans-New Guinea, Madang, Rai Coast, Evapia -xet Xetá -52.22659 -24.94082 Tupian, Tupí-Guaraní, Guaraní -xeu Keuru 145.41549 -7.63603 Trans-New Guinea, Eleman, Nuclear Eleman, Western -xhe Khetrani 70.28278 30.47994 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Lahnda -xho Xhosa 27.35462 -32.02504 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Nguni (S.41) -xhv Khua 106.12501 17.52913 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Katuic, West Katuic, Brou-So -xia Xiandao 97.90515 24.5458 -xii Xiri 20.72598 -28.42578 Khoisan, Southern Africa, Central, Nama -xin Xinca -89.82346 14.31028 Language isolate -xip Xipinawa -68.83333 -8.74999 Panoan, Mainline -xir Xiriâna -62.54131 2.69932 Maipurean, Northern, Upper Amazon, Unclassified -xiy Xipaya -49.948 -4.133 Tupian, Juruna -xka Kalkoti 72.05328 35.3651 Indo-European, Indo-Iranian, Indo-Aryan, Northwestern zone, Dardic, Shina -xkb Manigri-Kambolé Ede Nago 1.87529 9.03107 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Defoid, Yoruboid, Edekiri -xkc Khoini 48.62115 36.89973 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Talysh -xkd Mendalam Kayan 113.28555 0.98794 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kayanic, Kayan Proper -xke Kereho-Uheng 113.64401 0.64649 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kayanic, Muller-Schwaner ‘Punan’ -xkf Khengkha 90.86331 27.08785 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, East Bodish, Bumthang -xkg Kagoro -9.96404 14.05464 Niger-Congo, Mande, Western, Central-Southwestern, Central, Manding-Jogo, Manding-Vai, Manding-Mokole, Manding, Manding-West -xkh Karahawyana -57.87162 -1.29991 Unclassified -xki Kenyan Sign Language 37.19953 -1.00166 Deaf sign language -xkj Kajali 53.47846 35.89886 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Talysh -xkk Kaco' 107.25745 13.82736 Austro-Asiatic, Mon-Khmer, Eastern Mon-Khmer, Bahnaric, North Bahnaric -xkl Kelinyau Kenyah 116.61136 1.13571 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kenyah -xkm Mahakam Kenyah 116.16028 0.06503 -xkn Kayan River Kayan 115.82727 1.78269 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kayanic, Kayan Proper -xko Kiorr 101.55443 20.7502 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Eastern Palaungic, Angkuic -xkp Kabatei 49.76025 37.05288 Indo-European, Indo-Iranian, Iranian, Western, Northwestern, Talysh -xkq Koroni 121.97686 -2.6367 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Bungku-Tolaki, Eastern, East Coast, Kulisusu -xkr Xakriaba -46.99999 -18.99999 Jean, Central -xks Kumbewaha 123.15407 -5.34485 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Muna-Buton, Nuclear Muna-Buton, Buton, East Buton -xkt Kantosi -1.95415 10.33261 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Western, Southeast -xku Kaamba 13.28397 -4.0409 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Kikongo (H.112) -xkv Kgalagadi 22.72016 -25.9208 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Sotho-Tswana (S.311) -xkw Kembra 140.4344 -3.89065 Unclassified -xkx Karore 149.90664 -6.15563 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Southwest New Britain, Arawe-Pasismanua, Pasismanua -xky Western Kenyah 114.2046 2.14141 Austronesian, Malayo-Polynesian, North Borneo, North Sarawakan, Kayan-Kenyah, Kenyah, Upper Pujungan -xkz Kurtokha 90.98223 27.53654 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, East Bodish, Bumthang -xla Kamula 142.63931 -7.28798 Trans-New Guinea, Kamula -xma Mushungulu 42.66256 0.00689 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Zigula-Zaramo (G.311) -xmb Mbonga 13.64707 5.7517 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Jarawan, Cameroon -xmc Makhuwa-Marrevone 39.12026 -16.93945 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Makhuwa (P.31) -xmd Mbedam 13.93223 10.46599 Afro-Asiatic, Chadic, Biu-Mandara, A, A.7 -xmf Mingrelian 41.87188 42.51289 Kartvelian, Zan -xmg Mengaka 10.33765 5.71399 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Bamileke -xmh Kuku-Muminh 141.62545 -14.09588 Australian, Pama-Nyungan, Paman, Middle Pama -xmi Miarra -53.50069 -12.67213 -xmj Majera 14.99666 11.16614 Afro-Asiatic, Chadic, Biu-Mandara, B, B.1, Jina -xml Malaysian Sign Language 101.36596 2.946 Deaf sign language -xmm Manado Malay 124.8433 1.48099 Creole, Malay based -xmo Morerebi -61.38581 -8.66822 Tupian, Tupí-Guaraní, Kawahib, Parintintin -xmp Kuku-Mu'inh 141.70862 -14.20101 Australian, Pama-Nyungan, Paman, Middle Pama -xmq Kuku-Mangk 141.82375 -14.28658 Australian, Pama-Nyungan, Paman, Middle Pama -xms Moroccan Sign Language -7.69607 32.13896 Deaf sign language -xmt Matbat 130.07501 -1.8801 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Raja Ampat -xmu Kamu 131.0983 -13.53926 Australian, Daly, Malagmalag, Daly Proper -xmv Antankarana Malagasy 49.24022 -13.21644 Austronesian, Malayo-Polynesian, Greater Barito, East, Malagasy -xmw Tsimihety Malagasy 48.81024 -15.42937 Austronesian, Malayo-Polynesian, Greater Barito, East, Malagasy -xmx Maden 130.83335 -1.05325 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, South Halmahera-West New Guinea, West New Guinea, Cenderawasih Bay, Raja Ampat -xmy Mayaguduna 140.33745 -18.11468 Australian, Pama-Nyungan, Paman, Mayabic -xmz Mori Bawah 121.36984 -2.56016 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Bungku-Tolaki, Eastern, East Coast -xnb Kanakanabu 120.88736 23.32349 Austronesian, Tsouic -xnh Kuanhua 101.15793 21.98016 Austro-Asiatic, Mon-Khmer, Unclassified -xnn Northern Kankanay 120.78649 17.10573 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Meso-Cordilleran, South-Central Cordilleran, Central Cordilleran, North Central Cordilleran, Nuclear Cordilleran, Bontok-Kankanay, Kankanay -xnr Kangri 76.366 31.915 Indo-European, Indo-Iranian, Indo-Aryan, Northern zone, Western Pahari -xns Kanashi 77.1553 32.28426 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, West Himalayish, Kinauri -xod Kokoda 132.44949 -2.12872 Trans-New Guinea, South Bird’s Head, South Bird’s Head Proper, Central -xog Soga 33.3942 0.40456 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Nyoro-Ganda (E.16) -xoi Kominimung 144.78262 -4.68537 Ramu-Lower Sepik, Ramu, Tamolan -xok Xokleng -49.58861 -26.92172 Jean, Southern -xom Komo 34.04022 9.18635 Nilo-Saharan, Komuz, Koman -xon Konkomba 0.0426 9.93574 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Northern, Oti-Volta, Gurma -xoo Xukuru -36.58332 -8.06666 Language isolate -xop Kopar 144.46567 -3.98259 Ramu-Lower Sepik, Lower Sepik, Nor -xor Korubo -70.50942 -5.3655 Unclassified -xow Kowaki 145.41193 -4.63032 Trans-New Guinea, Madang, Croisilles, Pihom, Tiboran -xpe Liberia Kpelle -9.96128 6.92048 Niger-Congo, Mande, Western, Central-Southwestern, Southwestern, Kpelle -xpn Kapinawa -38.33332 -8.49999 Unclassified -xra Krahô -47.57738 -8.01172 Jean, Northern, Timbira -xrb Eastern Karaboro -4.52253 10.49875 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Senufo, Karaboro -xre Kreye -45.97761 -5.29266 Jean, Northern, Timbira -xri Krikati-Timbira -46.75038 -5.94252 Jean, Northern, Timbira -xrw Karawa 142.01835 -3.69933 Sepik, Ram -xsb Tinà Sambal 120.0948 15.5797 Austronesian, Malayo-Polynesian, Philippine, Central Luzon, Sambalic -xse Sempan 137.58814 -5.17582 Trans-New Guinea, Asmat-Kamoro, Sempan -xsh Shamang 7.95163 9.37832 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Northwestern, Hyamic -xsi Sio 147.35333 -5.96037 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Ngero-Vitiaz, Vitiaz, Sio -xsj Subi 31.35945 -2.93387 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Haya-Jita (E.20) -xsl South Slavey -117.04665 59.87942 Eyak-Athabaskan, Athabaskan, Northern Athabaskan, Slavey-Hare -xsm Kasem -1.24065 11.25817 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Gur, Central, Southern, Grusi, Northern -xsn Sanga 8.83882 10.41566 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Jera -xsp Silopi 145.58617 -5.12302 Trans-New Guinea, Madang, Croisilles, Hanseman -xsq Makhuwa-Saka 39.53235 -13.64426 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Makhuwa (P.31) -xsr Sherpa 86.64668 27.77854 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Central, gTsang -xst Silt'e 38.14491 7.77004 -xsu Sanumá -64.47388 3.6499 Yanomaman -xsy Saisiyat 121.06725 24.60434 Austronesian, Northwest Formosan -xta Alcozauca Mixtec -98.39688 17.36871 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -xtb Chazumba Mixtec -97.78733 18.15412 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -xtc Katcha-Kadugli-Miri 29.49142 10.84227 Nilo-Saharan, Kadugli-Krongo -xtd Diuxi-Tilantongo Mixtec -97.38615 17.35959 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -xte Ketengban 140.44268 -4.50417 Trans-New Guinea, Mek, Western -xti Sinicahua Mixtec -97.59043 17.22185 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -xtj San Juan Teita Mixtec -97.38989 17.15417 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -xtl Tijaltepec Mixtec -97.45778 17.15386 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -xtm Magdalena Peñasco Mixtec -97.54133 17.28374 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -xtn Northern Tlaxiaco Mixtec -97.8349 17.48058 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -xtp San Miguel Piedras Mixtec -97.20561 16.99438 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -xts Sindihui Mixtec -97.30365 17.01996 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -xtt Tacahua Mixtec -97.45367 16.96482 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -xtu Cuyamecalco Mixtec -96.73135 18.08214 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -xty Yoloxochitl Mixtec -98.62928 16.80588 Otomanguean, Eastern Otomanguean, Amuzgo-Mixtecan, Mixtecan, Mixtec -xua Alu Kurumba 76.7995 11.34565 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Kodagu -xub Betta Kurumba 76.60643 11.63852 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam, Tamil -xuf Kunfal 36.30005 12.16941 -xug Kunigami 128.06803 26.5911 Japonic, Ryukyuan, Amami-Okinawan, Southern Amami-Okinawan -xuj Jennu Kurumba 76.57667 11.50414 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Kodagu -xuo Kuo 15.55714 8.00754 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Mbum, Eastern Mbum, Koh -xut Kuthant 140.95758 -17.45658 Australian, Pama-Nyungan, Paman, Norman Pama -xuu Kxoe 22.57834 -17.95288 Khoisan, Southern Africa, Central, Tshu-Khwe, Northwest -xvi Kamviri 71.39239 35.17978 Indo-European, Indo-Iranian, Indo-Aryan, Nuristani -xwe Xwela Gbe 2.02985 6.41342 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe -xwg Kwegu 36.1702 5.40416 Nilo-Saharan, Eastern Sudanic, Eastern, Surmic, South, Southeast, Kwegu -xwl Western Xwla Gbe 2.29495 6.35933 Niger-Congo, Atlantic-Congo, Volta-Congo, Kwa, Left Bank, Gbe -xwr Kwerba Mamberamo 138.43628 -2.56457 Tor-Kwerba, Greater Kwerba, Kwerba, Nuclear -xxk Ke'o 121.25556 -8.8704 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Bima-Lembata -yaa Yaminahua -72.63496 -10.21319 Panoan, Mainline, Tri-State -yab Yuhup -69.80793 0.2485 Puinavean, Hupda -yac Pass Valley Yali 139.25967 -3.76869 Trans-New Guinea, West, Dani, Ngalik -yad Yagua -72.21864 -3.42913 Yaguan -yae Pumé -67.59958 7.10677 Unclassified -yaf Yaka 17.25753 -6.96323 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Yaka (H.31) -yag Yámana -68.26479 -55.27479 Language isolate -yah Yazgulyam 71.56505 38.28006 Indo-European, Indo-Iranian, Iranian, Eastern, Southeastern, Pamir, Shugni-Yazgulami -yai Yagnobi 69.24216 39.14856 Indo-European, Indo-Iranian, Iranian, Eastern, Northeastern -yaj Banda-Yangere 16.59073 3.95763 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Banda, Central, Western -yak Yakima -120.75587 46.26552 Sahaptian, Sahaptin -yal Yalunka -11.10246 10.14516 Niger-Congo, Mande, Western, Central-Southwestern, Central, Susu-Yalunka -yam Yamba 11.04281 6.46497 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Nkambe -yao Yao 35.33519 -14.7804 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, P, Yao (P.21) -yap Yapese 138.12478 9.55811 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Yapese -yaq Yaqui -110.2979 27.84032 Uto-Aztecan, Southern Uto-Aztecan, Taracahitic, Cahitan -yar Yabarana -66.276 5.32692 Cariban, Central, Mapoyo-Yavarana -yas Nugunu 11.18368 4.63103 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Sanaga (A.622) -yat Yambeta 10.93686 4.83615 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Basaa (A.462) -yau Yuwana -65.4267 5.63879 Language isolate -yav Yangben 11.02774 4.41971 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Sanaga (A.62) -yaw Yawalapiti -53.42357 -12.51038 Maipurean, Southern, Central, Waurá, Waurá-Meinaku -yax Yauma 20.51199 -14.1932 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, K, Ciokwe-Luchazi (K.16) -yay Agwagwune 8.03166 5.81055 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Central, North-South, Ubaghara-Kohumono, Kohumono -yaz Lokaa 8.0933 5.91483 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Cross River, Delta Cross, Upper Cross, Central, East-West, Loko -yba Yala 8.60748 6.73852 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Idomoid, Akweya, Etulo-Idoma, Idoma -ybb Yemba 10.0214 5.47421 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Mbam-Nkam, Bamileke -ybd Yangbye 94.25435 18.52397 -ybe West Yugur 99.31118 39.05481 Altaic, Turkic, Eastern -ybh Yakha 87.25327 27.14178 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -ybi Yamphu 87.04413 27.63216 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Himalayan, Kiranti, Eastern -ybj Hasha 8.66137 9.14063 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Southwestern, B -ybl Yukuben 9.87999 6.89612 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Jukunoid, Yukuben-Kuteb -ybm Yaben 145.36113 -4.90868 Trans-New Guinea, Madang, Croisilles, Pihom, Numugenan -ybn Yabaana -65.49999 0.58332 Maipurean, Northern, Upper Amazon, Unclassified -ybo Yabong 146.2065 -5.61718 Trans-New Guinea, Madang, Rai Coast, Yaganon -ybx Yawiyo 142.11163 -4.58133 Sepik, Leonhard Schultze -yby Yaweyuha 145.35873 -6.1868 Trans-New Guinea, Kainantu-Goroka, Gorokan, Siane -ycl Central Yi 101.30185 25.50051 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Central -ycn Yucuna -71.00327 -0.76075 Maipurean, Northern, Upper Amazon, Western Nawiki -ydd Eastern Yiddish 34.96823 31.79335 Indo-European, Germanic, West, High German, Yiddish -ydg Yidgha 71.50765 36.01403 Indo-European, Indo-Iranian, Iranian, Eastern, Southeastern, Pamir -ydk Yoidik 145.75776 -4.94044 Trans-New Guinea, Madang, Croisilles, Hanseman -yds Yiddish Sign Language 34.78181 31.73421 Deaf sign language -yea Ravula 75.62646 12.32309 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam, Malayalam -yec Yeniche 8.47267 48.24834 Mixed language, German-Yiddish-Romani-Rotwelsch -yee Yimas 143.5721 -4.71731 Ramu-Lower Sepik, Lower Sepik, Karawari -yei Yeni 11.53922 6.48954 Unclassified -yej Yevanic 35.10838 31.80104 Indo-European, Greek, Attic -yel Yela 22.58912 -2.46204 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Tetela (C.74) -yen Yendang 12.13961 9.0159 -yer Tarok 10.02885 8.98356 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Tarokoid -yes Yeskwa 7.97913 9.05454 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Northwestern, Koro -yet Yetfa 140.65319 -4.05884 Unclassified -yeu Yerukula 81.97482 17.37023 Dravidian, Southern, Tamil-Kannada, Tamil-Kodagu, Tamil-Malayalam, Tamil -yev Yapunda 142.43607 -3.47256 Torricelli, Wapei-Palei, Wapei -yey Yeyi 23.47191 -19.7434 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, R, Yeyi (R.41) -ygm Yagomi 146.60263 -5.74049 Trans-New Guinea, Finisterre-Huon, Finisterre, Warup -ygr Yagaria 145.38785 -6.32432 Trans-New Guinea, Kainantu-Goroka, Gorokan, Kamano-Yagaria -ygw Yagwoia 145.85384 -7.14042 Trans-New Guinea, Angan, Nuclear Angan -yhd Judeo-Iraqi Arabic 34.89732 31.8704 Afro-Asiatic, Semitic, Central, South, Arabic -yia Yinggarda 115.57998 -25.44464 Australian, Pama-Nyungan, South-West, Yinggarda -yib Yinglish -81.842 38.484 -yif Ache Yi 102.446 24.152 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southeastern -yig Guizhou Yi 102.3674 25.77067 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Northern -yih Western Yiddish 12.26013 51.68892 Indo-European, Germanic, West, High German, Yiddish -yii Yidiny 145.87621 -17.13318 Australian, Pama-Nyungan, Yidinic -yij Yindjibarndi 117.00104 -21.53794 Australian, Pama-Nyungan, South-West, Coastal Ngayarda -yik Xishan Lalu Yi 100.178 25.435 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Central -yil Yindjilandji 137.5894 -19.24252 Australian, Pama-Nyungan, Wagaya-Warluwaric, Warluwara-Thawa -yim Yimchungru Naga 94.80874 25.76745 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Ao -yin Yinchia 97.91665 20.08332 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Palaungic, Western Palaungic, Riang -yio Dayao Yi 101.302 25.226 -yip Poluo Yi 104.238 23.667 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southeastern -yiq Miqie Yi 102.301 25.012 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Central -yir North Awyu 140.06796 -5.93647 Trans-New Guinea, Ok-Awyu, Awyu-Dumut, Awyu -yis Yis 141.88034 -3.57371 Torricelli, Wapei-Palei, Wapei -yit Eastern Lalu Yi 101.546 23.585 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Central -yiu Awu Yi 103.306 25.395 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Northern -yiv Eshan-Xinping Yi 102.456 24.408 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southeastern -yix Axi Yi 103.71347 24.60087 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southeastern -yiy Yir Yoront 141.76736 -15.11172 Australian, Pama-Nyungan, Paman, Yir Yoront -yiz Azhe Yi 103.441 24.405 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southeastern -yka Yakan 122.08718 6.57677 Austronesian, Malayo-Polynesian, Greater Barito, Sama-Bajaw -ykg Northern Yukaghir 151.31794 65.38736 Yukaghir -yki Yoke 138.02774 -1.68798 Lower Mamberamo -ykk Yakaikeke 149.98189 -10.08519 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Are-Taupota, Taupota -ykm Yakamul 142.65902 -3.28761 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Schouten, Siau -yko Yasa 9.89801 2.45171 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, A, Bubi-Benga (A.33) -ykr Yekora 147.46278 -7.86248 Trans-New Guinea, Greater Binanderean, Binanderean, Yekora -ykt Kathu 102.710002 25.045806 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southeastern -yky Yakoma 22.00041 4.26593 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Ngbandi -yla Yaul 143.99318 -4.39912 Mongol-Langam -yle Yele 154.12664 -11.37963 Yele-West New Britain, Yele -ylg Yelogu 142.80753 -4.09907 Sepik, Ndu -yli Angguruk Yali 139.45668 -4.0836 Trans-New Guinea, West, Dani, Ngalik -yll Yil 142.17773 -3.46501 Torricelli, Wapei-Palei, Wapei -ylm Limi Yi 100.073 24.469 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Central -ylo Naluo Yi 102.598 25.97 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Northern -ylr Yalarnnga 139.511 -21.731 Australian, Pama-Nyungan, Galgadungic -ylu Aribwaung 146.91898 -6.65252 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, Markham, Lower, Busu -yly Nyâlayu 164.35164 -20.32393 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Central-Eastern Oceanic, Remote Oceanic, New Caledonian, Northern, Extreme Northern -yma Yamphe 87.13094 27.60688 -ymb Yambes 142.76279 -3.50624 Torricelli, Kombio-Arapesh, Kombio -yme Yameo -73.66666 -4.16666 Yaguan -ymg Yamongeri 22.3073 -0.24248 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Bangi-Ntomba (C.36) -ymh Mili Yi 100.611 24.115 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Central -ymj Muji Yi 103.464 23.086 -ymk Makwe 40.32648 -10.75503 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Swahili (G.402) -yml Iamalele 150.57308 -9.45005 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Nuclear, North Papuan Mainland-D’Entrecasteaux, Bwaidoga -ymm Maay 43.61819 3.22288 Afro-Asiatic, Cushitic, East, Somali -ymn Yamna 139.20583 -2.09118 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Sarmi-Jayapura Bay, Sarmi -ymp Yamap 146.81725 -7.05687 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, South, Hote-Buang, Hote -ynd Yandruwandha 140.58294 -28.47439 Australian, Pama-Nyungan, Karnic, Karna -yng Yango 19.01082 2.81523 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Sere-Ngbaka-Mba, Ngbaka-Mba, Ngbaka, Western, Monzombo -ynh Yangho 13.02134 -1.92218 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Mbete (B.603) -ynk Naukan Yupik -171.7554 65.51842 Eskimo-Aleut, Eskimo, Yupik -ynl Yangulam 145.85762 -5.52697 Trans-New Guinea, Madang, Rai Coast, Nuru -ynn Yana -121.60762 39.27685 -yno Yong 98.97646 18.38726 Tai-Kadai, Kam-Tai, Tai, Southwestern -yns Yansi 18.23407 -3.8231 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Tiene-Yanzi (B.85) -ynu Yahuna -73.12889 5.58325 Tucanoan, Western Tucanoan -yob Yoba 149.28333 -10.21666 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Central Papuan, Oumic, Magoric -yog Yogad 121.71773 16.70149 Austronesian, Malayo-Polynesian, Philippine, Northern Luzon, Northern Cordilleran, Cagayan Valley, Ibanagic -yoi Yonaguni 122.99075 24.44997 Japonic, Ryukyuan, Sakishima -yok Yokuts -119.7214 36.31674 Yokutsan -yom Yombe 12.95312 -5.2481 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, H, Kikongo (H.16) -yon Yonggom 141.21262 -6.42956 Trans-New Guinea, Ok-Awyu, Ok, Lowland -yor Yoruba 4.72395 7.74108 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Defoid, Yoruboid, Edekiri -yos Yos 95.75663 25.43638 -yox Yoron 128.4281 27.04068 Japonic, Ryukyuan, Amami-Okinawan, Southern Amami-Okinawan -yoy Yoy 103.99745 17.70371 Tai-Kadai, Kam-Tai, Tai, Northern -ypl Pula Yi 102.475 23.602 -ypw Puwa Yi 103.733 23.591 -yra Yerakai 142.94708 -4.28828 Sepik, Yerakai -yrb Yareba 148.6047 -9.50651 Trans-New Guinea, Southeast Papuan, Yareban -yre Yaouré -5.57851 6.95282 Niger-Congo, Mande, Eastern, Southeastern, Guro-Tura, Guro-Yaoure -yri Yarí -74.37145 1.43017 Unclassified -yrk Nenets 71.02339 66.17749 Uralic, Samoyed, Northern Samoyed -yrl Nhengatu -67.22852 0.55166 Tupian, Tupí-Guaraní, Tupí, Tupí -yrn Yerong 105.75368 23.34197 Tai-Kadai, Kra, Eastern Kra -yrs Yarsun 139.47243 -2.21222 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Sarmi-Jayapura Bay, Sarmi -yrw Yarawata 145.45448 -4.93943 Trans-New Guinea, Madang, Croisilles, Pihom, Numugenan -ysl Yugoslavian Sign Language 20.30734 44.77026 Deaf sign language -ysn Sani Yi 103.759 24.278 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Central -yso Southeastern Lolo Yi 104.85 23.418 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Southeastern -ysp Southern Lolopho Yi 100.89 23.847 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Central -ysr Sirenik Yupik -173.925 64.5192 Eskimo-Aleut, Eskimo, Yupik -yss Yessan-Mayo 142.57362 -4.15721 Sepik, Tama -yua Yucatán Maya -89.11902 19.66147 Mayan, Yucatecan-Core Mayan, Yucatecan, Yucatec-Lacandon -yub Yugambal 153.082 -27.803 Australian, Pama-Nyungan, Yugambal -yuc Yuchi -95.03933 35.96146 Language isolate -yud Judeo-Tripolitanian Arabic 34.74222 31.95667 Afro-Asiatic, Semitic, Central, South, Arabic -yue Yue Chinese 111.13195 22.30541 Sino-Tibetan, Chinese -yuf Havasupai-Walapai-Yavapai -113.38519 35.6302 Cochimí-Yuman, Yuman, Pai -yui Yurutí -70.42549 0.91389 Tucanoan, Eastern Tucanoan, Tucano -yuj Karkar-Yuri 141.09822 -3.74954 Pauwasi, Eastern -yuk Yuki -123.29566 39.83891 Yukian, Core Yukian -yul Yulu 22.87198 8.89587 Nilo-Saharan, Central Sudanic, West, Bongo-Bagirmi, Kara -yum Quechan -114.59862 32.78589 Cochimí-Yuman, Yuman, River, Mojave -yun Bena 12.39722 9.74861 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Waja-Jen, Yungur, Yungur-Roba -yup Yukpa -73.13938 9.78392 Cariban, Yukpa, Yucpa-Yapreria -yuq Yuqui -64.94382 -16.78752 Tupian, Tupí-Guaraní, Guarayú, Sirionó -yur Yurok -123.82432 41.32625 Algic, Ritwan -yus Chan Santa Cruz Maya -88.16815 19.34947 -yut Yopno 146.66102 -5.94085 Trans-New Guinea, Finisterre-Huon, Finisterre, Yupna -yuu Yugh 89.74791 60.87784 -yuw Yau 146.84099 -6.08274 Trans-New Guinea, Finisterre-Huon, Finisterre, Uruwa -yux Southern Yukaghir 154.37455 64.21804 Yukaghir -yuy East Yugur 101.76214 37.98815 Altaic, Mongolic, Eastern, Mongour -yuz Yuracare -65.12241 -16.74788 Language isolate -yva Yawa 136.26312 -1.77196 West Papuan, Yapen -yvt Yavitero -67.42829 9.8194 Maipurean, Northern, Upper Amazon, Central Upper Amazon, Yavitero -ywa Kalou 142.21654 -3.93985 Sepik, Tama -ywl Western Lalu Yi 98.9 24.73 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Central -ywm Wumeng Yi 103.646 27.574 -ywn Yawanawa -71.81991 -8.87563 Panoan, Mainline, Tri-State -ywq Wuding-Luquan Yi 102.48 25.48 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Northern -ywr Yawuru 122.69265 -18.00405 Australian, Nyulnyulan -ywt Western Yi 100.71057 24.8709 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Central -ywu Wusa Yi 104.624 26.714 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Northern -yww Yawarawarga 140.87095 -26.73343 Australian, Pama-Nyungan, Karnic, Karna -yym Yuanjiang-Mojiang Yi 101.412 23.058 -yyu Yau 141.97435 -3.4663 Torricelli, Wapei-Palei, Wapei -zaa Sierra de Juárez Zapotec -96.61912 17.4219 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zab San Juan Guelavía Zapotec -96.59675 17.03317 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zac Ocotlán Zapotec -96.72633 16.82585 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zad Cajonos Zapotec -96.33521 17.14274 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zae Yareni Zapotec -96.7052 17.34064 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zaf Ayoquesco Zapotec -96.85754 16.66328 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zag Zaghawa 23.97722 15.09388 Nilo-Saharan, Saharan, Eastern -zah Zangwal 9.74694 10.22845 Afro-Asiatic, Chadic, West, B, B.3, Guruntum -zai Isthmus Zapotec -94.84438 16.45479 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zaj Zaramo 38.92578 -6.87705 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Zigula-Zaramo (G.33) -zak Zanaki 34.05419 -2.26367 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Logooli-Kuria (E.44) -zal Zauzou 98.86336 26.45722 Sino-Tibetan, Tibeto-Burman, Ngwi-Burmese, Ngwi, Central -zam Miahuatlán Zapotec -96.66467 16.21965 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zao Ozolotepec Zapotec -96.36863 16.04 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zaq Aloápam Zapotec -96.74381 17.41375 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zar Rincón Zapotec -96.31441 17.4451 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zas Santo Domingo Albarradas Zapotec -96.28104 17.03452 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zat Tabaa Zapotec -96.2777 17.28215 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zau Zangskari 77.40126 33.23973 Sino-Tibetan, Tibeto-Burman, Western Tibeto-Burman, Bodish, Central Bodish, Western -zav Yatzachi Zapotec -96.28398 17.1869 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zaw Mitla Zapotec -96.29434 16.86849 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zax Xadani Zapotec -96.0318 15.88219 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zay Zayse-Zergulla 37.34089 5.83747 Afro-Asiatic, Omotic, North, Gonga-Gimojan, Gimojan, Ometo-Gimira, Ometo, East -zaz Zari 9.40332 9.71269 Afro-Asiatic, Chadic, West, B, B.3, Zaar Proper -zca Coatecas Altas Zapotec -96.73363 16.56088 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zdj Ngazidja Comorian 43.35998 -11.6129 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Swahili (G.44) -zea Zeeuws 3.85428 51.49809 Indo-European, Germanic, West, Low Saxon-Low Franconian, Low Franconian -zeg Zenag 146.54567 -6.93858 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, North New Guinea, Huon Gulf, South, Hote-Buang, Buang, Mumeng -zen Zenaga -16.17106 16.81997 Afro-Asiatic, Berber, Zenaga -zga Kinga 34.23208 -9.35868 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Bena-Kinga (G.65) -zgr Magori 149.26034 -10.23207 Austronesian, Malayo-Polynesian, Central-Eastern Malayo-Polynesian, Eastern Malayo-Polynesian, Oceanic, Western Oceanic, Papuan Tip, Peripheral, Central Papuan, Oumic, Magoric -zhb Zhaba 100.98277 30.74155 Sino-Tibetan, Tibeto-Burman, Northeastern Tibeto-Burman, Qiangic -zhi Zhire 7.95163 9.37832 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Plateau, Western, Northwestern, Hyamic -zhw Zhoa 10.16651 6.53614 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Wide Grassfields, Narrow Grassfields, Ring, West -zia Zia 147.57935 -7.95814 Trans-New Guinea, Greater Binanderean, Binanderean, North Binanderean -zib Zimbabwe Sign Language 31.02158 -17.91276 Deaf sign language -zik Zimakani 141.45194 -7.3701 Trans-New Guinea, Marind, Boazi -zim Mesme 15.7018 9.28888 Afro-Asiatic, Chadic, Masa -zin Zinza 32.17547 -2.64132 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, J, Haya-Jita (E.23) -zir Ziriya 8.72792 10.52184 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Kainji, Eastern, Northern Jos, Jera -ziw Zigula 38.41138 -5.61864 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, G, Zigula-Zaramo (G.31) -ziz Zizilivakan 13.54019 10.37649 Afro-Asiatic, Chadic, Biu-Mandara, A, A.8 -zka Kaimbulawa 122.53776 -5.65447 Austronesian, Malayo-Polynesian, Celebic, Eastern, Southeastern, Muna-Buton, Nuclear Muna-Buton, Munan, Munic -zkp Sao Paulo Kaingang -46.76093 -23.57076 Jean, Southern, Kaingang -zkr Zakhring 97.022 28.129 Sino-Tibetan, Tibeto-Burman, Central Tibeto-Burman, Keman -zlm Malay 101.97576 4.21048 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -zma Manda 129.88452 -13.64805 Australian, Daly, Bringen-Wagaydy, Wagaydy -zmb Zimba 26.6083 -4.013 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Lega-Holoholo (D.26) -zmc Margany 144.89177 -26.78902 Australian, Pama-Nyungan, Maric -zmd Maridan 130.07894 -14.05423 Australian, Daly, Bringen-Wagaydy, Bringen -zme Mangerr 132.97306 -12.23909 Australian, Giimbiyu -zmf Mfinu 16.25588 -4.26573 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Tiene-Yanzi (B.83) -zmg Marti Ke 129.83741 -14.00579 Australian, Daly, Bringen-Wagaydy, Bringen -zmh Makolkol 151.7088 -4.87995 East New Britain, Baining -zmi Negeri Sembilan Malay 102.29107 2.66503 Austronesian, Malayo-Polynesian, Malayo-Chamic, Malayic, Malay -zmj Maridjabin 129.84387 -13.87537 Australian, Daly, Bringen-Wagaydy, Bringen -zmk Mandandanyi 148.97756 -26.57302 Australian, Pama-Nyungan, Maric -zml Madngele 130.6003 -13.94794 Australian, Daly, Malagmalag, Daly Proper -zmm Marimanindji 130.56095 -14.17881 Australian, Daly, Bringen-Wagaydy, Bringen -zmn Mbangwe 13.67513 -1.99764 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Kele (B.23) -zmo Molo 33.56769 10.79304 Nilo-Saharan, Eastern Sudanic, Eastern, Eastern Jebel, Aka-Kelo-Molo -zmp Mpuono 19.42688 -5.21134 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, B, Tiene-Yanzi (B.84) -zmq Mituku 25.10405 -1.57031 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Mbole-Enya (D.13) -zmr Maranunggu 130.11963 -13.67535 Australian, Daly, Bringen-Wagaydy, Wagaydy -zms Mbesa 22.83887 1.6207 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Soko-Kele (C.51) -zmt Maringarr 130.25018 -14.38188 Australian, Daly, Bringen-Wagaydy, Bringen -zmu Muruwari 146.54642 -28.96178 Australian, Pama-Nyungan, Muruwaric -zmv Mbariman-Gudhinma 143.78882 -14.52902 Australian, Pama-Nyungan, Paman, Mbariman -zmw Mbo 28.01805 1.11602 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, D, Bira-Nyali (D.334) -zmx Bomitaba 17.37329 1.70044 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Northwest, C, Ngondi (C.14) -zmy Mariyedi 129.87562 -13.76865 Australian, Daly, Bringen-Wagaydy, Bringen -zmz Mbandja 20.31083 4.51093 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Banda, Southern -zna Zan Gula 19.14163 10.58847 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Adamawa, Mbum-Day, Bua -zne Zande 26.37156 3.35017 Niger-Congo, Atlantic-Congo, Volta-Congo, North, Adamawa-Ubangi, Ubangi, Zande, Zande-Nzakara -zng Mang 103.14238 22.37722 Austro-Asiatic, Mon-Khmer, Northern Mon-Khmer, Mang -znk Manangkari 132.352 -11.361 Australian, Yiwaidjan, Yiwaidjic -zns Mangas 9.76103 10.0839 Afro-Asiatic, Chadic, West, B, B.3, Boghom -zoc Copainalá Zoque -93.31825 17.21575 Mixe-Zoquean, Zoquean, Chiapas Zoquean -zoh Chimalapa Zoque -94.69125 16.65428 Mixe-Zoquean, Zoquean -zom Zome 94.2114 23.88559 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Northern -zoo Asunción Mixtepec Zapotec -96.8704 16.8762 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zoq Tabasco Zoque -93.09679 18.17129 Mixe-Zoquean, Zoquean, Gulf Zoquean -zor Rayón Zoque -93.10061 17.29533 Mixe-Zoquean, Zoquean, Chiapas Zoquean, Northeast Zoque -zos Francisco León Zoque -93.36326 17.36536 Mixe-Zoquean, Zoquean, Chiapas Zoquean -zpa Lachiguiri Zapotec -95.53673 16.57718 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpb Yautepec Zapotec -95.92825 16.44147 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpc Choapan Zapotec -95.86562 17.4371 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpd Southeastern Ixtlán Zapotec -96.61991 17.25883 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpe Petapa Zapotec -95.11178 16.80226 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpf San Pedro Quiatoni Zapotec -96.0899 16.76078 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpg Guevea de Humboldt Zapotec -95.36408 16.73118 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zph Totomachapan Zapotec -97.08235 16.85537 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpi Santa María Quiegolani Zapotec -96.04857 16.03302 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpj Quiavicuzas Zapotec -95.67611 16.75649 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpk Tlacolulita Zapotec -95.74145 16.29708 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpl Lachixío Zapotec -96.93185 16.72145 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpm Mixtepec Zapotec -96.23717 16.17241 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpn Santa Inés Yatzechi Zapotec -96.75273 16.88416 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpo Amatlán Zapotec -96.40033 16.27069 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpp El Alto Zapotec -96.99874 16.87424 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpq Zoogocho Zapotec -96.34326 17.20157 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpr Santiago Xanica Zapotec -96.21859 15.88362 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zps Coatlán Zapotec -96.76826 16.14634 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpt San Vicente Coatlán Zapotec -96.86667 16.28166 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpu Yalálag Zapotec -96.21834 17.2134 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpv Chichicapan Zapotec -96.5486 16.84594 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpw Zaniza Zapotec -97.28758 16.68044 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpx San Baltazar Loxicha Zapotec -96.76197 16.04087 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpy Mazaltepec Zapotec -96.8791 17.15472 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zpz Texmelucan Zapotec -97.08947 16.49197 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zrg Mirgan 81.33599 23.43055 Indo-European, Indo-Iranian, Indo-Aryan, Eastern zone, Bengali-Assamese -zrn Zirenkel 18.53737 12.22745 Afro-Asiatic, Chadic, East, B, B.1, 2 -zro Záparo -76.36398 -1.99871 Zaparoan, Záparo -zrp Zarphatic 4.38771 45.56274 Indo-European, Italic, Romance, Italo-Western, Western, Gallo-Iberian, Gallo-Romance, Gallo-Rhaetian, Oïl, French -zrs Mairasi 134.07073 -3.4511 Mairasi -zsl Zambian Sign Language 28.98984 -15.51343 Deaf sign language -zsr Southern Rincon Zapotec -96.3775 17.30309 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -ztc Lachirioag Zapotec -96.14199 17.33221 -zte Elotepec Zapotec -97.19119 16.8693 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -ztg Xanaguía Zapotec -96.19267 15.97478 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -ztl Santiago Lapaguia Zapotec -96.1636 16.06761 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -ztm San Agustín Mixtepec Zapotec -96.33623 16.22016 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -ztn Santa Catarina Albarradas Zapotec -96.35115 17.04461 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -ztp Loxicha Zapotec -96.69968 15.8442 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -ztq Quioquitani-Quierí Zapotec -96.15551 16.34158 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zts Tilquiapan Zapotec -96.63213 16.85291 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -ztt Tejalapan Zapotec -96.88757 17.09436 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -ztu Güilá Zapotec -96.45715 16.88241 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -ztx Zaachila Zapotec -96.82337 17.00245 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zty Yatee Zapotec -96.19804 17.28877 Otomanguean, Eastern Otomanguean, Popolocan-Zapotecan, Zapotecan, Zapotec -zua Zeem 9.28934 9.95001 Afro-Asiatic, Chadic, West, B, B.3, Zaar Proper -zuh Tokano 145.29832 -6.05047 Trans-New Guinea, Kainantu-Goroka, Gorokan, Gahuku-Benabena -zul Zulu 30.33978 -30.46098 Niger-Congo, Atlantic-Congo, Volta-Congo, Benue-Congo, Bantoid, Southern, Narrow Bantu, Central, S, Nguni (S.42) -zum Kumzari 56.42019 26.16023 Indo-European, Indo-Iranian, Iranian, Western, Southwestern, Luri -zun Zuni -108.78197 35.00561 Language isolate -zuy Zumaya 14.44451 10.55798 Afro-Asiatic, Chadic, Masa -zwa Zay 38.82583 8.01148 Afro-Asiatic, Semitic, South, Ethiopian, South, Transversal, Harari-East Gurage -zyp Zyphe 93.482 22.028 Sino-Tibetan, Tibeto-Burman, Sal, Kuki-Chin-Naga, Kuki-Chin, Maraic diff --git a/lol/meta/api_volumes.txt b/lol/meta/api_volumes.txt deleted file mode 100755 index ab16cc652..000000000 --- a/lol/meta/api_volumes.txt +++ /dev/null @@ -1 +0,0 @@ -[{"dam_id":"1BISLSS2DV","fcbh_id":"1BISLSS2DV","volume_name":"DOOR International Burundi Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"1BI","language_name":"Burundian Sign Language","language_english":"Burundian Sign Language","language_iso":"1bi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Burundi Sign Language","language_family_code":"1BI","language_family_name":"Burundian Sign Language","language_family_english":"Burundian Sign Language","language_family_iso":"1bi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLS","version_name":"Sign Language Stories","version_english":"Sign Language Stories","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2014-04-01 16:01:41","created_on":"2014-01-10 16:39:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"1BISLSS2DV\/1BISLSS2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"1INSLSS2DV","fcbh_id":"1INSLSS2DV","volume_name":"Indian (Kerala) Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"1IN","language_name":"Indian (Kerala) Sign Language","language_english":"Indian (Kerala) Sign Language","language_iso":"1in","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kerala\/India Sign Language","language_family_code":"1IN","language_family_name":"Indian (Kerala) Sign Language","language_family_english":"Indian (Kerala) Sign Language","language_family_iso":"1in","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLS","version_name":"Sign Language Stories","version_english":"Sign Language Stories","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2016-01-26 17:31:59","created_on":"2014-01-10 17:06:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"1INSLSS2DV\/1INSLSS2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"1MYSLSS2DV","fcbh_id":"1MYSLSS2DV","volume_name":"Myanmar (Yangon) Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"1MY","language_name":"Myanmar (Yangon) Sign Language","language_english":"Myanmar (Yangon) Sign Language","language_iso":"1my","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Myanmar Sign Language","language_family_code":"1MY","language_family_name":"Myanmar (Yangon) Sign Language","language_family_english":"Myanmar (Yangon) Sign Language","language_family_iso":"1my","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLS","version_name":"Sign Language Stories","version_english":"Sign Language Stories","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2015-04-30 16:32:46","created_on":"2014-11-18 17:03:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"1MYSLSS2DV\/1MYSLSS2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"1NGSLSS2DV","fcbh_id":"1NGSLSS2DV","volume_name":"Nigerian Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"1NG","language_name":"Nigerian Sign Language","language_english":"Nigerian Sign Language","language_iso":"1ng","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nigeria Sign Language","language_family_code":"1NG","language_family_name":"Nigerian Sign Language","language_family_english":"Nigerian Sign Language","language_family_iso":"1ng","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLS","version_name":"Sign Language Stories","version_english":"Sign Language Stories","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2015-05-01 02:08:33","created_on":"2014-12-05 20:39:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"1NGSLSS2DV\/1NGSLSS2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"2INSLSS2DV","fcbh_id":"2INSLSS2DV","volume_name":"Indian (Karnataka) Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"2IN","language_name":"Indian (Karnataka) Sign Language","language_english":"Indian (Karnataka) Sign Language","language_iso":"2in","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Karnataka India Sign Language","language_family_code":"2IN","language_family_name":"Indian (Karnataka) Sign Language","language_family_english":"Indian (Karnataka) Sign Language","language_family_iso":"2in","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLS","version_name":"Sign Language Stories","version_english":"Sign Language Stories","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2016-01-26 17:22:19","created_on":"2014-06-19 15:33:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"2INSLSS2DV\/2INSLSS2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"AA1WBTN2ET","fcbh_id":"AA1WBTN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AA1","language_name":"Kalam","language_english":"Kalam","language_iso":"aah","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Abu' Arapesh","language_family_code":"AA1","language_family_name":"Kalam","language_family_english":"Kalam","language_family_iso":"aah","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-03 18:36:44","created_on":"2014-09-29 20:53:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AA1WBTN2ET\/AA1WBTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AAHWBTN2ET","fcbh_id":"AAHWBTN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AAH","language_name":"Kalam (Minimib)","language_english":"Kalam (Minimib)","language_iso":"aah","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Abu' Arapesh","language_family_code":"AAH","language_family_name":"Kalam (Minimib)","language_family_english":"Kalam (Minimib)","language_family_iso":"aah","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-03 18:36:02","created_on":"2014-05-07 19:34:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AAHWBTN2ET\/AAHWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AAIWBTN2ET","fcbh_id":"AAIWBTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AAI","language_name":"Arifama-Miniafia","language_english":"Arifama-Miniafia","language_iso":"aai","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Arifama-Miniafia","language_family_code":"AAI","language_family_name":"Arifama-Miniafia","language_family_english":"Arifama-Miniafia","language_family_iso":"aai","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:18","created_on":"2014-05-12 23:26:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AAIWBTN2ET\/AAIWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AAKWBTN2ET","fcbh_id":"AAKWBTN2ET","volume_name":"1990 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AAK","language_name":"Angave","language_english":"Ankave","language_iso":"aak","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ankave","language_family_code":"AAK","language_family_name":"Angave","language_family_english":"Ankave","language_family_iso":"aak","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:18","created_on":"2014-05-13 21:41:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AAKWBTN2ET\/AAKWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AAUWBTN2ET","fcbh_id":"AAUWBTN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AAU","language_name":"Abau","language_english":"Abau","language_iso":"aau","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Abau","language_family_code":"AAU","language_family_name":"Abau","language_family_english":"Abau","language_family_iso":"aau","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:18","created_on":"2013-09-04 15:43:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AAUWBTN2ET\/AAUWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AB1AWVN2ET","fcbh_id":"AB1AWVN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AB1","language_name":"Ambulas-Wosera-Kamu","language_english":"Ambulas-Wosera-Kamu","language_iso":"abt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ambulas","language_family_code":"AB1","language_family_name":"Ambulas-Wosera-Kamu","language_family_english":"Ambulas-Wosera-Kamu","language_family_iso":"abt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AWV","version_name":"Ambulas-Wosera-Kamu","version_english":"Ambulas-Wosera-Kamu","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-09-15 18:01:30","created_on":"2013-09-09 14:22:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AB1AWVN2ET\/AB1AWVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ABIWBTN1DA","fcbh_id":"ABIWBTN1DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ABI","language_name":"Abidji","language_english":"Abidji","language_iso":"abi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Abidji","language_family_code":"ABI","language_family_name":"Abidji","language_family_english":"Abidji","language_family_iso":"abi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:14:35","created_on":"2018-01-10 17:35:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ABIWBTN1DA\/ABIWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ABIWBTN1ET","fcbh_id":"ABIWBTN1ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ABI","language_name":"Abidji","language_english":"Abidji","language_iso":"abi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Abidji","language_family_code":"ABI","language_family_name":"Abidji","language_family_english":"Abidji","language_family_iso":"abi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-12 20:16:49","created_on":"2018-11-12 19:43:47","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ABIWBTN1ET\/ABIWBTN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ABIWBTN2DA","fcbh_id":"ABIWBTN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ABI","language_name":"Abidji","language_english":"Abidji","language_iso":"abi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Abidji","language_family_code":"ABI","language_family_name":"Abidji","language_family_english":"Abidji","language_family_iso":"abi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:14:36","created_on":"2018-01-10 17:32:10","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ABIWBTN2DA\/ABIWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ABIWBTN2ET","fcbh_id":"ABIWBTN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ABI","language_name":"Abidji","language_english":"Abidji","language_iso":"abi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Abidji","language_family_code":"ABI","language_family_name":"Abidji","language_family_english":"Abidji","language_family_iso":"abi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-12 20:17:14","created_on":"2018-11-12 19:41:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ABIWBTN2ET\/ABIWBTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ABTAMVN2ET","fcbh_id":"ABTAMVN2ET","volume_name":"1983 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ABT","language_name":"Ambulas-Maprik","language_english":"Ambulas-Maprik","language_iso":"abt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ambulas","language_family_code":"ABT","language_family_name":"Ambulas-Maprik","language_family_english":"Ambulas-Maprik","language_family_iso":"abt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AMV","version_name":"Ambulas-Maprik","version_english":"Ambulas-Maprik","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-28 16:52:32","created_on":"2014-09-17 22:45:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ABTAMVN2ET\/ABTAMVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ABYWBTN2ET","fcbh_id":"ABYWBTN2ET","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ABY","language_name":"Aneme Wake","language_english":"Aneme Wake","language_iso":"aby","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Aneme Wake","language_family_code":"ABY","language_family_name":"Aneme Wake","language_family_english":"Aneme Wake","language_family_iso":"aby","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:18","created_on":"2014-05-13 18:53:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ABYWBTN2ET\/ABYWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AC1IBSN2DA","fcbh_id":"AC1IBSN2DA","volume_name":"1997 Today's Aceh Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AC1","language_name":"Aceh","language_english":"Aceh","language_iso":"ace","language_iso_2B":"ace","language_iso_2T":"ace","language_iso_1":"","language_iso_name":"Achinese","language_family_code":"ACE","language_family_name":"Aceh","language_family_english":"Aceh","language_family_iso":"ace","language_family_iso_2B":"ace","language_family_iso_2T":"ace","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-20 22:41:33","created_on":"2012-06-25 18:50:15","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"AC1IBSN2DA\/AC1IBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AC1IBSN2ET","fcbh_id":"AC1IBSN2ET","volume_name":"1997 Today's Aceh Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AC1","language_name":"Aceh","language_english":"Aceh","language_iso":"ace","language_iso_2B":"ace","language_iso_2T":"ace","language_iso_1":"","language_iso_name":"Achinese","language_family_code":"ACE","language_family_name":"Aceh","language_family_english":"Aceh","language_family_iso":"ace","language_family_iso_2B":"ace","language_family_iso_2T":"ace","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-06 17:08:55","created_on":"2012-06-25 19:50:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AC1IBSN2ET\/AC1IBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AC1IBSO2ET","fcbh_id":"AC1IBSO2ET","volume_name":"1997 Today's Aceh Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AC1","language_name":"Aceh","language_english":"Aceh","language_iso":"ace","language_iso_2B":"ace","language_iso_2T":"ace","language_iso_1":"","language_iso_name":"Achinese","language_family_code":"ACE","language_family_name":"Aceh","language_family_english":"Aceh","language_family_iso":"ace","language_family_iso_2B":"ace","language_family_iso_2T":"ace","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-09-06 17:20:14","created_on":"2012-06-25 22:44:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AC1IBSO2ET\/AC1IBSO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ACCIBSN1DA","fcbh_id":"ACCIBSN1DA","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACC","language_name":"Achi de Cubulco","language_english":"Achi de Cubulco","language_iso":"acc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Achi de Cubulco","language_family_code":"ACC","language_family_name":"Achi de Cubulco","language_family_english":"Achi de Cubulco","language_family_iso":"acc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-20 22:46:38","created_on":"2010-09-14 16:59:38","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1ACCIBS","audio_zip_path":"ACCIBSN1DA\/ACCIBSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ACCIBSN1ET","fcbh_id":"ACCIBSN1ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACC","language_name":"Achi de Cubulco","language_english":"Achi de Cubulco","language_iso":"acc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Achi de Cubulco","language_family_code":"ACC","language_family_name":"Achi de Cubulco","language_family_english":"Achi de Cubulco","language_family_iso":"acc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:18","created_on":"2010-11-25 20:48:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1ACCIBS","audio_zip_path":"ACCIBSN1ET\/ACCIBSN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ACDWBTN2DA","fcbh_id":"ACDWBTN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACD","language_name":"Gikyode","language_english":"Gikyode","language_iso":"acd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gikyode","language_family_code":"ACD","language_family_name":"Gikyode","language_family_english":"Gikyode","language_family_iso":"acd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-27 21:08:10","created_on":"2010-09-14 16:59:54","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2ACDWBT","audio_zip_path":"ACDWBTN2DA\/ACDWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ACDWBTN2ET","fcbh_id":"ACDWBTN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACD","language_name":"Gikyode","language_english":"Gikyode","language_iso":"acd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gikyode","language_family_code":"ACD","language_family_name":"Gikyode","language_family_english":"Gikyode","language_family_iso":"acd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:19","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2ACDWBT","audio_zip_path":"ACDWBTN2ET\/ACDWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ACHBSUN2DA","fcbh_id":"ACHBSUN2DA","volume_name":"1985 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACH","language_name":"Acholi","language_english":"Acholi","language_iso":"ach","language_iso_2B":"ach","language_iso_2T":"ach","language_iso_1":"","language_iso_name":"Acoli","language_family_code":"ACH","language_family_name":"Acholi","language_family_english":"Acholi","language_family_iso":"ach","language_family_iso_2B":"ach","language_family_iso_2T":"ach","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-06-16 16:18:26","created_on":"2010-09-14 16:59:54","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2ACHBSU","audio_zip_path":"ACHBSUN2DA\/ACHBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ACHBSUN2ET","fcbh_id":"ACHBSUN2ET","volume_name":"1985 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACH","language_name":"Acholi","language_english":"Acholi","language_iso":"ach","language_iso_2B":"ach","language_iso_2T":"ach","language_iso_1":"","language_iso_name":"Acoli","language_family_code":"ACH","language_family_name":"Acholi","language_family_english":"Acholi","language_family_iso":"ach","language_family_iso_2B":"ach","language_family_iso_2T":"ach","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:19","created_on":"2014-06-05 16:00:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ACHBSUN2ET\/ACHBSUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ACMAS3N2DA","fcbh_id":"ACMASVN2DA","volume_name":"Sharif (Iraqi) Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACM","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"acm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mesopotamian Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"AS3","version_name":"Al Sharif (Iraqi) Version","version_english":"Al Sharif (Iraqi) Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-20 23:53:26","created_on":"2011-05-31 16:08:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ACMAS3N2DA\/ACMAS3N2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ACMAS3N2ET","fcbh_id":"ACMASVN2ET","volume_name":"Sharif (Iraqi) Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACM","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"acm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mesopotamian Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"AS3","version_name":"Al Sharif (Iraqi) Version","version_english":"Al Sharif (Iraqi) Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:19","created_on":"2011-05-17 20:41:05","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ACMAS3N2ET\/ACMAS3N2ET.zip","font":{"id":"30","name":"Scheherazade","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Scheherazade","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2004-2014, SIL International","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ACNBSMN1DA","fcbh_id":"ACNBSMN1DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACN","language_name":"Ngochang","language_english":"Ngochang","language_iso":"acn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Achang","language_family_code":"ACN","language_family_name":"Ngochang","language_family_english":"Ngochang","language_family_iso":"acn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-03 18:52:42","created_on":"2017-05-03 18:12:37","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ACNBSMN1DA\/ACNBSMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ACNBSMN1ET","fcbh_id":"ACNBSMN1ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACN","language_name":"Ngochang","language_english":"Ngochang","language_iso":"acn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Achang","language_family_code":"ACN","language_family_name":"Ngochang","language_family_english":"Ngochang","language_family_iso":"acn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-03 18:35:10","created_on":"2017-05-03 18:11:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ACNBSMN1ET\/ACNBSMN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ACNBSMN2DA","fcbh_id":"ACNBSMN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACN","language_name":"Ngochang","language_english":"Ngochang","language_iso":"acn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Achang","language_family_code":"ACN","language_family_name":"Ngochang","language_family_english":"Ngochang","language_family_iso":"acn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-12-12 21:29:34","created_on":"2014-12-12 20:01:44","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"ACNBSMN2DA\/ACNBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ACNBSMN2ET","fcbh_id":"ACNBSMN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACN","language_name":"Ngochang","language_english":"Ngochang","language_iso":"acn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Achang","language_family_code":"ACN","language_family_name":"Ngochang","language_family_english":"Ngochang","language_family_iso":"acn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:19","created_on":"2012-01-13 22:42:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ACNBSMN2ET\/ACNBSMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ACRAEMP1ET","fcbh_id":"ACRAEMP1ET","volume_name":"Pentateuch - AEM Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ACR","language_name":"Ach\u00ed","language_english":"Ach\u00ED","language_iso":"acr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Achi","language_family_code":"ACR","language_family_name":"Ach\u00ed","language_family_english":"Ach\u00ED","language_family_iso":"acr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AEM","version_name":"AEM","version_english":"AEM","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-11-13 17:10:32","created_on":"2018-11-13 16:31:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ACRAEMP1ET\/ACRAEMP1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile"],"resolution":[]},{"dam_id":"ACRAEMP2ET","fcbh_id":"ACRAEMP2ET","volume_name":"Pentateuch - AEM Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ACR","language_name":"Ach\u00ed","language_english":"Ach\u00ED","language_iso":"acr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Achi","language_family_code":"ACR","language_family_name":"Ach\u00ed","language_family_english":"Ach\u00ED","language_family_iso":"acr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AEM","version_name":"AEM","version_english":"AEM","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-11-13 17:10:52","created_on":"2018-11-13 16:27:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ACRAEMP2ET\/ACRAEMP2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile"],"resolution":[]},{"dam_id":"ACRWB1N2DA","fcbh_id":"ACRWB1N2DA","volume_name":"2009 Edition (Reformed)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACR","language_name":"Ach\u00ed","language_english":"Achi","language_iso":"acr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Achi","language_family_code":"ACR","language_family_name":"Ach\u00ed","language_family_english":"Achi","language_family_iso":"acr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WB1","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-14 17:20:20","created_on":"2012-01-13 16:15:49","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"ACRWB1N2DA\/ACRWB1N2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ACRWB1N2ET","fcbh_id":"ACRWB1N2ET","volume_name":"2009 Edition (Reformed)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACR","language_name":"Ach\u00ed","language_english":"Achi","language_iso":"acr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Achi","language_family_code":"ACR","language_family_name":"Ach\u00ed","language_family_english":"Achi","language_family_iso":"acr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WB1","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:19","created_on":"2012-01-12 23:51:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ACRWB1N2ET\/ACRWB1N2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ACRWBTN2DA","fcbh_id":"ACRWBTN2DA","volume_name":"2009 Edition (Traditional)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACR","language_name":"Ach\u00ed","language_english":"Achi","language_iso":"acr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Achi","language_family_code":"ACR","language_family_name":"Ach\u00ed","language_family_english":"Achi","language_family_iso":"acr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-14 17:20:20","created_on":"2010-09-14 17:01:14","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2ACRWBT","audio_zip_path":"ACRWBTN2DA\/ACRWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ACRWBTN2ET","fcbh_id":"ACRWBTN2ET","volume_name":"2009 Edition (Traditional)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACR","language_name":"Ach\u00ed","language_english":"Achi","language_iso":"acr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Achi","language_family_code":"ACR","language_family_name":"Ach\u00ed","language_family_english":"Achi","language_family_iso":"acr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:19","created_on":"2011-08-05 17:06:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ACRWBTN2ET\/ACRWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ACUTBLN2DA","fcbh_id":"ACUTBLN2DA","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACU","language_name":"Achuar-Shiwiar","language_english":"Achuar-Shiwiar","language_iso":"acu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Achuar-Shiwiar","language_family_code":"ACU","language_family_name":"Achuar-Shiwiar","language_family_english":"Achuar-Shiwiar","language_family_iso":"acu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-20 23:43:11","created_on":"2011-07-11 16:12:41","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"ACUTBLN2DA\/ACUTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ACUTBLN2ET","fcbh_id":"ACUTBLN2ET","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ACU","language_name":"Achuar-Shiwiar","language_english":"Achuar-Shiwiar","language_iso":"acu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Achuar-Shiwiar","language_family_code":"ACU","language_family_name":"Achuar-Shiwiar","language_family_english":"Achuar-Shiwiar","language_family_iso":"acu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:19","created_on":"2011-05-29 23:04:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ACUTBLN2ET\/ACUTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ADETBLN2DA","fcbh_id":"ADETBLN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ADE","language_name":"Adele","language_english":"Adele","language_iso":"ade","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Adele","language_family_code":"ADE","language_family_name":"Adele","language_family_english":"Adele","language_family_iso":"ade","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-20 23:43:41","created_on":"2010-09-14 16:59:54","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2ADETBL","audio_zip_path":"ADETBLN2DA\/ADETBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ADETBLN2ET","fcbh_id":"ADETBLN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ADE","language_name":"Adele","language_english":"Adele","language_iso":"ade","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Adele","language_family_code":"ADE","language_family_name":"Adele","language_family_english":"Adele","language_family_iso":"ade","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:19","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2ADETBL","audio_zip_path":"ADETBLN2ET\/ADETBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ADHBSUN2DA","fcbh_id":"ADHBSUN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ADH","language_name":"Dhopadhola","language_english":"Dhopadhola","language_iso":"adh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Adhola","language_family_code":"ADH","language_family_name":"Dhopadhola","language_family_english":"Dhopadhola","language_family_iso":"adh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:55:15","created_on":"2012-01-26 16:22:45","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"ADHBSUN2DA\/ADHBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ADHBSUN2ET","fcbh_id":"ADHBSUN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ADH","language_name":"Dhopadhola","language_english":"Dhopadhola","language_iso":"adh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Adhola","language_family_code":"ADH","language_family_name":"Dhopadhola","language_family_english":"Dhopadhola","language_family_iso":"adh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:19","created_on":"2013-05-17 16:42:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ADHBSUN2ET\/ADHBSUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ADJWBTN2DA","fcbh_id":"ADJWBTN2DA","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ADJ","language_name":"Adioukrou","language_english":"Adioukrou","language_iso":"adj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Adioukrou","language_family_code":"ADJ","language_family_name":"Adioukrou","language_family_english":"Adioukrou","language_family_iso":"adj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-29 21:24:31","created_on":"2013-01-28 17:36:21","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"ADJWBTN2DA\/ADJWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ADJWBTN2ET","fcbh_id":"ADJWBTN2ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ADJ","language_name":"Adioukrou","language_english":"Adioukrou","language_iso":"adj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Adioukrou","language_family_code":"ADJ","language_family_name":"Adioukrou","language_family_english":"Adioukrou","language_family_iso":"adj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:19","created_on":"2011-07-12 22:37:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ADJWBTN2ET\/ADJWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AEUWBTN1DA","fcbh_id":"AEUWBTN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AEU","language_name":"Akeu","language_english":"Akeu","language_iso":"aeu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Akeu","language_family_code":"AEU","language_family_name":"Akeu","language_family_english":"Akeu","language_family_iso":"aeu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-04-30 20:02:16","created_on":"2018-03-29 18:53:26","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"AEUWBTN1DA\/AEUWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"AEUWBTN1ET","fcbh_id":"AEUWBTN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AEU","language_name":"Akeu","language_english":"Akeu","language_iso":"aeu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Akeu","language_family_code":"AEU","language_family_name":"Akeu","language_family_english":"Akeu","language_family_iso":"aeu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-04-30 20:32:42","created_on":"2018-03-29 18:50:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AEUWBTN1ET\/AEUWBTN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AEUWBTN2DA","fcbh_id":"AEUWBTN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AEU","language_name":"Akeu","language_english":"Akeu","language_iso":"aeu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Akeu","language_family_code":"AEU","language_family_name":"Akeu","language_family_english":"Akeu","language_family_iso":"aeu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-04-30 20:02:16","created_on":"2018-03-29 16:22:39","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"AEUWBTN2DA\/AEUWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"AEUWBTN2ET","fcbh_id":"AEUWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AEU","language_name":"Akeu","language_english":"Akeu","language_iso":"aeu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Akeu","language_family_code":"AEU","language_family_name":"Akeu","language_family_english":"Akeu","language_family_iso":"aeu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-04-30 20:02:16","created_on":"2016-11-30 17:46:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AEUWBTN2ET\/AEUWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AGDPNGN2ET","fcbh_id":"AGDPNGN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AGD","language_name":"Agarabi","language_english":"Agarabi","language_iso":"agd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Agarabi","language_family_code":"AGD","language_family_name":"Agarabi","language_family_english":"Agarabi","language_family_iso":"agd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 19:37:22","created_on":"2013-09-04 15:31:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AGDPNGN2ET\/AGDPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AGGPNGN2ET","fcbh_id":"AGGPNGN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AGG","language_name":"Angor","language_english":"Angor","language_iso":"agg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Angor","language_family_code":"AGG","language_family_name":"Angor","language_family_english":"Angor","language_family_iso":"agg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-11 16:53:48","created_on":"2014-03-19 15:28:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AGGPNGN2ET\/AGGPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AGMWBTN2ET","fcbh_id":"AGMWBTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AGM","language_name":"Angaataha","language_english":"Angaataha","language_iso":"agm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Angaataha","language_family_code":"AGM","language_family_name":"Angaataha","language_family_english":"Angaataha","language_family_iso":"agm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:20","created_on":"2014-05-13 19:02:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AGMWBTN2ET\/AGMWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AGNWPSN2DA","fcbh_id":"AGNWPSN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AGN","language_name":"Agutaynen","language_english":"Agutaynen","language_iso":"agn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Agutaynen","language_family_code":"AGN","language_family_name":"Agutaynen","language_family_english":"Agutaynen","language_family_iso":"agn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WPS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-20 23:46:32","created_on":"2012-12-21 17:20:52","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"AGNWPSN2DA\/AGNWPSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AGNWPSN2ET","fcbh_id":"AGNWPSN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AGN","language_name":"Agutaynen","language_english":"Agutaynen","language_iso":"agn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Agutaynen","language_family_code":"AGN","language_family_name":"Agutaynen","language_family_english":"Agutaynen","language_family_iso":"agn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WPS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:20","created_on":"2012-01-13 19:56:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AGNWPSN2ET\/AGNWPSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AGRTBLN2DA","fcbh_id":"AGRTBLN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AGR","language_name":"Awajun","language_english":"Awajun","language_iso":"agr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Aguaruna","language_family_code":"AGR","language_family_name":"Awajun","language_family_english":"Awajun","language_family_iso":"agr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:07:29","created_on":"2013-06-18 21:05:45","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"AGRTBLN2DA\/AGRTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AGRTBLN2ET","fcbh_id":"AGRTBLN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AGR","language_name":"Awajun","language_english":"Awajun","language_iso":"agr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Aguaruna","language_family_code":"AGR","language_family_name":"Awajun","language_family_english":"Awajun","language_family_iso":"agr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:20","created_on":"2011-08-26 21:09:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AGRTBLN2ET\/AGRTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AGUNVSN1DA","fcbh_id":"AGUNVSN1DA","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AGU","language_name":"Aguacateco","language_english":"Aguacateco","language_iso":"agu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Aguacateco","language_family_code":"AGU","language_family_name":"Aguacateco","language_family_english":"Aguacateco","language_family_iso":"agu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:16:27","created_on":"2010-09-14 16:59:39","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1AGUNVS","audio_zip_path":"AGUNVSN1DA\/AGUNVSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AGUNVSN1ET","fcbh_id":"AGUNVSN1ET","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AGU","language_name":"Aguacateco","language_english":"Aguacateco","language_iso":"agu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Aguacateco","language_family_code":"AGU","language_family_name":"Aguacateco","language_family_english":"Aguacateco","language_family_iso":"agu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:20","created_on":"2010-09-14 16:59:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1AGUNVS","audio_zip_path":"AGUNVSN1ET\/AGUNVSN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AHKTBSN2DA","fcbh_id":"AHKTBSN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AHK","language_name":"Akha ","language_english":"Akha ","language_iso":"ahk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Akha","language_family_code":"AHK","language_family_name":"Akha","language_family_english":"Akha","language_family_iso":"ahk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBS","version_name":"Thailand Bible Society","version_english":"Thailand Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-20 23:47:23","created_on":"2011-01-17 12:21:44","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2AHKTBS","audio_zip_path":"AHKTBSN2DA\/AHKTBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AHKTBSN2ET","fcbh_id":"AHKTBSN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AHK","language_name":"Akha ","language_english":"Akha ","language_iso":"ahk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Akha","language_family_code":"AHK","language_family_name":"Akha","language_family_english":"Akha","language_family_iso":"ahk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBS","version_name":"Thailand Bible Society","version_english":"Thailand Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:21","created_on":"2011-05-12 22:56:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AHKTBSN2ET\/AHKTBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AIAWYIN1DA","fcbh_id":"AIAWYIN1DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AIA","language_name":"Arosi","language_english":"Arosi","language_iso":"aia","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Arosi","language_family_code":"AIA","language_family_name":"Arosi","language_family_english":"Arosi","language_family_iso":"aia","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-04-11 16:25:51","created_on":"2016-04-11 15:05:02","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"AIAWYIN1DA\/AIAWYIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"AIAWYIN1ET","fcbh_id":"AIAWYIN1ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AIA","language_name":"Arosi","language_english":"Arosi","language_iso":"aia","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Arosi","language_family_code":"AIA","language_family_name":"Arosi","language_family_english":"Arosi","language_family_iso":"aia","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-04-11 15:01:08","created_on":"2016-04-01 18:29:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AIAWYIN1ET\/AIAWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AIAWYIN2DA","fcbh_id":"AIAWYIN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AIA","language_name":"Arosi","language_english":"Arosi","language_iso":"aia","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Arosi","language_family_code":"AIA","language_family_name":"Arosi","language_family_english":"Arosi","language_family_iso":"aia","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-04-11 16:26:13","created_on":"2016-04-11 15:14:11","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"AIAWYIN2DA\/AIAWYIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AIAWYIN2ET","fcbh_id":"AIAWYIN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AIA","language_name":"Arosi","language_english":"Arosi","language_iso":"aia","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Arosi","language_family_code":"AIA","language_family_name":"Arosi","language_family_english":"Arosi","language_family_iso":"aia","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:21","created_on":"2015-08-06 20:45:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AIAWYIN2ET\/AIAWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AK1BSGN1DA","fcbh_id":"AK1BSGN1DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AK1","language_name":"Akan: Akuapem","language_english":"Akan: Akuapem","language_iso":"aka","language_iso_2B":"aka","language_iso_2T":"aka","language_iso_1":"ak","language_iso_name":"Akan","language_family_code":"AKA","language_family_name":"Akan","language_family_english":"Akan","language_family_iso":"aka","language_family_iso_2B":"aka","language_family_iso_2T":"aka","language_family_iso_1":"ak","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-17 16:28:08","created_on":"2016-09-19 17:59:18","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"AK1BSGN1DA\/AK1BSGN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"AK1BSGN1ET","fcbh_id":"AK1BSGN1ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AK1","language_name":"Akan: Akuapem","language_english":"Akan: Akuapem","language_iso":"aka","language_iso_2B":"aka","language_iso_2T":"aka","language_iso_1":"ak","language_iso_name":"Akan","language_family_code":"AKA","language_family_name":"Akan","language_family_english":"Akan","language_family_iso":"aka","language_family_iso_2B":"aka","language_family_iso_2T":"aka","language_family_iso_1":"ak","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-14 18:33:52","created_on":"2016-10-14 18:25:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AK1BSGN1ET\/AK1BSGN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AK1BSGN2DA","fcbh_id":"AK1BSGN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AK1","language_name":"Akan: Akuapem","language_english":"Akan: Akuapem","language_iso":"aka","language_iso_2B":"aka","language_iso_2T":"aka","language_iso_1":"ak","language_iso_name":"Akan","language_family_code":"AKA","language_family_name":"Akan","language_family_english":"Akan","language_family_iso":"aka","language_family_iso_2B":"aka","language_family_iso_2T":"aka","language_family_iso_1":"ak","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-09-19 19:00:23","created_on":"2016-09-19 18:03:28","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"AK1BSGN2DA\/AK1BSGN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"AK1BSGN2ET","fcbh_id":"AK1BSGN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AK1","language_name":"Akan: Akuapem","language_english":"Akan: Akuapem","language_iso":"aka","language_iso_2B":"aka","language_iso_2T":"aka","language_iso_1":"ak","language_iso_name":"Akan","language_family_code":"AKA","language_family_name":"Akan","language_family_english":"Akan","language_family_iso":"aka","language_family_iso_2B":"aka","language_family_iso_2T":"aka","language_family_iso_1":"ak","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:21","created_on":"2015-09-11 00:04:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AK1BSGN2ET\/AK1BSGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AK1UBSN1DA","fcbh_id":"TWSUBSN1DA","volume_name":"AKUAPEM: 1964 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"AK1","language_name":"Akan: Akuapem","language_english":"Akan: Akuapem","language_iso":"aka","language_iso_2B":"aka","language_iso_2T":"aka","language_iso_1":"ak","language_iso_name":"Akan","language_family_code":"AKA","language_family_name":"Akan","language_family_english":"Akan","language_family_iso":"aka","language_family_iso_2B":"aka","language_family_iso_2T":"aka","language_family_iso_1":"ak","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:31","created_on":"2010-09-14 16:59:51","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1TWSUBS","audio_zip_path":"AK1UBSN1DA\/AK1UBSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"AK2ASAN2DA","fcbh_id":"TWSASAN2DA","volume_name":"ASANTE: 1964 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"AK2","language_name":"Akan: Asante","language_english":"Akan: Asante","language_iso":"aka","language_iso_2B":"aka","language_iso_2T":"aka","language_iso_1":"ak","language_iso_name":"Akan","language_family_code":"AKA","language_family_name":"Akan","language_family_english":"Akan","language_family_iso":"aka","language_family_iso_2B":"aka","language_family_iso_2T":"aka","language_family_iso_1":"ak","version_code":"ASA","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:32","created_on":"2010-09-14 17:00:51","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TWSASA","audio_zip_path":"AK2ASAN2DA\/AK2ASAN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","television","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AK3FANN2DA","fcbh_id":"TWSFANN2DA","volume_name":"FANTE: 1982 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"AK3","language_name":"Akan: Fante","language_english":"Akan: Fante","language_iso":"aka","language_iso_2B":"aka","language_iso_2T":"aka","language_iso_1":"ak","language_iso_name":"Akan","language_family_code":"AKA","language_family_name":"Akan","language_family_english":"Akan","language_family_iso":"aka","language_family_iso_2B":"aka","language_family_iso_2T":"aka","language_family_iso_1":"ak","version_code":"FAN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:43","created_on":"2010-09-14 17:00:51","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TWSFAN","audio_zip_path":"AK3FANN2DA\/AK3FANN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","television","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AKBLAIN2ET","fcbh_id":"AKBLAIN2ET","volume_name":"1991 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AKB","language_name":"Batak Angkola","language_english":"Batak Angkola","language_iso":"akb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Batak Angkola","language_family_code":"AKB","language_family_name":"Batak Angkola","language_family_english":"Batak Angkola","language_family_iso":"akb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:21","created_on":"2014-03-25 22:07:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AKBLAIN2ET\/AKBLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AKEBSSN1DA","fcbh_id":"AKEBSSN1DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AKE","language_name":"Akawaio","language_english":"Akawaio","language_iso":"ake","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Akawaio","language_family_code":"AKE","language_family_name":"Akawaio","language_family_english":"Akawaio","language_family_iso":"ake","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-20 18:35:57","created_on":"2016-05-13 15:46:08","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"AKEBSSN1DA\/AKEBSSN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AKEBSSN1ET","fcbh_id":"AKEBSSN1ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AKE","language_name":"Akawaio","language_english":"Akawaio","language_iso":"ake","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Akawaio","language_family_code":"AKE","language_family_name":"Akawaio","language_family_english":"Akawaio","language_family_iso":"ake","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-12 19:30:41","created_on":"2016-05-12 19:07:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AKEBSSN1ET\/AKEBSSN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AKEBSSN2DA","fcbh_id":"AKEBSSN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AKE","language_name":"Akawaio","language_english":"Akawaio","language_iso":"ake","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Akawaio","language_family_code":"AKE","language_family_name":"Akawaio","language_family_english":"Akawaio","language_family_iso":"ake","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-02 21:20:36","created_on":"2016-05-02 20:46:38","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"AKEBSSN2DA\/AKEBSSN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"AKEBSSN2ET","fcbh_id":"AKEBSSN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AKE","language_name":"Akawaio","language_english":"Akawaio","language_iso":"ake","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Akawaio","language_family_code":"AKE","language_family_name":"Akawaio","language_family_english":"Akawaio","language_family_iso":"ake","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:21","created_on":"2011-08-24 17:30:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AKEBSSN2ET\/AKEBSSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AKHBSPN2ET","fcbh_id":"AKHBSPN2ET","volume_name":"1978 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AKH","language_name":"Angal Heneng","language_english":"Angal Heneng","language_iso":"akh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Angal Heneng","language_family_code":"AKH","language_family_name":"Angal Heneng","language_family_english":"Angal Heneng","language_family_iso":"akh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-07 20:07:47","created_on":"2014-03-25 21:59:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AKHBSPN2ET\/AKHBSPN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AKPWBTN1DA","fcbh_id":"AKPWBTN1DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AKP","language_name":"Siwu","language_english":"Siwu","language_iso":"akp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Siwu","language_family_code":"AKP","language_family_name":"Siwu","language_family_english":"Siwu","language_family_iso":"akp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-22 22:11:27","created_on":"2015-05-27 16:48:41","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"AKPWBTN1DA\/AKPWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AKPWBTN1ET","fcbh_id":"AKPWBTN1ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AKP","language_name":"Siwu","language_english":"Siwu","language_iso":"akp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Siwu","language_family_code":"AKP","language_family_name":"Siwu","language_family_english":"Siwu","language_family_iso":"akp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:21","created_on":"2015-06-03 19:37:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AKPWBTN1ET\/AKPWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AKPWBTN2DA","fcbh_id":"AKPWBTN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AKP","language_name":"Siwu","language_english":"Siwu","language_iso":"akp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Siwu","language_family_code":"AKP","language_family_name":"Siwu","language_family_english":"Siwu","language_family_iso":"akp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-22 22:12:01","created_on":"2015-05-27 17:21:57","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"AKPWBTN2DA\/AKPWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AKPWBTN2ET","fcbh_id":"AKPWBTN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AKP","language_name":"Siwu","language_english":"Siwu","language_iso":"akp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Siwu","language_family_code":"AKP","language_family_name":"Siwu","language_family_english":"Siwu","language_family_iso":"akp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:21","created_on":"2014-06-04 17:33:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AKPWBTN2ET\/AKPWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ALDABCN2DA","fcbh_id":"ALDABCN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ALD","language_name":"Alladian","language_english":"Alladian","language_iso":"ald","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Alladian","language_family_code":"ALD","language_family_name":"Alladian","language_family_english":"Alladian","language_family_iso":"ald","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:48","created_on":"2010-09-14 16:59:55","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2ALDABC","audio_zip_path":"ALDABCN2DA\/ALDABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ALJOMFN2DA","fcbh_id":"ALJOMFN2DA","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ALJ","language_name":"Alangan","language_english":"Alangan","language_iso":"alj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Alangan","language_family_code":"ALJ","language_family_name":"Alangan","language_family_english":"Alangan","language_family_iso":"alj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"OMF","version_name":"Overseas Missionary Fellowship","version_english":"Overseas Missionary Fellowship","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-09 23:09:04","created_on":"2013-09-03 20:36:38","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"ALJOMFN2DA\/ALJOMFN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ALJOMFN2ET","fcbh_id":"ALJOMFN2ET","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ALJ","language_name":"Alangan","language_english":"Alangan","language_iso":"alj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Alangan","language_family_code":"ALJ","language_family_name":"Alangan","language_family_english":"Alangan","language_family_iso":"alj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"OMF","version_name":"Overseas Missionary Fellowship","version_english":"Overseas Missionary Fellowship","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-09 23:09:25","created_on":"2013-12-06 22:29:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ALJOMFN2ET\/ALJOMFN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ALPWBTN1DA","fcbh_id":"ALPWBTN1DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ALP","language_name":"Alune","language_english":"Alune","language_iso":"alp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Alune","language_family_code":"ALP","language_family_name":"Alune","language_family_english":"Alune","language_family_iso":"alp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-09-27 19:55:29","created_on":"2016-09-27 19:11:24","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ALPWBTN1DA\/ALPWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ALPWBTN1ET","fcbh_id":"ALPWBTN1ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ALP","language_name":"Alune","language_english":"Alune","language_iso":"alp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Alune","language_family_code":"ALP","language_family_name":"Alune","language_family_english":"Alune","language_family_iso":"alp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-09-27 19:19:56","created_on":"2016-09-27 19:08:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ALPWBTN1ET\/ALPWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ALPWBTN2DA","fcbh_id":"ALPWBTN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ALP","language_name":"Alune","language_english":"Alune","language_iso":"alp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Alune","language_family_code":"ALP","language_family_name":"Alune","language_family_english":"Alune","language_family_iso":"alp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-09-27 20:03:01","created_on":"2016-09-27 19:13:06","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ALPWBTN2DA\/ALPWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ALPWBTN2ET","fcbh_id":"ALPWBTN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ALP","language_name":"Alune","language_english":"Alune","language_iso":"alp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Alune","language_family_code":"ALP","language_family_name":"Alune","language_family_english":"Alune","language_family_iso":"alp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-06 20:40:14","created_on":"2015-11-02 19:02:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ALPWBTN2ET\/ALPWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ALSABVN2ET","fcbh_id":"ALSABVN2ET","volume_name":"Albanian Bible Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ALS","language_name":"Shqip","language_english":"Albanian","language_iso":"sqi","language_iso_2B":"alb","language_iso_2T":"sqi","language_iso_1":"sq","language_iso_name":"Albanian","language_family_code":"ALS","language_family_name":"Shqip","language_family_english":"Albanian","language_family_iso":"sqi","language_family_iso_2B":"alb","language_family_iso_2T":"sqi","language_family_iso_1":"sq","version_code":"ABV","version_name":"Albanian Bible Version","version_english":"Albanian Bible Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-16 15:28:24","created_on":"2010-09-14 17:01:44","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ALSABVN2ET\/ALSABVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ALSABVO2ET","fcbh_id":"ALSABVO2ET","volume_name":"Albanian Bible Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ALS","language_name":"Shqip","language_english":"Albanian","language_iso":"sqi","language_iso_2B":"alb","language_iso_2T":"sqi","language_iso_1":"sq","language_iso_name":"Albanian","language_family_code":"ALS","language_family_name":"Shqip","language_family_english":"Albanian","language_family_iso":"sqi","language_family_iso_2B":"alb","language_family_iso_2T":"sqi","language_family_iso_1":"sq","version_code":"ABV","version_name":"Albanian Bible Version","version_english":"Albanian Bible Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2015-10-16 15:28:24","created_on":"2010-09-14 17:01:44","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ALSABVO2ET\/ALSABVO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ALSBSAN2DA","fcbh_id":"ALSBSAN2DA","volume_name":"Interconfessional Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ALS","language_name":"Shqip","language_english":"Albanian","language_iso":"sqi","language_iso_2B":"alb","language_iso_2T":"sqi","language_iso_1":"sq","language_iso_name":"Albanian","language_family_code":"ALS","language_family_name":"Shqip","language_family_english":"Albanian","language_family_iso":"sqi","language_family_iso_2B":"alb","language_family_iso_2T":"sqi","language_family_iso_1":"sq","version_code":"BSA","version_name":"BSA","version_english":"BSA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-21 19:25:35","created_on":"2010-09-14 16:59:55","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2ALSBSA","audio_zip_path":"ALSBSAN2DA\/ALSBSAN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ALSBSAN2ET","fcbh_id":"ALSBSAN2ET","volume_name":"Interconfessional Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ALS","language_name":"Shqip","language_english":"Albanian","language_iso":"sqi","language_iso_2B":"alb","language_iso_2T":"sqi","language_iso_1":"sq","language_iso_name":"Albanian","language_family_code":"ALS","language_family_name":"Shqip","language_family_english":"Albanian","language_family_iso":"sqi","language_family_iso_2B":"alb","language_family_iso_2T":"sqi","language_family_iso_1":"sq","version_code":"BSA","version_name":"BSA","version_english":"BSA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 18:12:05","created_on":"2013-12-04 22:43:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ALSBSAN2ET\/ALSBSAN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ALTIBTN2DA","fcbh_id":"ALTIBTN2DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ALT","language_name":"Altai, Southern","language_english":"Altai, Southern","language_iso":"alt","language_iso_2B":"alt","language_iso_2T":"alt","language_iso_1":"","language_iso_name":"Southern Altai","language_family_code":"ALT","language_family_name":"Altai, Southern","language_family_english":"Altai, Southern","language_family_iso":"alt","language_family_iso_2B":"alt","language_family_iso_2T":"alt","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-15 20:43:30","created_on":"2014-01-17 22:54:21","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"ALTIBTN2DA\/ALTIBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ALTIBTN2ET","fcbh_id":"ALTIBTN2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ALT","language_name":"Altai, Southern","language_english":"Altai, Southern","language_iso":"alt","language_iso_2B":"alt","language_iso_2T":"alt","language_iso_1":"","language_iso_name":"Southern Altai","language_family_code":"ALT","language_family_name":"Altai, Southern","language_family_english":"Altai, Southern","language_family_iso":"alt","language_family_iso_2B":"alt","language_family_iso_2T":"alt","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-15 20:44:01","created_on":"2013-08-13 22:06:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ALTIBTN2ET\/ALTIBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ALZBSUN2DA","fcbh_id":"ALZBSUN2DA","volume_name":"1970 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ALZ","language_name":"Alur","language_english":"Alur","language_iso":"alz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Alur","language_family_code":"ALZ","language_family_name":"Alur","language_family_english":"Alur","language_family_iso":"alz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-20 23:49:52","created_on":"2013-02-01 17:44:34","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"ALZBSUN2DA\/ALZBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ALZBSUN2ET","fcbh_id":"ALZBSUN2ET","volume_name":"1970 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ALZ","language_name":"Alur","language_english":"Alur","language_iso":"alz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Alur","language_family_code":"ALZ","language_family_name":"Alur","language_family_english":"Alur","language_family_iso":"alz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:20","created_on":"2013-05-16 16:57:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ALZBSUN2ET\/ALZBSUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AM1WBTN2ET","fcbh_id":"AM1WBTN2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AM1","language_name":"Alamblak","language_english":"Alamblak","language_iso":"amp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Alamblak","language_family_code":"AM1","language_family_name":"Alamblak","language_family_english":"Alamblak","language_family_iso":"amp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-07 20:54:18","created_on":"2013-09-04 15:19:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AM1WBTN2ET\/AM1WBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AMETBLN1DA","fcbh_id":"AMETBLN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AME","language_name":"Yanesha","language_english":"Yanesha","language_iso":"ame","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yanesha'","language_family_code":"AME","language_family_name":"Yanesha","language_family_english":"Yanesha","language_family_iso":"ame","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-02-23 23:47:52","created_on":"2015-02-19 20:39:32","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"AMETBLN1DA\/AMETBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AMETBLN1ET","fcbh_id":"AMETBLN1ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AME","language_name":"Yanesha","language_english":"Yanesha","language_iso":"ame","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yanesha'","language_family_code":"AME","language_family_name":"Yanesha","language_family_english":"Yanesha","language_family_iso":"ame","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 18:00:12","created_on":"2015-02-19 20:42:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AMETBLN1ET\/AMETBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AMETBLN2DA","fcbh_id":"AMETBLN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AME","language_name":"Yanesha","language_english":"Yanesha","language_iso":"ame","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yanesha'","language_family_code":"AME","language_family_name":"Yanesha","language_family_english":"Yanesha","language_family_iso":"ame","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-02-23 22:25:33","created_on":"2015-02-19 20:38:52","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"AMETBLN2DA\/AMETBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AMETBLN2ET","fcbh_id":"AMETBLN2ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AME","language_name":"Yanesha","language_english":"Yanesha","language_iso":"ame","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yanesha'","language_family_code":"AME","language_family_name":"Yanesha","language_family_english":"Yanesha","language_family_iso":"ame","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 18:00:12","created_on":"2014-02-24 17:24:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AMETBLN2ET\/AMETBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AMFSIMN1DA","fcbh_id":"AMFSIMN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AMF","language_name":"Banna","language_english":"Banna","language_iso":"amf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hamer-Banna","language_family_code":"AMF","language_family_name":"Banna","language_family_english":"Banna","language_family_iso":"amf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-08-06 23:08:46","created_on":"2015-08-06 18:39:53","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"AMFSIMN1DA\/AMFSIMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AMFSIMN1ET","fcbh_id":"AMFSIMN1ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"AMF","language_name":"Banna","language_english":"Banna","language_iso":"amf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hamer-Banna","language_family_code":"AMF","language_family_name":"Banna","language_family_english":"Banna","language_family_iso":"amf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:20","created_on":"2015-08-06 20:28:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AMFSIMN1ET\/AMFSIMN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AMFSIMN2DA","fcbh_id":"AMFSIMN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AMF","language_name":"Banna","language_english":"Banna","language_iso":"amf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hamer-Banna","language_family_code":"AMF","language_family_name":"Banna","language_family_english":"Banna","language_family_iso":"amf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-08-06 22:32:19","created_on":"2015-08-06 18:34:43","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"AMFSIMN2DA\/AMFSIMN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AMFSIMN2ET","fcbh_id":"AMFSIMN2ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AMF","language_name":"Banna","language_english":"Banna","language_iso":"amf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hamer-Banna","language_family_code":"AMF","language_family_name":"Banna","language_family_english":"Banna","language_family_iso":"amf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:14:21","created_on":"2014-11-13 21:22:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AMFSIMN2ET\/AMFSIMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AMHBSEN1DA","fcbh_id":"AMHBSEN1DA","volume_name":"1988 Common Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"AMH","language_name":"Amharic","language_english":"Amharic","language_iso":"amh","language_iso_2B":"amh","language_iso_2T":"amh","language_iso_1":"am","language_iso_name":"Amharic","language_family_code":"AMH","language_family_name":"Amharic","language_family_english":"Amharic","language_family_iso":"amh","language_family_iso_2B":"amh","language_family_iso_2T":"amh","language_family_iso_1":"am","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-16 17:33:41","created_on":"2010-09-14 16:59:39","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1AMHBSE","audio_zip_path":"AMHBSEN1DA\/AMHBSEN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"AMHEVGN2ET","fcbh_id":"AMHEVGN2ET","volume_name":"1962 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AMH","language_name":"Amharic","language_english":"Amharic","language_iso":"amh","language_iso_2B":"amh","language_iso_2T":"amh","language_iso_1":"am","language_iso_name":"Amharic","language_family_code":"AMH","language_family_name":"Amharic","language_family_english":"Amharic","language_family_iso":"amh","language_family_iso_2B":"amh","language_family_iso_2T":"amh","language_family_iso_1":"am","version_code":"EVG","version_name":"EVG","version_english":"EVG","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-01 20:40:00","created_on":"2015-12-23 19:52:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AMHEVGN2ET\/AMHEVGN2ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AMHSDVN2ET","fcbh_id":"AMHSDVN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AMH","language_name":"Amharic","language_english":"Amharic","language_iso":"amh","language_iso_2B":"amh","language_iso_2T":"amh","language_iso_1":"am","language_iso_name":"Amharic","language_family_code":"AMH","language_family_name":"Amharic","language_family_english":"Amharic","language_family_iso":"amh","language_family_iso_2B":"amh","language_family_iso_2T":"amh","language_family_iso_1":"am","version_code":"SDV","version_name":"Orthodox-Septuagint Deuterocanonical Version","version_english":"Orthodox-Septuagint Deuterocanonical Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:54","created_on":"2014-03-11 19:55:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AMHSDVN2ET\/AMHSDVN2ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AMKWBTN1DA","fcbh_id":"AMKWBTN1DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AMK","language_name":"Ambai","language_english":"Ambai","language_iso":"amk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ambai","language_family_code":"AMK","language_family_name":"Ambai","language_family_english":"Ambai","language_family_iso":"amk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-28 19:14:42","created_on":"2018-02-27 21:10:03","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"AMKWBTN1DA\/AMKWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AMKWBTN1ET","fcbh_id":"AMKWBTN1ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AMK","language_name":"Ambai","language_english":"Ambai","language_iso":"amk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ambai","language_family_code":"AMK","language_family_name":"Ambai","language_family_english":"Ambai","language_family_iso":"amk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-28 19:15:20","created_on":"2018-02-27 20:59:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AMKWBTN1ET\/AMKWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AMKWBTN2DA","fcbh_id":"AMKWBTN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AMK","language_name":"Ambai","language_english":"Ambai","language_iso":"amk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ambai","language_family_code":"AMK","language_family_name":"Ambai","language_family_english":"Ambai","language_family_iso":"amk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-28 19:15:44","created_on":"2018-02-27 21:06:02","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"AMKWBTN2DA\/AMKWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AMKWBTN2ET","fcbh_id":"AMKWBTN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AMK","language_name":"Ambai","language_english":"Ambai","language_iso":"amk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ambai","language_family_code":"AMK","language_family_name":"Ambai","language_family_english":"Ambai","language_family_iso":"amk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-06 01:02:43","created_on":"2017-05-06 00:37:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AMKWBTN2ET\/AMKWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AMMWBTN2ET","fcbh_id":"AMMWBTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AMM","language_name":"Ama (Papua New Guinea)","language_english":"Ama (Papua New Guinea)","language_iso":"amm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ama (Papua New Guinea)","language_family_code":"AMM","language_family_name":"Ama (Papua New Guinea)","language_family_english":"Ama (Papua New Guinea)","language_family_iso":"amm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:54","created_on":"2013-09-09 13:57:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AMMWBTN2ET\/AMMWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AMNPNGN2ET","fcbh_id":"AMNPNGN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AMN","language_name":"Amanab","language_english":"Amanab","language_iso":"amn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Amanab","language_family_code":"AMN","language_family_name":"Amanab","language_family_english":"Amanab","language_family_iso":"amn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-01 20:48:30","created_on":"2013-09-09 13:59:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AMNPNGN2ET\/AMNPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AMRTBLN2ET","fcbh_id":"AMRTBLN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AMR","language_name":"Amarakaeri","language_english":"Amarakaeri","language_iso":"amr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Amarakaeri","language_family_code":"AMR","language_family_name":"Amarakaeri","language_family_english":"Amarakaeri","language_family_iso":"amr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-29 17:36:35","created_on":"2015-11-30 16:47:15","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AMRTBLN2ET\/AMRTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AMUMVRN2ET","fcbh_id":"AMUMVRN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AMU","language_name":"Amuzgo de Guerrero","language_english":"Amuzgo de Guerrero","language_iso":"amu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guerrero Amuzgo","language_family_code":"AMU","language_family_name":"Amuzgo de Guerrero","language_family_english":"Amuzgo de Guerrero","language_family_iso":"amu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MVR","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:54","created_on":"2012-01-04 19:01:10","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AMUMVRN2ET\/AMUMVRN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ANNWBTN2DA","fcbh_id":"ANNWBTN2DA","volume_name":"1991 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ANN","language_name":"Obolo","language_english":"Obolo","language_iso":"ann","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Obolo","language_family_code":"ANN","language_family_name":"Obolo","language_family_english":"Obolo","language_family_iso":"ann","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-13 21:23:45","created_on":"2010-09-14 16:59:55","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2ANNWBT","audio_zip_path":"ANNWBTN2DA\/ANNWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ANNWBTN2ET","fcbh_id":"ANNWBTN2ET","volume_name":"1991 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ANN","language_name":"Obolo","language_english":"Obolo","language_iso":"ann","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Obolo","language_family_code":"ANN","language_family_name":"Obolo","language_family_english":"Obolo","language_family_iso":"ann","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:54","created_on":"2010-11-25 20:49:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2ANNWBT","audio_zip_path":"ANNWBTN2ET\/ANNWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ANVWBTN2DA","fcbh_id":"ANVWBTN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ANV","language_name":"Denya","language_english":"Denya","language_iso":"anv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Denya","language_family_code":"ANV","language_family_name":"Denya","language_family_english":"Denya","language_family_iso":"anv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-25 19:17:24","created_on":"2010-12-07 15:00:33","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2ANVWBT","audio_zip_path":"ANVWBTN2DA\/ANVWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ANVWBTN2ET","fcbh_id":"ANVWBTN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ANV","language_name":"Denya","language_english":"Denya","language_iso":"anv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Denya","language_family_code":"ANV","language_family_name":"Denya","language_family_english":"Denya","language_family_iso":"anv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-06 16:06:21","created_on":"2011-05-16 15:13:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ANVWBTN2ET\/ANVWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ANYWBTN1DA","fcbh_id":"ANYWBTN1DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ANY","language_name":"Agni Sanvi","language_english":"Anyin","language_iso":"any","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Anyin","language_family_code":"ANY","language_family_name":"Agni Sanvi","language_family_english":"Anyin","language_family_iso":"any","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:16:27","created_on":"2018-01-24 15:59:33","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ANYWBTN1DA\/ANYWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ANYWBTN2DA","fcbh_id":"ANYWBTN2DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ANY","language_name":"Agni Sanvi","language_english":"Anyin","language_iso":"any","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Anyin","language_family_code":"ANY","language_family_name":"Agni Sanvi","language_family_english":"Anyin","language_family_iso":"any","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:16:27","created_on":"2018-01-24 15:58:08","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ANYWBTN2DA\/ANYWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"AO1FILN2ET","fcbh_id":"AO1FILN2ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AO1","language_name":"Filifita","language_english":"Filifita","language_iso":"aoj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mufian","language_family_code":"AO1","language_family_name":"Filifita","language_family_english":"Filifita","language_family_iso":"aoj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"FIL","version_name":"Filifita","version_english":"Filifita","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 19:27:32","created_on":"2014-06-05 16:09:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AO1FILN2ET\/AO1FILN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AOJWBTN2ET","fcbh_id":"AOJWBTN2ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AOJ","language_name":"Mufian","language_english":"Mufian","language_iso":"aoj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mufian","language_family_code":"AOJ","language_family_name":"Mufian","language_family_english":"Mufian","language_family_iso":"aoj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:16","created_on":"2014-05-22 16:11:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AOJWBTN2ET\/AOJWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AOMWBTN2ET","fcbh_id":"AOMWBTN2ET","volume_name":"1991 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AOM","language_name":"\u00d6mie","language_english":"Omie","language_iso":"aom","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"\u00d6mie","language_family_code":"AOM","language_family_name":"\u00d6mie","language_family_english":"Omie","language_family_iso":"aom","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 16:48:28","created_on":"2014-06-05 15:35:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AOMWBTN2ET\/AOMWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AONTBLN2ET","fcbh_id":"AONTBLN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AON","language_name":"Arapesh Bumbita","language_english":"Arapesh Bumbita","language_iso":"aon","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bumbita Arapesh","language_family_code":"AON","language_family_name":"Arapesh Bumbita","language_family_english":"Arapesh Bumbita","language_family_iso":"aon","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:55","created_on":"2014-05-13 19:05:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AONTBLN2ET\/AONTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AOZLAIN2ET","fcbh_id":"AOZLAIN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AOZ","language_name":"Timor Dakwan","language_english":"Timor Dakwan","language_iso":"aoz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Uab Meto","language_family_code":"AOZ","language_family_name":"Timor Dakwan","language_family_english":"Timor Dakwan","language_family_iso":"aoz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-05 17:52:22","created_on":"2014-03-26 16:29:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AOZLAIN2ET\/AOZLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AP1SLSS2DV","fcbh_id":"AP1SLSS2DV","volume_name":"Indian (Andhra Pradesh) Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AP1","language_name":"Indian (Andhra Pradesh) Sign Language","language_english":"Indian (Andhra Pradesh) Sign Language","language_iso":"aps","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Arop-Sissano","language_family_code":"AP1","language_family_name":"Indian (Andhra Pradesh) Sign Language","language_family_english":"Indian (Andhra Pradesh) Sign Language","language_family_iso":"aps","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLS","version_name":"Sign Language Stories","version_english":"Sign Language Stories","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2016-01-26 17:21:36","created_on":"2014-06-13 18:08:44","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AP1SLSS2DV\/AP1SLSS2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"APDAS2N2DA","fcbh_id":"APDASVN2DA","volume_name":"Sharif (Sudanese) Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"APD","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"apd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sudanese Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"AS2","version_name":"Al Sharif (Sudanese) Version","version_english":"Al Sharif (Sudanese) Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-20 23:54:44","created_on":"2010-09-14 17:01:23","right_to_left":"true","num_art":"3","num_sample_audio":"1","sku":"N2APDASV","audio_zip_path":"APDAS2N2DA\/APDAS2N2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"APDAS2N2ET","fcbh_id":"APDASVN2ET","volume_name":"Sharif (Sudanese) Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"APD","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"apd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sudanese Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"AS2","version_name":"Al Sharif (Sudanese) Version","version_english":"Al Sharif (Sudanese) Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:55","created_on":"2010-09-14 17:01:23","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"N2APDASV","audio_zip_path":"APDAS2N2ET\/APDAS2N2ET.zip","font":{"id":"30","name":"Scheherazade","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Scheherazade","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2004-2014, SIL International","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"APEWBTN2ET","fcbh_id":"APEWBTN2ET","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"APE","language_name":"Bukiyip","language_english":"Bukiyip","language_iso":"ape","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bukiyip","language_family_code":"APE","language_family_name":"Bukiyip","language_family_english":"Bukiyip","language_family_iso":"ape","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:55","created_on":"2014-05-22 16:35:37","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"APEWBTN2ET\/APEWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"APFCMUN1DA","fcbh_id":"APFCMUN1DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"APF","language_name":"Agta, Palanan","language_english":"Agta, Pahanan","language_iso":"apf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pahanan Agta","language_family_code":"APF","language_family_name":"Agta, Palanan","language_family_english":"Agta, Pahanan","language_family_iso":"apf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CMU","version_name":"CHRISTIAN MISSIONS FOR THE UNREACHED","version_english":"CHRISTIAN MISSIONS FOR THE UNREACHED","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:19:38","created_on":"2016-11-23 19:30:17","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"APFCMUN1DA\/APFCMUN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"APFCMUN2DA","fcbh_id":"APFCMUN2DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"APF","language_name":"Agta, Palanan","language_english":"Agta, Pahanan","language_iso":"apf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pahanan Agta","language_family_code":"APF","language_family_name":"Agta, Palanan","language_family_english":"Agta, Pahanan","language_family_iso":"apf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CMU","version_name":"CHRISTIAN MISSIONS FOR THE UNREACHED","version_english":"CHRISTIAN MISSIONS FOR THE UNREACHED","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:19:38","created_on":"2016-11-23 19:31:40","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"APFCMUN2DA\/APFCMUN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"APRWBTN1DA","fcbh_id":"APRWBTN1DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"APR","language_name":"Arop-Lokep","language_english":"Arop-Lokep","language_iso":"apr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Arop-Lokep","language_family_code":"APR","language_family_name":"Arop-Lokep","language_family_english":"Arop-Lokep","language_family_iso":"apr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-29 21:38:40","created_on":"2016-01-06 18:16:39","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"APRWBTN1DA\/APRWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"APRWBTN1ET","fcbh_id":"APRWBTN1ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"APR","language_name":"Arop-Lokep","language_english":"Arop-Lokep","language_iso":"apr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Arop-Lokep","language_family_code":"APR","language_family_name":"Arop-Lokep","language_family_english":"Arop-Lokep","language_family_iso":"apr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-07 18:56:48","created_on":"2015-08-25 16:47:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"APRWBTN1ET\/APRWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"APZWBTN2ET","fcbh_id":"APZWBTN2ET","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"APZ","language_name":"Safeyoka","language_english":"Safeyoka","language_iso":"apz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Safeyoka","language_family_code":"APZ","language_family_name":"Safeyoka","language_family_english":"Safeyoka","language_family_iso":"apz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 16:54:41","created_on":"2014-05-13 18:39:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"APZWBTN2ET\/APZWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ARBAS1N2DA","fcbh_id":"ARBASVN2DA","volume_name":"Sharif Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ARB","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"arb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Standard Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"AS1","version_name":"Al Sharif Version","version_english":"Al Sharif Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-03-19 20:25:48","created_on":"2010-09-14 17:01:09","right_to_left":"true","num_art":"3","num_sample_audio":"1","sku":"N2ARBASV","audio_zip_path":"ARBAS1N2DA\/ARBAS1N2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ARBAS1N2ET","fcbh_id":"ARBASVN2ET","volume_name":"Sharif Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ARB","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"arb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Standard Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"AS1","version_name":"Al Sharif Version","version_english":"Al Sharif Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:55","created_on":"2010-09-14 17:01:09","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"N2ARBASV","audio_zip_path":"ARBAS1N2ET\/ARBAS1N2ET.zip","font":{"id":"30","name":"Scheherazade","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Scheherazade","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2004-2014, SIL International","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ARBWTCN1DA","fcbh_id":"ARBWTCN1DA","volume_name":"Easy to Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ARB","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"arb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Standard Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-19 21:13:12","created_on":"2017-10-19 20:58:23","right_to_left":"false","num_art":"1","num_sample_audio":"0","sku":"","audio_zip_path":"ARBWTCN1DA\/ARBWTCN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ARBWTCN1ET","fcbh_id":"ARBWTCN1ET","volume_name":"Easy to Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ARB","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"arb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Standard Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-29 18:41:22","created_on":"2018-06-29 18:34:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ARBWTCN1ET\/ARBWTCN1ET.zip","font":{"id":"30","name":"Scheherazade","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Scheherazade","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2004-2014, SIL International","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ARBWTCO1DA","fcbh_id":"ARBWTCO1DA","volume_name":"Easy to Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ARB","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"arb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Standard Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-10-19 21:35:36","created_on":"2017-10-19 20:54:41","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ARBWTCO1DA\/ARBWTCO1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ARBWTCO1ET","fcbh_id":"ARBWTCO1ET","volume_name":"Easy to Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ARB","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"arb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Standard Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-06-29 18:43:23","created_on":"2018-06-29 18:30:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ARBWTCO1ET\/ARBWTCO1ET.zip","font":{"id":"30","name":"Scheherazade","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Scheherazade","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2004-2014, SIL International","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ARLTBLN2ET","fcbh_id":"ARLTBLN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ARL","language_name":"Arabela","language_english":"Arabela","language_iso":"arl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Arabela","language_family_code":"ARL","language_family_name":"Arabela","language_family_english":"Arabela","language_family_iso":"arl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-12-23 18:58:17","created_on":"2015-12-23 18:46:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ARLTBLN2ET\/ARLTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ARZVDVN1DA","fcbh_id":"ARZVDVN1DA","volume_name":"Van Dyke Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ARZ","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"arz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Egyptian Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"VDV","version_name":"Van Dyke Version","version_english":"Van Dyke Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-17 17:55:51","created_on":"2017-03-21 20:54:14","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ARZVDVN1DA\/ARZVDVN1DA.zip","font":{"id":"30","name":"Scheherazade","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Scheherazade","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2004-2014, SIL International","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"ARZVDVN1ET","fcbh_id":"ARZVDVN1ET","volume_name":"Van Dyke Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ARZ","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"arz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Egyptian Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"VDV","version_name":"Van Dyke Version","version_english":"Van Dyke Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-10 21:28:05","created_on":"2017-05-12 19:52:11","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ARZVDVN1ET\/ARZVDVN1ET.zip","font":{"id":"30","name":"Scheherazade","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Scheherazade","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2004-2014, SIL International","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ARZVDVN2DA","fcbh_id":"ARZVDVN2DA","volume_name":"Van Dyke Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ARZ","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"arz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Egyptian Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"VDV","version_name":"Van Dyke Version","version_english":"Van Dyke Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-10 17:24:12","created_on":"2010-09-14 17:01:02","right_to_left":"true","num_art":"4","num_sample_audio":"1","sku":"N2ARZVDV","audio_zip_path":"ARZVDVN2DA\/ARZVDVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ARZVDVN2ET","fcbh_id":"ARZVDVN2ET","volume_name":"Van Dyke Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ARZ","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"arz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Egyptian Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"VDV","version_name":"Van Dyke Version","version_english":"Van Dyke Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-21 17:07:39","created_on":"2010-09-14 17:01:02","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"N2ARZVDV","audio_zip_path":"ARZVDVN2ET\/ARZVDVN2ET.zip","font":{"id":"30","name":"Scheherazade","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Scheherazade","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2004-2014, SIL International","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"ARZVDVO1DA","fcbh_id":"ARZVDVO1DA","volume_name":"Van Dyke Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ARZ","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"arz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Egyptian Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"VDV","version_name":"Van Dyke Version","version_english":"Van Dyke Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-02-16 18:58:37","created_on":"2013-08-05 16:23:09","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"ARZVDVO1DA\/ARZVDVO1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ARZVDVO1ET","fcbh_id":"ARZVDVO1ET","volume_name":"Van Dyke Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ARZ","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"arz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Egyptian Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"VDV","version_name":"Van Dyke Version","version_english":"Van Dyke Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-11-30 19:37:36","created_on":"2013-08-08 17:08:28","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ARZVDVO1ET\/ARZVDVO1ET.zip","font":{"id":"30","name":"Scheherazade","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Scheherazade","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2004-2014, SIL International","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ARZVDVO2DA","fcbh_id":"ARZVDVO2DA","volume_name":"Van Dyke Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ARZ","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"arz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Egyptian Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"VDV","version_name":"Van Dyke Version","version_english":"Van Dyke Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-02-06 17:38:46","created_on":"2013-08-05 16:08:14","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"ARZVDVO2DA\/ARZVDVO2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ARZVDVO2ET","fcbh_id":"ARZVDVO2ET","volume_name":"Van Dyke Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ARZ","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"arz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Egyptian Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"VDV","version_name":"Van Dyke Version","version_english":"Van Dyke Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-08-17 17:50:10","created_on":"2010-09-14 17:01:38","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"O2ARZVDV","audio_zip_path":"ARZVDVO2ET\/ARZVDVO2ET.zip","font":{"id":"30","name":"Scheherazade","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Scheherazade","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2004-2014, SIL International","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"ASESLSS2DV","fcbh_id":"ASESLSS2DV","volume_name":"DOOR International American Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ASE","language_name":"American Sign Language","language_english":"American Sign Language","language_iso":"ase","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"American Sign Language","language_family_code":"ASE","language_family_name":"American Sign Language","language_family_english":"American Sign Language","language_family_iso":"ase","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLS","version_name":"Sign Language Stories","version_english":"Sign Language Stories","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2015-05-08 16:49:13","created_on":"2014-01-17 20:06:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ASESLSS2DV\/ASESLSS2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo","hi"]},{"dam_id":"ASESLVN2DV","fcbh_id":"ASESLVN2DV","volume_name":"The Bible: American Sign Language Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ASE","language_name":"American Sign Language","language_english":"American Sign Language","language_iso":"ase","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"American Sign Language","language_family_code":"ASE","language_family_name":"American Sign Language","language_family_english":"American Sign Language","language_family_iso":"ase","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLV","version_name":"Sign Language Version","version_english":"Sign Language Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-03-28 15:34:23","created_on":"2012-07-10 21:13:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ASESLVN2DV\/ASESLVN2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["web","sign_language"],"resolution":["lo"]},{"dam_id":"ASESLVO2DV","fcbh_id":"ASESLVO2DV","volume_name":"The Bible: American Sign Language Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ASE","language_name":"American Sign Language","language_english":"American Sign Language","language_iso":"ase","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"American Sign Language","language_family_code":"ASE","language_family_name":"American Sign Language","language_family_english":"American Sign Language","language_family_iso":"ase","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLV","version_name":"Sign Language Version","version_english":"Sign Language Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2016-10-14 17:35:27","created_on":"2012-07-11 16:16:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ASESLVO2DV\/ASESLVO2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"ASGWBTN2ET","fcbh_id":"ASGWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ASG","language_name":"Cishingini","language_english":"Cishingini","language_iso":"asg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cishingini","language_family_code":"ASG","language_family_name":"Cishingini","language_family_english":"Cishingini","language_family_iso":"asg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-12-23 20:17:49","created_on":"2015-12-23 20:06:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ASGWBTN2ET\/ASGWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ASOTBLN2ET","fcbh_id":"ASOTBLN2ET","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ASO","language_name":"Dano","language_english":"Dano","language_iso":"aso","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dano","language_family_code":"ASO","language_family_name":"Dano","language_family_english":"Dano","language_family_iso":"aso","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-13 13:51:24","created_on":"2014-06-04 19:54:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ASOTBLN2ET\/ASOTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ATBBSMN1DA","fcbh_id":"ATBBSMN1DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ATB","language_name":"Zaiwa","language_english":"Zaiwa","language_iso":"atb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zaiwa","language_family_code":"ATB","language_family_name":"Zaiwa","language_family_english":"Zaiwa","language_family_iso":"atb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-15 19:36:46","created_on":"2016-09-14 18:05:23","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ATBBSMN1DA\/ATBBSMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ATBBSMN1ET","fcbh_id":"ATBBSMN1ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ATB","language_name":"Zaiwa","language_english":"Zaiwa","language_iso":"atb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zaiwa","language_family_code":"ATB","language_family_name":"Zaiwa","language_family_english":"Zaiwa","language_family_iso":"atb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-09-14 19:10:50","created_on":"2016-09-14 17:46:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ATBBSMN1ET\/ATBBSMN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ATBBSMN2DA","fcbh_id":"ATBBSMN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ATB","language_name":"Zaiwa","language_english":"Zaiwa","language_iso":"atb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zaiwa","language_family_code":"ATB","language_family_name":"Zaiwa","language_family_english":"Zaiwa","language_family_iso":"atb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-03-16 15:51:58","created_on":"2016-09-14 18:07:16","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ATBBSMN2DA\/ATBBSMN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ATBBSMN2ET","fcbh_id":"ATBBSMN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ATB","language_name":"Zaiwa","language_english":"Zaiwa","language_iso":"atb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zaiwa","language_family_code":"ATB","language_family_name":"Zaiwa","language_family_english":"Zaiwa","language_family_iso":"atb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-25 18:52:02","created_on":"2015-11-25 18:47:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ATBBSMN2ET\/ATBBSMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ATGWYIN1DA","fcbh_id":"ATGWYIN1DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ATG","language_name":"Okphela","language_english":"Okphela","language_iso":"atg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ivbie North-Okpela-Arhe","language_family_code":"ATG","language_family_name":"Okphela","language_family_english":"Okphela","language_family_iso":"atg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-07 21:15:14","created_on":"2015-12-30 20:31:22","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ATGWYIN1DA\/ATGWYIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ATGWYIN1ET","fcbh_id":"ATGWYIN1ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ATG","language_name":"Okphela","language_english":"Okphela","language_iso":"atg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ivbie North-Okpela-Arhe","language_family_code":"ATG","language_family_name":"Okphela","language_family_english":"Okphela","language_family_iso":"atg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-07 21:19:01","created_on":"2015-12-30 20:26:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ATGWYIN1ET\/ATGWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ATGWYIN2DA","fcbh_id":"ATGWYIN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ATG","language_name":"Okphela","language_english":"Okphela","language_iso":"atg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ivbie North-Okpela-Arhe","language_family_code":"ATG","language_family_name":"Okphela","language_family_english":"Okphela","language_family_iso":"atg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-07 21:39:35","created_on":"2015-12-30 20:28:43","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ATGWYIN2DA\/ATGWYIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ATGWYIN2ET","fcbh_id":"ATGWYIN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ATG","language_name":"Okphela","language_english":"Okphela","language_iso":"atg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ivbie North-Okpela-Arhe","language_family_code":"ATG","language_family_name":"Okphela","language_family_english":"Okphela","language_family_iso":"atg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-12-30 20:24:50","created_on":"2014-05-13 18:23:15","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ATGWYIN2ET\/ATGWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ATQLAIN1DA","fcbh_id":"ATQLAIN1DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ATQ","language_name":"Aralle-Tabulahan","language_english":"Aralle-Tabulahan","language_iso":"atq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Aralle-Tabulahan","language_family_code":"ATQ","language_family_name":"Aralle-Tabulahan","language_family_english":"Aralle-Tabulahan","language_family_iso":"atq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-27 17:31:35","created_on":"2015-07-27 16:33:40","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"ATQLAIN1DA\/ATQLAIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ATQLAIN1ET","fcbh_id":"ATQLAIN1ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ATQ","language_name":"Aralle-Tabulahan","language_english":"Aralle-Tabulahan","language_iso":"atq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Aralle-Tabulahan","language_family_code":"ATQ","language_family_name":"Aralle-Tabulahan","language_family_english":"Aralle-Tabulahan","language_family_iso":"atq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:55","created_on":"2015-07-27 16:28:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ATQLAIN1ET\/ATQLAIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ATQLAIN2DA","fcbh_id":"ATQLAIN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ATQ","language_name":"Aralle-Tabulahan","language_english":"Aralle-Tabulahan","language_iso":"atq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Aralle-Tabulahan","language_family_code":"ATQ","language_family_name":"Aralle-Tabulahan","language_family_english":"Aralle-Tabulahan","language_family_iso":"atq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-27 17:32:55","created_on":"2014-04-21 16:54:08","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"ATQLAIN2DA\/ATQLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ATQLAIN2ET","fcbh_id":"ATQLAIN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ATQ","language_name":"Aralle-Tabulahan","language_english":"Aralle-Tabulahan","language_iso":"atq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Aralle-Tabulahan","language_family_code":"ATQ","language_family_name":"Aralle-Tabulahan","language_family_english":"Aralle-Tabulahan","language_family_iso":"atq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:56","created_on":"2014-04-21 18:44:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ATQLAIN2ET\/ATQLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AUYWBTN2ET","fcbh_id":"AUYWBTN2ET","volume_name":"1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AUY","language_name":"Awiyaana","language_english":"Awiyaana","language_iso":"auy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Awiyaana","language_family_code":"AUY","language_family_name":"Awiyaana","language_family_english":"Awiyaana","language_family_iso":"auy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-11 18:31:41","created_on":"2014-05-13 19:10:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AUYWBTN2ET\/AUYWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AVAIBTN1DA","fcbh_id":"AVAIBTN1DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AVA","language_name":"Avar","language_english":"Avar","language_iso":"ava","language_iso_2B":"ava","language_iso_2T":"ava","language_iso_1":"av","language_iso_name":"Avaric","language_family_code":"AVA","language_family_name":"Avar","language_family_english":"Avar","language_family_iso":"ava","language_family_iso_2B":"ava","language_family_iso_2T":"ava","language_family_iso_1":"av","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-03 18:25:21","created_on":"2017-02-03 16:43:46","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"AVAIBTN1DA\/AVAIBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"AVAIBTN1ET","fcbh_id":"AVAIBTN1ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AVA","language_name":"Avar","language_english":"Avar","language_iso":"ava","language_iso_2B":"ava","language_iso_2T":"ava","language_iso_1":"av","language_iso_name":"Avaric","language_family_code":"AVA","language_family_name":"Avar","language_family_english":"Avar","language_family_iso":"ava","language_family_iso_2B":"ava","language_family_iso_2T":"ava","language_family_iso_1":"av","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-03 18:24:16","created_on":"2017-02-03 16:34:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AVAIBTN1ET\/AVAIBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AVAIBTN2DA","fcbh_id":"AVAIBTN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AVA","language_name":"Avar","language_english":"Avar","language_iso":"ava","language_iso_2B":"ava","language_iso_2T":"ava","language_iso_1":"av","language_iso_name":"Avaric","language_family_code":"AVA","language_family_name":"Avar","language_family_english":"Avar","language_family_iso":"ava","language_family_iso_2B":"ava","language_family_iso_2T":"ava","language_family_iso_1":"av","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-03 18:23:57","created_on":"2017-02-03 16:37:16","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"AVAIBTN2DA\/AVAIBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"AVAIBTN2ET","fcbh_id":"AVAIBTN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AVA","language_name":"Avar","language_english":"Avar","language_iso":"ava","language_iso_2B":"ava","language_iso_2T":"ava","language_iso_1":"av","language_iso_name":"Avaric","language_family_code":"AVA","language_family_name":"Avar","language_family_english":"Avar","language_family_iso":"ava","language_family_iso_2B":"ava","language_family_iso_2T":"ava","language_family_iso_1":"av","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:56","created_on":"2011-10-11 21:20:15","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AVAIBTN2ET\/AVAIBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AVNWBTN1DA","fcbh_id":"AVNWBTN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AVN","language_name":"Sideme","language_english":"Avatime","language_iso":"avn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Avatime","language_family_code":"AVN","language_family_name":"Sideme","language_family_english":"Avatime","language_family_iso":"avn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-08 21:14:56","created_on":"2018-03-09 21:30:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AVNWBTN1DA\/AVNWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"AVNWBTN1ET","fcbh_id":"AVNWBTN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AVN","language_name":"Sideme","language_english":"Avatime","language_iso":"avn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Avatime","language_family_code":"AVN","language_family_name":"Sideme","language_family_english":"Avatime","language_family_iso":"avn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-09 21:46:53","created_on":"2018-03-09 21:22:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AVNWBTN1ET\/AVNWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AVNWBTN2DA","fcbh_id":"AVNWBTN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AVN","language_name":"Sideme","language_english":"Avatime","language_iso":"avn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Avatime","language_family_code":"AVN","language_family_name":"Sideme","language_family_english":"Avatime","language_family_iso":"avn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-09 21:53:45","created_on":"2018-03-09 21:28:20","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"AVNWBTN2DA\/AVNWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AVNWBTN2ET","fcbh_id":"AVNWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AVN","language_name":"Sideme","language_english":"Avatime","language_iso":"avn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Avatime","language_family_code":"AVN","language_family_name":"Sideme","language_family_english":"Avatime","language_family_iso":"avn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-06 16:41:32","created_on":"2017-07-17 20:54:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AVNWBTN2ET\/AVNWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AVTWBTN2ET","fcbh_id":"AVTWBTN2ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AVT","language_name":"Au","language_english":"Au","language_iso":"avt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Au","language_family_code":"AVT","language_family_name":"Au","language_family_english":"Au","language_family_iso":"avt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:57:00","created_on":"2014-05-13 19:08:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AVTWBTN2ET\/AVTWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AVUWBTN2DA","fcbh_id":"AVUWBTN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AVU","language_name":"Avokaya","language_english":"Avokaya","language_iso":"avu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Avokaya","language_family_code":"AVU","language_family_name":"Avokaya","language_family_english":"Avokaya","language_family_iso":"avu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:05:43","created_on":"2011-11-21 17:19:40","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"AVUWBTN2DA\/AVUWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AVUWBTN2ET","fcbh_id":"AVUWBTN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AVU","language_name":"Avokaya","language_english":"Avokaya","language_iso":"avu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Avokaya","language_family_code":"AVU","language_family_name":"Avokaya","language_family_english":"Avokaya","language_family_iso":"avu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:56","created_on":"2011-05-30 01:16:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AVUWBTN2ET\/AVUWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AWAWTCN2DA","fcbh_id":"AWAWTCN2DA","volume_name":"Easy-to-Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AWA","language_name":"Awadhi","language_english":"Awadhi","language_iso":"awa","language_iso_2B":"awa","language_iso_2T":"awa","language_iso_1":"","language_iso_name":"Awadhi","language_family_code":"AWA","language_family_name":"Awadhi","language_family_english":"Awadhi","language_family_iso":"awa","language_family_iso_2B":"awa","language_family_iso_2T":"awa","language_family_iso_1":"","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-05-09 22:23:43","created_on":"2014-05-09 19:59:51","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"AWAWTCN2DA\/AWAWTCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AWAWTCN2ET","fcbh_id":"AWAWTCN2ET","volume_name":"Easy-to-Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AWA","language_name":"Awadhi","language_english":"Awadhi","language_iso":"awa","language_iso_2B":"awa","language_iso_2T":"awa","language_iso_1":"","language_iso_name":"Awadhi","language_family_code":"AWA","language_family_name":"Awadhi","language_family_english":"Awadhi","language_family_iso":"awa","language_family_iso_2B":"awa","language_family_iso_2T":"awa","language_family_iso_1":"","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-28 18:41:57","created_on":"2011-10-12 15:55:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AWAWTCN2ET\/AWAWTCN2ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AWBTBLN2DA","fcbh_id":"AWBTBLN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AWB","language_name":"Awa for Papua New Guinea","language_english":"Awa for Papua New Guinea","language_iso":"awb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Awa (Papua New Guinea)","language_family_code":"AWB","language_family_name":"Awa for Papua New Guinea","language_family_english":"Awa for Papua New Guinea","language_family_iso":"awb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:06:35","created_on":"2011-05-27 19:52:27","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"AWBTBLN2DA\/AWBTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AWBTBLN2ET","fcbh_id":"AWBTBLN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AWB","language_name":"Awa for Papua New Guinea","language_english":"Awa for Papua New Guinea","language_iso":"awb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Awa (Papua New Guinea)","language_family_code":"AWB","language_family_name":"Awa for Papua New Guinea","language_family_english":"Awa for Papua New Guinea","language_family_iso":"awb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:56","created_on":"2011-05-30 21:10:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AWBTBLN2ET\/AWBTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AYMBSBN2DA","fcbh_id":"AYMBSBN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AYM","language_name":"Aymara, Central","language_english":"Aymara, Central","language_iso":"ayr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Aymara","language_family_code":"AYM","language_family_name":"Aymara, Central","language_family_english":"Aymara, Central","language_family_iso":"ayr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:12:50","created_on":"2012-06-12 15:31:08","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"AYMBSBN2DA\/AYMBSBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AYMBSBN2ET","fcbh_id":"AYMBSBN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AYM","language_name":"Aymara, Central","language_english":"Aymara, Central","language_iso":"ayr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Aymara","language_family_code":"AYM","language_family_name":"Aymara, Central","language_family_english":"Aymara, Central","language_family_iso":"ayr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:56","created_on":"2011-05-29 23:23:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AYMBSBN2ET\/AYMBSBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AYMBSBO2ET","fcbh_id":"AYMBSBO2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AYM","language_name":"Aymara, Central","language_english":"Aymara, Central","language_iso":"ayr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Aymara","language_family_code":"AYM","language_family_name":"Aymara, Central","language_family_english":"Aymara, Central","language_family_iso":"ayr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:57","created_on":"2011-09-16 17:31:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AYMBSBO2ET\/AYMBSBO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AYMSBUN2DA","fcbh_id":"AYMSBUN2DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AYM","language_name":"Aymara, Central","language_english":"Aymara, Central","language_iso":"ayr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Aymara","language_family_code":"AYM","language_family_name":"Aymara, Central","language_family_english":"Aymara, Central","language_family_iso":"ayr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:08:39","created_on":"2010-09-14 16:59:56","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2AYMSBU","audio_zip_path":"AYMSBUN2DA\/AYMSBUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AYMSBUN2ET","fcbh_id":"AYMSBUN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AYM","language_name":"Aymara, Central","language_english":"Aymara, Central","language_iso":"ayr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Aymara","language_family_code":"AYM","language_family_name":"Aymara, Central","language_family_english":"Aymara, Central","language_family_iso":"ayr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:57","created_on":"2011-06-22 16:12:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AYMSBUN2ET\/AYMSBUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AYPABTN2ET","fcbh_id":"AYPABTN2ET","volume_name":"ABT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AYP","language_name":"North Mesopotamian Arabic","language_english":"Mardini","language_iso":"ayp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"North Mesopotamian Arabic","language_family_code":"AYP","language_family_name":"North Mesopotamian Arabic","language_family_english":"Mardini","language_family_iso":"ayp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-31 15:31:05","created_on":"2015-04-30 21:36:02","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AYPABTN2ET\/AYPABTN2ET.zip","font":{"id":"30","name":"Scheherazade","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Scheherazade","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2004-2014, SIL International","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AZBEMVN1DA","fcbh_id":"AZBEMVN1DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AZB","language_name":"Az\u0259rbaycan, C\u0259nubi","language_english":"Azerbaijani, South","language_iso":"azb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"South Azerbaijani","language_family_code":"AZB","language_family_name":"Az\u0259rbaycan, C\u0259nubi","language_family_english":"Azerbaijani, South","language_family_iso":"azb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"EMV","version_name":"NEW MILLENIUM VERSION","version_english":"NEW MILLENIUM VERSION","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-11 21:05:12","created_on":"2016-07-27 18:54:46","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"AZBEMVN1DA\/AZBEMVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"AZBEMVN1ET","fcbh_id":"AZBEMVN1ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AZB","language_name":"Az\u0259rbaycan, C\u0259nubi","language_english":"Azerbaijani, South","language_iso":"azb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"South Azerbaijani","language_family_code":"AZB","language_family_name":"Az\u0259rbaycan, C\u0259nubi","language_family_english":"Azerbaijani, South","language_family_iso":"azb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"EMV","version_name":"NEW MILLENIUM VERSION","version_english":"NEW MILLENIUM VERSION","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-10 21:30:06","created_on":"2016-09-15 19:42:31","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AZBEMVN1ET\/AZBEMVN1ET.zip","font":{"id":"6","name":"Arabic Typesetting","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Arabic_Typesetting","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AZBEMVO1DA","fcbh_id":"AZBEMVO1DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AZB","language_name":"Az\u0259rbaycan, C\u0259nubi","language_english":"Azerbaijani, South","language_iso":"azb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"South Azerbaijani","language_family_code":"AZB","language_family_name":"Az\u0259rbaycan, C\u0259nubi","language_family_english":"Azerbaijani, South","language_family_iso":"azb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"EMV","version_name":"NEW MILLENIUM VERSION","version_english":"NEW MILLENIUM VERSION","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-07-28 20:34:46","created_on":"2016-12-19 20:32:31","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"AZBEMVO1DA\/AZBEMVO1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"AZBEMVO1ET","fcbh_id":"AZBEMVO1ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AZB","language_name":"Az\u0259rbaycan, C\u0259nubi","language_english":"Azerbaijani, South","language_iso":"azb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"South Azerbaijani","language_family_code":"AZB","language_family_name":"Az\u0259rbaycan, C\u0259nubi","language_family_english":"Azerbaijani, South","language_family_iso":"azb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"EMV","version_name":"NEW MILLENIUM VERSION","version_english":"NEW MILLENIUM VERSION","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-09-25 16:11:35","created_on":"2016-09-15 19:44:19","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AZBEMVO1ET\/AZBEMVO1ET.zip","font":{"id":"6","name":"Arabic Typesetting","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Arabic_Typesetting","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AZGTBLN1DA","fcbh_id":"AZGTBLN1DA","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AZG","language_name":"San Pedro Amuzgo","language_english":"San Pedro Amuzgo","language_iso":"azg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Pedro Amuzgos Amuzgo","language_family_code":"AZG","language_family_name":"San Pedro Amuzgo","language_family_english":"San Pedro Amuzgo","language_family_iso":"azg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-17 20:56:25","created_on":"2016-11-17 20:38:24","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"AZGTBLN1DA\/AZGTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"AZGTBLN1ET","fcbh_id":"AZGTBLN1ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AZG","language_name":"San Pedro Amuzgo","language_english":"San Pedro Amuzgo","language_iso":"azg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Pedro Amuzgos Amuzgo","language_family_code":"AZG","language_family_name":"San Pedro Amuzgo","language_family_english":"San Pedro Amuzgo","language_family_iso":"azg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-07 20:41:29","created_on":"2016-11-17 20:40:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AZGTBLN1ET\/AZGTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"AZGTBLN2DA","fcbh_id":"AZGTBLN2DA","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AZG","language_name":"San Pedro Amuzgo","language_english":"San Pedro Amuzgo","language_iso":"azg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Pedro Amuzgos Amuzgo","language_family_code":"AZG","language_family_name":"San Pedro Amuzgo","language_family_english":"San Pedro Amuzgo","language_family_iso":"azg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-17 20:57:40","created_on":"2016-11-17 20:34:54","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"AZGTBLN2DA\/AZGTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"AZGTBLN2ET","fcbh_id":"AZGTBLN2ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AZG","language_name":"San Pedro Amuzgo","language_english":"San Pedro Amuzgo","language_iso":"azg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Pedro Amuzgos Amuzgo","language_family_code":"AZG","language_family_name":"San Pedro Amuzgo","language_family_english":"San Pedro Amuzgo","language_family_iso":"azg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-17 20:36:39","created_on":"2014-04-07 17:29:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AZGTBLN2ET\/AZGTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"AZZTBLN2DA","fcbh_id":"AZZTBLN2DA","volume_name":"1979 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AZZ","language_name":"Nahuatl, Highland Puebla","language_english":"Nahuatl, Highland Puebla","language_iso":"azz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Highland Puebla Nahuatl","language_family_code":"AZZ","language_family_name":"Nahuatl, Highland Puebla","language_family_english":"Nahuatl, Highland Puebla","language_family_iso":"azz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:55:29","created_on":"2012-01-03 21:41:00","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"AZZTBLN2DA\/AZZTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"AZZTBLN2ET","fcbh_id":"AZZTBLN2ET","volume_name":"1979 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"AZZ","language_name":"Nahuatl, Highland Puebla","language_english":"Nahuatl, Highland Puebla","language_iso":"azz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Highland Puebla Nahuatl","language_family_code":"AZZ","language_family_name":"Nahuatl, Highland Puebla","language_family_english":"Nahuatl, Highland Puebla","language_family_iso":"azz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:57","created_on":"2011-05-30 20:45:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"AZZTBLN2ET\/AZZTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BAAABCN2DA","fcbh_id":"BAAABCN2DA","volume_name":"1969 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BAA","language_name":"Bassa for Cameroon","language_english":"Bassa for Cameroon","language_iso":"bas","language_iso_2B":"bas","language_iso_2T":"bas","language_iso_1":"","language_iso_name":"Basa (Cameroon)","language_family_code":"BAA","language_family_name":"Bassa for Cameroon","language_family_english":"Bassa for Cameroon","language_family_iso":"bas","language_family_iso_2B":"bas","language_family_iso_2T":"bas","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:42","created_on":"2010-09-14 16:59:56","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BAAABC","audio_zip_path":"BAAABCN2DA\/BAAABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BAKIBTN1DA","fcbh_id":"BAKIBTN1DA","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BAK","language_name":"Bashkir","language_english":"Bashkir","language_iso":"bak","language_iso_2B":"bak","language_iso_2T":"bak","language_iso_1":"ba","language_iso_name":"Bashkir","language_family_code":"BAK","language_family_name":"Bashkir","language_family_english":"Bashkir","language_family_iso":"bak","language_family_iso_2B":"bak","language_family_iso_2T":"bak","language_family_iso_1":"ba","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-02 16:22:24","created_on":"2016-03-02 14:32:33","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BAKIBTN1DA\/BAKIBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BAKIBTN1ET","fcbh_id":"BAKIBTN1ET","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BAK","language_name":"Bashkir","language_english":"Bashkir","language_iso":"bak","language_iso_2B":"bak","language_iso_2T":"bak","language_iso_1":"ba","language_iso_name":"Bashkir","language_family_code":"BAK","language_family_name":"Bashkir","language_family_english":"Bashkir","language_family_iso":"bak","language_family_iso_2B":"bak","language_family_iso_2T":"bak","language_family_iso_1":"ba","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:44:46","created_on":"2016-03-01 20:26:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BAKIBTN1ET\/BAKIBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BAKIBTN2DA","fcbh_id":"BAKIBTN2DA","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BAK","language_name":"Bashkir","language_english":"Bashkir","language_iso":"bak","language_iso_2B":"bak","language_iso_2T":"bak","language_iso_1":"ba","language_iso_name":"Bashkir","language_family_code":"BAK","language_family_name":"Bashkir","language_family_english":"Bashkir","language_family_iso":"bak","language_family_iso_2B":"bak","language_family_iso_2T":"bak","language_family_iso_1":"ba","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-01 21:22:20","created_on":"2016-03-01 20:30:43","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BAKIBTN2DA\/BAKIBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BAKIBTN2ET","fcbh_id":"BAKIBTN2ET","volume_name":"IBT Volume","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BAK","language_name":"Bashkir","language_english":"Bashkir","language_iso":"bak","language_iso_2B":"bak","language_iso_2T":"bak","language_iso_1":"ba","language_iso_name":"Bashkir","language_family_code":"BAK","language_family_name":"Bashkir","language_family_english":"Bashkir","language_family_iso":"bak","language_family_iso_2B":"bak","language_family_iso_2T":"bak","language_family_iso_1":"ba","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:44:46","created_on":"2015-05-06 16:47:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BAKIBTN2ET\/BAKIBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BANIBSN2DA","fcbh_id":"BANIBSN2DA","volume_name":"Today's Balinese Version, 1990","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BAN","language_name":"Balinese","language_english":"Balinese","language_iso":"ban","language_iso_2B":"ban","language_iso_2T":"ban","language_iso_1":"","language_iso_name":"Balinese","language_family_code":"BAN","language_family_name":"Balinese","language_family_english":"Balinese","language_family_iso":"ban","language_family_iso_2B":"ban","language_family_iso_2T":"ban","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:17:18","created_on":"2010-09-14 16:59:57","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BANIBS","audio_zip_path":"BANIBSN2DA\/BANIBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BANIBSN2ET","fcbh_id":"BANIBSN2ET","volume_name":"Today's Balinese Version, 1990","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BAN","language_name":"Balinese","language_english":"Balinese","language_iso":"ban","language_iso_2B":"ban","language_iso_2T":"ban","language_iso_1":"","language_iso_name":"Balinese","language_family_code":"BAN","language_family_name":"Balinese","language_family_english":"Balinese","language_family_iso":"ban","language_family_iso_2B":"ban","language_family_iso_2T":"ban","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:58","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2BANIBS","audio_zip_path":"BANIBSN2ET\/BANIBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BAOWBTN2DA","fcbh_id":"BAOWBTN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BAO","language_name":"Waimaja","language_english":"Waimaja","language_iso":"bao","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Waimaha","language_family_code":"BAO","language_family_name":"Waimaja","language_family_english":"Waimaja","language_family_iso":"bao","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:55:32","created_on":"2010-10-05 19:34:26","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2BAOWBT","audio_zip_path":"BAOWBTN2DA\/BAOWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BAOWBTN2ET","fcbh_id":"BAOWBTN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BAO","language_name":"Waimaja","language_english":"Waimaja","language_iso":"bao","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Waimaha","language_family_code":"BAO","language_family_name":"Waimaja","language_family_english":"Waimaja","language_family_iso":"bao","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:58","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2BAOWBT","audio_zip_path":"BAOWBTN2ET\/BAOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BAVWBTN2DA","fcbh_id":"BAVWBTN2DA","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BAV","language_name":"Babungo","language_english":"Babungo","language_iso":"bav","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Vengo","language_family_code":"BAV","language_family_name":"Babungo","language_family_english":"Babungo","language_family_iso":"bav","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:15:05","created_on":"2011-06-01 15:40:34","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"BAVWBTN2DA\/BAVWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BAVWBTN2ET","fcbh_id":"BAVWBTN2ET","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BAV","language_name":"Babungo","language_english":"Babungo","language_iso":"bav","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Vengo","language_family_code":"BAV","language_family_name":"Babungo","language_family_english":"Babungo","language_family_iso":"bav","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:58","created_on":"2011-06-02 16:29:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BAVWBTN2ET\/BAVWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BAXABCN1DA","fcbh_id":"BAXABCN1DA","volume_name":"1988 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BAX","language_name":"Bamun","language_english":"Bamun","language_iso":"bax","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bamun","language_family_code":"BAX","language_family_name":"Bamun","language_family_english":"Bamun","language_family_iso":"bax","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:30","created_on":"2010-09-14 16:59:40","right_to_left":"false","num_art":"5","num_sample_audio":"1","sku":"N1BAXABC","audio_zip_path":"BAXABCN1DA\/BAXABCN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BBABSBN2DA","fcbh_id":"BBABSBN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BBA","language_name":"Bariba","language_english":"Bariba","language_iso":"bba","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Baatonum","language_family_code":"BBA","language_family_name":"Bariba","language_family_english":"Bariba","language_family_iso":"bba","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-08-26 16:53:12","created_on":"2010-09-14 16:59:57","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BBABSB","audio_zip_path":"BBABSBN2DA\/BBABSBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BBABSBN2ET","fcbh_id":"BBABSBN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BBA","language_name":"Bariba","language_english":"Bariba","language_iso":"bba","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Baatonum","language_family_code":"BBA","language_family_name":"Bariba","language_family_english":"Bariba","language_family_iso":"bba","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:58","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2BBABSB","audio_zip_path":"BBABSBN2ET\/BBABSBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BBABSBO2ET","fcbh_id":"BBABSBO2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BBA","language_name":"Bariba","language_english":"Bariba","language_iso":"bba","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Baatonum","language_family_code":"BBA","language_family_name":"Bariba","language_family_english":"Bariba","language_family_iso":"bba","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:58","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"O2BBABSB","audio_zip_path":"BBABSBO2ET\/BBABSBO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BBJABCN2DA","fcbh_id":"BBJABCN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BBJ","language_name":"Ghomala","language_english":"Ghomala","language_iso":"bbj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ghom\u00e1l\u00e1'","language_family_code":"BBJ","language_family_name":"Ghomala","language_family_english":"Ghomala","language_family_iso":"bbj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:06","created_on":"2011-05-25 16:48:26","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"BBJABCN2DA\/BBJABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BBOBSBN1DA","fcbh_id":"BBOBSBN1DA","volume_name":"1981 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BBO","language_name":"Bobo Madar\u00e9, Northern","language_english":"Konabere","language_iso":"bbo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Bobo Madar\u00e9","language_family_code":"BBO","language_family_name":"Bobo Madar\u00e9, Northern","language_family_english":"Konabere","language_family_iso":"bbo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-07 19:32:22","created_on":"2015-11-19 22:15:13","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BBOBSBN1DA\/BBOBSBN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BBOBSBN1ET","fcbh_id":"BBOBSBN1ET","volume_name":"1981 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BBO","language_name":"Bobo Madar\u00e9, Northern","language_english":"Konabere","language_iso":"bbo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Bobo Madar\u00e9","language_family_code":"BBO","language_family_name":"Bobo Madar\u00e9, Northern","language_family_english":"Konabere","language_family_iso":"bbo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-07 19:32:22","created_on":"2015-11-19 22:18:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BBOBSBN1ET\/BBOBSBN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BBOBSBN2DA","fcbh_id":"BBOBSBN2DA","volume_name":"1981 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BBO","language_name":"Bobo Madar\u00e9, Northern","language_english":"Konabere","language_iso":"bbo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Bobo Madar\u00e9","language_family_code":"BBO","language_family_name":"Bobo Madar\u00e9, Northern","language_family_english":"Konabere","language_family_iso":"bbo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-07 19:32:22","created_on":"2014-09-29 19:29:15","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"BBOBSBN2DA\/BBOBSBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BBOBSBN2ET","fcbh_id":"BBOBSBN2ET","volume_name":"1981 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BBO","language_name":"Bobo Madar\u00e9, Northern","language_english":"Konabere","language_iso":"bbo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Bobo Madar\u00e9","language_family_code":"BBO","language_family_name":"Bobo Madar\u00e9, Northern","language_family_english":"Konabere","language_family_iso":"bbo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-07 19:32:22","created_on":"2014-04-21 17:00:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BBOBSBN2ET\/BBOBSBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BBOBSMN1DA","fcbh_id":"BBOBSMN1DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BBO","language_name":"Bobo Madar\u00e9, Northern","language_english":"Konabere","language_iso":"bbo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Bobo Madar\u00e9","language_family_code":"BBO","language_family_name":"Bobo Madar\u00e9, Northern","language_family_english":"Konabere","language_family_iso":"bbo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-07 19:32:22","created_on":"2018-07-13 18:20:43","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BBOBSMN1DA\/BBOBSMN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BBOBSMN2DA","fcbh_id":"BBOBSMN2DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BBO","language_name":"Bobo Madar\u00e9, Northern","language_english":"Konabere","language_iso":"bbo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Bobo Madar\u00e9","language_family_code":"BBO","language_family_name":"Bobo Madar\u00e9, Northern","language_family_english":"Konabere","language_family_iso":"bbo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-07 19:32:22","created_on":"2018-07-13 18:18:12","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BBOBSMN2DA\/BBOBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BBRWBTN2ET","fcbh_id":"BBRWBTN2ET","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BBR","language_name":"Girawa","language_english":"Girawa","language_iso":"bbr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Girawa","language_family_code":"BBR","language_family_name":"Girawa","language_family_english":"Girawa","language_family_iso":"bbr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-21 18:30:16","created_on":"2014-06-06 18:56:15","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BBRWBTN2ET\/BBRWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BCIUBSN1DA","fcbh_id":"BCIUBSN1DA","volume_name":"1974 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BCI","language_name":"Baoul\u00e9","language_english":"Baoul\u00e9","language_iso":"bci","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Baoul\u00e9","language_family_code":"BCI","language_family_name":"Baoul\u00e9","language_family_english":"Baoul\u00e9","language_family_iso":"bci","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:28","created_on":"2010-09-14 16:59:40","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1BCIUBS","audio_zip_path":"BCIUBSN1DA\/BCIUBSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BCLBPVN2DA","fcbh_id":"BCLBPVN2DA","volume_name":"Bikol Popular Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BCL","language_name":"Bicolano, Central","language_english":"Bicolano, Central","language_iso":"bcl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Bicolano","language_family_code":"BCL","language_family_name":"Bicolano, Central","language_family_english":"Bicolano, Central","language_family_iso":"bcl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BPV","version_name":"Bikol Popular Version","version_english":"Bikol Popular Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:25:40","created_on":"2010-09-14 17:01:25","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2BCLBPV","audio_zip_path":"BCLBPVN2DA\/BCLBPVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BCLBPVN2ET","fcbh_id":"BCLBPVN2ET","volume_name":"Bikol Popular Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BCL","language_name":"Bicolano, Central","language_english":"Bicolano, Central","language_iso":"bcl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Bicolano","language_family_code":"BCL","language_family_name":"Bicolano, Central","language_family_english":"Bicolano, Central","language_family_iso":"bcl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BPV","version_name":"Bikol Popular Version","version_english":"Bikol Popular Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:00","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2BCLBPV","audio_zip_path":"BCLBPVN2ET\/BCLBPVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BCQBSEN2DA","fcbh_id":"BCQBSEN2DA","volume_name":"1990 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BCQ","language_name":"Bench","language_english":"Bench","language_iso":"bcq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bench","language_family_code":"BCQ","language_family_name":"Bench","language_family_english":"Bench","language_family_iso":"bcq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:46","created_on":"2010-09-14 16:59:57","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BCQBSE","audio_zip_path":"BCQBSEN2DA\/BCQBSEN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BCWWBTN2DA","fcbh_id":"BCWWBTN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BCW","language_name":"Bana","language_english":"Bana","language_iso":"bcw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bana","language_family_code":"BCW","language_family_name":"Bana","language_family_english":"Bana","language_family_iso":"bcw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:18:55","created_on":"2010-09-14 16:59:57","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BCWWBT","audio_zip_path":"BCWWBTN2DA\/BCWWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BCWWBTN2ET","fcbh_id":"BCWWBTN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BCW","language_name":"Bana","language_english":"Bana","language_iso":"bcw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bana","language_family_code":"BCW","language_family_name":"Bana","language_family_english":"Bana","language_family_iso":"bcw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:00","created_on":"2011-07-18 18:02:35","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BCWWBTN2ET\/BCWWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BDDWBTN2ET","fcbh_id":"BDDWBTN2ET","volume_name":"1991 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BDD","language_name":"Bunama","language_english":"Bunama","language_iso":"bdd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bunama","language_family_code":"BDD","language_family_name":"Bunama","language_family_english":"Bunama","language_family_iso":"bdd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-11 22:44:39","created_on":"2014-05-22 16:33:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BDDWBTN2ET\/BDDWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BDQDVSN2DA","fcbh_id":"BDQDVSN2DA","volume_name":"DVS Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BDQ","language_name":"Bahnar","language_english":"Bahnar","language_iso":"bdq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bahnar","language_family_code":"BDQ","language_family_name":"Bahnar","language_family_english":"Bahnar","language_family_iso":"bdq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"DVS","version_name":"Dinh Vinh Sang","version_english":"Dinh Vinh Sang","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 23:21:35","created_on":"2015-07-01 20:54:54","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"BDQDVSN2DA\/BDQDVSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BEFWBTN2ET","fcbh_id":"BEFWBTN2ET","volume_name":"1982 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BEF","language_name":"Benabena","language_english":"Benabena","language_iso":"bef","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Benabena","language_family_code":"BEF","language_family_name":"Benabena","language_family_english":"Benabena","language_family_iso":"bef","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-01 21:04:37","created_on":"2014-05-13 19:12:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BEFWBTN2ET\/BEFWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BEMUBSN2DA","fcbh_id":"BEMUBSN2DA","volume_name":"1956 Icipingo Cipya","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BEM","language_name":"Chibemba","language_english":"Chibemba","language_iso":"bem","language_iso_2B":"bem","language_iso_2T":"bem","language_iso_1":"","language_iso_name":"Bemba (Zambia)","language_family_code":"BEM","language_family_name":"Chibemba","language_family_english":"Chibemba","language_family_iso":"bem","language_family_iso_2B":"bem","language_family_iso_2T":"bem","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:33","created_on":"2010-09-14 16:59:58","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BEMUBS","audio_zip_path":"BEMUBSN2DA\/BEMUBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BEPLAIN1DA","fcbh_id":"BEPLAIN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BEP","language_name":"Behoa","language_english":"Behoa","language_iso":"bep","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Besoa","language_family_code":"BEP","language_family_name":"Behoa","language_family_english":"Behoa","language_family_iso":"bep","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-23 19:38:48","created_on":"2018-02-23 19:14:46","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BEPLAIN1DA\/BEPLAIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BEPLAIN2DA","fcbh_id":"BEPLAIN2DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BEP","language_name":"Behoa","language_english":"Behoa","language_iso":"bep","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Besoa","language_family_code":"BEP","language_family_name":"Behoa","language_family_english":"Behoa","language_family_iso":"bep","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-23 19:39:29","created_on":"2018-02-23 19:13:31","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BEPLAIN2DA\/BEPLAIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BEQABCN1DA","fcbh_id":"BEQABCN1DA","volume_name":"2013 Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BEQ","language_name":"Beembe","language_english":"Beembe","language_iso":"beq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Beembe","language_family_code":"BEQ","language_family_name":"Beembe","language_family_english":"Beembe","language_family_iso":"beq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:19:38","created_on":"2016-06-02 19:53:33","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BEQABCN1DA\/BEQABCN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BEQABCN2DA","fcbh_id":"BEQABCN2DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BEQ","language_name":"Beembe","language_english":"Beembe","language_iso":"beq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Beembe","language_family_code":"BEQ","language_family_name":"Beembe","language_family_english":"Beembe","language_family_iso":"beq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:19:38","created_on":"2016-06-02 20:18:38","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BEQABCN2DA\/BEQABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BEVABUN2DA","fcbh_id":"BEVABUN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BEV","language_name":"Bete, Daloa","language_english":"Bete, Daloa","language_iso":"bev","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Daloa B\u00e9t\u00e9","language_family_code":"BEV","language_family_name":"Bete, Daloa","language_family_english":"Bete, Daloa","language_family_iso":"bev","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:34","created_on":"2010-09-14 16:59:58","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BEVABU","audio_zip_path":"BEVABUN2DA\/BEVABUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BEXWBTN2DA","fcbh_id":"BEXWBTN2DA","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BEX","language_name":"Jur Modo","language_english":"Jur Modo","language_iso":"bex","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Jur Modo","language_family_code":"BEX","language_family_name":"Jur Modo","language_family_english":"Jur Modo","language_family_iso":"bex","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 20:22:27","created_on":"2010-10-05 19:34:21","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2BEXWBT","audio_zip_path":"BEXWBTN2DA\/BEXWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BEXWBTN2ET","fcbh_id":"BEXWBTN2ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BEX","language_name":"Jur Modo","language_english":"Jur Modo","language_iso":"bex","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Jur Modo","language_family_code":"BEX","language_family_name":"Jur Modo","language_family_english":"Jur Modo","language_family_iso":"bex","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 21:18:09","created_on":"2010-11-25 20:50:10","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2BEXWBT","audio_zip_path":"BEXWBTN2ET\/BEXWBTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BFABSSN1DA","fcbh_id":"BFABSSN1DA","volume_name":"1979 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BFA","language_name":"Bari","language_english":"Bari","language_iso":"bfa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bari","language_family_code":"BFA","language_family_name":"Bari","language_family_english":"Bari","language_family_iso":"bfa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-24 20:03:50","created_on":"2015-07-02 13:49:31","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"BFABSSN1DA\/BFABSSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BFABSSN2DA","fcbh_id":"BFABSSN2DA","volume_name":"1979 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BFA","language_name":"Bari","language_english":"Bari","language_iso":"bfa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bari","language_family_code":"BFA","language_family_name":"Bari","language_family_english":"Bari","language_family_iso":"bfa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:19:38","created_on":"2015-07-02 14:14:15","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"BFABSSN2DA\/BFABSSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BFDWBTN2DA","fcbh_id":"BFDWBTN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BFD","language_name":"Bafut","language_english":"Bafut","language_iso":"bfd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bafut","language_family_code":"BFD","language_family_name":"Bafut","language_family_english":"Bafut","language_family_iso":"bfd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:15:51","created_on":"2010-09-14 16:59:58","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BFDWBT","audio_zip_path":"BFDWBTN2DA\/BFDWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BFDWBTN2ET","fcbh_id":"BFDWBTN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BFD","language_name":"Bafut","language_english":"Bafut","language_iso":"bfd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bafut","language_family_code":"BFD","language_family_name":"Bafut","language_family_english":"Bafut","language_family_iso":"bfd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:00","created_on":"2010-09-14 16:59:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2BFDWBT","audio_zip_path":"BFDWBTN2ET\/BFDWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BFOBSBN1DA","fcbh_id":"BFOBSBN1DA","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BFO","language_name":"Birifor, Northern","language_english":"Birifor, Northern","language_iso":"bfo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Malba Birifor","language_family_code":"BFO","language_family_name":"Birifor, Northern","language_family_english":"Birifor, Northern","language_family_iso":"bfo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-03 19:55:23","created_on":"2017-08-03 19:25:24","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BFOBSBN1DA\/BFOBSBN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BFOBSBN1ET","fcbh_id":"BFOBSBN1ET","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BFO","language_name":"Birifor, Northern","language_english":"Birifor, Northern","language_iso":"bfo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Malba Birifor","language_family_code":"BFO","language_family_name":"Birifor, Northern","language_family_english":"Birifor, Northern","language_family_iso":"bfo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-03 19:49:38","created_on":"2017-08-03 19:24:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BFOBSBN1ET\/BFOBSBN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BFOBSBN2DA","fcbh_id":"BFOBSBN2DA","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BFO","language_name":"Birifor, Northern","language_english":"Birifor, Northern","language_iso":"bfo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Malba Birifor","language_family_code":"BFO","language_family_name":"Birifor, Northern","language_family_english":"Birifor, Northern","language_family_iso":"bfo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-05-09 22:21:35","created_on":"2014-05-09 20:05:54","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"BFOBSBN2DA\/BFOBSBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BFOBSBN2ET","fcbh_id":"BFOBSBN2ET","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BFO","language_name":"Birifor, Northern","language_english":"Birifor, Northern","language_iso":"bfo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Malba Birifor","language_family_code":"BFO","language_family_name":"Birifor, Northern","language_family_english":"Birifor, Northern","language_family_iso":"bfo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-02 13:52:17","created_on":"2014-02-20 17:21:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BFOBSBN2ET\/BFOBSBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BGRBBSN2DA","fcbh_id":"BGRBBSN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BGR","language_name":"Bawm","language_english":"Bawm","language_iso":"bgr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bawm Chin","language_family_code":"BGR","language_family_name":"Bawm","language_family_english":"Bawm","language_family_iso":"bgr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:22:32","created_on":"2012-01-12 16:52:12","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"BGRBBSN2DA\/BGRBBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BGRBBSN2ET","fcbh_id":"BGRBBSN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BGR","language_name":"Bawm","language_english":"Bawm","language_iso":"bgr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bawm Chin","language_family_code":"BGR","language_family_name":"Bawm","language_family_english":"Bawm","language_family_iso":"bgr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-20 17:38:54","created_on":"2012-01-13 20:02:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BGRBBSN2ET\/BGRBBSN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BGTWYIN1DA","fcbh_id":"BGTWYIN1DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BGT","language_name":"Bughotu","language_english":"Bughotu","language_iso":"bgt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bughotu","language_family_code":"BGT","language_family_name":"Bughotu","language_family_english":"Bughotu","language_family_iso":"bgt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-15 22:16:59","created_on":"2018-10-15 21:22:45","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BGTWYIN1DA\/BGTWYIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download"],"resolution":[]},{"dam_id":"BGTWYIN1ET","fcbh_id":"BGTWYIN1ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BGT","language_name":"Bughotu","language_english":"Bughotu","language_iso":"bgt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bughotu","language_family_code":"BGT","language_family_name":"Bughotu","language_family_english":"Bughotu","language_family_iso":"bgt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-13 17:57:54","created_on":"2018-11-13 17:47:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BGTWYIN1ET\/BGTWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BGZLAIN2ET","fcbh_id":"BGZLAIN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BGZ","language_name":"Banggai","language_english":"Banggai","language_iso":"bgz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Banggai","language_family_code":"BGZ","language_family_name":"Banggai","language_family_english":"Banggai","language_family_iso":"bgz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:00","created_on":"2014-10-16 20:15:37","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BGZLAIN2ET\/BGZLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BHJROVN2DA","fcbh_id":"BHJROVN2DA","volume_name":"Revised Old Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BHJ","language_name":"Bhojpuri","language_english":"Bhojpuri","language_iso":"bho","language_iso_2B":"bho","language_iso_2T":"bho","language_iso_1":"","language_iso_name":"Bhojpuri","language_family_code":"BHO","language_family_name":"Bhojpuri","language_family_english":"Bhojpuri","language_family_iso":"bho","language_family_iso_2B":"bho","language_family_iso_2T":"bho","language_family_iso_1":"","version_code":"ROV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:48","created_on":"2010-09-14 16:59:59","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BHJROV","audio_zip_path":"BHJROVN2DA\/BHJROVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BHLPNGN2ET","fcbh_id":"BHLPNGN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BHL","language_name":"Bimin","language_english":"Bimin","language_iso":"bhl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bimin","language_family_code":"BHL","language_family_name":"Bimin","language_family_english":"Bimin","language_family_iso":"bhl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:43:05","created_on":"2014-04-16 15:32:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BHLPNGN2ET\/BHLPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BHWLAIN2ET","fcbh_id":"BHWLAIN2ET","volume_name":"1990 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BHW","language_name":"Biak","language_english":"Biak","language_iso":"bhw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Biak","language_family_code":"BHW","language_family_name":"Biak","language_family_english":"Biak","language_family_iso":"bhw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-31 18:57:29","created_on":"2014-10-03 17:13:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BHWLAIN2ET\/BHWLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BHZLAIN1DA","fcbh_id":"BHZLAIN1DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BHZ","language_name":"Bada","language_english":"Bada","language_iso":"bhz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bada (Indonesia)","language_family_code":"BHZ","language_family_name":"Bada","language_family_english":"Bada","language_family_iso":"bhz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 15:59:05","created_on":"2018-01-31 21:04:39","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"BHZLAIN1DA\/BHZLAIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BHZLAIN1ET","fcbh_id":"BHZLAIN1ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BHZ","language_name":"Bada","language_english":"Bada","language_iso":"bhz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bada (Indonesia)","language_family_code":"BHZ","language_family_name":"Bada","language_family_english":"Bada","language_family_iso":"bhz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-09 23:11:16","created_on":"2018-11-09 23:05:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BHZLAIN1ET\/BHZLAIN1ET.zip","font":{"id":"7","name":"Arial","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Arial","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BHZLAIN2DA","fcbh_id":"BHZLAIN2DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BHZ","language_name":"Bada","language_english":"Bada","language_iso":"bhz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bada (Indonesia)","language_family_code":"BHZ","language_family_name":"Bada","language_family_english":"Bada","language_family_iso":"bhz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 15:59:05","created_on":"2018-01-31 20:50:27","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"BHZLAIN2DA\/BHZLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BHZLAIN2ET","fcbh_id":"BHZLAIN2ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BHZ","language_name":"Bada","language_english":"Bada","language_iso":"bhz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bada (Indonesia)","language_family_code":"BHZ","language_family_name":"Bada","language_family_english":"Bada","language_family_iso":"bhz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-09 23:11:33","created_on":"2018-11-09 23:06:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BHZLAIN2ET\/BHZLAIN2ET.zip","font":{"id":"7","name":"Arial","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Arial","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BIBWBTN2DA","fcbh_id":"BIBWBTN2DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BIB","language_name":"Bissa","language_english":"Bissa","language_iso":"bib","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bissa","language_family_code":"BIB","language_family_name":"Bissa","language_family_english":"Bissa","language_family_iso":"bib","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 18:08:03","created_on":"2010-09-14 17:01:18","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2BIBWBT","audio_zip_path":"BIBWBTN2DA\/BIBWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BIBWBTN2ET","fcbh_id":"BIBWBTN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BIB","language_name":"Bissa","language_english":"Bissa","language_iso":"bib","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bissa","language_family_code":"BIB","language_family_name":"Bissa","language_family_english":"Bissa","language_family_iso":"bib","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:00","created_on":"2011-05-12 22:34:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BIBWBTN2ET\/BIBWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BIGWBTN2ET","fcbh_id":"BIGWBTN2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BIG","language_name":"Biangai","language_english":"Biangai","language_iso":"big","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Biangai","language_family_code":"BIG","language_family_name":"Biangai","language_family_english":"Biangai","language_family_iso":"big","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-11 19:45:30","created_on":"2017-08-11 19:03:47","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BIGWBTN2ET\/BIGWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BIMWBTN2DA","fcbh_id":"BIMWBTN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BIM","language_name":"Bimoba","language_english":"Bimoba","language_iso":"bim","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bimoba","language_family_code":"BIM","language_family_name":"Bimoba","language_family_english":"Bimoba","language_family_iso":"bim","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 18:00:48","created_on":"2010-09-14 16:59:59","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BIMWBT","audio_zip_path":"BIMWBTN2DA\/BIMWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BIMWBTN2ET","fcbh_id":"BIMWBTN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BIM","language_name":"Bimoba","language_english":"Bimoba","language_iso":"bim","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bimoba","language_family_code":"BIM","language_family_name":"Bimoba","language_family_english":"Bimoba","language_family_iso":"bim","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:00","created_on":"2010-09-14 16:59:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2BIMWBT","audio_zip_path":"BIMWBTN2ET\/BIMWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BIVWBTN2DA","fcbh_id":"BIVWBTN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BIV","language_name":"Birifor, Southern","language_english":"Birifor, Southern","language_iso":"biv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Birifor","language_family_code":"BIV","language_family_name":"Birifor, Southern","language_family_english":"Birifor, Southern","language_family_iso":"biv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 18:02:30","created_on":"2010-09-14 17:01:17","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2BIVWBT","audio_zip_path":"BIVWBTN2DA\/BIVWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BIVWBTN2ET","fcbh_id":"BIVWBTN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BIV","language_name":"Birifor, Southern","language_english":"Birifor, Southern","language_iso":"biv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Birifor","language_family_code":"BIV","language_family_name":"Birifor, Southern","language_family_english":"Birifor, Southern","language_family_iso":"biv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:00","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2BIVWBT","audio_zip_path":"BIVWBTN2ET\/BIVWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BJRWBTN2ET","fcbh_id":"BJRWBTN2ET","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BJR","language_name":"Binumarien","language_english":"Binumarien","language_iso":"bjr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Binumarien","language_family_code":"BJR","language_family_name":"Binumarien","language_family_english":"Binumarien","language_family_iso":"bjr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 18:00:12","created_on":"2014-05-22 16:41:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BJRWBTN2ET\/BJRWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BJVWYIN2DA","fcbh_id":"BJVWYIN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BJV","language_name":"Nangnda","language_english":"Nangnda","language_iso":"bjv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bedjond","language_family_code":"BJV","language_family_name":"Nangnda","language_family_english":"Nangnda","language_family_iso":"bjv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:55:41","created_on":"2013-09-09 14:12:37","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"BJVWYIN2DA\/BJVWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BJVWYIN2ET","fcbh_id":"BJVWYIN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BJV","language_name":"Nangnda","language_english":"Nangnda","language_iso":"bjv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bedjond","language_family_code":"BJV","language_family_name":"Nangnda","language_family_english":"Nangnda","language_family_iso":"bjv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:59","created_on":"2012-05-09 21:54:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BJVWYIN2ET\/BJVWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BKDWBTN1DA","fcbh_id":"BKDWBTN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BKD","language_name":"Binukid","language_english":"Binukid","language_iso":"bkd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Binukid","language_family_code":"BKD","language_family_name":"Binukid","language_family_english":"Binukid","language_family_iso":"bkd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:20:51","created_on":"2017-10-23 20:18:27","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BKDWBTN1DA\/BKDWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BKDWBTN2DA","fcbh_id":"BKDWBTN2DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BKD","language_name":"Binukid","language_english":"Binukid","language_iso":"bkd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Binukid","language_family_code":"BKD","language_family_name":"Binukid","language_family_english":"Binukid","language_family_iso":"bkd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:20:51","created_on":"2017-10-23 19:36:09","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BKDWBTN2DA\/BKDWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BKLLAIN2ET","fcbh_id":"BKLLAIN2ET","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BKL","language_name":"Berik","language_english":"Berik","language_iso":"bkl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Berik","language_family_code":"BKL","language_family_name":"Berik","language_family_english":"Berik","language_family_iso":"bkl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:00","created_on":"2014-03-26 15:19:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BKLLAIN2ET\/BKLLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BKMBSCN2DA","fcbh_id":"BKMBSCN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BKM","language_name":"Kom for Cameroon","language_english":"Kom for Cameroon","language_iso":"bkm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kom (Cameroon)","language_family_code":"BKM","language_family_name":"Kom for Cameroon","language_family_english":"Kom for Cameroon","language_family_iso":"bkm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-28 20:03:40","created_on":"2010-09-14 16:59:59","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BKMBSC","audio_zip_path":"BKMBSCN2DA\/BKMBSCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BKUOMFN2ET","fcbh_id":"BKUOMFN2ET","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BKU","language_name":"Buhid","language_english":"Buhid","language_iso":"bku","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Buhid","language_family_code":"BKU","language_family_name":"Buhid","language_family_english":"Buhid","language_family_iso":"bku","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"OMF","version_name":"Overseas Missionary Fellowship","version_english":"Overseas Missionary Fellowship","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:58","created_on":"2011-10-18 21:19:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BKUOMFN2ET\/BKUOMFN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BKVWYIN2DA","fcbh_id":"BKVWYIN2DA","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BKV","language_name":"Bekwarra","language_english":"Bekwarra","language_iso":"bkv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bekwarra","language_family_code":"BKV","language_family_name":"Bekwarra","language_family_english":"Bekwarra","language_family_iso":"bkv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-17 17:17:18","created_on":"2013-12-16 19:07:24","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"BKVWYIN2DA\/BKVWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BKVWYIN2ET","fcbh_id":"BKVWYIN2ET","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BKV","language_name":"Bekwarra","language_english":"Bekwarra","language_iso":"bkv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bekwarra","language_family_code":"BKV","language_family_name":"Bekwarra","language_family_english":"Bekwarra","language_family_iso":"bkv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:59","created_on":"2013-09-23 16:47:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BKVWYIN2ET\/BKVWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BLGAMBN1DA","fcbh_id":"BLGAMBN1DA","volume_name":"1924 Protestant Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BLG","language_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_english":"Bulgarian","language_iso":"bul","language_iso_2B":"bul","language_iso_2T":"bul","language_iso_1":"bg","language_iso_name":"Bulgarian","language_family_code":"BUL","language_family_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_family_english":"Bulgarian","language_family_iso":"bul","language_family_iso_2B":"bul","language_family_iso_2T":"bul","language_family_iso_1":"bg","version_code":"AMB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:29","created_on":"2010-09-14 16:59:40","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1BLGAMB","audio_zip_path":"BLGAMBN1DA\/BLGAMBN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BLTEPIN1DA","fcbh_id":"BLTEPIN1DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BLT","language_name":"Tai Dam","language_english":"Tai Dam","language_iso":"blt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tai Dam","language_family_code":"BLT","language_family_name":"Tai Dam","language_family_english":"Tai Dam","language_family_iso":"blt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"EPI","version_name":"Tai Dam","version_english":"Tai Dam","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-20 18:24:33","created_on":"2016-05-20 17:56:14","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BLTEPIN1DA\/BLTEPIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BLTEPIN1ET","fcbh_id":"BLTEPIN1ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BLT","language_name":"Tai Dam","language_english":"Tai Dam","language_iso":"blt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tai Dam","language_family_code":"BLT","language_family_name":"Tai Dam","language_family_english":"Tai Dam","language_family_iso":"blt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"EPI","version_name":"Tai Dam","version_english":"Tai Dam","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-17 19:50:17","created_on":"2017-06-20 17:55:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BLTEPIN1ET\/BLTEPIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BLTEPIN2DA","fcbh_id":"BLTEPIN2DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BLT","language_name":"Tai Dam","language_english":"Tai Dam","language_iso":"blt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tai Dam","language_family_code":"BLT","language_family_name":"Tai Dam","language_family_english":"Tai Dam","language_family_iso":"blt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"EPI","version_name":"Tai Dam","version_english":"Tai Dam","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-20 18:03:54","created_on":"2016-05-19 19:55:56","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BLTEPIN2DA\/BLTEPIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BLTEPIN2ET","fcbh_id":"BLTEPIN2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BLT","language_name":"Tai Dam","language_english":"Tai Dam","language_iso":"blt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tai Dam","language_family_code":"BLT","language_family_name":"Tai Dam","language_family_english":"Tai Dam","language_family_iso":"blt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"EPI","version_name":"Tai Dam","version_english":"Tai Dam","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-17 19:49:45","created_on":"2017-06-20 17:54:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BLTEPIN2ET\/BLTEPIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BLUASIN1DA","fcbh_id":"BLUASIN1DA","volume_name":"1990 ASI Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BLU","language_name":"Hmong Njua","language_english":"Hmong Njua","language_iso":"hnj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hmong Njua","language_family_code":"BLU","language_family_name":"Hmong Njua","language_family_english":"Hmong Njua","language_family_iso":"hnj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ASI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:28","created_on":"2010-09-14 17:01:03","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1BLUASI","audio_zip_path":"BLUASIN1DA\/BLUASIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BLZLAIN2DA","fcbh_id":"BLZLAIN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BLZ","language_name":"Balantak","language_english":"Balantak","language_iso":"blz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Balantak","language_family_code":"BLZ","language_family_name":"Balantak","language_family_english":"Balantak","language_family_iso":"blz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:16:49","created_on":"2013-07-24 20:17:58","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"BLZLAIN2DA\/BLZLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BLZLAIN2ET","fcbh_id":"BLZLAIN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BLZ","language_name":"Balantak","language_english":"Balantak","language_iso":"blz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Balantak","language_family_code":"BLZ","language_family_name":"Balantak","language_family_english":"Balantak","language_family_iso":"blz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:59","created_on":"2011-10-07 20:51:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BLZLAIN2ET\/BLZLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BMHWBTN2ET","fcbh_id":"BMHWBTN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BMH","language_name":"Kein","language_english":"Kein","language_iso":"bmh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kein","language_family_code":"BMH","language_family_name":"Kein","language_family_english":"Kein","language_family_iso":"bmh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:52:47","created_on":"2011-08-30 20:40:15","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BMHWBTN2ET\/BMHWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BMQBSMN1DA","fcbh_id":"BMQBSMN1DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BMQ","language_name":"Boomu","language_english":"Boomu","language_iso":"bmq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bomu","language_family_code":"BMQ","language_family_name":"Boomu","language_family_english":"Boomu","language_family_iso":"bmq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-20 21:28:29","created_on":"2018-03-20 20:14:22","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BMQBSMN1DA\/BMQBSMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BMQBSMN1ET","fcbh_id":"BMQBSMN1ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BMQ","language_name":"Boomu","language_english":"Boomu","language_iso":"bmq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bomu","language_family_code":"BMQ","language_family_name":"Boomu","language_family_english":"Boomu","language_family_iso":"bmq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:52:47","created_on":"2018-03-20 20:11:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BMQBSMN1ET\/BMQBSMN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BMQBSMN2DA","fcbh_id":"BMQBSMN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BMQ","language_name":"Boomu","language_english":"Boomu","language_iso":"bmq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bomu","language_family_code":"BMQ","language_family_name":"Boomu","language_family_english":"Boomu","language_family_iso":"bmq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-31 20:59:54","created_on":"2014-05-09 20:45:11","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"BMQBSMN2DA\/BMQBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BMQBSMN2ET","fcbh_id":"BMQBSMN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BMQ","language_name":"Boomu","language_english":"Boomu","language_iso":"bmq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bomu","language_family_code":"BMQ","language_family_name":"Boomu","language_family_english":"Boomu","language_family_iso":"bmq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:52:47","created_on":"2014-02-13 17:11:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BMQBSMN2ET\/BMQBSMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BMRWBTN2ET","fcbh_id":"BMRWBTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BMR","language_name":"Muinane","language_english":"Muinane","language_iso":"bmr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Muinane","language_family_code":"BMR","language_family_name":"Muinane","language_family_english":"Muinane","language_family_iso":"bmr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-09 20:28:26","created_on":"2012-11-01 18:26:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BMRWBTN2ET\/BMRWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BMUPNGN2ET","fcbh_id":"BMUPNGN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BMU","language_name":"Burum-Mindik","language_english":"Burum-Mindik","language_iso":"bmu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Burum-Mindik","language_family_code":"BMU","language_family_name":"Burum-Mindik","language_family_english":"Burum-Mindik","language_family_iso":"bmu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-11 22:49:31","created_on":"2014-04-28 19:37:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BMUPNGN2ET\/BMUPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BMVCABN1DA","fcbh_id":"BMVCABN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BMV","language_name":"Bum","language_english":"Bum","language_iso":"bmv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bum","language_family_code":"BMV","language_family_name":"Bum","language_family_english":"Bum","language_family_iso":"bmv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAB","version_name":"CABTAL","version_english":"CABTAL","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-07-07 23:06:12","created_on":"2016-06-27 18:09:28","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BMVCABN1DA\/BMVCABN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BMVCABN1ET","fcbh_id":"BMVCABN1ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BMV","language_name":"Bum","language_english":"Bum","language_iso":"bmv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bum","language_family_code":"BMV","language_family_name":"Bum","language_family_english":"Bum","language_family_iso":"bmv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAB","version_name":"CABTAL","version_english":"CABTAL","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-07-07 23:05:45","created_on":"2016-06-27 18:30:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BMVCABN1ET\/BMVCABN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BMVCABN2DA","fcbh_id":"BMVCABN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BMV","language_name":"Bum","language_english":"Bum","language_iso":"bmv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bum","language_family_code":"BMV","language_family_name":"Bum","language_family_english":"Bum","language_family_iso":"bmv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAB","version_name":"CABTAL","version_english":"CABTAL","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-07-07 23:04:43","created_on":"2016-06-27 18:21:34","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BMVCABN2DA\/BMVCABN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BMVCABN2ET","fcbh_id":"BMVCABN2ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BMV","language_name":"Bum","language_english":"Bum","language_iso":"bmv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bum","language_family_code":"BMV","language_family_name":"Bum","language_family_english":"Bum","language_family_iso":"bmv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAB","version_name":"CABTAL","version_english":"CABTAL","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-30 16:20:01","created_on":"2015-09-10 23:56:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BMVCABN2ET\/BMVCABN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BNGBBSN2DA","fcbh_id":"BNGBBSN2DA","volume_name":"Mussolmani Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BNG","language_name":"Bengali","language_english":"Bengali","language_iso":"ben","language_iso_2B":"ben","language_iso_2T":"ben","language_iso_1":"bn","language_iso_name":"Bengali","language_family_code":"BNG","language_family_name":"Bengali","language_family_english":"Bengali","language_family_iso":"ben","language_family_iso_2B":"ben","language_family_iso_2T":"ben","language_family_iso_1":"bn","version_code":"BBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:23:55","created_on":"2010-09-14 16:59:59","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BNGBBS","audio_zip_path":"BNGBBSN2DA\/BNGBBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BNGBBSN2ET","fcbh_id":"BNGBBSN2ET","volume_name":"Mussolmani Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BNG","language_name":"Bengali","language_english":"Bengali","language_iso":"ben","language_iso_2B":"ben","language_iso_2T":"ben","language_iso_1":"bn","language_iso_name":"Bengali","language_family_code":"BNG","language_family_name":"Bengali","language_family_english":"Bengali","language_family_iso":"ben","language_family_iso_2B":"ben","language_family_iso_2T":"ben","language_family_iso_1":"bn","version_code":"BBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:59","created_on":"2011-12-12 23:39:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BNGBBSN2ET\/BNGBBSN2ET.zip","font":{"id":"64","name":"Lohit-Bengali","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Bengali","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BNGBBSO2ET","fcbh_id":"BNGBBSO2ET","volume_name":"Mussolmani Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BNG","language_name":"Bengali","language_english":"Bengali","language_iso":"ben","language_iso_2B":"ben","language_iso_2T":"ben","language_iso_1":"bn","language_iso_name":"Bengali","language_family_code":"BNG","language_family_name":"Bengali","language_family_english":"Bengali","language_family_iso":"ben","language_family_iso_2B":"ben","language_family_iso_2T":"ben","language_family_iso_1":"bn","version_code":"BBS","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:54:59","created_on":"2011-12-12 23:41:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BNGBBSO2ET\/BNGBBSO2ET.zip","font":{"id":"64","name":"Lohit-Bengali","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Bengali","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BNGCLVN2DA","fcbh_id":"BNGCLVN2DA","volume_name":"Common Language Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BNG","language_name":"Bengali","language_english":"Bengali","language_iso":"ben","language_iso_2B":"ben","language_iso_2T":"ben","language_iso_1":"bn","language_iso_name":"Bengali","language_family_code":"BNG","language_family_name":"Bengali","language_family_english":"Bengali","language_family_iso":"ben","language_family_iso_2B":"ben","language_family_iso_2T":"ben","language_family_iso_1":"bn","version_code":"CLV","version_name":"Common Language Version","version_english":"Common Language Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-06 16:11:21","created_on":"2010-09-14 17:00:00","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BNGCLV","audio_zip_path":"BNGCLVN2DA\/BNGCLVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url"],"resolution":[]},{"dam_id":"BNGCLVN2ET","fcbh_id":"BNGCLVN2ET","volume_name":"Common Language Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BNG","language_name":"Bengali","language_english":"Bengali","language_iso":"ben","language_iso_2B":"ben","language_iso_2T":"ben","language_iso_1":"bn","language_iso_name":"Bengali","language_family_code":"BNG","language_family_name":"Bengali","language_family_english":"Bengali","language_family_iso":"ben","language_family_iso_2B":"ben","language_family_iso_2T":"ben","language_family_iso_1":"bn","version_code":"CLV","version_name":"Common Language Version","version_english":"Common Language Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 23:10:31","created_on":"2011-12-12 23:29:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BNGCLVN2ET\/BNGCLVN2ET.zip","font":{"id":"64","name":"Lohit-Bengali","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Bengali","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BNGCLVO2ET","fcbh_id":"BNGCLVO2ET","volume_name":"Common Language Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BNG","language_name":"Bengali","language_english":"Bengali","language_iso":"ben","language_iso_2B":"ben","language_iso_2T":"ben","language_iso_1":"bn","language_iso_name":"Bengali","language_family_code":"BNG","language_family_name":"Bengali","language_family_english":"Bengali","language_family_iso":"ben","language_family_iso_2B":"ben","language_family_iso_2T":"ben","language_family_iso_1":"bn","version_code":"CLV","version_name":"Common Language Version","version_english":"Common Language Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:16","created_on":"2011-12-12 23:33:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BNGCLVO2ET\/BNGCLVO2ET.zip","font":{"id":"64","name":"Lohit-Bengali","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Bengali","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BNGRBVN2DA","fcbh_id":"BNGRBVN2DA","volume_name":"Re-edit Bangla Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BNG","language_name":"Bengali","language_english":"Bengali","language_iso":"ben","language_iso_2B":"ben","language_iso_2T":"ben","language_iso_1":"bn","language_iso_name":"Bengali","language_family_code":"BNG","language_family_name":"Bengali","language_family_english":"Bengali","language_family_iso":"ben","language_family_iso_2B":"ben","language_family_iso_2T":"ben","language_family_iso_1":"bn","version_code":"RBV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:24:47","created_on":"2010-09-14 17:00:00","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BNGRBV","audio_zip_path":"BNGRBVN2DA\/BNGRBVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BNGRBVN2ET","fcbh_id":"BNGRBVN2ET","volume_name":"Re-edit Bangla Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BNG","language_name":"Bengali","language_english":"Bengali","language_iso":"ben","language_iso_2B":"ben","language_iso_2T":"ben","language_iso_1":"bn","language_iso_name":"Bengali","language_family_code":"BNG","language_family_name":"Bengali","language_family_english":"Bengali","language_family_iso":"ben","language_family_iso_2B":"ben","language_family_iso_2T":"ben","language_family_iso_1":"bn","version_code":"RBV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 23:10:31","created_on":"2013-07-19 17:30:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BNGRBVN2ET\/BNGRBVN2ET.zip","font":{"id":"64","name":"Lohit-Bengali","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Bengali","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BNGRBVO2ET","fcbh_id":"BNGRBVO2ET","volume_name":"Re-edit Bangla Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BNG","language_name":"Bengali","language_english":"Bengali","language_iso":"ben","language_iso_2B":"ben","language_iso_2T":"ben","language_iso_1":"bn","language_iso_name":"Bengali","language_family_code":"BNG","language_family_name":"Bengali","language_family_english":"Bengali","language_family_iso":"ben","language_family_iso_2B":"ben","language_family_iso_2T":"ben","language_family_iso_1":"bn","version_code":"RBV","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-12-20 23:10:31","created_on":"2013-07-19 17:31:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BNGRBVO2ET\/BNGRBVO2ET.zip","font":{"id":"64","name":"Lohit-Bengali","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Bengali","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BNGWTCN1DA","fcbh_id":"BNGWTCN1DA","volume_name":"Easy-to-Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BNG","language_name":"Bengali","language_english":"Bengali","language_iso":"ben","language_iso_2B":"ben","language_iso_2T":"ben","language_iso_1":"bn","language_iso_name":"Bengali","language_family_code":"BNG","language_family_name":"Bengali","language_family_english":"Bengali","language_family_iso":"ben","language_family_iso_2B":"ben","language_family_iso_2T":"ben","language_family_iso_1":"bn","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-30 18:40:19","created_on":"2016-08-30 17:14:04","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BNGWTCN1DA\/BNGWTCN1DA.zip","font":{"id":"64","name":"Lohit-Bengali","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Bengali","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BNGWTCN1ET","fcbh_id":"BNGWTCN1ET","volume_name":"Easy-to-Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BNG","language_name":"Bengali","language_english":"Bengali","language_iso":"ben","language_iso_2B":"ben","language_iso_2T":"ben","language_iso_1":"bn","language_iso_name":"Bengali","language_family_code":"BNG","language_family_name":"Bengali","language_family_english":"Bengali","language_family_iso":"ben","language_family_iso_2B":"ben","language_family_iso_2T":"ben","language_family_iso_1":"bn","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-16 23:29:26","created_on":"2016-08-30 17:26:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BNGWTCN1ET\/BNGWTCN1ET.zip","font":{"id":"64","name":"Lohit-Bengali","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Bengali","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BNGWTCN2DA","fcbh_id":"BNGWTCN2DA","volume_name":"Easy-to-Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BNG","language_name":"Bengali","language_english":"Bengali","language_iso":"ben","language_iso_2B":"ben","language_iso_2T":"ben","language_iso_1":"bn","language_iso_name":"Bengali","language_family_code":"BNG","language_family_name":"Bengali","language_family_english":"Bengali","language_family_iso":"ben","language_family_iso_2B":"ben","language_family_iso_2T":"ben","language_family_iso_1":"bn","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-30 18:43:07","created_on":"2016-08-30 17:15:21","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BNGWTCN2DA\/BNGWTCN2DA.zip","font":{"id":"64","name":"Lohit-Bengali","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Bengali","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BNGWTCN2ET","fcbh_id":"BNGWTCN2ET","volume_name":"Easy-to-Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BNG","language_name":"Bengali","language_english":"Bengali","language_iso":"ben","language_iso_2B":"ben","language_iso_2T":"ben","language_iso_1":"bn","language_iso_name":"Bengali","language_family_code":"BNG","language_family_name":"Bengali","language_family_english":"Bengali","language_family_iso":"ben","language_family_iso_2B":"ben","language_family_iso_2T":"ben","language_family_iso_1":"bn","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-16 23:29:57","created_on":"2011-08-30 18:56:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BNGWTCN2ET\/BNGWTCN2ET.zip","font":{"id":"64","name":"Lohit-Bengali","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Bengali","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BNJOMFN2ET","fcbh_id":"BNJOMFN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BNJ","language_name":"Tawbuid, Eastern","language_english":"Tawbuid, Eastern","language_iso":"bnj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Tawbuid","language_family_code":"BNJ","language_family_name":"Tawbuid, Eastern","language_family_english":"Tawbuid, Eastern","language_family_iso":"bnj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"OMF","version_name":"Overseas Missionary Fellowship","version_english":"Overseas Missionary Fellowship","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 23:10:31","created_on":"2013-07-19 17:42:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BNJOMFN2ET\/BNJOMFN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BOATBLN2DA","fcbh_id":"BOATBLN2DA","volume_name":"1982 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BOA","language_name":"Bora","language_english":"Bora","language_iso":"boa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bora","language_family_code":"BOA","language_family_name":"Bora","language_family_english":"Bora","language_family_iso":"boa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 18:19:52","created_on":"2010-11-25 20:50:19","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2BOATBL","audio_zip_path":"BOATBLN2DA\/BOATBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BOATBLN2ET","fcbh_id":"BOATBLN2ET","volume_name":"1982 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BOA","language_name":"Bora","language_english":"Bora","language_iso":"boa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bora","language_family_code":"BOA","language_family_name":"Bora","language_family_english":"Bora","language_family_iso":"boa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 23:10:32","created_on":"2010-11-25 20:50:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2BOATBL","audio_zip_path":"BOATBLN2ET\/BOATBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BOJWBTN1DA","fcbh_id":"BOJWBTN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BOJ","language_name":"Anjam","language_english":"Anjam","language_iso":"boj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Anjam","language_family_code":"BOJ","language_family_name":"Anjam","language_family_english":"Anjam","language_family_iso":"boj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-18 19:04:48","created_on":"2015-07-01 18:48:37","right_to_left":"false","num_art":"5","num_sample_audio":"1","sku":"","audio_zip_path":"BOJWBTN1DA\/BOJWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BOJWBTN1ET","fcbh_id":"BOJWBTN1ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BOJ","language_name":"Anjam","language_english":"Anjam","language_iso":"boj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Anjam","language_family_code":"BOJ","language_family_name":"Anjam","language_family_english":"Anjam","language_family_iso":"boj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-11 16:30:46","created_on":"2015-07-13 19:44:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BOJWBTN1ET\/BOJWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BOJWBTN2DA","fcbh_id":"BOJWBTN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BOJ","language_name":"Anjam","language_english":"Anjam","language_iso":"boj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Anjam","language_family_code":"BOJ","language_family_name":"Anjam","language_family_english":"Anjam","language_family_iso":"boj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-18 19:07:14","created_on":"2015-07-01 19:17:12","right_to_left":"false","num_art":"5","num_sample_audio":"1","sku":"","audio_zip_path":"BOJWBTN2DA\/BOJWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BOJWBTN2ET","fcbh_id":"BOJWBTN2ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BOJ","language_name":"Anjam","language_english":"Anjam","language_iso":"boj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Anjam","language_family_code":"BOJ","language_family_name":"Anjam","language_family_english":"Anjam","language_family_iso":"boj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-11 16:30:10","created_on":"2013-09-04 15:27:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BOJWBTN2ET\/BOJWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BONPNGN2ET","fcbh_id":"BONPNGN2ET","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BON","language_name":"Bine","language_english":"Bine","language_iso":"bon","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bine","language_family_code":"BON","language_family_name":"Bine","language_family_english":"Bine","language_family_iso":"bon","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:57:00","created_on":"2014-05-13 19:18:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BONPNGN2ET\/BONPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BOVWBTN1DA","fcbh_id":"BOVWBTN1DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BOV","language_name":"Tuwuli","language_english":"Tuwuli","language_iso":"bov","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tuwuli","language_family_code":"BOV","language_family_name":"Tuwuli","language_family_english":"Tuwuli","language_family_iso":"bov","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-09-11 20:07:31","created_on":"2015-08-28 16:12:01","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"BOVWBTN1DA\/BOVWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BOVWBTN1ET","fcbh_id":"BOVWBTN1ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BOV","language_name":"Tuwuli","language_english":"Tuwuli","language_iso":"bov","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tuwuli","language_family_code":"BOV","language_family_name":"Tuwuli","language_family_english":"Tuwuli","language_family_iso":"bov","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 23:10:32","created_on":"2015-08-28 16:18:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BOVWBTN1ET\/BOVWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BOVWBTN2DA","fcbh_id":"BOVWBTN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BOV","language_name":"Tuwuli","language_english":"Tuwuli","language_iso":"bov","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tuwuli","language_family_code":"BOV","language_family_name":"Tuwuli","language_family_english":"Tuwuli","language_family_iso":"bov","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-08-28 16:17:18","created_on":"2015-08-26 22:10:28","right_to_left":"false","num_art":"0","num_sample_audio":"1","sku":"","audio_zip_path":"BOVWBTN2DA\/BOVWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BOVWBTN2ET","fcbh_id":"BOVWBTN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BOV","language_name":"Tuwuli","language_english":"Tuwuli","language_iso":"bov","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tuwuli","language_family_code":"BOV","language_family_name":"Tuwuli","language_family_english":"Tuwuli","language_family_iso":"bov","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 23:10:32","created_on":"2014-03-11 20:03:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BOVWBTN2ET\/BOVWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BOXWYIN1DA","fcbh_id":"BOXWYIN1DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BOX","language_name":"Buamu","language_english":"Buamu","language_iso":"box","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Buamu","language_family_code":"BOX","language_family_name":"Buamu","language_family_english":"Buamu","language_family_iso":"box","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-20 22:45:37","created_on":"2017-11-20 22:36:53","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BOXWYIN1DA\/BOXWYIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BOXWYIN1ET","fcbh_id":"BOXWYIN1ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BOX","language_name":"Buamu","language_english":"Buamu","language_iso":"box","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Buamu","language_family_code":"BOX","language_family_name":"Buamu","language_family_english":"Buamu","language_family_iso":"box","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-20 22:44:47","created_on":"2017-11-20 22:35:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BOXWYIN1ET\/BOXWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BOXWYIN2DA","fcbh_id":"BOXWYIN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BOX","language_name":"Buamu","language_english":"Buamu","language_iso":"box","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Buamu","language_family_code":"BOX","language_family_name":"Buamu","language_family_english":"Buamu","language_family_iso":"box","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-03-26 15:07:36","created_on":"2014-03-25 19:56:23","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"BOXWYIN2DA\/BOXWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BOXWYIN2ET","fcbh_id":"BOXWYIN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BOX","language_name":"Buamu","language_english":"Buamu","language_iso":"box","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Buamu","language_family_code":"BOX","language_family_name":"Buamu","language_family_english":"Buamu","language_family_iso":"box","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 23:10:32","created_on":"2013-08-19 16:33:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BOXWYIN2ET\/BOXWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BPRWYIN2DA","fcbh_id":"BPRWYIN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BPR","language_name":"Koronadal Blaan","language_english":"Koronadal Blaan","language_iso":"bpr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Koronadal Blaan","language_family_code":"BPR","language_family_name":"Koronadal Blaan","language_family_english":"Koronadal Blaan","language_family_iso":"bpr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 20:52:14","created_on":"2010-11-25 20:50:18","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2BPRWYI","audio_zip_path":"BPRWYIN2DA\/BPRWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BPRWYIN2ET","fcbh_id":"BPRWYIN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BPR","language_name":"Koronadal Blaan","language_english":"Koronadal Blaan","language_iso":"bpr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Koronadal Blaan","language_family_code":"BPR","language_family_name":"Koronadal Blaan","language_family_english":"Koronadal Blaan","language_family_iso":"bpr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:02","created_on":"2010-11-25 20:50:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2BPRWYI","audio_zip_path":"BPRWYIN2ET\/BPRWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BPSWPSN2DA","fcbh_id":"BPSWPSN2DA","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BPS","language_name":"Sarangani Blaan","language_english":"Sarangani Blaan","language_iso":"bps","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sarangani Blaan","language_family_code":"BPS","language_family_name":"Sarangani Blaan","language_family_english":"Sarangani Blaan","language_family_iso":"bps","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WPS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:55:44","created_on":"2012-05-15 20:58:09","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"BPSWPSN2DA\/BPSWPSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BPSWPSN2ET","fcbh_id":"BPSWPSN2ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BPS","language_name":"Sarangani Blaan","language_english":"Sarangani Blaan","language_iso":"bps","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sarangani Blaan","language_family_code":"BPS","language_family_name":"Sarangani Blaan","language_family_english":"Sarangani Blaan","language_family_iso":"bps","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WPS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 21:14:41","created_on":"2011-05-30 20:48:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BPSWPSN2ET\/BPSWPSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BQCSIMN2DA","fcbh_id":"BQCSIMN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BQC","language_name":"Boo","language_english":"Boko","language_iso":"bqc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Boko (Benin)","language_family_code":"BQC","language_family_name":"Boo","language_family_english":"Boko","language_family_iso":"bqc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-19 14:43:45","created_on":"2014-08-12 18:40:07","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"BQCSIMN2DA\/BQCSIMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BQCSIMN2ET","fcbh_id":"BQCSIMN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BQC","language_name":"Boo","language_english":"Boko","language_iso":"bqc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Boko (Benin)","language_family_code":"BQC","language_family_name":"Boo","language_family_english":"Boko","language_family_iso":"bqc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:02","created_on":"2012-05-08 21:47:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BQCSIMN2ET\/BQCSIMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BQCSIMO2ET","fcbh_id":"BQCSIMO2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BQC","language_name":"Boo","language_english":"Boko","language_iso":"bqc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Boko (Benin)","language_family_code":"BQC","language_family_name":"Boo","language_family_english":"Boko","language_family_iso":"bqc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:02","created_on":"2012-05-08 21:53:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BQCSIMO2ET\/BQCSIMO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BQIBMVP1DA","fcbh_id":"BQIBMVP1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BQI","language_name":"Bakhtiari","language_english":"Bakhtiari","language_iso":"bqi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bakhtiari","language_family_code":"BQI","language_family_name":"Bakhtiari","language_family_english":"Bakhtiari","language_family_iso":"bqi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BMV","version_name":"BMV","version_english":"BMV","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-09-21 21:50:33","created_on":"2018-09-21 18:34:37","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BQIBMVP1DA\/BQIBMVP1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","streaming_url","digital_download"],"resolution":[]},{"dam_id":"BRUNXBN2DA","fcbh_id":"BRUNXBN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BRU","language_name":"Bru Eastern","language_english":"Bru Eastern","language_iso":"bru","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Bru","language_family_code":"BRU","language_family_name":"Bru Eastern","language_family_english":"Bru Eastern","language_family_iso":"bru","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NXB","version_name":"NHA XUAT BAN TON GIAO","version_english":"NHA XUAT BAN TON GIAO","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:55:44","created_on":"2011-08-01 16:36:45","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"BRUNXBN2DA\/BRUNXBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BRUNXBN2ET","fcbh_id":"BRUNXBN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BRU","language_name":"Bru Eastern","language_english":"Bru Eastern","language_iso":"bru","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Bru","language_family_code":"BRU","language_family_name":"Bru Eastern","language_family_english":"Bru Eastern","language_family_iso":"bru","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NXB","version_name":"NHA XUAT BAN TON GIAO","version_english":"NHA XUAT BAN TON GIAO","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-04-19 19:47:27","created_on":"2011-10-06 19:24:44","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BRUNXBN2ET\/BRUNXBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BSNTBLN2ET","fcbh_id":"BSNTBLN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BSN","language_name":"Eduria-Barasana","language_english":"Eduria-Barasana","language_iso":"bsn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Barasana-Eduria","language_family_code":"BSN","language_family_name":"Eduria-Barasana","language_family_english":"Eduria-Barasana","language_family_iso":"bsn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:01","created_on":"2011-08-30 20:56:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BSNTBLN2ET\/BSNTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BSQLBSN2DA","fcbh_id":"BSQLBSN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BSQ","language_name":"Bassa for Liberia","language_english":"Bassa for Liberia","language_iso":"bsq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bassa","language_family_code":"BSQ","language_family_name":"Bassa for Liberia","language_family_english":"Bassa for Liberia","language_family_iso":"bsq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:49","created_on":"2010-09-14 17:00:00","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BSQLBS","audio_zip_path":"BSQLBSN2DA\/BSQLBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BSSWBTN2DA","fcbh_id":"BSSWBTN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BSS","language_name":"Akoose","language_english":"Akoose","language_iso":"bss","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Akoose","language_family_code":"BSS","language_family_name":"Akoose","language_family_english":"Akoose","language_family_iso":"bss","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-20 23:47:51","created_on":"2012-11-05 21:02:22","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"BSSWBTN2DA\/BSSWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BSSWBTN2ET","fcbh_id":"BSSWBTN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BSS","language_name":"Akoose","language_english":"Akoose","language_iso":"bss","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Akoose","language_family_code":"BSS","language_family_name":"Akoose","language_family_english":"Akoose","language_family_iso":"bss","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:01","created_on":"2011-07-12 23:06:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BSSWBTN2ET\/BSSWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BSTBSEN1DA","fcbh_id":"BSTBSEN1DA","volume_name":"2014 Wycliffe Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BST","language_name":"Basketo","language_english":"Basketo","language_iso":"bst","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Basketo","language_family_code":"BST","language_family_name":"Basketo","language_family_english":"Basketo","language_family_iso":"bst","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:20:52","created_on":"2016-07-26 19:46:25","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"BSTBSEN1DA\/BSTBSEN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BSTBSEN2DA","fcbh_id":"BSTBSEN2DA","volume_name":"2014 Wycliffe Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BST","language_name":"Basketo","language_english":"Basketo","language_iso":"bst","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Basketo","language_family_code":"BST","language_family_name":"Basketo","language_family_english":"Basketo","language_family_iso":"bst","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:20:52","created_on":"2016-07-26 19:56:59","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"BSTBSEN2DA\/BSTBSEN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BTDLAIN1DA","fcbh_id":"BTDLAIN1DA","volume_name":"Today's Batak Dairi Version, 1998","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BTD","language_name":"Bahasa Pakpak Dairi","language_english":"Bahasa Pakpak Dairi","language_iso":"btd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Batak Dairi","language_family_code":"BTD","language_family_name":"Bahasa Pakpak Dairi","language_family_english":"Bahasa Pakpak Dairi","language_family_iso":"btd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-07 18:07:49","created_on":"2017-11-07 17:45:51","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BTDLAIN1DA\/BTDLAIN1DA.zip","font":{"id":"45","name":"Doulos SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BTDLAIN1ET","fcbh_id":"BTDLAIN1ET","volume_name":"Today's Batak Dairi Version, 1998","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BTD","language_name":"Bahasa Pakpak Dairi","language_english":"Bahasa Pakpak Dairi","language_iso":"btd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Batak Dairi","language_family_code":"BTD","language_family_name":"Bahasa Pakpak Dairi","language_family_english":"Bahasa Pakpak Dairi","language_family_iso":"btd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-07 17:16:52","created_on":"2017-11-07 16:39:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BTDLAIN1ET\/BTDLAIN1ET.zip","font":{"id":"45","name":"Doulos SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BTDLAIN2DA","fcbh_id":"BTDLAIN2DA","volume_name":"Today's Batak Dairi Version, 1998","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BTD","language_name":"Bahasa Pakpak Dairi","language_english":"Bahasa Pakpak Dairi","language_iso":"btd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Batak Dairi","language_family_code":"BTD","language_family_name":"Bahasa Pakpak Dairi","language_family_english":"Bahasa Pakpak Dairi","language_family_iso":"btd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-07 17:20:10","created_on":"2017-11-07 16:44:44","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BTDLAIN2DA\/BTDLAIN2DA.zip","font":{"id":"45","name":"Doulos SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BTDLAIN2ET","fcbh_id":"BTDLAIN2ET","volume_name":"Today's Batak Dairi Version, 1998","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BTD","language_name":"Bahasa Pakpak Dairi","language_english":"Bahasa Pakpak Dairi","language_iso":"btd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Batak Dairi","language_family_code":"BTD","language_family_name":"Bahasa Pakpak Dairi","language_family_english":"Bahasa Pakpak Dairi","language_family_iso":"btd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-07 16:35:00","created_on":"2011-05-29 23:48:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BTDLAIN2ET\/BTDLAIN2ET.zip","font":{"id":"45","name":"Doulos SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BTSLAIN2DA","fcbh_id":"BTSLAIN2DA","volume_name":"2007 Formal Batak Simalungun Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BTS","language_name":"Batak Simalungun","language_english":"Batak Simalungun","language_iso":"bts","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Batak Simalungun","language_family_code":"BTS","language_family_name":"Batak Simalungun","language_family_english":"Batak Simalungun","language_family_iso":"bts","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-02-27 21:06:48","created_on":"2014-02-27 20:08:09","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"BTSLAIN2DA\/BTSLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BTSLAIN2ET","fcbh_id":"BTSLAIN2ET","volume_name":"Formal Batak Simalungun Version, 1976","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BTS","language_name":"Batak Simalungun","language_english":"Batak Simalungun","language_iso":"bts","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Batak Simalungun","language_family_code":"BTS","language_family_name":"Batak Simalungun","language_family_english":"Batak Simalungun","language_family_iso":"bts","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-18 21:15:09","created_on":"2011-08-24 21:57:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BTSLAIN2ET\/BTSLAIN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BTTPDTN1DA","fcbh_id":"BTTPDTN1DA","volume_name":"1982 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BTT","language_name":"Bete-Bendi","language_english":"Bete-Bendi","language_iso":"btt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bete-Bendi","language_family_code":"BTT","language_family_name":"Bete-Bendi","language_family_english":"Bete-Bendi","language_family_iso":"btt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PDT","version_name":"PDT","version_english":"PDT","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-09 19:20:47","created_on":"2016-04-11 17:19:42","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BTTPDTN1DA\/BTTPDTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BTTPDTN1ET","fcbh_id":"BTTPDTN1ET","volume_name":"1982 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BTT","language_name":"Bete-Bendi","language_english":"Bete-Bendi","language_iso":"btt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bete-Bendi","language_family_code":"BTT","language_family_name":"Bete-Bendi","language_family_english":"Bete-Bendi","language_family_iso":"btt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PDT","version_name":"PDT","version_english":"PDT","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-04-11 17:42:04","created_on":"2016-04-11 17:14:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BTTPDTN1ET\/BTTPDTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BTTPDTN2DA","fcbh_id":"BTTPDTN2DA","volume_name":"1982 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BTT","language_name":"Bete-Bendi","language_english":"Bete-Bendi","language_iso":"btt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bete-Bendi","language_family_code":"BTT","language_family_name":"Bete-Bendi","language_family_english":"Bete-Bendi","language_family_iso":"btt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PDT","version_name":"PDT","version_english":"PDT","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-09 19:21:47","created_on":"2016-04-11 17:03:34","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BTTPDTN2DA\/BTTPDTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BTTPDTN2ET","fcbh_id":"BTTPDTN2ET","volume_name":"1982 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BTT","language_name":"Bete-Bendi","language_english":"Bete-Bendi","language_iso":"btt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bete-Bendi","language_family_code":"BTT","language_family_name":"Bete-Bendi","language_family_english":"Bete-Bendi","language_family_iso":"btt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PDT","version_name":"PDT","version_english":"PDT","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-18 21:58:23","created_on":"2016-04-11 17:17:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BTTPDTN2ET\/BTTPDTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BTXLAIN1DA","fcbh_id":"BTXLAIN1DA","volume_name":"Today's Karo Version, 1987","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BTX","language_name":"Batak Karo","language_english":"Batak Karo","language_iso":"btx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Batak Karo","language_family_code":"BTX","language_family_name":"Batak Karo","language_family_english":"Batak Karo","language_family_iso":"btx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-23 19:30:41","created_on":"2015-05-27 17:44:19","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"BTXLAIN1DA\/BTXLAIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BTXLAIN1ET","fcbh_id":"BTXLAIN1ET","volume_name":"Today's Batak Karo Version, 1987","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BTX","language_name":"Batak Karo","language_english":"Batak Karo","language_iso":"btx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Batak Karo","language_family_code":"BTX","language_family_name":"Batak Karo","language_family_english":"Batak Karo","language_family_iso":"btx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:01","created_on":"2015-06-04 15:31:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BTXLAIN1ET\/BTXLAIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BTXLAIN2DA","fcbh_id":"BTXLAIN2DA","volume_name":"Today's Karo Version, 1987","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BTX","language_name":"Batak Karo","language_english":"Batak Karo","language_iso":"btx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Batak Karo","language_family_code":"BTX","language_family_name":"Batak Karo","language_family_english":"Batak Karo","language_family_iso":"btx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-06-02 20:34:28","created_on":"2015-05-27 19:05:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BTXLAIN2DA\/BTXLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BTXLAIN2ET","fcbh_id":"BTXLAIN2ET","volume_name":"Today's Batak Karo Version, 1987","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BTX","language_name":"Batak Karo","language_english":"Batak Karo","language_iso":"btx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Batak Karo","language_family_code":"BTX","language_family_name":"Batak Karo","language_family_english":"Batak Karo","language_family_iso":"btx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:04","created_on":"2011-05-29 23:53:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BTXLAIN2ET\/BTXLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BUDIBSN2DA","fcbh_id":"BUDIBSN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BUD","language_name":"Bassar Ntcham","language_english":"Bassar Ntcham","language_iso":"bud","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ntcham","language_family_code":"BUD","language_family_name":"Bassar Ntcham","language_family_english":"Bassar Ntcham","language_family_iso":"bud","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:21:59","created_on":"2010-09-14 17:00:00","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BUDIBS","audio_zip_path":"BUDIBSN2DA\/BUDIBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BUDIBSN2ET","fcbh_id":"BUDIBSN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BUD","language_name":"Bassar Ntcham","language_english":"Bassar Ntcham","language_iso":"bud","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ntcham","language_family_code":"BUD","language_family_name":"Bassar Ntcham","language_family_english":"Bassar Ntcham","language_family_iso":"bud","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:04","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2BUDIBS","audio_zip_path":"BUDIBSN2ET\/BUDIBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BUKLBTN2ET","fcbh_id":"BUKLBTN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BUK","language_name":"Bukawa - Bugawa","language_english":"Bukawa - Bugawa","language_iso":"buk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bugawac","language_family_code":"BUK","language_family_name":"Bukawa - Bugawa","language_family_english":"Bukawa - Bugawa","language_family_iso":"buk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LBT","version_name":"Lutheran Bible Translators","version_english":"Lutheran Bible Translators","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:03","created_on":"2014-05-22 16:37:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BUKLBTN2ET\/BUKLBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BULB40N2ET","fcbh_id":"BULB40N2ET","volume_name":"1940 Bulgarian Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BUL","language_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_english":"Bulgarian","language_iso":"bul","language_iso_2B":"bul","language_iso_2T":"bul","language_iso_1":"bg","language_iso_name":"Bulgarian","language_family_code":"BUL","language_family_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_family_english":"Bulgarian","language_family_iso":"bul","language_family_iso_2B":"bul","language_family_iso_2T":"bul","language_family_iso_1":"bg","version_code":"B40","version_name":"Bulgarian Bible 1940","version_english":"Bulgarian Bible 1940","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-16 15:29:01","created_on":"2010-09-14 17:01:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2BULB40","audio_zip_path":"BULB40N2ET\/BULB40N2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BULB40O2ET","fcbh_id":"BULB40O2ET","volume_name":"1940 Bulgarian Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BUL","language_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_english":"Bulgarian","language_iso":"bul","language_iso_2B":"bul","language_iso_2T":"bul","language_iso_1":"bg","language_iso_name":"Bulgarian","language_family_code":"BUL","language_family_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_family_english":"Bulgarian","language_family_iso":"bul","language_family_iso_2B":"bul","language_family_iso_2T":"bul","language_family_iso_1":"bg","version_code":"B40","version_name":"Bulgarian Bible 1940","version_english":"Bulgarian Bible 1940","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2015-10-16 15:29:01","created_on":"2010-09-14 17:01:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"O2BULB40","audio_zip_path":"BULB40O2ET\/BULB40O2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BULBBSN1DA","fcbh_id":"BULBBSN1DA","volume_name":"Protestant Revised Bible \/ \u0411\u0438\u0431\u043b\u0438\u044f, \u0440\u0435\u0432\u0438\u0437\u0438\u0440\u0430\u043d\u043e \u0438\u0437\u0434\u0430\u043d\u0438\u0435","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BUL","language_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_english":"Bulgarian","language_iso":"bul","language_iso_2B":"bul","language_iso_2T":"bul","language_iso_1":"bg","language_iso_name":"Bulgarian","language_family_code":"BUL","language_family_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_family_english":"Bulgarian","language_family_iso":"bul","language_family_iso_2B":"bul","language_family_iso_2T":"bul","language_family_iso_1":"bg","version_code":"BBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-13 18:04:54","created_on":"2018-03-05 20:17:56","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BULBBSN1DA\/BULBBSN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BULBBSN1ET","fcbh_id":"BULBBSN1ET","volume_name":"Protestant Revised Bible \/ \u0411\u0438\u0431\u043b\u0438\u044f, \u0440\u0435\u0432\u0438\u0437\u0438\u0440\u0430\u043d\u043e \u0438\u0437\u0434\u0430\u043d\u0438\u0435","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BUL","language_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_english":"Bulgarian","language_iso":"bul","language_iso_2B":"bul","language_iso_2T":"bul","language_iso_1":"bg","language_iso_name":"Bulgarian","language_family_code":"BUL","language_family_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_family_english":"Bulgarian","language_family_iso":"bul","language_family_iso_2B":"bul","language_family_iso_2T":"bul","language_family_iso_1":"bg","version_code":"BBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 19:53:04","created_on":"2018-03-05 20:18:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BULBBSN1ET\/BULBBSN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BULBBSN2DA","fcbh_id":"BULBBSN2DA","volume_name":"Protestant Revised Bible \/ \u0411\u0438\u0431\u043b\u0438\u044f, \u0440\u0435\u0432\u0438\u0437\u0438\u0440\u0430\u043d\u043e \u0438\u0437\u0434\u0430\u043d\u0438\u0435","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BUL","language_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_english":"Bulgarian","language_iso":"bul","language_iso_2B":"bul","language_iso_2T":"bul","language_iso_1":"bg","language_iso_name":"Bulgarian","language_family_code":"BUL","language_family_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_family_english":"Bulgarian","language_family_iso":"bul","language_family_iso_2B":"bul","language_family_iso_2T":"bul","language_family_iso_1":"bg","version_code":"BBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-13 18:12:27","created_on":"2018-03-05 19:22:29","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BULBBSN2DA\/BULBBSN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BULBBSN2ET","fcbh_id":"BULBBSN2ET","volume_name":"Protestant Revised Bible \/ \u0411\u0438\u0431\u043b\u0438\u044f, \u0440\u0435\u0432\u0438\u0437\u0438\u0440\u0430\u043d\u043e \u0438\u0437\u0434\u0430\u043d\u0438\u0435","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BUL","language_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_english":"Bulgarian","language_iso":"bul","language_iso_2B":"bul","language_iso_2T":"bul","language_iso_1":"bg","language_iso_name":"Bulgarian","language_family_code":"BUL","language_family_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_family_english":"Bulgarian","language_family_iso":"bul","language_family_iso_2B":"bul","language_family_iso_2T":"bul","language_family_iso_1":"bg","version_code":"BBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 19:53:03","created_on":"2015-09-04 16:32:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BULBBSN2ET\/BULBBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BULBBSO1ET","fcbh_id":"BULBBSO1ET","volume_name":"Protestant Revised Bible \/ \u0411\u0438\u0431\u043b\u0438\u044f, \u0440\u0435\u0432\u0438\u0437\u0438\u0440\u0430\u043d\u043e \u0438\u0437\u0434\u0430\u043d\u0438\u0435","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BUL","language_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_english":"Bulgarian","language_iso":"bul","language_iso_2B":"bul","language_iso_2T":"bul","language_iso_1":"bg","language_iso_name":"Bulgarian","language_family_code":"BUL","language_family_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_family_english":"Bulgarian","language_family_iso":"bul","language_family_iso_2B":"bul","language_family_iso_2T":"bul","language_family_iso_1":"bg","version_code":"BBS","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-05-16 19:53:03","created_on":"2018-03-05 20:24:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BULBBSO1ET\/BULBBSO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BULBBSO2ET","fcbh_id":"BULBBSO2ET","volume_name":"Protestant Revised Bible \/ \u0411\u0438\u0431\u043b\u0438\u044f, \u0440\u0435\u0432\u0438\u0437\u0438\u0440\u0430\u043d\u043e \u0438\u0437\u0434\u0430\u043d\u0438\u0435","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BUL","language_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_english":"Bulgarian","language_iso":"bul","language_iso_2B":"bul","language_iso_2T":"bul","language_iso_1":"bg","language_iso_name":"Bulgarian","language_family_code":"BUL","language_family_name":"\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438","language_family_english":"Bulgarian","language_family_iso":"bul","language_family_iso_2B":"bul","language_family_iso_2T":"bul","language_family_iso_1":"bg","version_code":"BBS","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-05-16 19:53:03","created_on":"2015-09-04 16:36:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BULBBSO2ET\/BULBBSO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BUMABCN1DA","fcbh_id":"BUMABCN1DA","volume_name":"1992 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BUM","language_name":"Bulu for Cameroon","language_english":"Bulu for Cameroon","language_iso":"bum","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bulu (Cameroon)","language_family_code":"BUM","language_family_name":"Bulu for Cameroon","language_family_english":"Bulu for Cameroon","language_family_iso":"bum","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:31","created_on":"2010-09-14 16:59:40","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1BUMABC","audio_zip_path":"BUMABCN1DA\/BUMABCN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BUSSIMN1ET","fcbh_id":"BUSSIMN1ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BUS","language_name":"Bokobaru","language_english":"Bokobaru","language_iso":"bus","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bokobaru","language_family_code":"BUS","language_family_name":"Bokobaru","language_family_english":"Bokobaru","language_family_iso":"bus","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-02 15:22:42","created_on":"2015-06-03 18:03:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BUSSIMN1ET\/BUSSIMN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BUSSIMN2DA","fcbh_id":"BUSSIMN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BUS","language_name":"Bokobaru","language_english":"Bokobaru","language_iso":"bus","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bokobaru","language_family_code":"BUS","language_family_name":"Bokobaru","language_family_english":"Bokobaru","language_family_iso":"bus","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-02 15:25:59","created_on":"2015-05-18 20:44:29","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"BUSSIMN2DA\/BUSSIMN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BUSSIMN2ET","fcbh_id":"BUSSIMN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BUS","language_name":"Bokobaru","language_english":"Bokobaru","language_iso":"bus","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bokobaru","language_family_code":"BUS","language_family_name":"Bokobaru","language_family_english":"Bokobaru","language_family_iso":"bus","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-02 15:25:30","created_on":"2013-11-12 22:13:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BUSSIMN2ET\/BUSSIMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BUSSIMP2ET","fcbh_id":"BUSSIMP2ET","volume_name":"2005 Edition (OT Portions)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BUS","language_name":"Bokobaru","language_english":"Bokobaru","language_iso":"bus","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bokobaru","language_family_code":"BUS","language_family_name":"Bokobaru","language_family_english":"Bokobaru","language_family_iso":"bus","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2016-06-02 15:23:07","created_on":"2013-11-12 22:15:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BUSSIMP2ET\/BUSSIMP2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile"],"resolution":[]},{"dam_id":"BVCWBTN1DA","fcbh_id":"BVCWBTN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BVC","language_name":"Baelelea","language_english":"Baelelea","language_iso":"bvc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Baelelea","language_family_code":"BVC","language_family_name":"Baelelea","language_family_english":"Baelelea","language_family_iso":"bvc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-11 16:47:22","created_on":"2018-01-08 19:16:14","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BVCWBTN1DA\/BVCWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BVCWBTN1ET","fcbh_id":"BVCWBTN1ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BVC","language_name":"Baelelea","language_english":"Baelelea","language_iso":"bvc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Baelelea","language_family_code":"BVC","language_family_name":"Baelelea","language_family_english":"Baelelea","language_family_iso":"bvc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-08 19:30:55","created_on":"2018-01-08 19:10:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BVCWBTN1ET\/BVCWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"BVZYSSN2ET","fcbh_id":"BVZYSSN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BVZ","language_name":"Bauzi","language_english":"Bauzi","language_iso":"bvz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bauzi","language_family_code":"BVZ","language_family_name":"Bauzi","language_family_english":"Bauzi","language_family_iso":"bvz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"YSS","version_name":"Yayasan Sumber Sejahtera","version_english":"Yayasan Sumber Sejahtera","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:03","created_on":"2011-08-30 21:06:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BVZYSSN2ET\/BVZYSSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BWQBFON1DA","fcbh_id":"BWQBFON1DA","volume_name":"1981 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BWQ","language_name":"Bobo Madare, Southern","language_english":"Bobo Madare, Southern","language_iso":"bwq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Bobo Madar\u00e9","language_family_code":"BWQ","language_family_name":"Bobo Madare, Southern","language_family_english":"Bobo Madare, Southern","language_family_iso":"bwq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BFO","version_name":"BFO","version_english":"BFO","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-27 20:16:09","created_on":"2018-07-27 19:51:45","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"BWQBFON1DA\/BWQBFON1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download","subsplash"],"resolution":[]},{"dam_id":"BWQBFON2DA","fcbh_id":"BWQBFON2DA","volume_name":"1981 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BWQ","language_name":"Bobo Madare, Southern","language_english":"Bobo Madare, Southern","language_iso":"bwq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Bobo Madar\u00e9","language_family_code":"BWQ","language_family_name":"Bobo Madare, Southern","language_family_english":"Bobo Madare, Southern","language_family_iso":"bwq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BFO","version_name":"BFO","version_english":"BFO","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-27 21:25:41","created_on":"2018-07-27 19:48:28","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"BWQBFON2DA\/BWQBFON2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download"],"resolution":[]},{"dam_id":"BWQBSBN2DA","fcbh_id":"BWQBSBN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BWQ","language_name":"Bobo Madare, Southern","language_english":"Bobo Madare, Southern","language_iso":"bwq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Bobo Madar\u00e9","language_family_code":"BWQ","language_family_name":"Bobo Madare, Southern","language_family_english":"Bobo Madare, Southern","language_family_iso":"bwq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 18:09:39","created_on":"2010-09-14 17:00:01","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BWQBSB","audio_zip_path":"BWQBSBN2DA\/BWQBSBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BWQBSBN2ET","fcbh_id":"BWQBSBN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BWQ","language_name":"Bobo Madare, Southern","language_english":"Bobo Madare, Southern","language_iso":"bwq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Bobo Madar\u00e9","language_family_code":"BWQ","language_family_name":"Bobo Madare, Southern","language_family_english":"Bobo Madare, Southern","language_family_iso":"bwq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-30 22:50:01","created_on":"2011-07-15 21:49:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BWQBSBN2ET\/BWQBSBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BWRBSNN2DA","fcbh_id":"BWRBSNN2DA","volume_name":"1986 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BWR","language_name":"Bura","language_english":"Bura","language_iso":"bwr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bura-Pabir","language_family_code":"BWR","language_family_name":"Bura","language_family_english":"Bura","language_family_iso":"bwr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:50","created_on":"2010-09-14 17:00:01","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BWRBSN","audio_zip_path":"BWRBSNN2DA\/BWRBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BWUTBLN2DA","fcbh_id":"BWUTBLN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BWU","language_name":"Buli","language_english":"Buli","language_iso":"bwu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Buli (Ghana)","language_family_code":"BWU","language_family_name":"Buli","language_family_english":"Buli","language_family_iso":"bwu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 18:35:57","created_on":"2010-09-14 17:00:01","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BWUTBL","audio_zip_path":"BWUTBLN2DA\/BWUTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"BWUTBLN2ET","fcbh_id":"BWUTBLN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BWU","language_name":"Buli","language_english":"Buli","language_iso":"bwu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Buli (Ghana)","language_family_code":"BWU","language_family_name":"Buli","language_family_english":"Buli","language_family_iso":"bwu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:03","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2BWUTBL","audio_zip_path":"BWUTBLN2ET\/BWUTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BXGDRCN2DA","fcbh_id":"BXGDRCN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BXG","language_name":"Bangala","language_english":"Bangala","language_iso":"bxg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bangala","language_family_code":"BXG","language_family_name":"Bangala","language_family_english":"Bangala","language_family_iso":"bxg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"DRC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:04","created_on":"2010-12-07 15:00:33","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2BXGDRC","audio_zip_path":"BXGDRCN2DA\/BXGDRCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BXRIBTN2ET","fcbh_id":"BXRIBTN2ET","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BXR","language_name":"Buryat","language_english":"Buryat","language_iso":"bxr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Russia Buriat","language_family_code":"BXR","language_family_name":"Buryat","language_family_english":"Buryat","language_family_iso":"bxr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:03","created_on":"2011-08-15 19:03:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BXRIBTN2ET\/BXRIBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BYVABCN2DA","fcbh_id":"BYVABCN2DA","volume_name":"1993 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BYV","language_name":"Medumba","language_english":"Medumba","language_iso":"byv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Medumba","language_family_code":"BYV","language_family_name":"Medumba","language_family_english":"Medumba","language_family_iso":"byv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:02","created_on":"2010-11-25 20:50:18","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2BYVABC","audio_zip_path":"BYVABCN2DA\/BYVABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BZABSLN2DA","fcbh_id":"BZABSLN2DA","volume_name":"1998 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BZA","language_name":"Bandi","language_english":"Bandi","language_iso":"bza","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bandi","language_family_code":"BZA","language_family_name":"Bandi","language_family_english":"Bandi","language_family_iso":"bza","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:59","created_on":"2010-09-14 17:01:14","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2BZABSL","audio_zip_path":"BZABSLN2DA\/BZABSLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BZDUBSN2DA","fcbh_id":"BZDUBSN2DA","volume_name":"Common Language (Popular) Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BZD","language_name":"Bribri","language_english":"Bribri","language_iso":"bzd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bribri","language_family_code":"BZD","language_family_name":"Bribri","language_family_english":"Bribri","language_family_iso":"bzd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:49","created_on":"2010-09-14 17:00:01","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2BZDUBS","audio_zip_path":"BZDUBSN2DA\/BZDUBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BZJBSWN2DA","fcbh_id":"BZJBSWN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BZJ","language_name":"Belize Kriol","language_english":"Belize Kriol","language_iso":"bzj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Belize Kriol English","language_family_code":"BZJ","language_family_name":"Belize Kriol","language_family_english":"Belize Kriol","language_family_iso":"bzj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSW","version_name":"Bible Society of the West Indies","version_english":"Bible Society of the West Indies","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:23:00","created_on":"2012-12-17 18:05:17","right_to_left":"false","num_art":"0","num_sample_audio":"1","sku":"","audio_zip_path":"BZJBSWN2DA\/BZJBSWN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"BZJBSWN2ET","fcbh_id":"BZJBSWN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"BZJ","language_name":"Belize Kriol","language_english":"Belize Kriol","language_iso":"bzj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Belize Kriol English","language_family_code":"BZJ","language_family_name":"Belize Kriol","language_family_english":"Belize Kriol","language_family_iso":"bzj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSW","version_name":"Bible Society of the West Indies","version_english":"Bible Society of the West Indies","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-09 20:48:52","created_on":"2013-02-08 16:20:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"BZJBSWN2ET\/BZJBSWN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"BZWBSNN2DA","fcbh_id":"BZWBSNN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"BZW","language_name":"Rubassa","language_english":"Rubassa","language_iso":"bzw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Basa (Nigeria)","language_family_code":"BZW","language_family_name":"Rubassa","language_family_english":"Rubassa","language_family_iso":"bzw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:57","created_on":"2010-09-14 17:01:15","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2BZWBSN","audio_zip_path":"BZWBSNN2DA\/BZWBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CA1WBTN2DA","fcbh_id":"CA1WBTN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CA1","language_name":"Cakchiquel, South Central","language_english":"Cakchiquel, South Central","language_iso":"cak","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaqchikel","language_family_code":"CA1","language_family_name":"Cakchiquel, South Central","language_family_english":"Cakchiquel, South Central","language_family_iso":"cak","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-08-04 21:33:39","created_on":"2014-07-14 16:40:24","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"CA1WBTN2DA\/CA1WBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CA1WBTN2ET","fcbh_id":"CA1WBTN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CA1","language_name":"Cakchiquel, South Central","language_english":"Cakchiquel, South Central","language_iso":"cak","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaqchikel","language_family_code":"CA1","language_family_name":"Cakchiquel, South Central","language_family_english":"Cakchiquel, South Central","language_family_iso":"cak","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:03","created_on":"2014-02-24 16:00:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CA1WBTN2ET\/CA1WBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CAAWBTN2DA","fcbh_id":"CAAWBTN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CAA","language_name":"Chorti","language_english":"Chorti","language_iso":"caa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chort\u00ed","language_family_code":"CAA","language_family_name":"Chorti","language_family_english":"Chorti","language_family_iso":"caa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-22 15:09:03","created_on":"2010-09-14 17:00:01","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CAAWBT","audio_zip_path":"CAAWBTN2DA\/CAAWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CAAWBTN2ET","fcbh_id":"CAAWBTN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CAA","language_name":"Chorti","language_english":"Chorti","language_iso":"caa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chort\u00ed","language_family_code":"CAA","language_family_name":"Chorti","language_family_english":"Chorti","language_family_iso":"caa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:03","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2CAAWBT","audio_zip_path":"CAAWBTN2ET\/CAAWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CABNVSN1DA","fcbh_id":"CABNVSN1DA","volume_name":"1983\/1985 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CAB","language_name":"Garifuna","language_english":"Garifuna","language_iso":"cab","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Garifuna","language_family_code":"CAB","language_family_name":"Garifuna","language_family_english":"Garifuna","language_family_iso":"cab","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-12 18:33:58","created_on":"2010-09-14 16:59:41","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1CABNVS","audio_zip_path":"CABNVSN1DA\/CABNVSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CABNVSN2DA","fcbh_id":"CABNVSN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CAB","language_name":"Garifuna","language_english":"Garifuna","language_iso":"cab","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Garifuna","language_family_code":"CAB","language_family_name":"Garifuna","language_family_english":"Garifuna","language_family_iso":"cab","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-19 18:06:02","created_on":"2010-09-14 17:00:02","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CABNVS","audio_zip_path":"CABNVSN2DA\/CABNVSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CABNVSN2ET","fcbh_id":"CABNVSN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CAB","language_name":"Garifuna","language_english":"Garifuna","language_iso":"cab","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Garifuna","language_family_code":"CAB","language_family_name":"Garifuna","language_family_english":"Garifuna","language_family_iso":"cab","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:03","created_on":"2013-06-27 20:05:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CABNVSN2ET\/CABNVSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CACSBGN2DA","fcbh_id":"CACSBGN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CAC","language_name":"Chuj, San Sebastian","language_english":"Chuj, San Sebastian","language_iso":"cac","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chuj","language_family_code":"CAC","language_family_name":"Chuj, San Sebastian","language_family_english":"Chuj, San Sebastian","language_family_iso":"cac","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBG","version_name":"Sociedad Biblica Guatemala","version_english":"Sociedad Biblica Guatemala","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-22 15:24:15","created_on":"2010-09-14 17:00:02","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CACSBG","audio_zip_path":"CACSBGN2DA\/CACSBGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CACSBGN2ET","fcbh_id":"CACSBGN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CAC","language_name":"Chuj, San Sebastian","language_english":"Chuj, San Sebastian","language_iso":"cac","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chuj","language_family_code":"CAC","language_family_name":"Chuj, San Sebastian","language_family_english":"Chuj, San Sebastian","language_family_iso":"cac","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBG","version_name":"Sociedad Biblica Guatemala","version_english":"Sociedad Biblica Guatemala","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 23:10:32","created_on":"2011-07-06 19:49:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CACSBGN2ET\/CACSBGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CAGSBPN2DA","fcbh_id":"CAGSBPN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CAG","language_name":"Nivacl\u00e9","language_english":"Nivacle","language_iso":"cag","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nivacl\u00e9","language_family_code":"CAG","language_family_name":"Nivacl\u00e9","language_family_english":"Nivacle","language_family_iso":"cag","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:39","created_on":"2010-09-14 17:00:02","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CAGSBP","audio_zip_path":"CAGSBPN2DA\/CAGSBPN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CAKSBGN2DA","fcbh_id":"CAKSBGN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CAK","language_name":"Cakchiquel, Central","language_english":"Cakchiquel, Central","language_iso":"cak","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaqchikel","language_family_code":"CAK","language_family_name":"Cakchiquel, Central","language_family_english":"Cakchiquel, Central","language_family_iso":"cak","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBG","version_name":"Sociedad Biblica Guatemala","version_english":"Sociedad Biblica Guatemala","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-07 15:20:54","created_on":"2010-09-14 17:00:02","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CAKSBG","audio_zip_path":"CAKSBGN2DA\/CAKSBGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"CAKSBGN2ET","fcbh_id":"CAKSBGN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CAK","language_name":"Cakchiquel, Central","language_english":"Cakchiquel, Central","language_iso":"cak","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaqchikel","language_family_code":"CAK","language_family_name":"Cakchiquel, Central","language_family_english":"Cakchiquel, Central","language_family_iso":"cak","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBG","version_name":"Sociedad Biblica Guatemala","version_english":"Sociedad Biblica Guatemala","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2012-05-10 15:06:20","created_on":"2012-05-09 20:24:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CAKSBGN2ET\/CAKSBGN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CAPSBBN2DA","fcbh_id":"CAPSBBN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CAP","language_name":"Chipaya","language_english":"Chipaya","language_iso":"cap","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chipaya","language_family_code":"CAP","language_family_name":"Chipaya","language_family_english":"Chipaya","language_family_iso":"cap","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-22 14:54:52","created_on":"2010-09-14 17:01:29","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2CAPSBB","audio_zip_path":"CAPSBBN2DA\/CAPSBBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CAPSBBN2ET","fcbh_id":"CAPSBBN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CAP","language_name":"Chipaya","language_english":"Chipaya","language_iso":"cap","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chipaya","language_family_code":"CAP","language_family_name":"Chipaya","language_family_english":"Chipaya","language_family_iso":"cap","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 23:10:32","created_on":"2011-07-01 16:47:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CAPSBBN2ET\/CAPSBBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CARBSSN2DA","fcbh_id":"CARBSSN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CAR","language_name":"Carib","language_english":"Carib","language_iso":"car","language_iso_2B":"car","language_iso_2T":"car","language_iso_1":"","language_iso_name":"Galibi Carib","language_family_code":"CAR","language_family_name":"Carib","language_family_english":"Carib","language_family_iso":"car","language_family_iso_2B":"car","language_family_iso_2T":"car","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-05-22 16:14:58","created_on":"2010-09-14 17:01:02","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CARBSS","audio_zip_path":"CARBSSN2DA\/CARBSSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CARBSSN2ET","fcbh_id":"CARBSSN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CAR","language_name":"Carib","language_english":"Carib","language_iso":"car","language_iso_2B":"car","language_iso_2T":"car","language_iso_1":"","language_iso_name":"Galibi Carib","language_family_code":"CAR","language_family_name":"Carib","language_family_english":"Carib","language_family_iso":"car","language_family_iso_2B":"car","language_family_iso_2T":"car","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 23:10:33","created_on":"2010-11-25 20:49:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2CARBSS","audio_zip_path":"CARBSSN2ET\/CARBSSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CAXSBBN2DA","fcbh_id":"CAXSBBN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CAX","language_name":"Chiquitano","language_english":"Chiquitano","language_iso":"cax","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chiquitano","language_family_code":"CAX","language_family_name":"Chiquitano","language_family_english":"Chiquitano","language_family_iso":"cax","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-22 14:56:08","created_on":"2010-09-14 17:00:02","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CAXSBB","audio_zip_path":"CAXSBBN2DA\/CAXSBBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CAXSBBN2ET","fcbh_id":"CAXSBBN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CAX","language_name":"Chiquitano","language_english":"Chiquitano","language_iso":"cax","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chiquitano","language_family_code":"CAX","language_family_name":"Chiquitano","language_family_english":"Chiquitano","language_family_iso":"cax","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 23:10:33","created_on":"2011-06-22 16:19:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CAXSBBN2ET\/CAXSBBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CBCWBTN2DA","fcbh_id":"CBCWBTN2DA","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CBC","language_name":"Carapana","language_english":"Carapana","language_iso":"cbc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Carapana","language_family_code":"CBC","language_family_name":"Carapana","language_family_english":"Carapana","language_family_iso":"cbc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:55:54","created_on":"2012-11-27 20:55:01","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"CBCWBTN2DA\/CBCWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CBCWBTN2ET","fcbh_id":"CBCWBTN2ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CBC","language_name":"Carapana","language_english":"Carapana","language_iso":"cbc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Carapana","language_family_code":"CBC","language_family_name":"Carapana","language_family_english":"Carapana","language_family_iso":"cbc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 23:10:33","created_on":"2011-07-07 21:59:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CBCWBTN2ET\/CBCWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CBRTBLN1DA","fcbh_id":"CBRTBLN1DA","volume_name":"1995 Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CBR","language_name":"Kakataibo","language_english":"Kakataibo","language_iso":"cbr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cashibo-Cacataibo","language_family_code":"CBR","language_family_name":"Kakataibo","language_family_english":"Kakataibo","language_family_iso":"cbr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-02 20:01:04","created_on":"2016-05-02 19:48:01","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CBRTBLN1DA\/CBRTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CBRTBLN1ET","fcbh_id":"CBRTBLN1ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CBR","language_name":"Kakataibo","language_english":"Kakataibo","language_iso":"cbr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cashibo-Cacataibo","language_family_code":"CBR","language_family_name":"Kakataibo","language_family_english":"Kakataibo","language_family_iso":"cbr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-01 18:26:30","created_on":"2016-05-10 17:59:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CBRTBLN1ET\/CBRTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CBRTBLN2DA","fcbh_id":"CBRTBLN2DA","volume_name":"1995 Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CBR","language_name":"Kakataibo","language_english":"Kakataibo","language_iso":"cbr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cashibo-Cacataibo","language_family_code":"CBR","language_family_name":"Kakataibo","language_family_english":"Kakataibo","language_family_iso":"cbr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-02 20:14:43","created_on":"2016-05-02 19:53:59","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CBRTBLN2DA\/CBRTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CBRTBLN2ET","fcbh_id":"CBRTBLN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CBR","language_name":"Kakataibo","language_english":"Kakataibo","language_iso":"cbr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cashibo-Cacataibo","language_family_code":"CBR","language_family_name":"Kakataibo","language_family_english":"Kakataibo","language_family_iso":"cbr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 23:10:33","created_on":"2014-10-03 17:18:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CBRTBLN2ET\/CBRTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CBSBSPN2DA","fcbh_id":"CBSBSPN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CBS","language_name":"Junikuin","language_english":"Junikuin","language_iso":"cbs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cashinahua","language_family_code":"CBS","language_family_name":"Junikuin","language_family_english":"Junikuin","language_family_iso":"cbs","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:55:54","created_on":"2012-03-26 16:45:47","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"CBSBSPN2DA\/CBSBSPN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CBSBSPN2ET","fcbh_id":"CBSBSPN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CBS","language_name":"Junikuin","language_english":"Junikuin","language_iso":"cbs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cashinahua","language_family_code":"CBS","language_family_name":"Junikuin","language_family_english":"Junikuin","language_family_iso":"cbs","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:21","created_on":"2011-07-22 15:59:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CBSBSPN2ET\/CBSBSPN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CBUTBLN2DA","fcbh_id":"CBUTBLN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CBU","language_name":"Kandozi","language_english":"Kandozi","language_iso":"cbu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Candoshi-Shapra","language_family_code":"CBU","language_family_name":"Kandozi","language_family_english":"Kandozi","language_family_iso":"cbu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:10","created_on":"2012-07-20 19:57:36","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"CBUTBLN2DA\/CBUTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CBVTBLN2DA","fcbh_id":"CBVTBLN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CBV","language_name":"Cacua","language_english":"Cacua","language_iso":"cbv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cacua","language_family_code":"CBV","language_family_name":"Cacua","language_family_english":"Cacua","language_family_iso":"cbv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-12 21:02:54","created_on":"2010-09-14 17:00:03","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CBVTBL","audio_zip_path":"CBVTBLN2DA\/CBVTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CBVTBLN2ET","fcbh_id":"CBVTBLN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CBV","language_name":"Cacua","language_english":"Cacua","language_iso":"cbv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cacua","language_family_code":"CBV","language_family_name":"Cacua","language_family_english":"Cacua","language_family_iso":"cbv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:16","created_on":"2010-09-14 17:00:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2CBVTBL","audio_zip_path":"CBVTBLN2ET\/CBVTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CCESBMN2DA","fcbh_id":"CCESBMN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CCE","language_name":"Txitxopi","language_english":"Chopi","language_iso":"cce","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chopi","language_family_code":"CCE","language_family_name":"Txitxopi","language_family_english":"Chopi","language_family_iso":"cce","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-12 21:01:08","created_on":"2010-09-14 17:00:03","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CCESBM","audio_zip_path":"CCESBMN2DA\/CCESBMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CCOTBLN1DA","fcbh_id":"CCOTBLN1DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CCO","language_name":"Chinanteco de Comaltepec","language_english":"Chinanteco de Comaltepec","language_iso":"cco","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Comaltepec Chinantec","language_family_code":"CCO","language_family_name":"Chinanteco de Comaltepec","language_family_english":"Chinanteco de Comaltepec","language_family_iso":"cco","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 21:19:44","created_on":"2010-09-14 17:01:55","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1CCOTBL","audio_zip_path":"CCOTBLN1DA\/CCOTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CCOTBLN1ET","fcbh_id":"CCOTBLN1ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CCO","language_name":"Chinanteco de Comaltepec","language_english":"Chinanteco de Comaltepec","language_iso":"cco","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Comaltepec Chinantec","language_family_code":"CCO","language_family_name":"Chinanteco de Comaltepec","language_family_english":"Chinanteco de Comaltepec","language_family_iso":"cco","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:04","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1CCOTBL","audio_zip_path":"CCOTBLN1ET\/CCOTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CCPBIVN2ET","fcbh_id":"CCPBIVN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CCP","language_name":"Chakma","language_english":"Chakma","language_iso":"ccp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chakma","language_family_code":"CCP","language_family_name":"Chakma","language_family_english":"Chakma","language_family_iso":"ccp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:04","created_on":"2014-07-10 20:46:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CCPBIVN2ET\/CCPBIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CDFBIVN2ET","fcbh_id":"CDFBIVN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CDF","language_name":"Chiru","language_english":"Chiru","language_iso":"cdf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chiru","language_family_code":"CDF","language_family_name":"Chiru","language_family_english":"Chiru","language_family_iso":"cdf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:04","created_on":"2014-10-16 20:23:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CDFBIVN2ET\/CDFBIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CEBCBVN2ET","fcbh_id":"CEBCBVN2ET","volume_name":"Cebuano Bible Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CEB","language_name":"Cebuano","language_english":"Cebuano","language_iso":"ceb","language_iso_2B":"ceb","language_iso_2T":"ceb","language_iso_1":"","language_iso_name":"Cebuano","language_family_code":"CEB","language_family_name":"Cebuano","language_family_english":"Cebuano","language_family_iso":"ceb","language_family_iso_2B":"ceb","language_family_iso_2T":"ceb","language_family_iso_1":"","version_code":"CBV","version_name":"CBV","version_english":"CBV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-08-27 16:43:10","created_on":"2010-09-14 17:01:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2CEBCBV","audio_zip_path":"CEBCBVN2ET\/CEBCBVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CEBCBVO2ET","fcbh_id":"CEBCBVO2ET","volume_name":"Cebuano Bible Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CEB","language_name":"Cebuano","language_english":"Cebuano","language_iso":"ceb","language_iso_2B":"ceb","language_iso_2T":"ceb","language_iso_1":"","language_iso_name":"Cebuano","language_family_code":"CEB","language_family_name":"Cebuano","language_family_english":"Cebuano","language_family_iso":"ceb","language_family_iso_2B":"ceb","language_family_iso_2T":"ceb","language_family_iso_1":"","version_code":"CBV","version_name":"CBV","version_english":"CBV","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2014-08-27 16:54:33","created_on":"2010-09-14 17:01:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"O2CEBCBV","audio_zip_path":"CEBCBVO2ET\/CEBCBVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CEBPVVN1DA","fcbh_id":"CEBPVVN1DA","volume_name":"1973 Popular Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CEB","language_name":"Cebuano","language_english":"Cebuano","language_iso":"ceb","language_iso_2B":"ceb","language_iso_2T":"ceb","language_iso_1":"","language_iso_name":"Cebuano","language_family_code":"CEB","language_family_name":"Cebuano","language_family_english":"Cebuano","language_family_iso":"ceb","language_family_iso_2B":"ceb","language_family_iso_2T":"ceb","language_family_iso_1":"","version_code":"PVV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 23:22:47","created_on":"2010-09-14 16:59:41","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1CEBPVV","audio_zip_path":"CEBPVVN1DA\/CEBPVVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CEBRPVN2DA","fcbh_id":"CEBRPVN2DA","volume_name":"Revised Popular Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CEB","language_name":"Cebuano","language_english":"Cebuano","language_iso":"ceb","language_iso_2B":"ceb","language_iso_2T":"ceb","language_iso_1":"","language_iso_name":"Cebuano","language_family_code":"CEB","language_family_name":"Cebuano","language_family_english":"Cebuano","language_family_iso":"ceb","language_family_iso_2B":"ceb","language_family_iso_2T":"ceb","language_family_iso_1":"","version_code":"RPV","version_name":"RPV","version_english":"RPV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-08-25 16:33:52","created_on":"2010-09-14 17:00:03","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CEBRPV","audio_zip_path":"CEBRPVN2DA\/CEBRPVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CEBRPVN2ET","fcbh_id":"CEBRPVN2ET","volume_name":"Revised Popular Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CEB","language_name":"Cebuano","language_english":"Cebuano","language_iso":"ceb","language_iso_2B":"ceb","language_iso_2T":"ceb","language_iso_1":"","language_iso_name":"Cebuano","language_family_code":"CEB","language_family_name":"Cebuano","language_family_english":"Cebuano","language_family_iso":"ceb","language_family_iso_2B":"ceb","language_family_iso_2T":"ceb","language_family_iso_1":"","version_code":"RPV","version_name":"RPV","version_english":"RPV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:04","created_on":"2010-09-14 17:00:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2CEBRPV","audio_zip_path":"CEBRPVN2ET\/CEBRPVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CEGNTPN2DA","fcbh_id":"CEGNTPN2DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CEG","language_name":"Chamacoco","language_english":"Chamacoco","language_iso":"ceg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chamacoco","language_family_code":"CEG","language_family_name":"Chamacoco","language_family_english":"Chamacoco","language_family_iso":"ceg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-09 23:05:14","created_on":"2010-11-25 20:50:18","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2CEGNTP","audio_zip_path":"CEGNTPN2DA\/CEGNTPN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CEGNTPN2ET","fcbh_id":"CEGNTPN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CEG","language_name":"Chamacoco","language_english":"Chamacoco","language_iso":"ceg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chamacoco","language_family_code":"CEG","language_family_name":"Chamacoco","language_family_english":"Chamacoco","language_family_iso":"ceg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:04","created_on":"2013-12-06 22:32:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CEGNTPN2ET\/CEGNTPN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CEKLKCN2ET","fcbh_id":"CEKLKCN2ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CEK","language_name":"Lemi","language_english":"Chin, Eastern Khumi","language_iso":"cek","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lemi","language_family_code":"CEK","language_family_name":"Lemi","language_family_english":"Chin, Eastern Khumi","language_family_iso":"cek","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LKC","version_name":"LKC","version_english":"LKC","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-18 19:12:34","created_on":"2018-10-12 18:45:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CEKLKCN2ET\/CEKLKCN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CEVNANN2DA","fcbh_id":"CEVNANN2DA","volume_name":"1995 Contemporary English (Native American)","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CEV","language_name":"English, Native American","language_english":"English, Native American","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"NAN","version_name":"Contemporary English Version-NA","version_english":"Contemporary English Version-NA","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2015-10-27 21:18:39","created_on":"2010-09-14 17:01:09","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CEVNAN","audio_zip_path":"CEVNANN2DA\/CEVNANN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CFMBIVN2ET","fcbh_id":"CFMBIVN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CFM","language_name":"Chin Bualkhaw","language_english":"Chin Bualkhaw","language_iso":"cfm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Falam Chin","language_family_code":"CFM","language_family_name":"Chin Bualkhaw","language_family_english":"Chin Bualkhaw","language_family_iso":"cfm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-08-15 15:35:11","created_on":"2014-08-15 15:18:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CFMBIVN2ET\/CFMBIVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CGCTBLN1DA","fcbh_id":"CGCTBLN1DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CGC","language_name":"Kagayanen","language_english":"Kagayanen","language_iso":"cgc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kagayanen","language_family_code":"CGC","language_family_name":"Kagayanen","language_family_english":"Kagayanen","language_family_iso":"cgc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-06 00:58:55","created_on":"2017-04-26 23:09:28","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CGCTBLN1DA\/CGCTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CGCTBLN1ET","fcbh_id":"CGCTBLN1ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CGC","language_name":"Kagayanen","language_english":"Kagayanen","language_iso":"cgc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kagayanen","language_family_code":"CGC","language_family_name":"Kagayanen","language_family_english":"Kagayanen","language_family_iso":"cgc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-06 00:58:56","created_on":"2017-04-26 23:07:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CGCTBLN1ET\/CGCTBLN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CGCTBLN2DA","fcbh_id":"CGCTBLN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CGC","language_name":"Kagayanen","language_english":"Kagayanen","language_iso":"cgc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kagayanen","language_family_code":"CGC","language_family_name":"Kagayanen","language_family_english":"Kagayanen","language_family_iso":"cgc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-11-20 21:38:53","created_on":"2014-10-21 16:43:47","right_to_left":"false","num_art":"5","num_sample_audio":"1","sku":"","audio_zip_path":"CGCTBLN2DA\/CGCTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CGCTBLN2ET","fcbh_id":"CGCTBLN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CGC","language_name":"Kagayanen","language_english":"Kagayanen","language_iso":"cgc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kagayanen","language_family_code":"CGC","language_family_name":"Kagayanen","language_family_english":"Kagayanen","language_family_iso":"cgc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-26 23:08:37","created_on":"2014-02-24 16:34:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CGCTBLN2ET\/CGCTBLN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CH1CNVN1DA","fcbh_id":"CH1CNVN1DA","volume_name":"Tianjing (Huizuban Shengjing)","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CH1","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"chk","language_iso_2B":"chk","language_iso_2T":"chk","language_iso_1":"","language_iso_name":"Chuukese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CNV","version_name":"Chinese New Version","version_english":"Chinese New Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-07 16:12:02","created_on":"2014-10-21 17:42:01","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"CH1CNVN1DA\/CH1CNVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CH1CNVN1ET","fcbh_id":"CH1CNVN1ET","volume_name":"Tianjing (Huizuban Shengjing)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CH1","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"chk","language_iso_2B":"chk","language_iso_2T":"chk","language_iso_1":"","language_iso_name":"Chuukese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CNV","version_name":"Chinese New Version","version_english":"Chinese New Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-07 16:16:14","created_on":"2014-10-23 15:38:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CH1CNVN1ET\/CH1CNVN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CH1CNVN2DA","fcbh_id":"CH1CNVN2DA","volume_name":"Tianjing (Huizuban Shengjing)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CH1","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"chk","language_iso_2B":"chk","language_iso_2T":"chk","language_iso_1":"","language_iso_name":"Chuukese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CNV","version_name":"Chinese New Version","version_english":"Chinese New Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-07 16:16:50","created_on":"2014-10-02 15:31:28","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"CH1CNVN2DA\/CH1CNVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CH1CNVN2ET","fcbh_id":"CH1CNVN2ET","volume_name":"Tianjing (Huizuban Shengjing)","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CH1","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"chk","language_iso_2B":"chk","language_iso_2T":"chk","language_iso_1":"","language_iso_name":"Chuukese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CNV","version_name":"Chinese New Version","version_english":"Chinese New Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-07 16:15:17","created_on":"2014-10-23 15:32:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CH1CNVN2ET\/CH1CNVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CH1CNVO1DA","fcbh_id":"CH1CNVO1DA","volume_name":"Tianjing (Huizuban Shengjing)","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CH1","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"chk","language_iso_2B":"chk","language_iso_2T":"chk","language_iso_1":"","language_iso_name":"Chuukese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CNV","version_name":"Chinese New Version","version_english":"Chinese New Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-09-10 23:30:29","created_on":"2018-09-08 18:03:11","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CH1CNVO1DA\/CH1CNVO1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"CH1CNVO1ET","fcbh_id":"CH1CNVO1ET","volume_name":"Tianjing (Huizuban Shengjing)","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CH1","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"chk","language_iso_2B":"chk","language_iso_2T":"chk","language_iso_1":"","language_iso_name":"Chuukese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CNV","version_name":"Chinese New Version","version_english":"Chinese New Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-09-07 16:15:41","created_on":"2014-10-23 15:44:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CH1CNVO1ET\/CH1CNVO1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CH1CNVO2DA","fcbh_id":"CH1CNVO2DA","volume_name":"Tianjing (Huizuban Shengjing)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CH1","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"chk","language_iso_2B":"chk","language_iso_2T":"chk","language_iso_1":"","language_iso_name":"Chuukese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CNV","version_name":"Chinese New Version","version_english":"Chinese New Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-09-10 23:29:52","created_on":"2018-09-08 18:49:41","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CH1CNVO2DA\/CH1CNVO2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"CH1CNVO2ET","fcbh_id":"CH1CNVO2ET","volume_name":"Tianjing (Huizuban Shengjing)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CH1","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"chk","language_iso_2B":"chk","language_iso_2T":"chk","language_iso_1":"","language_iso_name":"Chuukese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CNV","version_name":"Chinese New Version","version_english":"Chinese New Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-09-07 16:14:43","created_on":"2014-10-23 15:39:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CH1CNVO2ET\/CH1CNVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CHNUN1N1DA","fcbh_id":"CHNUN1N1DA","volume_name":"Union Version (Simplified)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHN","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"cmn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandarin Chinese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UN1","version_name":"\u8054\u76df\u7248","version_english":"Union Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-20 15:44:37","created_on":"2018-03-13 16:21:05","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CHNUN1N1DA\/CHNUN1N1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CHNUN1N1ET","fcbh_id":"CHNUN1N1ET","volume_name":"Union Version (Simplified)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHN","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"cmn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandarin Chinese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UN1","version_name":"\u8054\u76df\u7248","version_english":"Union Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-22 19:45:50","created_on":"2017-11-22 15:36:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CHNUN1N1ET\/CHNUN1N1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CHNUN1N2DA","fcbh_id":"CHNUN1N2DA","volume_name":"Union Version (Simplified)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHN","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"cmn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandarin Chinese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UN1","version_name":"\u8054\u76df\u7248","version_english":"Union Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-20 20:19:38","created_on":"2011-08-02 17:04:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CHNUN1N2DA\/CHNUN1N2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CHNUN1N2ET","fcbh_id":"CHNUN1N2ET","volume_name":"Union Version (Simplified)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHN","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"cmn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandarin Chinese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UN1","version_name":"\u8054\u76df\u7248","version_english":"Union Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-20 20:20:11","created_on":"2011-08-02 20:34:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CHNUN1N2ET\/CHNUN1N2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"CHNUN1O1DA","fcbh_id":"CHNUN1O1DA","volume_name":"Union Version (Simplified)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHN","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"cmn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandarin Chinese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UN1","version_name":"\u8054\u76df\u7248","version_english":"Union Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-11-22 15:25:59","created_on":"2017-11-21 21:38:39","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CHNUN1O1DA\/CHNUN1O1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CHNUN1O1ET","fcbh_id":"CHNUN1O1ET","volume_name":"Union Version (Simplified)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHN","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"cmn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandarin Chinese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UN1","version_name":"\u8054\u76df\u7248","version_english":"Union Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-11-22 19:46:12","created_on":"2017-11-22 17:45:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CHNUN1O1ET\/CHNUN1O1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CHNUN1O2DA","fcbh_id":"CHNUN1O2DA","volume_name":"Union Version (Simplified)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHN","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"cmn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandarin Chinese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UN1","version_name":"\u8054\u76df\u7248","version_english":"Union Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-11-22 17:43:16","created_on":"2017-11-21 23:09:06","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CHNUN1O2DA\/CHNUN1O2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CHNUN1O2ET","fcbh_id":"CHNUN1O2ET","volume_name":"Union Version (Simplified)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHN","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"cmn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandarin Chinese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UN1","version_name":"\u8054\u76df\u7248","version_english":"Union Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-11-20 20:20:46","created_on":"2011-08-02 20:42:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CHNUN1O2ET\/CHNUN1O2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled"],"resolution":[]},{"dam_id":"CHNUNVN1DA","fcbh_id":"CHNUNVN1DA","volume_name":"Union Version (Traditional)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHN","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"cmn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandarin Chinese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UNV","version_name":"Union Version = \u548c\u5408\u672c","version_english":"Union Version = \u548c\u5408\u672c","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-20 15:45:55","created_on":"2017-11-22 15:33:10","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CHNUNVN1DA\/CHNUNVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CHNUNVN1ET","fcbh_id":"CHNUNVN1ET","volume_name":"Union Version (Traditional)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHN","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"cmn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandarin Chinese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UNV","version_name":"Union Version = \u548c\u5408\u672c","version_english":"Union Version = \u548c\u5408\u672c","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-30 22:13:07","created_on":"2017-04-12 19:14:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CHNUNVN1ET\/CHNUNVN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CHNUNVN2DA","fcbh_id":"CHNUNVN2DA","volume_name":"Union Version (Traditional)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHN","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"cmn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandarin Chinese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UNV","version_name":"Union Version = \u548c\u5408\u672c","version_english":"Union Version = \u548c\u5408\u672c","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-20 22:33:43","created_on":"2010-09-14 17:00:04","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CHNUNV","audio_zip_path":"CHNUNVN2DA\/CHNUNVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CHNUNVN2ET","fcbh_id":"CHNUNVN2ET","volume_name":"Union Version (Traditional)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHN","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"cmn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandarin Chinese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UNV","version_name":"Union Version = \u548c\u5408\u672c","version_english":"Union Version = \u548c\u5408\u672c","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-30 22:18:40","created_on":"2010-09-14 17:00:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2CHNUNV","audio_zip_path":"CHNUNVN2ET\/CHNUNVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled"],"resolution":[]},{"dam_id":"CHNUNVO1DA","fcbh_id":"CHNUNVO1DA","volume_name":"Union Version (Traditional)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHN","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"cmn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandarin Chinese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UNV","version_name":"Union Version = \u548c\u5408\u672c","version_english":"Union Version = \u548c\u5408\u672c","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-11-22 15:28:05","created_on":"2017-11-21 21:35:04","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CHNUNVO1DA\/CHNUNVO1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CHNUNVO1ET","fcbh_id":"CHNUNVO1ET","volume_name":"Union Version (Traditional)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHN","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"cmn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandarin Chinese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UNV","version_name":"Union Version = \u548c\u5408\u672c","version_english":"Union Version = \u548c\u5408\u672c","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-11-22 15:28:30","created_on":"2017-04-12 19:16:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CHNUNVO1ET\/CHNUNVO1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CHNUNVO2DA","fcbh_id":"CHNUNVO2DA","volume_name":"Union Version (Traditional)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHN","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"cmn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandarin Chinese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UNV","version_name":"Union Version = \u548c\u5408\u672c","version_english":"Union Version = \u548c\u5408\u672c","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-11-22 15:29:08","created_on":"2017-11-21 21:03:34","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CHNUNVO2DA\/CHNUNVO2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CHNUNVO2ET","fcbh_id":"CHNUNVO2ET","volume_name":"Union Version (Traditional)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHN","language_name":"\u4e2d\u6587","language_english":"Chinese, Mandarin","language_iso":"cmn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandarin Chinese","language_family_code":"CHN","language_family_name":"\u4e2d\u6587","language_family_english":"Chinese, Mandarin","language_family_iso":"cmn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UNV","version_name":"Union Version = \u548c\u5408\u672c","version_english":"Union Version = \u548c\u5408\u672c","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-11-20 22:33:01","created_on":"2010-09-14 17:01:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"O2CHNUNV","audio_zip_path":"CHNUNVO2ET\/CHNUNVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"CHRPDVN2ET","fcbh_id":"CHRPDVN2ET","volume_name":"Public Domain Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHR","language_name":"Cherokee","language_english":"Cherokee","language_iso":"chr","language_iso_2B":"chr","language_iso_2T":"chr","language_iso_1":"","language_iso_name":"Cherokee","language_family_code":"CHR","language_family_name":"Cherokee","language_family_english":"Cherokee","language_family_iso":"chr","language_family_iso_2B":"chr","language_family_iso_2T":"chr","language_family_iso_1":"","version_code":"PDV","version_name":"Parole de Vie Version","version_english":"Parole de Vie Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 17:27:44","created_on":"2013-10-21 18:04:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CHRPDVN2ET\/CHRPDVN2ET.zip","font":{"id":"77","name":"Plantagenet Cherokee","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Plantagenet_Cherokee","files":{"zip":"all.zip","ttf":"plantc.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"","url":""},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CHVIBTN1DA","fcbh_id":"CHVIBTN1DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHV","language_name":"Chuvash","language_english":"Chuvash","language_iso":"chv","language_iso_2B":"chv","language_iso_2T":"chv","language_iso_1":"cv","language_iso_name":"Chuvash","language_family_code":"CHV","language_family_name":"Chuvash","language_family_english":"Chuvash","language_family_iso":"chv","language_family_iso_2B":"chv","language_family_iso_2T":"chv","language_family_iso_1":"cv","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-07 19:15:25","created_on":"2017-03-31 18:46:21","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CHVIBTN1DA\/CHVIBTN1DA.zip","font":{"id":"80","name":"PT Serif","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/PT_Serif","files":{"zip":"all.zip","ttf":"PT Serif.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"","url":"http:\/\/ittybittyurl.com\/3uIq"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CHVIBTN1ET","fcbh_id":"CHVIBTN1ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHV","language_name":"Chuvash","language_english":"Chuvash","language_iso":"chv","language_iso_2B":"chv","language_iso_2T":"chv","language_iso_1":"cv","language_iso_name":"Chuvash","language_family_code":"CHV","language_family_name":"Chuvash","language_family_english":"Chuvash","language_family_iso":"chv","language_family_iso_2B":"chv","language_family_iso_2T":"chv","language_family_iso_1":"cv","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-07 19:15:25","created_on":"2017-03-31 18:42:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CHVIBTN1ET\/CHVIBTN1ET.zip","font":{"id":"80","name":"PT Serif","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/PT_Serif","files":{"zip":"all.zip","ttf":"PT Serif.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"","url":"http:\/\/ittybittyurl.com\/3uIq"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CHVIBTN2DA","fcbh_id":"CHVIBTN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHV","language_name":"Chuvash","language_english":"Chuvash","language_iso":"chv","language_iso_2B":"chv","language_iso_2T":"chv","language_iso_1":"cv","language_iso_name":"Chuvash","language_family_code":"CHV","language_family_name":"Chuvash","language_family_english":"Chuvash","language_family_iso":"chv","language_family_iso_2B":"chv","language_family_iso_2T":"chv","language_family_iso_1":"cv","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-07 19:15:25","created_on":"2017-03-31 18:44:42","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CHVIBTN2DA\/CHVIBTN2DA.zip","font":{"id":"80","name":"PT Serif","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/PT_Serif","files":{"zip":"all.zip","ttf":"PT Serif.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"","url":"http:\/\/ittybittyurl.com\/3uIq"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CHVIBTN2ET","fcbh_id":"CHVIBTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHV","language_name":"Chuvash","language_english":"Chuvash","language_iso":"chv","language_iso_2B":"chv","language_iso_2T":"chv","language_iso_1":"cv","language_iso_name":"Chuvash","language_family_code":"CHV","language_family_name":"Chuvash","language_family_english":"Chuvash","language_family_iso":"chv","language_family_iso_2B":"chv","language_family_iso_2T":"chv","language_family_iso_1":"cv","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-19 18:56:04","created_on":"2016-10-19 18:47:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CHVIBTN2ET\/CHVIBTN2ET.zip","font":{"id":"80","name":"PT Serif","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/PT_Serif","files":{"zip":"all.zip","ttf":"PT Serif.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"","url":"http:\/\/ittybittyurl.com\/3uIq"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CHZWBTN2DA","fcbh_id":"CHZWBTN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHZ","language_name":"Chinantec de Ozumacin","language_english":"Chinantec de Ozumacin","language_iso":"chz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ozumac\u00edn Chinantec","language_family_code":"CHZ","language_family_name":"Chinantec de Ozumacin","language_family_english":"Chinantec de Ozumacin","language_family_iso":"chz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:55:59","created_on":"2011-10-25 18:06:46","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"CHZWBTN2DA\/CHZWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CHZWBTN2ET","fcbh_id":"CHZWBTN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CHZ","language_name":"Chinantec de Ozumacin","language_english":"Chinantec de Ozumacin","language_iso":"chz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ozumac\u00edn Chinantec","language_family_code":"CHZ","language_family_name":"Chinantec de Ozumacin","language_family_english":"Chinantec de Ozumacin","language_family_iso":"chz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 18:25:51","created_on":"2011-05-30 20:51:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CHZWBTN2ET\/CHZWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CJOWBTN2ET","fcbh_id":"CJOWBTN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CJO","language_name":"Ash\u00e9ninka Pajonal","language_english":"Asheninka Pajonal","language_iso":"cjo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ash\u00e9ninka Pajonal","language_family_code":"CJO","language_family_name":"Ash\u00e9ninka Pajonal","language_family_english":"Asheninka Pajonal","language_family_iso":"cjo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-15 16:25:30","created_on":"2017-05-06 00:52:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CJOWBTN2ET\/CJOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CJPTJVN2DA","fcbh_id":"CJPTJVN2DA","volume_name":"Traducciones al Cabecar Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CJP","language_name":"Cabecar","language_english":"Cabecar","language_iso":"cjp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cab\u00e9car","language_family_code":"CJP","language_family_name":"Cabecar","language_family_english":"Cabecar","language_family_iso":"cjp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TJV","version_name":"Timothy Jones","version_english":"Timothy Jones","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-01-23 18:20:47","created_on":"2011-08-29 15:31:36","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"CJPTJVN2DA\/CJPTJVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CJPTJVN2ET","fcbh_id":"CJPTJVN2ET","volume_name":"Traducciones al Cabecar Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CJP","language_name":"Cabecar","language_english":"Cabecar","language_iso":"cjp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cab\u00e9car","language_family_code":"CJP","language_family_name":"Cabecar","language_family_english":"Cabecar","language_family_iso":"cjp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TJV","version_name":"Timothy Jones","version_english":"Timothy Jones","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:08","created_on":"2011-10-12 15:31:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CJPTJVN2ET\/CJPTJVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CJVTBLN2ET","fcbh_id":"CJVTBLN2ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CJV","language_name":"Chuave","language_english":"Chuave","language_iso":"cjv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chuave","language_family_code":"CJV","language_family_name":"Chuave","language_family_english":"Chuave","language_family_iso":"cjv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:52:47","created_on":"2014-05-22 16:28:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CJVTBLN2ET\/CJVTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CK1WBTN1DA","fcbh_id":"CK1WBTN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CK1","language_name":"Cakchiquel Santo Domingo Xenacoj","language_english":"Cakchiquel Santo Domingo Xenacoj","language_iso":"ckb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Kurdish","language_family_code":"CK1","language_family_name":"Cakchiquel Santo Domingo Xenacoj","language_family_english":"Cakchiquel Santo Domingo Xenacoj","language_family_iso":"ckb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-06-30 20:14:21","created_on":"2015-06-30 19:21:48","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CK1WBTN1DA\/CK1WBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CK1WBTN1ET","fcbh_id":"CK1WBTN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CK1","language_name":"Cakchiquel Santo Domingo Xenacoj","language_english":"Cakchiquel Santo Domingo Xenacoj","language_iso":"ckb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Kurdish","language_family_code":"CK1","language_family_name":"Cakchiquel Santo Domingo Xenacoj","language_family_english":"Cakchiquel Santo Domingo Xenacoj","language_family_iso":"ckb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-29 20:04:11","created_on":"2018-06-29 19:55:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CK1WBTN1ET\/CK1WBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CK1WBTN2DA","fcbh_id":"CK1WBTN2DA","volume_name":"WBT Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CK1","language_name":"Cakchiquel Santo Domingo Xenacoj","language_english":"Cakchiquel Santo Domingo Xenacoj","language_iso":"ckb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Kurdish","language_family_code":"CK1","language_family_name":"Cakchiquel Santo Domingo Xenacoj","language_family_english":"Cakchiquel Santo Domingo Xenacoj","language_family_iso":"ckb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:12","created_on":"2014-12-24 17:27:38","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"CK1WBTN2DA\/CK1WBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CK1WBTN2ET","fcbh_id":"CK1WBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CK1","language_name":"Cakchiquel Santo Domingo Xenacoj","language_english":"Cakchiquel Santo Domingo Xenacoj","language_iso":"ckb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Kurdish","language_family_code":"CK1","language_family_name":"Cakchiquel Santo Domingo Xenacoj","language_family_english":"Cakchiquel Santo Domingo Xenacoj","language_family_iso":"ckb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-29 20:04:30","created_on":"2018-06-29 19:54:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CK1WBTN2ET\/CK1WBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CKIWBTN2DA","fcbh_id":"CKIWBTN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CKI","language_name":"Cakchiquel, Santa Maria de Jesus","language_english":"Cakchiquel, Santa Maria de Jesus","language_iso":"cak","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaqchikel","language_family_code":"CKI","language_family_name":"Cakchiquel, Santa Maria de Jesus","language_family_english":"Cakchiquel, Santa Maria de Jesus","language_family_iso":"cak","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-12 21:44:11","created_on":"2010-09-14 17:00:04","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CKIWBT","audio_zip_path":"CKIWBTN2DA\/CKIWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CKIWBTN2ET","fcbh_id":"CKIWBTN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CKI","language_name":"Cakchiquel, Santa Maria de Jesus","language_english":"Cakchiquel, Santa Maria de Jesus","language_iso":"cak","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaqchikel","language_family_code":"CKI","language_family_name":"Cakchiquel, Santa Maria de Jesus","language_family_english":"Cakchiquel, Santa Maria de Jesus","language_family_iso":"cak","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:20","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2CKIWBT","audio_zip_path":"CKIWBTN2ET\/CKIWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CKKWBTN2DA","fcbh_id":"CKKWBTN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CKK","language_name":"Cakchiquel, Yepocapa","language_english":"Cakchiquel, Yepocapa","language_iso":"cak","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaqchikel","language_family_code":"CKK","language_family_name":"Cakchiquel, Yepocapa","language_family_english":"Cakchiquel, Yepocapa","language_family_iso":"cak","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 18:56:02","created_on":"2010-09-14 17:00:05","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CKKWBT","audio_zip_path":"CKKWBTN2DA\/CKKWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CKKWBTN2ET","fcbh_id":"CKKWBTN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CKK","language_name":"Cakchiquel, Yepocapa","language_english":"Cakchiquel, Yepocapa","language_iso":"cak","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaqchikel","language_family_code":"CKK","language_family_name":"Cakchiquel, Yepocapa","language_family_english":"Cakchiquel, Yepocapa","language_family_iso":"cak","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:23","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2CKKWBT","audio_zip_path":"CKKWBTN2ET\/CKKWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CKOGILN2DA","fcbh_id":"CKOGILN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CKO","language_name":"Anufo","language_english":"Anufo","language_iso":"cko","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Anufo","language_family_code":"CKO","language_family_name":"Anufo","language_family_english":"Anufo","language_family_iso":"cko","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"GIL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:01","created_on":"2010-09-14 17:01:20","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2CKOGIL","audio_zip_path":"CKOGILN2DA\/CKOGILN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CKOGILN2ET","fcbh_id":"CKOGILN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CKO","language_name":"Anufo","language_english":"Anufo","language_iso":"cko","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Anufo","language_family_code":"CKO","language_family_name":"Anufo","language_family_english":"Anufo","language_family_iso":"cko","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"GIL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:19","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2CKOGIL","audio_zip_path":"CKOGILN2ET\/CKOGILN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CKWNVSN2DA","fcbh_id":"CKWNVSN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CKW","language_name":"Cakchiquel, Western","language_english":"Cakchiquel, Western","language_iso":"cak","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaqchikel","language_family_code":"CKW","language_family_name":"Cakchiquel, Western","language_family_english":"Cakchiquel, Western","language_family_iso":"cak","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 18:54:56","created_on":"2010-09-14 17:00:05","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2CKWNVS","audio_zip_path":"CKWNVSN2DA\/CKWNVSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CKWNVSN2ET","fcbh_id":"CKWNVSN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CKW","language_name":"Cakchiquel, Western","language_english":"Cakchiquel, Western","language_iso":"cak","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaqchikel","language_family_code":"CKW","language_family_name":"Cakchiquel, Western","language_family_english":"Cakchiquel, Western","language_family_iso":"cak","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:23:02","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2CKWNVS","audio_zip_path":"CKWNVSN2ET\/CKWNVSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CLETBLN1DA","fcbh_id":"CLETBLN1DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CLE","language_name":"Chinanteco de San Juan Lealao","language_english":"Chinanteco de San Juan Lealao","language_iso":"cle","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lealao Chinantec","language_family_code":"CLE","language_family_name":"Chinanteco de San Juan Lealao","language_family_english":"Chinanteco de San Juan Lealao","language_family_iso":"cle","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:38:40","created_on":"2012-01-03 21:22:19","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"CLETBLN1DA\/CLETBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CLETBLN1ET","fcbh_id":"CLETBLN1ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CLE","language_name":"Chinanteco de San Juan Lealao","language_english":"Chinanteco de San Juan Lealao","language_iso":"cle","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lealao Chinantec","language_family_code":"CLE","language_family_name":"Chinanteco de San Juan Lealao","language_family_english":"Chinanteco de San Juan Lealao","language_family_iso":"cle","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:48","created_on":"2012-02-20 21:25:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CLETBLN1ET\/CLETBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CLETBLN2DA","fcbh_id":"CLETBLN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CLE","language_name":"Chinanteco de San Juan Lealao","language_english":"Chinanteco de San Juan Lealao","language_iso":"cle","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lealao Chinantec","language_family_code":"CLE","language_family_name":"Chinanteco de San Juan Lealao","language_family_english":"Chinanteco de San Juan Lealao","language_family_iso":"cle","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:38:40","created_on":"2010-09-14 17:01:19","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1CLETBL","audio_zip_path":"CLETBLN2DA\/CLETBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CLETBLN2ET","fcbh_id":"CLETBLN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CLE","language_name":"Chinanteco de San Juan Lealao","language_english":"Chinanteco de San Juan Lealao","language_iso":"cle","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lealao Chinantec","language_family_code":"CLE","language_family_name":"Chinanteco de San Juan Lealao","language_family_english":"Chinanteco de San Juan Lealao","language_family_iso":"cle","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:48","created_on":"2011-07-15 21:56:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CLETBLN2ET\/CLETBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CLYAVAN1DA","fcbh_id":"CLYAVAN1DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CLY","language_name":"Chatino Lachao Yolotepec","language_english":"Chatino Lachao Yolotepec","language_iso":"cly","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Highland Chatino","language_family_code":"CLY","language_family_name":"Chatino Lachao Yolotepec","language_family_english":"Chatino Lachao Yolotepec","language_family_iso":"cly","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AVA","version_name":"AVA","version_english":"AVA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-29 16:42:24","created_on":"2013-11-12 20:23:56","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"CLYAVAN1DA\/CLYAVAN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CLYAVAN1ET","fcbh_id":"CLYAVAN1ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CLY","language_name":"Chatino Lachao Yolotepec","language_english":"Chatino Lachao Yolotepec","language_iso":"cly","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Highland Chatino","language_family_code":"CLY","language_family_name":"Chatino Lachao Yolotepec","language_family_english":"Chatino Lachao Yolotepec","language_family_iso":"cly","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AVA","version_name":"AVA","version_english":"AVA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:11","created_on":"2013-11-18 20:10:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CLYAVAN1ET\/CLYAVAN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CMEWBTN2DA","fcbh_id":"CMEWBTN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CME","language_name":"Cerma","language_english":"Cerma","language_iso":"cme","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cerma","language_family_code":"CME","language_family_name":"Cerma","language_family_english":"Cerma","language_family_iso":"cme","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:03","created_on":"2013-05-13 16:26:24","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"CMEWBTN2DA\/CMEWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CMEWBTN2ET","fcbh_id":"CMEWBTN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CME","language_name":"Cerma","language_english":"Cerma","language_iso":"cme","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cerma","language_family_code":"CME","language_family_name":"Cerma","language_family_english":"Cerma","language_family_iso":"cme","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:25","created_on":"2011-08-15 22:38:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CMEWBTN2ET\/CMEWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CMOWBTN1DA","fcbh_id":"CMOWBTN1DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CMO","language_name":"Bunong","language_english":"Central Mnong","language_iso":"cmo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Mnong","language_family_code":"CMO","language_family_name":"Bunong","language_family_english":"Central Mnong","language_family_iso":"cmo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:28:07","created_on":"2017-05-05 17:03:21","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CMOWBTN1DA\/CMOWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CMOWBTN1ET","fcbh_id":"CMOWBTN1ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CMO","language_name":"Bunong","language_english":"Central Mnong","language_iso":"cmo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Mnong","language_family_code":"CMO","language_family_name":"Bunong","language_family_english":"Central Mnong","language_family_iso":"cmo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-30 18:09:39","created_on":"2018-10-30 17:57:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CMOWBTN1ET\/CMOWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CMOWBTN2DA","fcbh_id":"CMOWBTN2DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CMO","language_name":"Bunong","language_english":"Central Mnong","language_iso":"cmo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Mnong","language_family_code":"CMO","language_family_name":"Bunong","language_family_english":"Central Mnong","language_family_iso":"cmo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:28:06","created_on":"2017-05-05 15:06:18","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CMOWBTN2DA\/CMOWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CMOWBTN2ET","fcbh_id":"CMOWBTN2ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CMO","language_name":"Bunong","language_english":"Central Mnong","language_iso":"cmo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Mnong","language_family_code":"CMO","language_family_name":"Bunong","language_family_english":"Central Mnong","language_family_iso":"cmo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-30 18:02:00","created_on":"2018-10-30 17:54:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CMOWBTN2ET\/CMOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CMRWBTN1DA","fcbh_id":"CMRWBTN1DA","volume_name":"BSM Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CMR","language_name":"Chin, Mro-Khimi","language_english":"Chin, Mro-Khimi","language_iso":"cmr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mro Chin","language_family_code":"CMR","language_family_name":"Chin, Mro-Khimi","language_family_english":"Chin, Mro-Khimi","language_family_iso":"cmr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-13 16:19:11","created_on":"2016-09-19 14:00:57","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CMRWBTN1DA\/CMRWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CMRWBTN1ET","fcbh_id":"CMRWBTN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CMR","language_name":"Chin, Mro-Khimi","language_english":"Chin, Mro-Khimi","language_iso":"cmr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mro Chin","language_family_code":"CMR","language_family_name":"Chin, Mro-Khimi","language_family_english":"Chin, Mro-Khimi","language_family_iso":"cmr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-07 20:38:13","created_on":"2016-09-19 13:50:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CMRWBTN1ET\/CMRWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CMRWBTN2DA","fcbh_id":"CMRWBTN2DA","volume_name":"BSM Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CMR","language_name":"Chin, Mro-Khimi","language_english":"Chin, Mro-Khimi","language_iso":"cmr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mro Chin","language_family_code":"CMR","language_family_name":"Chin, Mro-Khimi","language_family_english":"Chin, Mro-Khimi","language_family_iso":"cmr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-09-19 16:26:37","created_on":"2016-09-19 14:03:19","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CMRWBTN2DA\/CMRWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CMRWBTN2ET","fcbh_id":"CMRWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CMR","language_name":"Chin, Mro-Khimi","language_english":"Chin, Mro-Khimi","language_iso":"cmr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mro Chin","language_family_code":"CMR","language_family_name":"Chin, Mro-Khimi","language_family_english":"Chin, Mro-Khimi","language_family_iso":"cmr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-07 20:39:11","created_on":"2016-01-21 18:57:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CMRWBTN2ET\/CMRWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CNHBSMN1DA","fcbh_id":"CNHBSMN1DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNH","language_name":"Chin, Haka","language_english":"Chin, Hakha","language_iso":"cnh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Haka Chin","language_family_code":"CNH","language_family_name":"Chin, Haka","language_family_english":"Chin, Hakha","language_family_iso":"cnh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-25 21:10:48","created_on":"2016-01-13 17:50:22","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CNHBSMN1DA\/CNHBSMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CNHBSMN1ET","fcbh_id":"CNHBSMN1ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNH","language_name":"Chin, Haka","language_english":"Chin, Hakha","language_iso":"cnh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Haka Chin","language_family_code":"CNH","language_family_name":"Chin, Haka","language_family_english":"Chin, Hakha","language_family_iso":"cnh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-18 16:52:00","created_on":"2016-01-13 17:43:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CNHBSMN1ET\/CNHBSMN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CNHBSMN2DA","fcbh_id":"CNHBSMN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNH","language_name":"Chin, Haka","language_english":"Chin, Hakha","language_iso":"cnh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Haka Chin","language_family_code":"CNH","language_family_name":"Chin, Haka","language_family_english":"Chin, Hakha","language_family_iso":"cnh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-13 18:20:19","created_on":"2016-01-13 17:47:27","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CNHBSMN2DA\/CNHBSMN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CNHBSMN2ET","fcbh_id":"CNHBSMN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNH","language_name":"Chin, Haka","language_english":"Chin, Hakha","language_iso":"cnh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Haka Chin","language_family_code":"CNH","language_family_name":"Chin, Haka","language_family_english":"Chin, Hakha","language_family_iso":"cnh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-18 16:52:23","created_on":"2012-01-13 18:45:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CNHBSMN2ET\/CNHBSMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CNHBSMO1ET","fcbh_id":"CNHBSMO1ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNH","language_name":"Chin, Haka","language_english":"Chin, Hakha","language_iso":"cnh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Haka Chin","language_family_code":"CNH","language_family_name":"Chin, Haka","language_family_english":"Chin, Hakha","language_family_iso":"cnh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-06-11 20:12:56","created_on":"2016-01-13 17:46:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CNHBSMO1ET\/CNHBSMO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CNHBSMO2ET","fcbh_id":"CNHBSMO2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNH","language_name":"Chin, Haka","language_english":"Chin, Hakha","language_iso":"cnh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Haka Chin","language_family_code":"CNH","language_family_name":"Chin, Haka","language_family_english":"Chin, Hakha","language_family_iso":"cnh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-06-11 20:12:23","created_on":"2012-03-22 20:58:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CNHBSMO2ET\/CNHBSMO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CNIWBTN2DA","fcbh_id":"CNIWBTN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNI","language_name":"Ashaninca","language_english":"Ashaninca","language_iso":"cni","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ash\u00e1ninka","language_family_code":"CNI","language_family_name":"Ashaninca","language_family_english":"Ashaninca","language_family_iso":"cni","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-12 21:55:55","created_on":"2010-09-14 17:01:13","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2CNIWBT","audio_zip_path":"CNIWBTN2DA\/CNIWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CNIWBTN2ET","fcbh_id":"CNIWBTN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNI","language_name":"Ashaninca","language_english":"Ashaninca","language_iso":"cni","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ash\u00e1ninka","language_family_code":"CNI","language_family_name":"Ashaninca","language_family_english":"Ashaninca","language_family_iso":"cni","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-26 21:52:32","created_on":"2010-11-25 20:49:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2CNIWBT","audio_zip_path":"CNIWBTN2ET\/CNIWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CNKBSMN2DA","fcbh_id":"CNKBSMN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNK","language_name":"Chin, Matu","language_english":"Chin, Matu","language_iso":"cnk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Khumi Chin","language_family_code":"CNK","language_family_name":"Chin, Matu","language_family_english":"Chin, Matu","language_family_iso":"cnk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-09-29 19:34:04","created_on":"2014-09-23 21:55:08","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"CNKBSMN2DA\/CNKBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CNKBSMN2ET","fcbh_id":"CNKBSMN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNK","language_name":"Chin, Matu","language_english":"Chin, Matu","language_iso":"cnk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Khumi Chin","language_family_code":"CNK","language_family_name":"Chin, Matu","language_family_english":"Chin, Matu","language_family_iso":"cnk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:18","created_on":"2012-01-04 23:27:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CNKBSMN2ET\/CNKBSMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CNLTBLN1DA","fcbh_id":"CNLTBLN1DA","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNL","language_name":"Chinanteco de San Juan Lalana","language_english":"Chinanteco de San Juan Lalana","language_iso":"cnl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lalana Chinantec","language_family_code":"CNL","language_family_name":"Chinanteco de San Juan Lalana","language_family_english":"Chinanteco de San Juan Lalana","language_family_iso":"cnl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:04","created_on":"2010-09-14 17:01:20","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1CNLTBL","audio_zip_path":"CNLTBLN1DA\/CNLTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CNLTBLN1ET","fcbh_id":"CNLTBLN1ET","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNL","language_name":"Chinanteco de San Juan Lalana","language_english":"Chinanteco de San Juan Lalana","language_iso":"cnl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lalana Chinantec","language_family_code":"CNL","language_family_name":"Chinanteco de San Juan Lalana","language_family_english":"Chinanteco de San Juan Lalana","language_family_iso":"cnl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:18","created_on":"2010-11-25 20:49:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1CNLTBL","audio_zip_path":"CNLTBLN1ET\/CNLTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CNLTBLN2DA","fcbh_id":"CNLTBLN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNL","language_name":"Chinanteco de San Juan Lalana","language_english":"Chinanteco de San Juan Lalana","language_iso":"cnl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lalana Chinantec","language_family_code":"CNL","language_family_name":"Chinanteco de San Juan Lalana","language_family_english":"Chinanteco de San Juan Lalana","language_family_iso":"cnl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:04","created_on":"2012-05-22 17:27:45","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"CNLTBLN2DA\/CNLTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CNLTBLN2ET","fcbh_id":"CNLTBLN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNL","language_name":"Chinanteco de San Juan Lalana","language_english":"Chinanteco de San Juan Lalana","language_iso":"cnl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lalana Chinantec","language_family_code":"CNL","language_family_name":"Chinanteco de San Juan Lalana","language_family_english":"Chinanteco de San Juan Lalana","language_family_iso":"cnl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:24","created_on":"2012-06-07 16:22:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CNLTBLN2ET\/CNLTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CNMRGBN2DA","fcbh_id":"CNMRGBN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNM","language_name":"Chuj, San Mateo Ixtatan","language_english":"Chuj, San Mateo Ixtatan","language_iso":"cac","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chuj","language_family_code":"CNM","language_family_name":"Chuj, San Mateo Ixtatan","language_family_english":"Chuj, San Mateo Ixtatan","language_family_iso":"cac","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RGB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:05","created_on":"2010-09-14 17:00:05","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CNMRGB","audio_zip_path":"CNMRGBN2DA\/CNMRGBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CNMRGBN2ET","fcbh_id":"CNMRGBN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNM","language_name":"Chuj, San Mateo Ixtatan","language_english":"Chuj, San Mateo Ixtatan","language_iso":"cac","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chuj","language_family_code":"CNM","language_family_name":"Chuj, San Mateo Ixtatan","language_family_english":"Chuj, San Mateo Ixtatan","language_family_iso":"cac","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RGB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:21","created_on":"2011-08-03 18:45:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CNMRGBN2ET\/CNMRGBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CNMSBGN1DA","fcbh_id":"CNMSBGN1DA","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNM","language_name":"Chuj, San Mateo Ixtatan","language_english":"Chuj, San Mateo Ixtatan","language_iso":"cac","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chuj","language_family_code":"CNM","language_family_name":"Chuj, San Mateo Ixtatan","language_family_english":"Chuj, San Mateo Ixtatan","language_family_iso":"cac","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBG","version_name":"Sociedad Biblica Guatemala","version_english":"Sociedad Biblica Guatemala","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:16","created_on":"2010-09-14 16:59:41","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1CNMSBG","audio_zip_path":"CNMSBGN1DA\/CNMSBGN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CNTTBLN2DA","fcbh_id":"CNTTBLN2DA","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNT","language_name":"Chinanteco de Tepetotutla","language_english":"Chinanteco de Tepetotutla","language_iso":"cnt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tepetotutla Chinantec","language_family_code":"CNT","language_family_name":"Chinanteco de Tepetotutla","language_family_english":"Chinanteco de Tepetotutla","language_family_iso":"cnt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 21:41:57","created_on":"2010-10-05 19:34:20","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2CNTTBL","audio_zip_path":"CNTTBLN2DA\/CNTTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CNTTBLN2ET","fcbh_id":"CNTTBLN2ET","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CNT","language_name":"Chinanteco de Tepetotutla","language_english":"Chinanteco de Tepetotutla","language_iso":"cnt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tepetotutla Chinantec","language_family_code":"CNT","language_family_name":"Chinanteco de Tepetotutla","language_family_english":"Chinanteco de Tepetotutla","language_family_iso":"cnt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:12","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2CNTTBL","audio_zip_path":"CNTTBLN2ET\/CNTTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"COEWBTN2DA","fcbh_id":"COEWBTN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"COE","language_name":"Koreguaje","language_english":"Koreguaje","language_iso":"coe","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Koreguaje","language_family_code":"COE","language_family_name":"Koreguaje","language_family_english":"Koreguaje","language_family_iso":"coe","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-12 23:06:57","created_on":"2010-09-14 17:00:05","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2COEWBT","audio_zip_path":"COEWBTN2DA\/COEWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"COEWBTN2ET","fcbh_id":"COEWBTN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"COE","language_name":"Koreguaje","language_english":"Koreguaje","language_iso":"coe","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Koreguaje","language_family_code":"COE","language_family_name":"Koreguaje","language_family_english":"Koreguaje","language_family_iso":"coe","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:21","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2COEWBT","audio_zip_path":"COEWBTN2ET\/COEWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"COFWBTN1DA","fcbh_id":"COFWBTN1DA","volume_name":"1990 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"COF","language_name":"Colorado","language_english":"Colorado","language_iso":"cof","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Colorado","language_family_code":"COF","language_family_name":"Colorado","language_family_english":"Colorado","language_family_iso":"cof","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-09 15:23:35","created_on":"2015-07-08 21:20:59","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"COFWBTN1DA\/COFWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"COFWBTN1ET","fcbh_id":"COFWBTN1ET","volume_name":"1990 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"COF","language_name":"Colorado","language_english":"Colorado","language_iso":"cof","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Colorado","language_family_code":"COF","language_family_name":"Colorado","language_family_english":"Colorado","language_family_iso":"cof","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:24","created_on":"2015-07-09 20:10:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"COFWBTN1ET\/COFWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"COFWBTN2DA","fcbh_id":"COFWBTN2DA","volume_name":"1990 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"COF","language_name":"Colorado","language_english":"Colorado","language_iso":"cof","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Colorado","language_family_code":"COF","language_family_name":"Colorado","language_family_english":"Colorado","language_family_iso":"cof","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-09 15:24:58","created_on":"2015-07-09 14:23:44","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"COFWBTN2DA\/COFWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"COFWBTN2ET","fcbh_id":"COFWBTN2ET","volume_name":"1990 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"COF","language_name":"Colorado","language_english":"Colorado","language_iso":"cof","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Colorado","language_family_code":"COF","language_family_name":"Colorado","language_family_english":"Colorado","language_family_iso":"cof","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:24","created_on":"2014-08-15 15:30:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"COFWBTN2ET\/COFWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"COKWBTN1DA","fcbh_id":"COKWBTN1DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"COK","language_name":"Cora, Santa Teresa","language_english":"Cora, Santa Teresa","language_iso":"cok","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Santa Teresa Cora","language_family_code":"COK","language_family_name":"Cora, Santa Teresa","language_family_english":"Cora, Santa Teresa","language_family_iso":"cok","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-21 18:38:21","created_on":"2018-03-21 17:20:53","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"COKWBTN1DA\/COKWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"COKWBTN1ET","fcbh_id":"COKWBTN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"COK","language_name":"Cora, Santa Teresa","language_english":"Cora, Santa Teresa","language_iso":"cok","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Santa Teresa Cora","language_family_code":"COK","language_family_name":"Cora, Santa Teresa","language_family_english":"Cora, Santa Teresa","language_family_iso":"cok","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-21 17:33:49","created_on":"2018-03-21 17:19:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"COKWBTN1ET\/COKWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"COKWBTN2DA","fcbh_id":"COKWBTN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"COK","language_name":"Cora, Santa Teresa","language_english":"Cora, Santa Teresa","language_iso":"cok","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Santa Teresa Cora","language_family_code":"COK","language_family_name":"Cora, Santa Teresa","language_family_english":"Cora, Santa Teresa","language_family_iso":"cok","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-03-19 19:24:35","created_on":"2014-03-19 17:23:33","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"COKWBTN2DA\/COKWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"COKWBTN2ET","fcbh_id":"COKWBTN2ET","volume_name":"WBT Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"COK","language_name":"Cora, Santa Teresa","language_english":"Cora, Santa Teresa","language_iso":"cok","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Santa Teresa Cora","language_family_code":"COK","language_family_name":"Cora, Santa Teresa","language_family_english":"Cora, Santa Teresa","language_family_iso":"cok","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-21 17:18:19","created_on":"2013-11-18 21:04:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"COKWBTN2ET\/COKWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CONWBTN2DA","fcbh_id":"CONWBTN2DA","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CON","language_name":"Cofan","language_english":"Cofan","language_iso":"con","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cof\u00e1n","language_family_code":"CON","language_family_name":"Cofan","language_family_english":"Cofan","language_family_iso":"con","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-22 15:27:38","created_on":"2010-09-14 17:01:23","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2CONWBT","audio_zip_path":"CONWBTN2DA\/CONWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CONWBTN2ET","fcbh_id":"CONWBTN2ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CON","language_name":"Cofan","language_english":"Cofan","language_iso":"con","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cof\u00e1n","language_family_code":"CON","language_family_name":"Cofan","language_family_english":"Cofan","language_family_iso":"con","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:53","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2CONWBT","audio_zip_path":"CONWBTN2ET\/CONWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"COTTBLN1DA","fcbh_id":"COTTBLN1DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"COT","language_name":"Caquinte","language_english":"Caquinte","language_iso":"cot","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Caquinte","language_family_code":"COT","language_family_name":"Caquinte","language_family_english":"Caquinte","language_family_iso":"cot","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-21 20:42:39","created_on":"2018-09-21 18:05:23","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"COTTBLN1DA\/COTTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"COTTBLN1ET","fcbh_id":"COTTBLN1ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"COT","language_name":"Caquinte","language_english":"Caquinte","language_iso":"cot","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Caquinte","language_family_code":"COT","language_family_name":"Caquinte","language_family_english":"Caquinte","language_family_iso":"cot","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-21 20:42:53","created_on":"2018-09-21 17:27:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"COTTBLN1ET\/COTTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"COTTBLN2DA","fcbh_id":"COTTBLN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"COT","language_name":"Caquinte","language_english":"Caquinte","language_iso":"cot","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Caquinte","language_family_code":"COT","language_family_name":"Caquinte","language_family_english":"Caquinte","language_family_iso":"cot","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-21 20:43:09","created_on":"2018-09-21 17:29:53","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"COTTBLN2DA\/COTTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"COTTBLN2ET","fcbh_id":"COTTBLN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"COT","language_name":"Caquinte","language_english":"Caquinte","language_iso":"cot","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Caquinte","language_family_code":"COT","language_family_name":"Caquinte","language_family_english":"Caquinte","language_family_iso":"cot","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-21 16:47:31","created_on":"2014-04-07 17:35:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"COTTBLN2ET\/COTTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"COUWBTN1DA","fcbh_id":"COUWBTN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"COU","language_name":"Wamey","language_english":"Wamey","language_iso":"cou","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wamey","language_family_code":"COU","language_family_name":"Wamey","language_family_english":"Wamey","language_family_iso":"cou","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-17 19:50:07","created_on":"2018-07-25 20:58:21","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"COUWBTN1DA\/COUWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"COUWBTN1ET","fcbh_id":"COUWBTN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"COU","language_name":"Wamey","language_english":"Wamey","language_iso":"cou","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wamey","language_family_code":"COU","language_family_name":"Wamey","language_family_english":"Wamey","language_family_iso":"cou","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-17 19:50:07","created_on":"2018-07-30 22:52:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"COUWBTN1ET\/COUWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CPATBLN1DA","fcbh_id":"CPATBLN1DA","volume_name":"1973 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CPA","language_name":"Chinanteco de Palantla","language_english":"Chinanteco de Palantla","language_iso":"cpa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Palantla Chinantec","language_family_code":"CPA","language_family_name":"Chinanteco de Palantla","language_family_english":"Chinanteco de Palantla","language_family_iso":"cpa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 21:21:05","created_on":"2010-09-14 17:01:19","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1CPATBL","audio_zip_path":"CPATBLN1DA\/CPATBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CPATBLN1ET","fcbh_id":"CPATBLN1ET","volume_name":"1973 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CPA","language_name":"Chinanteco de Palantla","language_english":"Chinanteco de Palantla","language_iso":"cpa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Palantla Chinantec","language_family_code":"CPA","language_family_name":"Chinanteco de Palantla","language_family_english":"Chinanteco de Palantla","language_family_iso":"cpa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:47","created_on":"0000-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1CPATBL","audio_zip_path":"CPATBLN1ET\/CPATBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CPBWBTN1DA","fcbh_id":"CPBWBTN1DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CPB","language_name":"Asheninka Ucayali-Yurua","language_english":"Asheninka Ucayali-Yurua","language_iso":"cpb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ucayali-Yur\u00faa Ash\u00e9ninka","language_family_code":"CPB","language_family_name":"Asheninka Ucayali-Yurua","language_family_english":"Asheninka Ucayali-Yurua","language_family_iso":"cpb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-29 21:38:24","created_on":"2018-10-25 21:23:56","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CPBWBTN1DA\/CPBWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download"],"resolution":[]},{"dam_id":"CPBWBTN1ET","fcbh_id":"CPBWBTN1ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CPB","language_name":"Asheninka Ucayali-Yurua","language_english":"Asheninka Ucayali-Yurua","language_iso":"cpb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ucayali-Yur\u00faa Ash\u00e9ninka","language_family_code":"CPB","language_family_name":"Asheninka Ucayali-Yurua","language_family_english":"Asheninka Ucayali-Yurua","language_family_iso":"cpb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-29 21:45:17","created_on":"2018-10-29 21:35:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CPBWBTN1ET\/CPBWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CPBWBTN2DA","fcbh_id":"CPBWBTN2DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CPB","language_name":"Asheninka Ucayali-Yurua","language_english":"Asheninka Ucayali-Yurua","language_iso":"cpb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ucayali-Yur\u00faa Ash\u00e9ninka","language_family_code":"CPB","language_family_name":"Asheninka Ucayali-Yurua","language_family_english":"Asheninka Ucayali-Yurua","language_family_iso":"cpb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-29 21:38:09","created_on":"2018-10-25 21:35:05","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CPBWBTN2DA\/CPBWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download"],"resolution":[]},{"dam_id":"CPBWBTN2ET","fcbh_id":"CPBWBTN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CPB","language_name":"Asheninka Ucayali-Yurua","language_english":"Asheninka Ucayali-Yurua","language_iso":"cpb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ucayali-Yur\u00faa Ash\u00e9ninka","language_family_code":"CPB","language_family_name":"Asheninka Ucayali-Yurua","language_family_english":"Asheninka Ucayali-Yurua","language_family_iso":"cpb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-31 15:38:23","created_on":"2018-07-30 20:36:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CPBWBTN2ET\/CPBWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CPUWBTN1DA","fcbh_id":"CPUWBTN1DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CPU","language_name":"Asheninka, Pichis","language_english":"Asheninka, Pichis","language_iso":"cpu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pichis Ash\u00e9ninka","language_family_code":"CPU","language_family_name":"Asheninka, Pichis","language_family_english":"Asheninka, Pichis","language_family_iso":"cpu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-07 20:27:15","created_on":"2018-08-17 15:28:43","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CPUWBTN1DA\/CPUWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"CPUWBTN2DA","fcbh_id":"CPUWBTN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CPU","language_name":"Asheninka, Pichis","language_english":"Asheninka, Pichis","language_iso":"cpu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pichis Ash\u00e9ninka","language_family_code":"CPU","language_family_name":"Asheninka, Pichis","language_family_english":"Asheninka, Pichis","language_family_iso":"cpu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-07 20:27:38","created_on":"2018-08-17 14:36:51","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CPUWBTN2DA\/CPUWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"CR1PDRN2ET","fcbh_id":"CR1PDRN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CR1","language_name":"Cora, Presidio de los Reyes","language_english":"Cora, Presidio de los Reyes","language_iso":"crn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"El Nayar Cora","language_family_code":"CRN","language_family_name":"Cora, El Nayar","language_family_english":"Cora, El Nayar","language_family_iso":"crn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PDR","version_name":"Presidio de los Reyes","version_english":"Presidio de los Reyes","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 18:10:36","created_on":"2012-06-22 16:11:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CR1PDRN2ET\/CR1PDRN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CRHIBTN1DA","fcbh_id":"CRHIBTN1DA","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CRH","language_name":"Crimean Tatar","language_english":"Crimean Tatar","language_iso":"crh","language_iso_2B":"crh","language_iso_2T":"crh","language_iso_1":"","language_iso_name":"Crimean Tatar","language_family_code":"CRH","language_family_name":"Crimean Tatar","language_family_english":"Crimean Tatar","language_family_iso":"crh","language_family_iso_2B":"crh","language_family_iso_2T":"crh","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-19 22:48:17","created_on":"2015-11-12 20:39:24","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CRHIBTN1DA\/CRHIBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CRHIBTN1ET","fcbh_id":"CRHIBTN1ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CRH","language_name":"Crimean Tatar","language_english":"Crimean Tatar","language_iso":"crh","language_iso_2B":"crh","language_iso_2T":"crh","language_iso_1":"","language_iso_name":"Crimean Tatar","language_family_code":"CRH","language_family_name":"Crimean Tatar","language_family_english":"Crimean Tatar","language_family_iso":"crh","language_family_iso_2B":"crh","language_family_iso_2T":"crh","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-05 20:43:07","created_on":"2016-08-05 19:27:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CRHIBTN1ET\/CRHIBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CRHIBTN2DA","fcbh_id":"CRHIBTN2DA","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CRH","language_name":"Crimean Tatar","language_english":"Crimean Tatar","language_iso":"crh","language_iso_2B":"crh","language_iso_2T":"crh","language_iso_1":"","language_iso_name":"Crimean Tatar","language_family_code":"CRH","language_family_name":"Crimean Tatar","language_family_english":"Crimean Tatar","language_family_iso":"crh","language_family_iso_2B":"crh","language_family_iso_2T":"crh","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-19 22:49:27","created_on":"2015-11-12 20:37:05","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CRHIBTN2DA\/CRHIBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CRHIBTN2ET","fcbh_id":"CRHIBTN2ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CRH","language_name":"Crimean Tatar","language_english":"Crimean Tatar","language_iso":"crh","language_iso_2B":"crh","language_iso_2T":"crh","language_iso_1":"","language_iso_name":"Crimean Tatar","language_family_code":"CRH","language_family_name":"Crimean Tatar","language_family_english":"Crimean Tatar","language_family_iso":"crh","language_family_iso_2B":"crh","language_family_iso_2T":"crh","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-02 19:25:26","created_on":"2016-03-02 19:04:10","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CRHIBTN2ET\/CRHIBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CRHIBTO1DA","fcbh_id":"CRHIBTO1DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CRH","language_name":"Crimean Tatar","language_english":"Crimean Tatar","language_iso":"crh","language_iso_2B":"crh","language_iso_2T":"crh","language_iso_1":"","language_iso_name":"Crimean Tatar","language_family_code":"CRH","language_family_name":"Crimean Tatar","language_family_english":"Crimean Tatar","language_family_iso":"crh","language_family_iso_2B":"crh","language_family_iso_2T":"crh","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-02-02 18:42:24","created_on":"2017-01-25 16:13:07","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CRHIBTO1DA\/CRHIBTO1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CRHIBTO1ET","fcbh_id":"CRHIBTO1ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CRH","language_name":"Crimean Tatar","language_english":"Crimean Tatar","language_iso":"crh","language_iso_2B":"crh","language_iso_2T":"crh","language_iso_1":"","language_iso_name":"Crimean Tatar","language_family_code":"CRH","language_family_name":"Crimean Tatar","language_family_english":"Crimean Tatar","language_family_iso":"crh","language_family_iso_2B":"crh","language_family_iso_2T":"crh","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2016-08-05 20:43:30","created_on":"2016-08-05 19:25:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CRHIBTO1ET\/CRHIBTO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CRHIBTO2DA","fcbh_id":"CRHIBTO2DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CRH","language_name":"Crimean Tatar","language_english":"Crimean Tatar","language_iso":"crh","language_iso_2B":"crh","language_iso_2T":"crh","language_iso_1":"","language_iso_name":"Crimean Tatar","language_family_code":"CRH","language_family_name":"Crimean Tatar","language_family_english":"Crimean Tatar","language_family_iso":"crh","language_family_iso_2B":"crh","language_family_iso_2T":"crh","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-02-03 17:50:47","created_on":"2017-01-25 16:13:58","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CRHIBTO2DA\/CRHIBTO2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CRHIBTO2ET","fcbh_id":"CRHIBTO2ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CRH","language_name":"Crimean Tatar","language_english":"Crimean Tatar","language_iso":"crh","language_iso_2B":"crh","language_iso_2T":"crh","language_iso_1":"","language_iso_name":"Crimean Tatar","language_family_code":"CRH","language_family_name":"Crimean Tatar","language_family_english":"Crimean Tatar","language_family_iso":"crh","language_family_iso_2B":"crh","language_family_iso_2T":"crh","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2016-03-02 19:39:43","created_on":"2016-03-02 19:26:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CRHIBTO2ET\/CRHIBTO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CRNWBTN2DA","fcbh_id":"CRNWBTN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CRN","language_name":"Cora, El Nayar","language_english":"Cora, El Nayar","language_iso":"crn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"El Nayar Cora","language_family_code":"CRN","language_family_name":"Cora, El Nayar","language_family_english":"Cora, El Nayar","language_family_iso":"crn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:07","created_on":"2010-09-14 17:01:15","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2CRNWBT","audio_zip_path":"CRNWBTN2DA\/CRNWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CRNWBTN2ET","fcbh_id":"CRNWBTN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CRN","language_name":"Cora, El Nayar","language_english":"Cora, El Nayar","language_iso":"crn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"El Nayar Cora","language_family_code":"CRN","language_family_name":"Cora, El Nayar","language_family_english":"Cora, El Nayar","language_family_iso":"crn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:35","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2CRNWBT","audio_zip_path":"CRNWBTN2ET\/CRNWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CSCSLVO2DV","fcbh_id":"CSCSLVO2DV","volume_name":"Spanish (Catalan) Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CSC","language_name":"Spanish (Catalan) Sign Language","language_english":"Spanish (Catalan) Sign Language","language_iso":"csc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Catalan Sign Language","language_family_code":"CSC","language_family_name":"Spanish (Catalan) Sign Language","language_family_english":"Spanish (Catalan) Sign Language","language_family_iso":"csc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLV","version_name":"Sign Language Version","version_english":"Sign Language Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2016-03-08 22:11:44","created_on":"2015-11-02 22:51:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CSCSLVO2DV\/CSCSLVO2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"CSKATBN2DA","fcbh_id":"CSKATBN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CSK","language_name":"Jola Kasa","language_english":"Jola Kasa","language_iso":"csk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Jola-Kasa","language_family_code":"CSK","language_family_name":"Jola Kasa","language_family_english":"Jola Kasa","language_family_iso":"csk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ATB","version_name":"Association Traduire la Bible and La Ligue Biblique","version_english":"Association Traduire la Bible and La Ligue Biblique","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:07","created_on":"2012-02-10 19:47:44","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"CSKATBN2DA\/CSKATBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CSKATBN2ET","fcbh_id":"CSKATBN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CSK","language_name":"Jola Kasa","language_english":"Jola Kasa","language_iso":"csk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Jola-Kasa","language_family_code":"CSK","language_family_name":"Jola Kasa","language_family_english":"Jola Kasa","language_family_iso":"csk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ATB","version_name":"Association Traduire la Bible and La Ligue Biblique","version_english":"Association Traduire la Bible and La Ligue Biblique","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:19","created_on":"2011-05-30 01:04:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CSKATBN2ET\/CSKATBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CSNSLVN2DV","fcbh_id":"CSNSLVN2DV","volume_name":"Colombian Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CSN","language_name":"Colombian Sign Language","language_english":"Colombian Sign Language","language_iso":"csn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Colombian Sign Language","language_family_code":"CSN","language_family_name":"Colombian Sign Language","language_family_english":"Colombian Sign Language","language_family_iso":"csn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLV","version_name":"Sign Language Version","version_english":"Sign Language Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-03-28 23:32:34","created_on":"2014-02-26 20:55:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CSNSLVN2DV\/CSNSLVN2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"CSNSLVO2DV","fcbh_id":"CSNSLVO2DV","volume_name":"Colombian Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CSN","language_name":"Colombian Sign Language","language_english":"Colombian Sign Language","language_iso":"csn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Colombian Sign Language","language_family_code":"CSN","language_family_name":"Colombian Sign Language","language_family_english":"Colombian Sign Language","language_family_iso":"csn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLV","version_name":"Sign Language Version","version_english":"Sign Language Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2014-12-10 15:43:37","created_on":"2014-02-26 20:56:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CSNSLVO2DV\/CSNSLVO2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"CSOTBLN1DA","fcbh_id":"CSOTBLN1DA","volume_name":"1986 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CSO","language_name":"Chinanteco de Sochiapan","language_english":"Chinanteco de Sochiapan","language_iso":"cso","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sochiapam Chinantec","language_family_code":"CSO","language_family_name":"Chinanteco de Sochiapan","language_family_english":"Chinanteco de Sochiapan","language_family_iso":"cso","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:08","created_on":"2010-09-14 17:01:24","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1CSOTBL","audio_zip_path":"CSOTBLN1DA\/CSOTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CSOTBLN1ET","fcbh_id":"CSOTBLN1ET","volume_name":"1986 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CSO","language_name":"Chinanteco de Sochiapan","language_english":"Chinanteco de Sochiapan","language_iso":"cso","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sochiapam Chinantec","language_family_code":"CSO","language_family_name":"Chinanteco de Sochiapan","language_family_english":"Chinanteco de Sochiapan","language_family_iso":"cso","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:51","created_on":"2010-11-25 20:49:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1CSOTBL","audio_zip_path":"CSOTBLN1ET\/CSOTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CSOTBLN2DA","fcbh_id":"CSOTBLN2DA","volume_name":"1986 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CSO","language_name":"Chinanteco de Sochiapan","language_english":"Chinanteco de Sochiapan","language_iso":"cso","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sochiapam Chinantec","language_family_code":"CSO","language_family_name":"Chinanteco de Sochiapan","language_family_english":"Chinanteco de Sochiapan","language_family_iso":"cso","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:38:41","created_on":"2012-05-15 20:39:34","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"CSOTBLN2DA\/CSOTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CSOTBLN2ET","fcbh_id":"CSOTBLN2ET","volume_name":"1986 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CSO","language_name":"Chinanteco de Sochiapan","language_english":"Chinanteco de Sochiapan","language_iso":"cso","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sochiapam Chinantec","language_family_code":"CSO","language_family_name":"Chinanteco de Sochiapan","language_family_english":"Chinanteco de Sochiapan","language_family_iso":"cso","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:23","created_on":"2012-06-07 16:27:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CSOTBLN2ET\/CSOTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CT1TEVN2DA","fcbh_id":"CT1TEVN2DA","volume_name":"Revised Today's English Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CT1","language_name":"Chin, Tiddim","language_english":"Chin, Tedim","language_iso":"ct1","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tedim Chin","language_family_code":"CT1","language_family_name":"Chin, Tiddim","language_family_english":"Chin, Tedim","language_family_iso":"ctd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TEV","version_name":"Revised Today's English Version","version_english":"Revised Today's English Version","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2015-09-11 15:51:34","created_on":"2012-04-18 16:01:38","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"CT1TEVN2DA\/CT1TEVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CT1TEVN2ET","fcbh_id":"CT1TEVN2ET","volume_name":"Revised Today's English Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CT1","language_name":"Chin, Tiddim","language_english":"Chin, Tedim","language_iso":"ct1","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tedim Chin","language_family_code":"CT1","language_family_name":"Chin, Tiddim","language_family_english":"Chin, Tedim","language_family_iso":"ctd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TEV","version_name":"Revised Today's English Version","version_english":"Revised Today's English Version","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2018-05-15 20:17:07","created_on":"2012-10-01 20:10:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CT1TEVN2ET\/CT1TEVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CT1TEVO2ET","fcbh_id":"CT1TEVO2ET","volume_name":"Revised Today's English Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CT1","language_name":"Chin, Tiddim","language_english":"Chin, Tedim","language_iso":"ct1","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"","language_family_code":"CT1","language_family_name":"Chin, Tiddim","language_family_english":"Chin, Tedim","language_family_iso":"ctd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TEV","version_name":"Revised Today's English Version","version_english":"Revised Today's English Version","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2018-05-15 20:34:17","created_on":"2013-08-05 17:41:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CT1TEVO2ET\/CT1TEVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CTDBIVN2ET","fcbh_id":"CTDBIVN2ET","volume_name":"Zokam Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CTD","language_name":"Zokam","language_english":"Chin, Tedim","language_iso":"ctd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tedim Chin","language_family_code":"CTD","language_family_name":"Zokam","language_family_english":"Chin, Tedim","language_family_iso":"ctd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-09-27 16:17:23","created_on":"2016-09-27 15:58:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CTDBIVN2ET\/CTDBIVN2ET.zip","font":{"id":"38","name":"Verdana","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Verdana","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CTDZIVN2DA","fcbh_id":"CTDZIVN2DA","volume_name":"1994 Zokam International Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CTD","language_name":"Zokam","language_english":"Chin, Tedim","language_iso":"ctd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tedim Chin","language_family_code":"CTD","language_family_name":"Zokam","language_family_english":"Chin, Tedim","language_family_iso":"ctd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ZIV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-09-11 16:00:48","created_on":"2010-09-14 17:01:16","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2CTDZIV","audio_zip_path":"CTDZIVN2DA\/CTDZIVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CTDZIVN2ET","fcbh_id":"CTDZIVN2ET","volume_name":"1994 Zokam International Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CTD","language_name":"Zokam","language_english":"Chin, Tedim","language_iso":"ctd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tedim Chin","language_family_code":"CTD","language_family_name":"Zokam","language_family_english":"Chin, Tedim","language_family_iso":"ctd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ZIV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-23 16:02:56","created_on":"2011-05-09 23:14:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CTDZIVN2ET\/CTDZIVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CTGBSBN1DA","fcbh_id":"CTGBSBN1DA","volume_name":"BSB Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CTG","language_name":"Chittagonian, Mussolmani","language_english":"Chittagonian, Mussolmani","language_iso":"ctg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chittagonian","language_family_code":"CTG","language_family_name":"Chittagonian, Mussolmani","language_family_english":"Chittagonian, Mussolmani","language_family_iso":"ctg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-26 22:42:24","created_on":"2018-10-26 22:19:53","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CTGBSBN1DA\/CTGBSBN1DA.zip","font":{"id":"83","name":"Nirmala","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Nirmala","files":{"zip":"all.zip","ttf":"Nirmala.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2017 Microsoft Corporation","url":"https:\/\/docs.microsoft.com\/en-us\/typography\/"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download"],"resolution":[]},{"dam_id":"CTGBSBN2DA","fcbh_id":"CTGBSBN2DA","volume_name":"BSB Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CTG","language_name":"Chittagonian, Mussolmani","language_english":"Chittagonian, Mussolmani","language_iso":"ctg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chittagonian","language_family_code":"CTG","language_family_name":"Chittagonian, Mussolmani","language_family_english":"Chittagonian, Mussolmani","language_family_iso":"ctg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-26 22:42:42","created_on":"2018-10-26 22:17:00","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CTGBSBN2DA\/CTGBSBN2DA.zip","font":{"id":"83","name":"Nirmala","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Nirmala","files":{"zip":"all.zip","ttf":"Nirmala.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2017 Microsoft Corporation","url":"https:\/\/docs.microsoft.com\/en-us\/typography\/"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download"],"resolution":[]},{"dam_id":"CTPTBLN1ET","fcbh_id":"CTPTBLN1ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CTP","language_name":"Chatino, Zona Alta Occidental","language_english":"Chatino, Western Highland","language_iso":"ctp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Highland Chatino","language_family_code":"CTP","language_family_name":"Chatino, Zona Alta Occidental","language_family_english":"Chatino, Western Highland","language_family_iso":"ctp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:51","created_on":"2013-09-23 16:55:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CTPTBLN1ET\/CTPTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CTUBSMN2DA","fcbh_id":"CTUBSMN2DA","volume_name":"BSM Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CTU","language_name":"Chol Tumbala","language_english":"Chol Tumbala","language_iso":"ctu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chol","language_family_code":"CTU","language_family_name":"Chol Tumbala","language_family_english":"Chol Tumbala","language_family_iso":"ctu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:16","created_on":"2015-07-02 20:19:28","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"CTUBSMN2DA\/CTUBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CUBWBTN2ET","fcbh_id":"CUBWBTN2ET","volume_name":"1991 Reprint Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CUB","language_name":"Cubeo","language_english":"Cubeo","language_iso":"cub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cubeo","language_family_code":"CUB","language_family_name":"Cubeo","language_family_english":"Cubeo","language_family_iso":"cub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:24","created_on":"2011-10-18 21:23:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CUBWBTN2ET\/CUBWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CUCTBLN2DA","fcbh_id":"CUCTBLN2DA","volume_name":"1985 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CUC","language_name":"Chinanteco de Usila","language_english":"Chinanteco de Usila","language_iso":"cuc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Usila Chinantec","language_family_code":"CUC","language_family_name":"Chinanteco de Usila","language_family_english":"Chinanteco de Usila","language_family_iso":"cuc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:09","created_on":"2013-09-03 21:51:13","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"CUCTBLN2DA\/CUCTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CUCTBLN2ET","fcbh_id":"CUCTBLN2ET","volume_name":"1985 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CUC","language_name":"Chinanteco de Usila","language_english":"Chinanteco de Usila","language_iso":"cuc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Usila Chinantec","language_family_code":"CUC","language_family_name":"Chinanteco de Usila","language_family_english":"Chinanteco de Usila","language_family_iso":"cuc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:49","created_on":"2012-07-06 17:31:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CUCTBLN2ET\/CUCTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CUCTBLS1DA","fcbh_id":"CUCTBLS1DA","volume_name":"Story - Old Testament -1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CUC","language_name":"Chinanteco de Usila","language_english":"Chinanteco de Usila","language_iso":"cuc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Usila Chinantec","language_family_code":"CUC","language_family_name":"Chinanteco de Usila","language_family_english":"Chinanteco de Usila","language_family_iso":"cuc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-01-22 20:41:59","created_on":"2016-02-18 15:41:50","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CUCTBLS1DA\/CUCTBLS1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CUIWBTN1DA","fcbh_id":"CUIWBTN1DA","volume_name":"1987 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CUI","language_name":"Cuiba","language_english":"Cuiba","language_iso":"cui","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cuiba","language_family_code":"CUI","language_family_name":"Cuiba","language_family_english":"Cuiba","language_family_iso":"cui","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-29 16:35:24","created_on":"2016-05-11 19:48:46","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CUIWBTN1DA\/CUIWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CUIWBTN1ET","fcbh_id":"CUIWBTN1ET","volume_name":"1987 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CUI","language_name":"Cuiba","language_english":"Cuiba","language_iso":"cui","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cuiba","language_family_code":"CUI","language_family_name":"Cuiba","language_family_english":"Cuiba","language_family_iso":"cui","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-29 16:35:55","created_on":"2016-05-11 19:45:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CUIWBTN1ET\/CUIWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CUIWBTN2DA","fcbh_id":"CUIWBTN2DA","volume_name":"1987 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CUI","language_name":"Cuiba","language_english":"Cuiba","language_iso":"cui","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cuiba","language_family_code":"CUI","language_family_name":"Cuiba","language_family_english":"Cuiba","language_family_iso":"cui","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:06","created_on":"2016-05-11 20:02:43","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"CUIWBTN2DA\/CUIWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CUIWBTN2ET","fcbh_id":"CUIWBTN2ET","volume_name":"1987 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CUI","language_name":"Cuiba","language_english":"Cuiba","language_iso":"cui","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cuiba","language_family_code":"CUI","language_family_name":"Cuiba","language_family_english":"Cuiba","language_family_iso":"cui","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-29 16:41:32","created_on":"2014-02-24 16:26:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CUIWBTN2ET\/CUIWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CUKNVSN2DA","fcbh_id":"CUKNVSN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CUK","language_name":"Kuna San Blas","language_english":"Kuna San Blas","language_iso":"cuk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Blas Kuna","language_family_code":"CUK","language_family_name":"Kuna San Blas","language_family_english":"Kuna San Blas","language_family_iso":"cuk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 20:31:09","created_on":"2010-09-14 17:00:05","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CUKNVS","audio_zip_path":"CUKNVSN2DA\/CUKNVSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CUKNVSN2ET","fcbh_id":"CUKNVSN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CUK","language_name":"Kuna San Blas","language_english":"Kuna San Blas","language_iso":"cuk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Blas Kuna","language_family_code":"CUK","language_family_name":"Kuna San Blas","language_family_english":"Kuna San Blas","language_family_iso":"cuk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 21:14:41","created_on":"2010-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2CUKNVS","audio_zip_path":"CUKNVSN2ET\/CUKNVSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CULWBTN1DA","fcbh_id":"CULWBTN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CUL","language_name":"Culina","language_english":"Culina","language_iso":"cul","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Culina","language_family_code":"CUL","language_family_name":"Culina","language_family_english":"Culina","language_family_iso":"cul","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-13 16:44:34","created_on":"2016-04-29 19:53:36","right_to_left":"false","num_art":"5","num_sample_audio":"0","sku":"","audio_zip_path":"CULWBTN1DA\/CULWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CULWBTN1ET","fcbh_id":"CULWBTN1ET","volume_name":"2014 Wycliffe Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CUL","language_name":"Culina","language_english":"Culina","language_iso":"cul","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Culina","language_family_code":"CUL","language_family_name":"Culina","language_family_english":"Culina","language_family_iso":"cul","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-08 14:43:49","created_on":"2016-05-10 17:51:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CULWBTN1ET\/CULWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CULWBTN2DA","fcbh_id":"CULWBTN2DA","volume_name":"2014 Wycliffe Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CUL","language_name":"Culina","language_english":"Culina","language_iso":"cul","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Culina","language_family_code":"CUL","language_family_name":"Culina","language_family_english":"Culina","language_family_iso":"cul","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-08 17:21:12","created_on":"2016-04-29 19:59:04","right_to_left":"false","num_art":"5","num_sample_audio":"0","sku":"","audio_zip_path":"CULWBTN2DA\/CULWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CULWBTN2ET","fcbh_id":"CULWBTN2ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CUL","language_name":"Culina","language_english":"Culina","language_iso":"cul","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Culina","language_family_code":"CUL","language_family_name":"Culina","language_family_english":"Culina","language_family_iso":"cul","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-14 15:23:29","created_on":"2015-04-30 20:13:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CULWBTN2ET\/CULWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CWEPBTN2ET","fcbh_id":"CWEPBTN2ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CWE","language_name":"Kwere","language_english":"Kwere","language_iso":"cwe","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kwere","language_family_code":"CWE","language_family_name":"Kwere","language_family_english":"Kwere","language_family_iso":"cwe","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-17 19:48:18","created_on":"2017-04-17 17:59:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CWEPBTN2ET\/CWEPBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"CWTATBN2DA","fcbh_id":"CWTATBN2DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CWT","language_name":"Kwatay","language_english":"Kwatay","language_iso":"cwt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kuwaataay","language_family_code":"CWT","language_family_name":"Kwatay","language_family_english":"Kwatay","language_family_iso":"cwt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ATB","version_name":"Association Traduire la Bible and La Ligue Biblique","version_english":"Association Traduire la Bible and La Ligue Biblique","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:10","created_on":"2012-02-13 16:34:21","right_to_left":"false","num_art":"0","num_sample_audio":"1","sku":"","audio_zip_path":"CWTATBN2DA\/CWTATBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CWTATBN2ET","fcbh_id":"CWTATBN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CWT","language_name":"Kwatay","language_english":"Kwatay","language_iso":"cwt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kuwaataay","language_family_code":"CWT","language_family_name":"Kwatay","language_family_english":"Kwatay","language_family_iso":"cwt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ATB","version_name":"Association Traduire la Bible and La Ligue Biblique","version_english":"Association Traduire la Bible and La Ligue Biblique","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:11","created_on":"2011-08-03 20:01:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CWTATBN2ET\/CWTATBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CYAAVVN2DA","fcbh_id":"CYAAVVN2DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CYA","language_name":"Chatino Nopala","language_english":"Chatino Nopala","language_iso":"cya","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nopala Chatino","language_family_code":"CYA","language_family_name":"Chatino Nopala","language_family_english":"Chatino Nopala","language_family_iso":"cya","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AVV","version_name":"Audio Visuales para Am\u00e9rica Latina","version_english":"Audio Visuales para America Latina","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:11","created_on":"2012-03-12 16:40:52","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"CYAAVVN2DA\/CYAAVVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"CYAAVVN2ET","fcbh_id":"CYAAVVN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CYA","language_name":"Chatino Nopala","language_english":"Chatino Nopala","language_iso":"cya","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nopala Chatino","language_family_code":"CYA","language_family_name":"Chatino Nopala","language_family_english":"Chatino Nopala","language_family_iso":"cya","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AVV","version_name":"Audio Visuales para Am\u00e9rica Latina","version_english":"Audio Visuales para America Latina","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2012-03-23 19:14:43","created_on":"2012-03-23 17:35:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CYAAVVN2ET\/CYAAVVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CZCCETN2DA","fcbh_id":"CZCCETN2DA","volume_name":"1985 Ecumenical Translation","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"CZC","language_name":"\u010desky","language_english":"Czech","language_iso":"ces","language_iso_2B":"cze","language_iso_2T":"ces","language_iso_1":"cs","language_iso_name":"Czech","language_family_code":"CZC","language_family_name":"\u010desky","language_family_english":"Czech","language_family_iso":"ces","language_family_iso_2B":"cze","language_family_iso_2T":"ces","language_family_iso_1":"cs","version_code":"CET","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:34","created_on":"2010-09-14 17:00:06","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CZCCET","audio_zip_path":"CZCCETN2DA\/CZCCETN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"CZCK13N2ET","fcbh_id":"CZCK13N2ET","volume_name":"1613 Czech Bible Kralicka","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CZC","language_name":"\u010desky","language_english":"Czech","language_iso":"ces","language_iso_2B":"cze","language_iso_2T":"ces","language_iso_1":"cs","language_iso_name":"Czech","language_family_code":"CZC","language_family_name":"\u010desky","language_family_english":"Czech","language_family_iso":"ces","language_family_iso_2B":"cze","language_family_iso_2T":"ces","language_family_iso_1":"cs","version_code":"K13","version_name":"Czech Bible Kralicka (1613)","version_english":"Czech Bible Kralicka (1613)","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-16 15:29:28","created_on":"2010-09-14 17:01:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2CZCK13","audio_zip_path":"CZCK13N2ET\/CZCK13N2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CZCK13O2ET","fcbh_id":"CZCK13O2ET","volume_name":"1613 Czech Bible Kralicka","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CZC","language_name":"\u010desky","language_english":"Czech","language_iso":"ces","language_iso_2B":"cze","language_iso_2T":"ces","language_iso_1":"cs","language_iso_name":"Czech","language_family_code":"CZC","language_family_name":"\u010desky","language_family_english":"Czech","language_family_iso":"ces","language_family_iso_2B":"cze","language_family_iso_2T":"ces","language_family_iso_1":"cs","version_code":"K13","version_name":"Czech Bible Kralicka (1613)","version_english":"Czech Bible Kralicka (1613)","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2015-10-16 15:29:28","created_on":"2010-09-14 17:01:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"O2CZCK13","audio_zip_path":"CZCK13O2ET\/CZCK13O2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"CZTBIVN2ET","fcbh_id":"CZTBIVN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"CZT","language_name":"Chin Zotung","language_english":"Chin Zotung","language_iso":"czt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zotung Chin","language_family_code":"CZT","language_family_name":"Chin Zotung","language_family_english":"Chin Zotung","language_family_iso":"czt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:21","created_on":"2015-08-10 19:33:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"CZTBIVN2ET\/CZTBIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DA1ESTN2DA","fcbh_id":"DAFESTN2DA","volume_name":"EAST: 1991 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DA1","language_name":"Dan, East","language_english":"Dan, East","language_iso":"daf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dan","language_family_code":"DAF","language_family_name":"Dan","language_family_english":"Dan","language_family_iso":"daf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"EST","version_name":"East","version_english":"East","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:13","created_on":"2010-09-14 17:01:02","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2DAFEST","audio_zip_path":"DA1ESTN2DA\/DA1ESTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DA1ESTN2ET","fcbh_id":"DAFESTN2ET","volume_name":"EAST: 1991 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DA1","language_name":"Dan, East","language_english":"Dan, East","language_iso":"daf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dan","language_family_code":"DAF","language_family_name":"Dan","language_family_english":"Dan","language_family_iso":"daf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"EST","version_name":"East","version_english":"East","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:25","created_on":"2010-11-25 20:49:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2DAFEST","audio_zip_path":"DA1ESTN2ET\/DA1ESTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DA2WSTN2DA","fcbh_id":"DAFWSTN2DA","volume_name":"WEST: 1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DA2","language_name":"Dan, West","language_english":"Dan, West","language_iso":"daf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dan","language_family_code":"DAF","language_family_name":"Dan","language_family_english":"Dan","language_family_iso":"daf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WST","version_name":"West ","version_english":"West ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-12 20:07:00","created_on":"2010-09-14 17:01:07","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2DAFWST","audio_zip_path":"DA2WSTN2DA\/DA2WSTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DA2WSTN2ET","fcbh_id":"DAFWSTN2ET","volume_name":"WEST: 1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DA2","language_name":"Dan, West","language_english":"Dan, West","language_iso":"daf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dan","language_family_code":"DAF","language_family_name":"Dan","language_family_english":"Dan","language_family_iso":"daf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WST","version_name":"West ","version_english":"West ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:52","created_on":"2010-11-25 20:49:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2DAFWST","audio_zip_path":"DA2WSTN2ET\/DA2WSTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DAAWYIN2DA","fcbh_id":"DAAWYIN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DAA","language_name":"Dangal\u00e9at","language_english":"Dangaleat","language_iso":"daa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dangal\u00e9at","language_family_code":"DAA","language_family_name":"Dangal\u00e9at","language_family_english":"Dangaleat","language_family_iso":"daa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:14","created_on":"2013-08-19 20:31:58","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"DAAWYIN2DA\/DAAWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DAAWYIN2ET","fcbh_id":"DAAWYIN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DAA","language_name":"Dangal\u00e9at","language_english":"Dangaleat","language_iso":"daa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dangal\u00e9at","language_family_code":"DAA","language_family_name":"Dangal\u00e9at","language_family_english":"Dangaleat","language_family_iso":"daa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:24","created_on":"2012-05-09 17:31:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DAAWYIN2ET\/DAAWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DADWBTN2ET","fcbh_id":"DADWBTN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DAD","language_name":"Marik","language_english":"Marik","language_iso":"dad","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Marik","language_family_code":"DAD","language_family_name":"Marik","language_family_english":"Marik","language_family_iso":"dad","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 19:21:29","created_on":"2014-05-08 18:30:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DADWBTN2ET\/DADWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DAGBSGN2DA","fcbh_id":"DAGBSGN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"DAG","language_name":"Dagbani","language_english":"Dagbani","language_iso":"dag","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dagbani","language_family_code":"DAG","language_family_name":"Dagbani","language_family_english":"Dagbani","language_family_iso":"dag","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:55","created_on":"2010-09-14 17:00:06","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2DAGBSG","audio_zip_path":"DAGBSGN2DA\/DAGBSGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DAHPNGN1ET","fcbh_id":"DAHPNGN1ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DAH","language_name":"Gwahatike","language_english":"Gwahatike","language_iso":"dah","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gwahatike","language_family_code":"DAH","language_family_name":"Gwahatike","language_family_english":"Gwahatike","language_family_iso":"dah","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-16 16:53:32","created_on":"2017-05-26 17:29:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DAHPNGN1ET\/DAHPNGN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DAHPNGN2DA","fcbh_id":"DAHPNGN2DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DAH","language_name":"Gwahatike","language_english":"Gwahatike","language_iso":"dah","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gwahatike","language_family_code":"DAH","language_family_name":"Gwahatike","language_family_english":"Gwahatike","language_family_iso":"dah","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-16 16:53:33","created_on":"2017-05-26 17:37:12","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DAHPNGN2DA\/DAHPNGN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DAHPNGN2ET","fcbh_id":"DAHPNGN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DAH","language_name":"Gwahatike","language_english":"Gwahatike","language_iso":"dah","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gwahatike","language_family_code":"DAH","language_family_name":"Gwahatike","language_family_english":"Gwahatike","language_family_iso":"dah","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-19 16:01:45","created_on":"2014-04-16 16:03:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DAHPNGN2ET\/DAHPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DAND33N2ET","fcbh_id":"DAND33N2ET","volume_name":"1933 Danish Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DAN","language_name":"Dansk","language_english":"Danish","language_iso":"dan","language_iso_2B":"dan","language_iso_2T":"dan","language_iso_1":"da","language_iso_name":"Danish","language_family_code":"DAN","language_family_name":"Dansk","language_family_english":"Danish","language_family_iso":"dan","language_family_iso_2B":"dan","language_family_iso_2T":"dan","language_family_iso_1":"da","version_code":"D33","version_name":"Danish Bible 1933","version_english":"Danish Bible 1933","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-16 15:29:30","created_on":"2010-09-14 17:01:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2DAND33","audio_zip_path":"DAND33N2ET\/DAND33N2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DAND33O2ET","fcbh_id":"DAND33O2ET","volume_name":"1933 Danish Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DAN","language_name":"Dansk","language_english":"Danish","language_iso":"dan","language_iso_2B":"dan","language_iso_2T":"dan","language_iso_1":"da","language_iso_name":"Danish","language_family_code":"DAN","language_family_name":"Dansk","language_family_english":"Danish","language_family_iso":"dan","language_family_iso_2B":"dan","language_family_iso_2T":"dan","language_family_iso_1":"da","version_code":"D33","version_name":"Danish Bible 1933","version_english":"Danish Bible 1933","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2015-10-16 15:29:31","created_on":"2010-09-14 17:01:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"O2DAND33","audio_zip_path":"DAND33O2ET\/DAND33O2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DBQWYIN1DA","fcbh_id":"DBQWYIN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"DBQ","language_name":"Daba","language_english":"Daba","language_iso":"dbq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Daba","language_family_code":"DBQ","language_family_name":"Daba","language_family_english":"Daba","language_family_iso":"dbq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:28:07","created_on":"2015-12-30 20:59:10","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DBQWYIN1DA\/DBQWYIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DBQWYIN1ET","fcbh_id":"DBQWYIN1ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"DBQ","language_name":"Daba","language_english":"Daba","language_iso":"dbq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Daba","language_family_code":"DBQ","language_family_name":"Daba","language_family_english":"Daba","language_family_iso":"dbq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-30 19:32:17","created_on":"2018-10-30 19:02:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DBQWYIN1ET\/DBQWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DBQWYIN2DA","fcbh_id":"DBQWYIN2DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"DBQ","language_name":"Daba","language_english":"Daba","language_iso":"dbq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Daba","language_family_code":"DBQ","language_family_name":"Daba","language_family_english":"Daba","language_family_iso":"dbq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:28:07","created_on":"2015-12-30 20:41:53","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DBQWYIN2DA\/DBQWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DBQWYIN2ET","fcbh_id":"DBQWYIN2ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"DBQ","language_name":"Daba","language_english":"Daba","language_iso":"dbq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Daba","language_family_code":"DBQ","language_family_name":"Daba","language_family_english":"Daba","language_family_iso":"dbq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-30 19:34:02","created_on":"2018-10-30 19:00:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DBQWYIN2ET\/DBQWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DDNBIVN2ET","fcbh_id":"DDNBIVN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DDN","language_name":"Dendi (Benin)","language_english":"Dendi (Benin)","language_iso":"ddn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dendi (Benin)","language_family_code":"DDN","language_family_name":"Dendi (Benin)","language_family_english":"Dendi (Benin)","language_family_iso":"ddn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:52:47","created_on":"2014-12-12 17:19:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DDNBIVN2ET\/DDNBIVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DESWBTN2DA","fcbh_id":"DESWBTN2DA","volume_name":"1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DES","language_name":"Desano","language_english":"Desano","language_iso":"des","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Desano","language_family_code":"DES","language_family_name":"Desano","language_family_english":"Desano","language_family_iso":"des","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-25 19:18:29","created_on":"2010-09-14 17:01:24","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2DESWBT","audio_zip_path":"DESWBTN2DA\/DESWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DESWBTN2ET","fcbh_id":"DESWBTN2ET","volume_name":"1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DES","language_name":"Desano","language_english":"Desano","language_iso":"des","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Desano","language_family_code":"DES","language_family_name":"Desano","language_family_english":"Desano","language_family_iso":"des","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:36","created_on":"2011-10-10 18:34:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DESWBTN2ET\/DESWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DESWBTS1DA","fcbh_id":"DESWBTS1DA","volume_name":"2013 - OT Selections","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DES","language_name":"Desano","language_english":"Desano","language_iso":"des","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Desano","language_family_code":"DES","language_family_name":"Desano","language_family_english":"Desano","language_family_iso":"des","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-01-22 20:41:59","created_on":"2017-01-23 17:27:34","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DESWBTS1DA\/DESWBTS1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["web_streaming","streaming_url","mp3_cd","digital_download"],"resolution":[]},{"dam_id":"DGABIVN2ET","fcbh_id":"DGABIVN2ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DGA","language_name":"Dagaare, Southern","language_english":"Dagaare, Southern","language_iso":"dga","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Dagaare","language_family_code":"DGA","language_family_name":"Dagaare, Southern","language_family_english":"Dagaare, Southern","language_family_iso":"dga","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-14 16:28:05","created_on":"2016-01-21 21:38:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DGABIVN2ET\/DGABIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DGABSGN1DA","fcbh_id":"DGABSGN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DGA","language_name":"Dagaare, Southern","language_english":"Dagaare, Southern","language_iso":"dga","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Dagaare","language_family_code":"DGA","language_family_name":"Dagaare, Southern","language_family_english":"Dagaare, Southern","language_family_iso":"dga","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-03 18:35:09","created_on":"2017-02-03 17:01:31","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DGABSGN1DA\/DGABSGN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DGABSGN2DA","fcbh_id":"DGABSGN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DGA","language_name":"Dagaare, Southern","language_english":"Dagaare, Southern","language_iso":"dga","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Dagaare","language_family_code":"DGA","language_family_name":"Dagaare, Southern","language_family_english":"Dagaare, Southern","language_family_iso":"dga","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-03 18:48:39","created_on":"2017-02-03 16:59:18","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DGABSGN2DA\/DGABSGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DGIABBN2DA","fcbh_id":"DGIABBN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DGI","language_name":"Dagara, Northern","language_english":"Dagara, Northern","language_iso":"dgi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Dagara","language_family_code":"DGI","language_family_name":"Dagara, Northern","language_family_english":"Dagara, Northern","language_family_iso":"dgi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-25 18:32:02","created_on":"2010-09-14 17:00:06","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2DGIABB","audio_zip_path":"DGIABBN2DA\/DGIABBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DGIABBN2ET","fcbh_id":"DGIABBN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DGI","language_name":"Dagara, Northern","language_english":"Dagara, Northern","language_iso":"dgi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Dagara","language_family_code":"DGI","language_family_name":"Dagara, Northern","language_family_english":"Dagara, Northern","language_family_iso":"dgi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:21","created_on":"2011-07-20 16:54:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DGIABBN2ET\/DGIABBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DGMBSGN2DA","fcbh_id":"DGMBSGN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"DGM","language_name":"Dangme","language_english":"Dangme","language_iso":"ada","language_iso_2B":"ada","language_iso_2T":"ada","language_iso_1":"","language_iso_name":"Adangme","language_family_code":"DGM","language_family_name":"Dangme","language_family_english":"Dangme","language_family_iso":"ada","language_family_iso_2B":"ada","language_family_iso_2T":"ada","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:43","created_on":"2010-09-14 17:00:06","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2DGMBSG","audio_zip_path":"DGMBSGN2DA\/DGMBSGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DGZWBTN2ET","fcbh_id":"DGZWBTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DGZ","language_name":"Daga","language_english":"Daga","language_iso":"dgz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Daga","language_family_code":"DGZ","language_family_name":"Daga","language_family_english":"Daga","language_family_iso":"dgz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:56:59","created_on":"2014-05-22 16:25:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DGZWBTN2ET\/DGZWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DIDWBTN1DA","fcbh_id":"DIDWBTN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DID","language_name":"Didinga","language_english":"Didinga","language_iso":"did","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Didinga","language_family_code":"DID","language_family_name":"Didinga","language_family_english":"Didinga","language_family_iso":"did","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:14","created_on":"2017-04-05 16:36:16","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DIDWBTN1DA\/DIDWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DIDWBTN2DA","fcbh_id":"DIDWBTN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DID","language_name":"Didinga","language_english":"Didinga","language_iso":"did","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Didinga","language_family_code":"DID","language_family_name":"Didinga","language_family_english":"Didinga","language_family_iso":"did","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:14","created_on":"2017-04-05 16:29:14","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DIDWBTN2DA\/DIDWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DIGTBLN1DA","fcbh_id":"DIGTBLN1DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DIG","language_name":"Digo","language_english":"Digo","language_iso":"dig","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Digo","language_family_code":"DIG","language_family_name":"Digo","language_family_english":"Digo","language_family_iso":"dig","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-18 15:37:54","created_on":"2010-09-14 17:01:54","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1DIGTBL","audio_zip_path":"DIGTBLN1DA\/DIGTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download","subsplash"],"resolution":[]},{"dam_id":"DIGTBLN1ET","fcbh_id":"DIGTBLN1ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DIG","language_name":"Digo","language_english":"Digo","language_iso":"dig","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Digo","language_family_code":"DIG","language_family_name":"Digo","language_family_english":"Digo","language_family_iso":"dig","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:10","created_on":"2010-09-14 17:01:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1DIGTBL","audio_zip_path":"DIGTBLN1ET\/DIGTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DIKTBLN2DA","fcbh_id":"DIKTBLN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DIK","language_name":"Dinka, Rek","language_english":"Dinka, Rek","language_iso":"dik","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southwestern Dinka","language_family_code":"DIK","language_family_name":"Dinka, Rek","language_family_english":"Dinka, Rek","language_family_iso":"dik","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:18","created_on":"2011-09-29 19:40:57","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"DIKTBLN2DA\/DIKTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DIKTBLN2ET","fcbh_id":"DIKTBLN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DIK","language_name":"Dinka, Rek","language_english":"Dinka, Rek","language_iso":"dik","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southwestern Dinka","language_family_code":"DIK","language_family_name":"Dinka, Rek","language_family_english":"Dinka, Rek","language_family_iso":"dik","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:40:42","created_on":"2011-10-07 20:39:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DIKTBLN2ET\/DIKTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DIPBSSN2DA","fcbh_id":"DIPBSSN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DIP","language_name":"Dinka, Padang","language_english":"Dinka, Padang","language_iso":"dip","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northeastern Dinka","language_family_code":"DIP","language_family_name":"Dinka, Padang","language_family_english":"Dinka, Padang","language_family_iso":"dip","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-05-22 16:14:58","created_on":"2011-10-06 16:57:45","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"DIPBSSN2DA\/DIPBSSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DJEABCN2DA","fcbh_id":"DJEABCN2DA","volume_name":"1977 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"DJE","language_name":"Zarma","language_english":"Zarma","language_iso":"dje","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zarma","language_family_code":"DJE","language_family_name":"Zarma","language_family_english":"Zarma","language_family_iso":"dje","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:48","created_on":"2010-09-14 17:00:06","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2DJEABC","audio_zip_path":"DJEABCN2DA\/DJEABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DJKWBTN2DA","fcbh_id":"DJKWBTN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DJK","language_name":"Aukaans","language_english":"Aukaans","language_iso":"djk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Maroon Creole","language_family_code":"DJK","language_family_name":"Aukaans","language_family_english":"Aukaans","language_family_iso":"djk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:05:17","created_on":"2010-09-14 17:00:07","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2DJKWBT","audio_zip_path":"DJKWBTN2DA\/DJKWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DJKWBTN2ET","fcbh_id":"DJKWBTN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DJK","language_name":"Aukaans","language_english":"Aukaans","language_iso":"djk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Maroon Creole","language_family_code":"DJK","language_family_name":"Aukaans","language_family_english":"Aukaans","language_family_iso":"djk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:53","created_on":"2010-09-14 17:00:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2DJKWBT","audio_zip_path":"DJKWBTN2ET\/DJKWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DLNBIVN2ET","fcbh_id":"DLNBIVN2ET","volume_name":"BIV Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DLN","language_name":"Darlong","language_english":"Darlong","language_iso":"dln","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Darlong","language_family_code":"DLN","language_family_name":"Darlong","language_family_english":"Darlong","language_family_iso":"dln","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-06 16:19:11","created_on":"2015-12-23 20:51:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DLNBIVN2ET\/DLNBIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DLNBIVO2ET","fcbh_id":"DLNBIVO2ET","volume_name":"BIV Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DLN","language_name":"Darlong","language_english":"Darlong","language_iso":"dln","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Darlong","language_family_code":"DLN","language_family_name":"Darlong","language_family_english":"Darlong","language_family_iso":"dln","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2015-12-23 21:18:05","created_on":"2015-12-23 20:54:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DLNBIVO2ET\/DLNBIVO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DNWLAIN1DA","fcbh_id":"DNWLAIN1DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DNW","language_name":"Lani","language_english":"Dani, Western","language_iso":"dnw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Dani","language_family_code":"DNW","language_family_name":"Lani","language_family_english":"Dani, Western","language_family_iso":"dnw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-18 21:53:14","created_on":"2017-04-18 21:34:16","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DNWLAIN1DA\/DNWLAIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DNWLAIN1ET","fcbh_id":"DNWLAIN1ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DNW","language_name":"Lani","language_english":"Dani, Western","language_iso":"dnw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Dani","language_family_code":"DNW","language_family_name":"Lani","language_family_english":"Dani, Western","language_family_iso":"dnw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 21:56:39","created_on":"2017-04-17 23:44:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DNWLAIN1ET\/DNWLAIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DNWLAIN2DA","fcbh_id":"DNWLAIN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DNW","language_name":"Lani","language_english":"Dani, Western","language_iso":"dnw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Dani","language_family_code":"DNW","language_family_name":"Lani","language_family_english":"Dani, Western","language_family_iso":"dnw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 21:56:39","created_on":"2017-04-17 23:46:39","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DNWLAIN2DA\/DNWLAIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DNWLAIN2ET","fcbh_id":"DNWLAIN2ET","volume_name":"1981 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DNW","language_name":"Lani","language_english":"Dani, Western","language_iso":"dnw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Dani","language_family_code":"DNW","language_family_name":"Lani","language_family_english":"Dani, Western","language_family_iso":"dnw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-04-20 13:58:06","created_on":"2015-07-20 17:26:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DNWLAIN2ET\/DNWLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DOBWBTN2ET","fcbh_id":"DOBWBTN2ET","volume_name":"1985 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DOB","language_name":"Dobu","language_english":"Dobu","language_iso":"dob","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dobu","language_family_code":"DOB","language_family_name":"Dobu","language_family_english":"Dobu","language_family_iso":"dob","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-13 14:45:09","created_on":"2014-06-04 18:24:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DOBWBTN2ET\/DOBWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DOMBECN2DA","fcbh_id":"DOMBECN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DOM","language_name":"Saint Lucian Creole","language_english":"Saint Lucian Creole","language_iso":"acf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Saint Lucian Creole French","language_family_code":"DOM","language_family_name":"Saint Lucian Creole","language_family_english":"Saint Lucian Creole","language_family_iso":"acf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BEC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:41:59","created_on":"2010-09-14 17:00:07","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2DOMBEC","audio_zip_path":"DOMBECN2DA\/DOMBECN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DOMBECN2ET","fcbh_id":"DOMBECN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DOM","language_name":"Saint Lucian Creole","language_english":"Saint Lucian Creole","language_iso":"acf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Saint Lucian Creole French","language_family_code":"DOM","language_family_name":"Saint Lucian Creole","language_family_english":"Saint Lucian Creole","language_family_iso":"acf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BEC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-02 22:12:13","created_on":"2016-03-02 22:06:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DOMBECN2ET\/DOMBECN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DOPBSBN2DA","fcbh_id":"DOPBSBN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DOP","language_name":"Lokpa","language_english":"Lokpa","language_iso":"dop","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lukpa","language_family_code":"DOP","language_family_name":"Lokpa","language_family_english":"Lokpa","language_family_iso":"dop","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-08-26 20:05:56","created_on":"2010-09-14 17:01:03","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2DOPBSB","audio_zip_path":"DOPBSBN2DA\/DOPBSBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DOPBSBN2ET","fcbh_id":"DOPBSBN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"DOP","language_name":"Lokpa","language_english":"Lokpa","language_iso":"dop","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lukpa","language_family_code":"DOP","language_family_name":"Lokpa","language_family_english":"Lokpa","language_family_iso":"dop","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 18:07:58","created_on":"2011-07-06 19:38:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DOPBSBN2ET\/DOPBSBN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","mp3_cd"],"resolution":[]},{"dam_id":"DOSATAN1DA","fcbh_id":"DOSATAN1DA","volume_name":"ANTBA Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DOS","language_name":"Dogos\u00e9","language_english":"Dogos\u00e9","language_iso":"dos","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dogos\u00e9","language_family_code":"DOS","language_family_name":"Dogos\u00e9","language_family_english":"Dogosé","language_family_iso":"dos","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ATA","version_name":"ATA","version_english":"ATA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-26 17:30:33","created_on":"2018-04-16 19:57:35","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DOSATAN1DA\/DOSATAN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DOSATAN1ET","fcbh_id":"DOSATAN1ET","volume_name":"ANTBA Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"DOS","language_name":"Dogos\u00e9","language_english":"Dogosé","language_iso":"dos","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dogos\u00e9","language_family_code":"DOS","language_family_name":"Dogos\u00e9","language_family_english":"Dogosé","language_family_iso":"dos","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ATA","version_name":"ATA","version_english":"ATA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-26 18:07:13","created_on":"2018-10-26 17:33:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DOSATAN1ET\/DOSATAN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DOSATAN2DA","fcbh_id":"DOSATAN2DA","volume_name":"ANTBA Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"DOS","language_name":"Dogos\u00e9","language_english":"Dogos\u00e9","language_iso":"dos","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dogos\u00e9","language_family_code":"DOS","language_family_name":"Dogos\u00e9","language_family_english":"Dogosé","language_family_iso":"dos","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ATA","version_name":"ATA","version_english":"ATA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-26 17:30:33","created_on":"2018-04-16 19:52:34","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DOSATAN2DA\/DOSATAN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DOSATAN2ET","fcbh_id":"DOSATAN2ET","volume_name":"ANTBA Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"DOS","language_name":"Dogos\u00e9","language_english":"Dogosé","language_iso":"dos","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dogos\u00e9","language_family_code":"DOS","language_family_name":"Dogos\u00e9","language_family_english":"Dogosé","language_family_iso":"dos","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ATA","version_name":"ATA","version_english":"ATA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-26 17:37:29","created_on":"2018-10-26 17:29:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DOSATAN2ET\/DOSATAN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DOWABCN2DA","fcbh_id":"DOWABCN2DA","volume_name":"1988 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"DOW","language_name":"Doyayo","language_english":"Doyayo","language_iso":"dow","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Doyayo","language_family_code":"DOW","language_family_name":"Doyayo","language_family_english":"Doyayo","language_family_iso":"dow","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:06","created_on":"2012-01-17 20:34:30","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"DOWABCN2DA\/DOWABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DSHBTLN1DA","fcbh_id":"DSHBTLN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DSH","language_name":"Daasanach","language_english":"Daasanach","language_iso":"dsh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Daasanach","language_family_code":"DSH","language_family_name":"Daasanach","language_family_english":"Daasanach","language_family_iso":"dsh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-09 14:51:38","created_on":"2016-03-02 14:50:52","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DSHBTLN1DA\/DSHBTLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DSHBTLN1ET","fcbh_id":"DSHBTLN1ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DSH","language_name":"Daasanach","language_english":"Daasanach","language_iso":"dsh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Daasanach","language_family_code":"DSH","language_family_name":"Daasanach","language_family_english":"Daasanach","language_family_iso":"dsh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-07 20:54:03","created_on":"2016-03-01 21:00:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DSHBTLN1ET\/DSHBTLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DSHBTLN2DA","fcbh_id":"DSHBTLN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DSH","language_name":"Daasanach","language_english":"Daasanach","language_iso":"dsh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Daasanach","language_family_code":"DSH","language_family_name":"Daasanach","language_family_english":"Daasanach","language_family_iso":"dsh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-09 14:53:36","created_on":"2016-03-02 14:48:37","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DSHBTLN2DA\/DSHBTLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DSHBTLN2ET","fcbh_id":"DSHBTLN2ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DSH","language_name":"Daasanach","language_english":"Daasanach","language_iso":"dsh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Daasanach","language_family_code":"DSH","language_family_name":"Daasanach","language_family_english":"Daasanach","language_family_iso":"dsh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-07 20:55:19","created_on":"2015-08-06 20:48:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DSHBTLN2ET\/DSHBTLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DTBWBTN2ET","fcbh_id":"DTBWBTN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DTB","language_name":"Kadazan, Labuk Kinabatangan","language_english":"Kadazan, Labuk Kinabatangan","language_iso":"dtb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Labuk-Kinabatangan Kadazan","language_family_code":"DTB","language_family_name":"Kadazan, Labuk Kinabatangan","language_family_english":"Kadazan, Labuk Kinabatangan","language_family_iso":"dtb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-05 17:02:49","created_on":"2017-06-20 22:01:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DTBWBTN2ET\/DTBWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DTPBSMN1DA","fcbh_id":"DTPBSMN1DA","volume_name":"Today's Dusun Version Revised","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DTP","language_name":"Dusun, Central","language_english":"Dusun, Central","language_iso":"dtp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Dusun","language_family_code":"DTP","language_family_name":"Dusun, Central","language_family_english":"Dusun, Central","language_family_iso":"dtp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-15 23:57:24","created_on":"2017-06-15 23:39:34","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DTPBSMN1DA\/DTPBSMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DTPBSMN1ET","fcbh_id":"DTPBSMN1ET","volume_name":"Today's Dusun Version Revised","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DTP","language_name":"Dusun, Central","language_english":"Dusun, Central","language_iso":"dtp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Dusun","language_family_code":"DTP","language_family_name":"Dusun, Central","language_family_english":"Dusun, Central","language_family_iso":"dtp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-15 23:55:43","created_on":"2017-06-15 23:43:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DTPBSMN1ET\/DTPBSMN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DTPBSMN2DA","fcbh_id":"DTPBSMN2DA","volume_name":"Today's Dusun Version Revised","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DTP","language_name":"Dusun, Central","language_english":"Dusun, Central","language_iso":"dtp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Dusun","language_family_code":"DTP","language_family_name":"Dusun, Central","language_family_english":"Dusun, Central","language_family_iso":"dtp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-16 00:02:05","created_on":"2017-06-15 23:32:47","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DTPBSMN2DA\/DTPBSMN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DTPBSMN2ET","fcbh_id":"DTPBSMN2ET","volume_name":"Today's Dusun Version Revised","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DTP","language_name":"Dusun, Central","language_english":"Dusun, Central","language_iso":"dtp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Dusun","language_family_code":"DTP","language_family_name":"Dusun, Central","language_family_english":"Dusun, Central","language_family_iso":"dtp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-15 23:49:03","created_on":"2016-02-12 00:29:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DTPBSMN2ET\/DTPBSMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DTPBSMO1ET","fcbh_id":"DTPBSMO1ET","volume_name":"Today's Dusun Version Revised","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DTP","language_name":"Dusun, Central","language_english":"Dusun, Central","language_iso":"dtp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Dusun","language_family_code":"DTP","language_family_name":"Dusun, Central","language_family_english":"Dusun, Central","language_family_iso":"dtp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-06-15 23:56:31","created_on":"2017-06-15 23:46:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DTPBSMO1ET\/DTPBSMO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DTPBSMO2ET","fcbh_id":"DTPBSMO2ET","volume_name":"Today's Dusun Version Revised","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DTP","language_name":"Dusun, Central","language_english":"Dusun, Central","language_iso":"dtp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Dusun","language_family_code":"DTP","language_family_name":"Dusun, Central","language_family_english":"Dusun, Central","language_family_iso":"dtp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-06-15 23:49:03","created_on":"2016-02-12 00:30:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DTPBSMO2ET\/DTPBSMO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DTSABMN2DA","fcbh_id":"DTSABMN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DTS","language_name":"Dogon, Toroso","language_english":"Dogon, Toroso","language_iso":"dts","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Toro So Dogon","language_family_code":"DTS","language_family_name":"Dogon, Toroso","language_family_english":"Dogon, Toroso","language_family_iso":"dts","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-26 15:04:29","created_on":"2010-09-14 17:00:07","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2DTSABM","audio_zip_path":"DTSABMN2DA\/DTSABMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DTSABMN2ET","fcbh_id":"DTSABMN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DTS","language_name":"Dogon, Toroso","language_english":"Dogon, Toroso","language_iso":"dts","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Toro So Dogon","language_family_code":"DTS","language_family_name":"Dogon, Toroso","language_family_english":"Dogon, Toroso","language_family_iso":"dts","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:19","created_on":"2011-07-15 22:24:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DTSABMN2ET\/DTSABMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DUAABCN2DA","fcbh_id":"DUAABCN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"DUA","language_name":"Douala","language_english":"Douala","language_iso":"dua","language_iso_2B":"dua","language_iso_2T":"dua","language_iso_1":"","language_iso_name":"Duala","language_family_code":"DUA","language_family_name":"Douala","language_family_english":"Douala","language_family_iso":"dua","language_family_iso_2B":"dua","language_family_iso_2T":"dua","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:04","created_on":"2010-11-25 20:50:14","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2DUAABC","audio_zip_path":"DUAABCN2DA\/DUAABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DUEWBTN2ET","fcbh_id":"DUEWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DUE","language_name":"Agta Umiray Dumaget","language_english":"Agta Umiray Dumaget","language_iso":"due","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Umiray Dumaget Agta","language_family_code":"DUE","language_family_name":"Agta Umiray Dumaget","language_family_english":"Agta Umiray Dumaget","language_family_iso":"due","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:45:39","created_on":"2015-11-03 17:56:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DUEWBTN2ET\/DUEWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DUGBTLN2DA","fcbh_id":"DUGBTLN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DUG","language_name":"Duruma","language_english":"Duruma","language_iso":"dug","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Duruma","language_family_code":"DUG","language_family_name":"Duruma","language_family_english":"Duruma","language_family_iso":"dug","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-09 14:55:27","created_on":"2014-02-27 20:15:26","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"DUGBTLN2DA\/DUGBTLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DUGBTLN2ET","fcbh_id":"DUGBTLN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DUG","language_name":"Duruma","language_english":"Duruma","language_iso":"dug","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Duruma","language_family_code":"DUG","language_family_name":"Duruma","language_family_english":"Duruma","language_family_iso":"dug","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-09 14:56:02","created_on":"2011-08-25 16:30:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DUGBTLN2ET\/DUGBTLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DUOWBTN2ET","fcbh_id":"DUOWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DUO","language_name":"Agta Dupaninan","language_english":"Agta Dupaninan","language_iso":"duo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dupaninan Agta","language_family_code":"DUO","language_family_name":"Agta Dupaninan","language_family_english":"Agta Dupaninan","language_family_iso":"duo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:45:38","created_on":"2015-11-03 17:52:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DUOWBTN2ET\/DUOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DURABCN2DA","fcbh_id":"DURABCN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"DUR","language_name":"Dii","language_english":"Dii","language_iso":"dur","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dii","language_family_code":"DUR","language_family_name":"Dii","language_family_english":"Dii","language_family_iso":"dur","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:06","created_on":"2011-08-15 16:44:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DURABCN2DA\/DURABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DWRBSEN2ET","fcbh_id":"DWRBSEN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"DWR","language_name":"Dawro","language_english":"Dawro","language_iso":"dwr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dawro","language_family_code":"DWR","language_family_name":"Dawro","language_family_english":"Dawro","language_family_iso":"dwr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-17 19:49:18","created_on":"2017-04-17 18:12:35","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DWRBSEN2ET\/DWRBSEN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DWRTBLN2DA","fcbh_id":"DWRTBLN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DWR","language_name":"Dawro","language_english":"Dawro","language_iso":"dwr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dawro","language_family_code":"DWR","language_family_name":"Dawro","language_family_english":"Dawro","language_family_iso":"dwr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:24","created_on":"2011-06-03 21:41:44","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"DWRTBLN2DA\/DWRTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DWRTBLN2ET","fcbh_id":"DWRTBLN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DWR","language_name":"Dawro","language_english":"Dawro","language_iso":"dwr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dawro","language_family_code":"DWR","language_family_name":"Dawro","language_family_english":"Dawro","language_family_iso":"dwr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:40:41","created_on":"2011-07-01 18:24:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DWRTBLN2ET\/DWRTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DWWWBTN2ET","fcbh_id":"DWWWBTN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DWW","language_name":"Dawawa","language_english":"Dawawa","language_iso":"dww","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dawawa","language_family_code":"DWW","language_family_name":"Dawawa","language_family_english":"Dawawa","language_family_iso":"dww","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-13 14:11:12","created_on":"2014-06-04 19:46:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DWWWBTN2ET\/DWWWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DYIIBSN2DA","fcbh_id":"DYIIBSN2DA","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DYI","language_name":"Senoufo, Djimini","language_english":"Senoufo, Djimini","language_iso":"dyi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Djimini Senoufo","language_family_code":"DYI","language_family_name":"Senoufo, Djimini","language_family_english":"Senoufo, Djimini","language_family_iso":"dyi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-28 20:16:47","created_on":"2014-01-28 19:39:49","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"DYIIBSN2DA\/DYIIBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DYIIBSN2ET","fcbh_id":"DYIIBSN2ET","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DYI","language_name":"Senoufo, Djimini","language_english":"Senoufo, Djimini","language_iso":"dyi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Djimini Senoufo","language_family_code":"DYI","language_family_name":"Senoufo, Djimini","language_family_english":"Senoufo, Djimini","language_family_iso":"dyi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:45:39","created_on":"2013-08-19 17:08:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DYIIBSN2ET\/DYIIBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DYOBSGN2DA","fcbh_id":"DYOBSGN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DYO","language_name":"Jola-Fogny","language_english":"Jola-Fogny","language_iso":"dyo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Jola-Fonyi","language_family_code":"DYO","language_family_name":"Jola-Fogny","language_family_english":"Jola-Fogny","language_family_iso":"dyo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-03-19 18:16:46","created_on":"2012-12-21 17:23:42","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"DYOBSGN2DA\/DYOBSGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DYOBSGN2ET","fcbh_id":"DYOBSGN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DYO","language_name":"Jola-Fogny","language_english":"Jola-Fogny","language_iso":"dyo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Jola-Fonyi","language_family_code":"DYO","language_family_name":"Jola-Fogny","language_family_english":"Jola-Fogny","language_family_iso":"dyo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:40:42","created_on":"2011-10-11 21:30:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DYOBSGN2ET\/DYOBSGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DYUBSBN2DA","fcbh_id":"DYUBSBN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DYU","language_name":"Jula","language_english":"Jula","language_iso":"dyu","language_iso_2B":"dyu","language_iso_2T":"dyu","language_iso_1":"","language_iso_name":"Dyula","language_family_code":"DYU","language_family_name":"Jula","language_family_english":"Jula","language_family_iso":"dyu","language_family_iso_2B":"dyu","language_family_iso_2T":"dyu","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 20:20:18","created_on":"2010-09-14 17:00:07","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2DYUBSB","audio_zip_path":"DYUBSBN2DA\/DYUBSBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DYUBSBN2ET","fcbh_id":"DYUBSBN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DYU","language_name":"Jula","language_english":"Jula","language_iso":"dyu","language_iso_2B":"dyu","language_iso_2T":"dyu","language_iso_1":"","language_iso_name":"Dyula","language_family_code":"DYU","language_family_name":"Jula","language_family_english":"Jula","language_family_iso":"dyu","language_family_iso_2B":"dyu","language_family_iso_2T":"dyu","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:54","created_on":"2011-07-01 16:22:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DYUBSBN2ET\/DYUBSBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"DYUWYIN1DA","fcbh_id":"DYUWYIN1DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DYU","language_name":"Jula","language_english":"Jula","language_iso":"dyu","language_iso_2B":"dyu","language_iso_2T":"dyu","language_iso_1":"","language_iso_name":"Dyula","language_family_code":"DYU","language_family_name":"Jula","language_family_english":"Jula","language_family_iso":"dyu","language_family_iso_2B":"dyu","language_family_iso_2T":"dyu","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-04-11 17:10:43","created_on":"2016-04-11 16:40:03","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DYUWYIN1DA\/DYUWYIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DYUWYIN1ET","fcbh_id":"DYUWYIN1ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DYU","language_name":"Jula","language_english":"Jula","language_iso":"dyu","language_iso_2B":"dyu","language_iso_2T":"dyu","language_iso_1":"","language_iso_name":"Dyula","language_family_code":"DYU","language_family_name":"Jula","language_family_english":"Jula","language_family_iso":"dyu","language_family_iso_2B":"dyu","language_family_iso_2T":"dyu","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-04-11 16:28:26","created_on":"2016-04-11 15:56:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DYUWYIN1ET\/DYUWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DYUWYIN2DA","fcbh_id":"DYUWYIN2DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DYU","language_name":"Jula","language_english":"Jula","language_iso":"dyu","language_iso_2B":"dyu","language_iso_2T":"dyu","language_iso_1":"","language_iso_name":"Dyula","language_family_code":"DYU","language_family_name":"Jula","language_family_english":"Jula","language_family_iso":"dyu","language_family_iso_2B":"dyu","language_family_iso_2T":"dyu","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-04-11 16:53:03","created_on":"2016-04-11 16:29:16","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"DYUWYIN2DA\/DYUWYIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"DYUWYIN2ET","fcbh_id":"DYUWYIN2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DYU","language_name":"Jula","language_english":"Jula","language_iso":"dyu","language_iso_2B":"dyu","language_iso_2T":"dyu","language_iso_1":"","language_iso_name":"Dyula","language_family_code":"DYU","language_family_name":"Jula","language_family_english":"Jula","language_family_iso":"dyu","language_family_iso_2B":"dyu","language_family_iso_2T":"dyu","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:23","created_on":"2014-12-24 17:56:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DYUWYIN2ET\/DYUWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","mp3_cd"],"resolution":[]},{"dam_id":"DYUWYIO1ET","fcbh_id":"DYUWYIO1ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DYU","language_name":"Jula","language_english":"Jula","language_iso":"dyu","language_iso_2B":"dyu","language_iso_2T":"dyu","language_iso_1":"","language_iso_name":"Dyula","language_family_code":"DYU","language_family_name":"Jula","language_family_english":"Jula","language_family_iso":"dyu","language_family_iso_2B":"dyu","language_family_iso_2T":"dyu","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2016-08-26 18:08:29","created_on":"2016-04-11 16:27:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DYUWYIO1ET\/DYUWYIO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"DYUWYIO2ET","fcbh_id":"DYUWYIO2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"DYU","language_name":"Jula","language_english":"Jula","language_iso":"dyu","language_iso_2B":"dyu","language_iso_2T":"dyu","language_iso_1":"","language_iso_name":"Dyula","language_family_code":"DYU","language_family_name":"Jula","language_family_english":"Jula","language_family_iso":"dyu","language_family_iso_2B":"dyu","language_family_iso_2T":"dyu","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2016-08-26 18:08:50","created_on":"2014-12-24 17:58:37","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DYUWYIO2ET\/DYUWYIO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","mp3_cd"],"resolution":[]},{"dam_id":"DZOEHPN2DA","fcbh_id":"DZOEHPN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DZO","language_name":"Dzongkha","language_english":"Dzongkha","language_iso":"dzo","language_iso_2B":"dzo","language_iso_2T":"dzo","language_iso_1":"dz","language_iso_name":"Dzongkha","language_family_code":"DZO","language_family_name":"Dzongkha","language_family_english":"Dzongkha","language_family_iso":"dzo","language_family_iso_2B":"dzo","language_family_iso_2T":"dzo","language_family_iso_1":"dz","version_code":"EHP","version_name":"Eastern Himalayan Language and Literacy Project","version_english":"Eastern Himalayan Language and Literacy Project","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:26","created_on":"2013-04-29 15:57:45","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"DZOEHPN2DA\/DZOEHPN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"DZOEHPN2ET","fcbh_id":"DZOEHPN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"DZO","language_name":"Dzongkha","language_english":"Dzongkha","language_iso":"dzo","language_iso_2B":"dzo","language_iso_2T":"dzo","language_iso_1":"dz","language_iso_name":"Dzongkha","language_family_code":"DZO","language_family_name":"Dzongkha","language_family_english":"Dzongkha","language_family_iso":"dzo","language_family_iso_2B":"dzo","language_family_iso_2T":"dzo","language_family_iso_1":"dz","version_code":"EHP","version_name":"Eastern Himalayan Language and Literacy Project","version_english":"Eastern Himalayan Language and Literacy Project","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-06-25 18:54:15","created_on":"2013-06-25 17:50:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"DZOEHPN2ET\/DZOEHPN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"EBRABCN2DA","fcbh_id":"EBRABCN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"EBR","language_name":"Ebri\u00e9","language_english":"Ebrie","language_iso":"ebr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ebri\u00e9","language_family_code":"EBR","language_family_name":"Ebri\u00e9","language_family_english":"Ebrie","language_family_iso":"ebr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:53","created_on":"2010-09-14 17:01:17","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2EBRABC","audio_zip_path":"EBRABCN2DA\/EBRABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"EBUBSKN2DA","fcbh_id":"EBUBSKN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"EBU","language_name":"Kiembu","language_english":"Kiembu","language_iso":"ebu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Embu","language_family_code":"EBU","language_family_name":"Kiembu","language_family_english":"Kiembu","language_family_iso":"ebu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSK","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:45","created_on":"2010-09-14 17:00:08","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2EBUBSK","audio_zip_path":"EBUBSKN2DA\/EBUBSKN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"EDOBSNN2DA","fcbh_id":"EDOBSNN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"EDO","language_name":"Edo","language_english":"Edo","language_iso":"bin","language_iso_2B":"bin","language_iso_2T":"bin","language_iso_1":"","language_iso_name":"Bini","language_family_code":"EDO","language_family_name":"Edo","language_family_english":"Edo","language_family_iso":"bin","language_family_iso_2B":"bin","language_family_iso_2T":"bin","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:40","created_on":"2010-09-14 17:00:08","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2EDOBSN","audio_zip_path":"EDOBSNN2DA\/EDOBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"EFKBSNN2DA","fcbh_id":"EFKBSNN2DA","volume_name":"1985 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"EFK","language_name":"Efik","language_english":"Efik","language_iso":"efi","language_iso_2B":"efi","language_iso_2T":"efi","language_iso_1":"","language_iso_name":"Efik","language_family_code":"EFK","language_family_name":"Efik","language_family_english":"Efik","language_family_iso":"efi","language_family_iso_2B":"efi","language_family_iso_2T":"efi","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:36","created_on":"2010-09-14 17:00:08","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2EFKBSN","audio_zip_path":"EFKBSNN2DA\/EFKBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"EGOBSNN2DA","fcbh_id":"EGOBSNN2DA","volume_name":"1974 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"EGO","language_name":"Eggon","language_english":"Eggon","language_iso":"ego","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eggon","language_family_code":"EGO","language_family_name":"Eggon","language_family_english":"Eggon","language_family_iso":"ego","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:42","created_on":"2010-09-14 17:00:08","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2EGOBSN","audio_zip_path":"EGOBSNN2DA\/EGOBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"EIPWBTN1DA","fcbh_id":"EIPWBTN1DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"EIP","language_name":"Bahasa Lik","language_english":"Eipomek","language_iso":"eip","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eipomek","language_family_code":"EIP","language_family_name":"Bahasa Lik","language_family_english":"Eipomek","language_family_iso":"eip","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-15 21:26:33","created_on":"2018-10-15 20:29:18","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"EIPWBTN1DA\/EIPWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"EIPWBTN2DA","fcbh_id":"EIPWBTN2DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"EIP","language_name":"Bahasa Lik","language_english":"Eipomek","language_iso":"eip","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eipomek","language_family_code":"EIP","language_family_name":"Bahasa Lik","language_family_english":"Eipomek","language_family_iso":"eip","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 18:28:32","created_on":"2018-10-15 20:12:30","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"EIPWBTN2DA\/EIPWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"EKAWYIN1DA","fcbh_id":"EKAWYIN1DA","volume_name":"2012 Scriptures Unlimited (revision)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"EKA","language_name":"Ekajuk","language_english":"Ekajuk","language_iso":"eka","language_iso_2B":"eka","language_iso_2T":"eka","language_iso_1":"","language_iso_name":"Ekajuk","language_family_code":"EKA","language_family_name":"Ekajuk","language_family_english":"Ekajuk","language_family_iso":"eka","language_family_iso_2B":"eka","language_family_iso_2T":"eka","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-06-09 16:35:27","created_on":"2015-04-13 17:49:56","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"EKAWYIN1DA\/EKAWYIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"EKAWYIN1ET","fcbh_id":"EKAWYIN1ET","volume_name":"2012 Scriptures Unlimited (revision)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"EKA","language_name":"Ekajuk","language_english":"Ekajuk","language_iso":"eka","language_iso_2B":"eka","language_iso_2T":"eka","language_iso_1":"","language_iso_name":"Ekajuk","language_family_code":"EKA","language_family_name":"Ekajuk","language_family_english":"Ekajuk","language_family_iso":"eka","language_family_iso_2B":"eka","language_family_iso_2T":"eka","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 19:37:22","created_on":"2015-04-13 22:46:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"EKAWYIN1ET\/EKAWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"EKAWYIN2DA","fcbh_id":"EKAWYIN2DA","volume_name":"2012 Scriptures Unlimited (revision)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"EKA","language_name":"Ekajuk","language_english":"Ekajuk","language_iso":"eka","language_iso_2B":"eka","language_iso_2T":"eka","language_iso_1":"","language_iso_name":"Ekajuk","language_family_code":"EKA","language_family_name":"Ekajuk","language_family_english":"Ekajuk","language_family_iso":"eka","language_family_iso_2B":"eka","language_family_iso_2T":"eka","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-06-09 16:36:03","created_on":"2015-04-13 18:12:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"EKAWYIN2DA\/EKAWYIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"EKAWYIN2ET","fcbh_id":"EKAWYIN2ET","volume_name":"2012 Scriptures Unlimited (revision)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"EKA","language_name":"Ekajuk","language_english":"Ekajuk","language_iso":"eka","language_iso_2B":"eka","language_iso_2T":"eka","language_iso_1":"","language_iso_name":"Ekajuk","language_family_code":"EKA","language_family_name":"Ekajuk","language_family_english":"Ekajuk","language_family_iso":"eka","language_family_iso_2B":"eka","language_family_iso_2T":"eka","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 19:37:22","created_on":"2014-02-05 18:46:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"EKAWYIN2ET\/EKAWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ELMBSNN2DA","fcbh_id":"ELMBSNN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ELM","language_name":"Eleme","language_english":"Eleme","language_iso":"elm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eleme","language_family_code":"ELM","language_family_name":"Eleme","language_family_english":"Eleme","language_family_iso":"elm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:07","created_on":"2011-05-26 20:09:16","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"ELMBSNN2DA\/ELMBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"EMPWYIN2DA","fcbh_id":"EMPWYIN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"EMP","language_name":"Embera, Northern","language_english":"Embera, Northern","language_iso":"emp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Ember\u00e1","language_family_code":"EMP","language_family_name":"Embera, Northern","language_family_english":"Embera, Northern","language_family_iso":"emp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-10 18:28:50","created_on":"2011-06-15 15:15:12","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"EMPWYIN2DA\/EMPWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"EMPWYIN2ET","fcbh_id":"EMPWYIN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"EMP","language_name":"Embera, Northern","language_english":"Embera, Northern","language_iso":"emp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Ember\u00e1","language_family_code":"EMP","language_family_name":"Embera, Northern","language_family_english":"Embera, Northern","language_family_iso":"emp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:25","created_on":"2011-07-08 18:59:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"EMPWYIN2ET\/EMPWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"EN1WEBN2DA","fcbh_id":"EN1WEBN2DA","volume_name":"WEB - Winfred Henson","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"EN1","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"WEB","version_name":"World English Bible","version_english":"World English Bible","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2017-06-26 20:10:41","created_on":"2017-06-22 20:05:52","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"EN1WEBN2DA\/EN1WEBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"EN1WEBN2ET","fcbh_id":"EN1WEBN2ET","volume_name":"WEB - Winfred Henson","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"EN1","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"WEB","version_name":"World English Bible","version_english":"World English Bible","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2017-06-26 20:12:35","created_on":"2017-06-26 20:07:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"EN1WEBN2ET\/EN1WEBN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"EN1WEBO2DA","fcbh_id":"EN1WEBO2DA","volume_name":"WEB - Winfred Henson","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"EN1","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"WEB","version_name":"World English Bible","version_english":"World English Bible","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2017-06-26 20:10:42","created_on":"2017-06-22 21:41:40","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"EN1WEBO2DA\/EN1WEBO2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"EN1WEBO2ET","fcbh_id":"EN1WEBO2ET","volume_name":"WEB - Winfred Henson","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"EN1","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"WEB","version_name":"World English Bible","version_english":"World English Bible","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2017-06-26 20:10:42","created_on":"2017-06-22 21:45:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"EN1WEBO2ET\/EN1WEBO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ENBBTLN2DA","fcbh_id":"ENBBTLN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENB","language_name":"Marakwet","language_english":"Marakwet","language_iso":"enb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Markweeta","language_family_code":"ENB","language_family_name":"Marakwet","language_family_english":"Marakwet","language_family_iso":"enb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-09 15:00:04","created_on":"2012-01-23 17:17:53","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"ENBBTLN2DA\/ENBBTLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ENBBTLN2ET","fcbh_id":"ENBBTLN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENB","language_name":"Marakwet","language_english":"Marakwet","language_iso":"enb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Markweeta","language_family_code":"ENB","language_family_name":"Marakwet","language_family_english":"Marakwet","language_family_iso":"enb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-09 15:00:38","created_on":"2011-10-17 21:46:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENBBTLN2ET\/ENBBTLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ENGASVN2ET","fcbh_id":"ENGASVN2ET","volume_name":"American Standard version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"ASV","version_name":"American Standard Version","version_english":"American Standard Version","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2017-06-20 20:34:08","created_on":"2017-04-24 20:31:15","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENGASVN2ET\/ENGASVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mp3_cd"],"resolution":[]},{"dam_id":"ENGASVO2ET","fcbh_id":"ENGASVO2ET","volume_name":"American Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"ASV","version_name":"American Standard Version","version_english":"American Standard Version","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2017-06-20 20:33:47","created_on":"2017-04-24 20:34:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENGASVO2ET\/ENGASVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["subsplash"],"resolution":[]},{"dam_id":"ENGCAVN2DA","fcbh_id":"ENGCAVN2DA","volume_name":"1995 Contemporary English (African American)","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"CAV","version_name":"Contemporary English Version-AA","version_english":"Contemporary English Version-AA","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2015-10-27 21:19:17","created_on":"2010-09-14 17:01:38","right_to_left":"false","num_art":"6","num_sample_audio":"1","sku":"N2CAV","audio_zip_path":"ENGCAVN2DA\/ENGCAVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ENGCEVN2DA","fcbh_id":"ENGCEVN2DA","volume_name":"1991 Contemporary English","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"CEV","version_name":"Contemporary English Version","version_english":"Contemporary English Version","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2015-10-27 21:18:31","created_on":"2010-09-14 17:00:04","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2CEV","audio_zip_path":"ENGCEVN2DA\/ENGCEVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["web_streaming","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ENGCEVO2DA","fcbh_id":"ENGCEVO2DA","volume_name":"1995 Contemporary English","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"CEV","version_name":"Contemporary English Version","version_english":"Contemporary English Version","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2014-10-30 16:36:22","created_on":"2010-09-14 17:01:51","right_to_left":"false","num_art":"2","num_sample_audio":"2","sku":"O2CEV","audio_zip_path":"ENGCEVO2DA\/ENGCEVO2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["digital_download"],"resolution":[]},{"dam_id":"ENGESVN1DA","fcbh_id":"ENGESVN1DA","volume_name":"Non Drama 2001\/2007 English Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"ESV","version_name":"English Standard Version ","version_english":"English Standard Version ","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2017-10-30 16:43:31","created_on":"2017-06-26 18:50:09","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ENGESVN1DA\/ENGESVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ENGESVN1ET","fcbh_id":"ENGESVN1ET","volume_name":"Non Drama 2001\/2007 English Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"ESV","version_name":"English Standard Version ","version_english":"English Standard Version ","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2018-11-26 21:46:11","created_on":"2017-06-26 19:42:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENGESVN1ET\/ENGESVN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ENGESVN2DA","fcbh_id":"ENGESVN2DA","volume_name":"Drama 2001\/2007 English Standard","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"ESV","version_name":"English Standard Version ","version_english":"English Standard Version ","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2017-10-30 16:42:02","created_on":"2010-09-14 17:00:58","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2ESV","audio_zip_path":"ENGESVN2DA\/ENGESVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ENGESVN2ET","fcbh_id":"ENGESVN2ET","volume_name":"Drama 2001\/2007 English Standard","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"ESV","version_name":"English Standard Version ","version_english":"English Standard Version ","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2018-11-26 21:33:10","created_on":"2010-09-14 17:00:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2ESV","audio_zip_path":"ENGESVN2ET\/ENGESVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"ENGESVO1DA","fcbh_id":"ENGESVO1DA","volume_name":"Non Drama 2001\/2007 English Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"ESV","version_name":"English Standard Version ","version_english":"English Standard Version ","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2017-10-30 17:07:00","created_on":"2017-06-26 19:35:16","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ENGESVO1DA\/ENGESVO1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ENGESVO1ET","fcbh_id":"ENGESVO1ET","volume_name":"Non Drama 2001\/2007 English Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"ESV","version_name":"English Standard Version ","version_english":"English Standard Version ","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2018-11-26 21:44:54","created_on":"2017-06-26 19:41:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENGESVO1ET\/ENGESVO1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ENGESVO2DA","fcbh_id":"ENGESVO2DA","volume_name":"Drama 2001\/2007 English Standard","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"ESV","version_name":"English Standard Version ","version_english":"English Standard Version ","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2018-01-26 18:34:21","created_on":"2010-09-14 17:01:32","right_to_left":"false","num_art":"5","num_sample_audio":"1","sku":"O2ESV","audio_zip_path":"ENGESVO2DA\/ENGESVO2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","digital_download","subsplash"],"resolution":[]},{"dam_id":"ENGESVO2ET","fcbh_id":"ENGESVO2ET","volume_name":"Drama 2001\/2007 English Standard","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"ESV","version_name":"English Standard Version ","version_english":"English Standard Version ","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2018-11-26 21:53:40","created_on":"2010-09-14 17:01:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"O2ESV","audio_zip_path":"ENGESVO2ET\/ENGESVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"ENGEVDN2ET","fcbh_id":"ENGEVDN2ET","volume_name":"English Version for the Deaf","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"EVD","version_name":"English Version for the Deaf","version_english":"English Version for the Deaf","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2018-08-03 18:24:20","created_on":"2012-10-03 15:19:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENGEVDN2ET\/ENGEVDN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ENGEVDO2ET","fcbh_id":"ENGEVDO2ET","volume_name":"English Version for the Deaf","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"EVD","version_name":"English Version for the Deaf","version_english":"English Version for the Deaf","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2018-08-03 18:23:59","created_on":"2012-10-03 15:23:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENGEVDO2ET\/ENGEVDO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ENGKJVN1DA","fcbh_id":"ENGKJVN1DA","volume_name":"King James","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"KJV","version_name":"King James Version","version_english":"King James Version","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2014-01-16 23:13:20","created_on":"2010-09-14 16:59:45","right_to_left":"false","num_art":"5","num_sample_audio":"1","sku":"N1KJV","audio_zip_path":"ENGKJVN1DA\/ENGKJVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ENGKJVN1ET","fcbh_id":"ENGKJVN1ET","volume_name":"King James","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"KJV","version_name":"King James Version","version_english":"King James Version","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2015-11-30 17:11:59","created_on":"2010-09-14 17:00:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1KJV","audio_zip_path":"ENGKJVN1ET\/ENGKJVN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ENGKJVN2DA","fcbh_id":"ENGKJVN2DA","volume_name":"King James","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"KJV","version_name":"King James Version","version_english":"King James Version","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2014-01-16 23:13:33","created_on":"2010-09-14 17:00:23","right_to_left":"false","num_art":"5","num_sample_audio":"1","sku":"N2KJV","audio_zip_path":"ENGKJVN2DA\/ENGKJVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ENGKJVN2ET","fcbh_id":"ENGKJVN2ET","volume_name":"King James","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"KJV","version_name":"King James Version","version_english":"King James Version","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2015-11-30 17:12:36","created_on":"2010-09-14 17:00:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2KJV","audio_zip_path":"ENGKJVN2ET\/ENGKJVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ENGKJVO1DA","fcbh_id":"ENGKJVO1DA","volume_name":"King James","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"KJV","version_name":"King James Version","version_english":"King James Version","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2014-01-16 23:13:54","created_on":"2010-09-14 17:01:51","right_to_left":"false","num_art":"2","num_sample_audio":"1","sku":"O1KJV","audio_zip_path":"ENGKJVO1DA\/ENGKJVO1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","digital_download","subsplash"],"resolution":[]},{"dam_id":"ENGKJVO1ET","fcbh_id":"ENGKJVO1ET","volume_name":"King James","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"KJV","version_name":"King James Version","version_english":"King James Version","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2016-07-14 20:59:08","created_on":"2010-09-14 17:01:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"O1KJV","audio_zip_path":"ENGKJVO1ET\/ENGKJVO1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ENGKJVO2DA","fcbh_id":"ENGKJVO2DA","volume_name":"King James","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"KJV","version_name":"King James Version","version_english":"King James Version","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2014-01-16 23:14:09","created_on":"2010-09-14 17:01:33","right_to_left":"false","num_art":"3","num_sample_audio":"2","sku":"O2KJV","audio_zip_path":"ENGKJVO2DA\/ENGKJVO2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","digital_download","subsplash"],"resolution":[]},{"dam_id":"ENGKJVO2ET","fcbh_id":"ENGKJVO2ET","volume_name":"King James","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"KJV","version_name":"King James Version","version_english":"King James Version","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2016-07-14 21:00:08","created_on":"2010-09-14 17:01:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"O2KJV","audio_zip_path":"ENGKJVO2ET\/ENGKJVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ENGNASN2ET","fcbh_id":"ENGNASN2ET","volume_name":"NAS New American Standard Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"NAS","version_name":"NAS","version_english":"NAS","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2018-01-31 19:22:58","created_on":"2014-09-17 18:56:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENGNASN2ET\/ENGNASN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ENGNASO2ET","fcbh_id":"ENGNASO2ET","volume_name":"NAS New American Standard Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"NAS","version_name":"NAS","version_english":"NAS","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2018-08-15 19:19:26","created_on":"2014-09-17 19:04:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENGNASO2ET\/ENGNASO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ENGNLVN2ET","fcbh_id":"ENGNLVN2ET","volume_name":"1986 New Life Version (Easy to Read)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"NLV","version_name":"NLV","version_english":"NLV","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2014-08-04 19:55:35","created_on":"2014-08-01 19:03:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENGNLVN2ET\/ENGNLVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ENGNRSN1DA","fcbh_id":"ENGNRSN1DA","volume_name":"1989 New Revised Standard","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"NRS","version_name":"New Revised Standard Version ","version_english":"New Revised Standard Version ","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2015-10-27 21:18:28","created_on":"2010-09-14 16:59:48","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1NRS","audio_zip_path":"ENGNRSN1DA\/ENGNRSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ENGNRSN2DA","fcbh_id":"ENGNRSN2DA","volume_name":"1989 New Revised Standard","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"NRS","version_name":"New Revised Standard Version ","version_english":"New Revised Standard Version ","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2017-10-13 18:47:12","created_on":"2010-09-14 17:00:35","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2NRS","audio_zip_path":"ENGNRSN2DA\/ENGNRSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ENGNRSO2DA","fcbh_id":"ENGNRSO2DA","volume_name":"1989 New Revised Standard","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"NRS","version_name":"New Revised Standard Version ","version_english":"New Revised Standard Version ","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2018-01-22 20:41:59","created_on":"2010-09-14 17:01:52","right_to_left":"false","num_art":"5","num_sample_audio":"1","sku":"O2NRS","audio_zip_path":"ENGNRSO2DA\/ENGNRSO2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","digital_download"],"resolution":[]},{"dam_id":"ENGREVN2ET","fcbh_id":"ENGREVN2ET","volume_name":"Revised Version 1885","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"REV","version_name":"Revised Version","version_english":"Revised Version","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2017-06-20 20:27:47","created_on":"2017-06-20 20:03:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENGREVN2ET\/ENGREVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ENGREVO2ET","fcbh_id":"ENGREVO2ET","volume_name":"Revised Version 1885","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"REV","version_name":"Revised Version","version_english":"Revised Version","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2017-06-20 20:29:09","created_on":"2017-06-20 20:18:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENGREVO2ET\/ENGREVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ENGWEBN2DA","fcbh_id":"ENGWEBN2DA","volume_name":"World English Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"WEB","version_name":"World English Bible","version_english":"World English Bible","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2013-11-26 19:22:23","created_on":"2013-09-18 15:48:49","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"ENGWEBN2DA\/ENGWEBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ENGWEBN2ET","fcbh_id":"ENGWEBN2ET","volume_name":"World English Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"WEB","version_name":"World English Bible","version_english":"World English Bible","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2017-10-10 14:35:26","created_on":"2012-10-01 22:18:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENGWEBN2ET\/ENGWEBN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ENGWEBO2ET","fcbh_id":"ENGWEBO2ET","volume_name":"World English Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"WEB","version_name":"World English Bible","version_english":"World English Bible","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2017-06-20 19:40:55","created_on":"2012-11-01 19:12:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENGWEBO2ET\/ENGWEBO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ENGWM1N2ET","fcbh_id":"ENGWM1N2ET","volume_name":"World Messianic Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"WM1","version_name":"WM1","version_english":"WM1","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2017-08-03 17:21:35","created_on":"2017-08-03 16:05:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENGWM1N2ET\/ENGWM1N2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ENGWM1O2ET","fcbh_id":"ENGWM1O2ET","volume_name":"World Messianic Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"WM1","version_name":"WM1","version_english":"WM1","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2017-08-03 17:21:35","created_on":"2017-08-03 16:07:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENGWM1O2ET\/ENGWM1O2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ENGWMVN2ET","fcbh_id":"ENGWMVN2ET","volume_name":"Wycliffe Modern Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"WMV","version_name":"WMV","version_english":"WMV","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2017-08-18 18:18:25","created_on":"2016-10-12 16:32:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENGWMVN2ET\/ENGWMVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mp3_cd","bible_stick"],"resolution":[]},{"dam_id":"ENGWMVO2ET","fcbh_id":"ENGWMVO2ET","volume_name":"Wycliffe Modern Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ENG","language_name":"English","language_english":"English","language_iso":"eng","language_iso_2B":"eng","language_iso_2T":"eng","language_iso_1":"en","language_iso_name":"English","language_family_code":"ENG","language_family_name":"English","language_family_english":"English","language_family_iso":"eng","language_family_iso_2B":"eng","language_family_iso_2T":"eng","language_family_iso_1":"en","version_code":"WMV","version_name":"WMV","version_english":"WMV","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2017-08-18 18:18:46","created_on":"2016-10-12 16:46:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENGWMVO2ET\/ENGWMVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mp3_cd"],"resolution":[]},{"dam_id":"ENQPNGN2ET","fcbh_id":"ENQPNGN2ET","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENQ","language_name":"Enga","language_english":"Enga","language_iso":"enq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Enga","language_family_code":"ENQ","language_family_name":"Enga","language_family_english":"Enga","language_family_iso":"enq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:22","created_on":"2014-06-04 18:07:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENQPNGN2ET\/ENQPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ENXBSPN1DA","fcbh_id":"ENXBSPN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENX","language_name":"Enxet","language_english":"Enxet","language_iso":"enx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Enxet","language_family_code":"ENX","language_family_name":"Enxet","language_family_english":"Enxet","language_family_iso":"enx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2016-08-31 18:49:44","created_on":"2016-08-16 17:40:19","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ENXBSPN1DA\/ENXBSPN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ENXBSPN2DA","fcbh_id":"ENXBSPN2DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ENX","language_name":"Enxet","language_english":"Enxet","language_iso":"enx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Enxet","language_family_code":"ENX","language_family_name":"Enxet","language_family_english":"Enxet","language_family_iso":"enx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2016-08-31 18:50:04","created_on":"2016-08-16 17:41:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ENXBSPN2DA\/ENXBSPN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ERVWTCN1DA","fcbh_id":"ERVWTCN1DA","volume_name":"Easy-to-Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ERV","language_name":"\u0c95\u0ca8\u0ccd\u0ca8\u0ca1","language_english":"Kannada","language_iso":"kan","language_iso_2B":"kan","language_iso_2T":"kan","language_iso_1":"kn","language_iso_name":"Kannada","language_family_code":"ERV","language_family_name":"\u0c95\u0ca8\u0ccd\u0ca8\u0ca1","language_family_english":"Kannada","language_family_iso":"kan","language_family_iso_2B":"kan","language_family_iso_2T":"kan","language_family_iso_1":"kn","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-05 22:44:12","created_on":"2017-04-26 23:45:01","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ERVWTCN1DA\/ERVWTCN1DA.zip","font":{"id":"69","name":"Lohit-Kannada","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Kannada","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2011-12 Lohit Fonts Project contributors","url":"http:\/\/bit.ly\/1y7P7iU"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ERVWTCN1ET","fcbh_id":"ERVWTCN1ET","volume_name":"Easy-to-Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ERV","language_name":"\u0c95\u0ca8\u0ccd\u0ca8\u0ca1","language_english":"Kannada","language_iso":"kan","language_iso_2B":"kan","language_iso_2T":"kan","language_iso_1":"kn","language_iso_name":"Kannada","language_family_code":"ERV","language_family_name":"\u0c95\u0ca8\u0ccd\u0ca8\u0ca1","language_family_english":"Kannada","language_family_iso":"kan","language_family_iso_2B":"kan","language_family_iso_2T":"kan","language_family_iso_1":"kn","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-05 22:44:12","created_on":"2017-04-26 23:41:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ERVWTCN1ET\/ERVWTCN1ET.zip","font":{"id":"69","name":"Lohit-Kannada","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Kannada","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2011-12 Lohit Fonts Project contributors","url":"http:\/\/bit.ly\/1y7P7iU"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ERVWTCN2DA","fcbh_id":"ERVWTCN2DA","volume_name":"Easy-to-Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ERV","language_name":"\u0c95\u0ca8\u0ccd\u0ca8\u0ca1","language_english":"Kannada","language_iso":"kan","language_iso_2B":"kan","language_iso_2T":"kan","language_iso_1":"kn","language_iso_name":"Kannada","language_family_code":"ERV","language_family_name":"\u0c95\u0ca8\u0ccd\u0ca8\u0ca1","language_family_english":"Kannada","language_family_iso":"kan","language_family_iso_2B":"kan","language_family_iso_2T":"kan","language_family_iso_1":"kn","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-09-18 01:01:50","created_on":"2014-10-21 16:01:06","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"ERVWTCN2DA\/ERVWTCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ERVWTCN2ET","fcbh_id":"ERVWTCN2ET","volume_name":"Easy-to-Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ERV","language_name":"\u0c95\u0ca8\u0ccd\u0ca8\u0ca1","language_english":"Kannada","language_iso":"kan","language_iso_2B":"kan","language_iso_2T":"kan","language_iso_1":"kn","language_iso_name":"Kannada","language_family_code":"ERV","language_family_name":"\u0c95\u0ca8\u0ccd\u0ca8\u0ca1","language_family_english":"Kannada","language_family_iso":"kan","language_family_iso_2B":"kan","language_family_iso_2T":"kan","language_family_iso_1":"kn","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-05 22:46:17","created_on":"2011-08-30 17:54:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ERVWTCN2ET\/ERVWTCN2ET.zip","font":{"id":"69","name":"Lohit-Kannada","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Kannada","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2011-12 Lohit Fonts Project contributors","url":"http:\/\/bit.ly\/1y7P7iU"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ESENTMN2DA","fcbh_id":"ESENTMN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ESE","language_name":"Ese Ejja","language_english":"Ese Ejja","language_iso":"ese","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ese Ejja","language_family_code":"ESE","language_family_name":"Ese Ejja","language_family_english":"Ese Ejja","language_family_iso":"ese","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-15 17:37:09","created_on":"2010-09-14 17:01:18","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2ESENTM","audio_zip_path":"ESENTMN2DA\/ESENTMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ESENTMN2ET","fcbh_id":"ESENTMN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ESE","language_name":"Ese Ejja","language_english":"Ese Ejja","language_iso":"ese","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ese Ejja","language_family_code":"ESE","language_family_name":"Ese Ejja","language_family_english":"Ese Ejja","language_family_iso":"ese","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-10 18:35:34","created_on":"2016-10-10 18:19:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ESENTMN2ET\/ESENTMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ESSWYIN1DA","fcbh_id":"ESSWYIN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ESS","language_name":"St. Lawrence Island Yupik","language_english":"St. Lawrence Island Yupik","language_iso":"ess","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Siberian Yupik","language_family_code":"ESS","language_family_name":"St. Lawrence Island Yupik","language_family_english":"St. Lawrence Island Yupik","language_family_iso":"ess","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-09 20:32:19","created_on":"2018-08-07 16:14:48","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ESSWYIN1DA\/ESSWYIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"ESSWYIN1ET","fcbh_id":"ESSWYIN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ESS","language_name":"St. Lawrence Island Yupik","language_english":"St. Lawrence Island Yupik","language_iso":"ess","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Siberian Yupik","language_family_code":"ESS","language_family_name":"St. Lawrence Island Yupik","language_family_english":"St. Lawrence Island Yupik","language_family_iso":"ess","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-24 16:24:33","created_on":"2018-08-20 21:14:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ESSWYIN1ET\/ESSWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ESSWYIN2DA","fcbh_id":"ESSWYIN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ESS","language_name":"St. Lawrence Island Yupik","language_english":"St. Lawrence Island Yupik","language_iso":"ess","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Siberian Yupik","language_family_code":"ESS","language_family_name":"St. Lawrence Island Yupik","language_family_english":"St. Lawrence Island Yupik","language_family_iso":"ess","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-09 22:46:38","created_on":"2018-08-07 15:55:04","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ESSWYIN2DA\/ESSWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"ESSWYIN2ET","fcbh_id":"ESSWYIN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ESS","language_name":"St. Lawrence Island Yupik","language_english":"St. Lawrence Island Yupik","language_iso":"ess","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Siberian Yupik","language_family_code":"ESS","language_family_name":"St. Lawrence Island Yupik","language_family_english":"St. Lawrence Island Yupik","language_family_iso":"ess","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-24 16:25:42","created_on":"2018-08-20 20:28:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ESSWYIN2ET\/ESSWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ETHSLSS2DV","fcbh_id":"ETHSLSS2DV","volume_name":"DOOR International Ethiopian Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ETH","language_name":"Ethiopian Sign Language","language_english":"Ethiopian Sign Language","language_iso":"eth","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ethiopian Sign Language","language_family_code":"ETH","language_family_name":"Ethiopian Sign Language","language_family_english":"Ethiopian Sign Language","language_family_iso":"eth","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLS","version_name":"Sign Language Stories","version_english":"Sign Language Stories","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2014-03-08 01:08:57","created_on":"2014-01-10 16:42:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ETHSLSS2DV\/ETHSLSS2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"ETUBSCN2DA","fcbh_id":"ETUBSCN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ETU","language_name":"Ejagham","language_english":"Ejagham","language_iso":"etu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ejagham","language_family_code":"ETU","language_family_name":"Ejagham","language_family_english":"Ejagham","language_family_iso":"etu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:51","created_on":"2010-09-14 17:01:15","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2ETUBSC","audio_zip_path":"ETUBSCN2DA\/ETUBSCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"EUSEABN1DA","fcbh_id":"EUSEABN1DA","volume_name":"Elizen Arteko Biblia (EAB) Biblia en Euskara, Traducci\u00f3n Interconfesional","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"EUS","language_name":"Euskara","language_english":"Euskara","language_iso":"eus","language_iso_2B":"baq","language_iso_2T":"eus","language_iso_1":"eu","language_iso_name":"Basque","language_family_code":"EUS","language_family_name":"Euskara","language_family_english":"Euskara","language_family_iso":"eus","language_family_iso_2B":"baq","language_family_iso_2T":"eus","language_family_iso_1":"eu","version_code":"EAB","version_name":"EAB","version_english":"EAB","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-02 21:25:38","created_on":"2017-08-02 21:14:14","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"EUSEABN1DA\/EUSEABN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"EUSEABN2DA","fcbh_id":"EUSEABN2DA","volume_name":"Elizen Arteko Biblia (EAB) Biblia en Euskara, Traducci\u00f3n Interconfesional","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"EUS","language_name":"Euskara","language_english":"Euskara","language_iso":"eus","language_iso_2B":"baq","language_iso_2T":"eus","language_iso_1":"eu","language_iso_name":"Basque","language_family_code":"EUS","language_family_name":"Euskara","language_family_english":"Euskara","language_family_iso":"eus","language_family_iso_2B":"baq","language_family_iso_2T":"eus","language_family_iso_1":"eu","version_code":"EAB","version_name":"EAB","version_english":"EAB","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-02 21:26:44","created_on":"2017-08-02 21:17:39","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"EUSEABN2DA\/EUSEABN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"EUSNLTN2ET","fcbh_id":"EUSNLTN2ET","volume_name":"1571 Navarro-Labourdin","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"EUS","language_name":"Euskara","language_english":"Euskara","language_iso":"eus","language_iso_2B":"baq","language_iso_2T":"eus","language_iso_1":"eu","language_iso_name":"Basque","language_family_code":"EUS","language_family_name":"Euskara","language_family_english":"Euskara","language_family_iso":"eus","language_family_iso_2B":"baq","language_family_iso_2T":"eus","language_family_iso_1":"eu","version_code":"NLT","version_name":"Navarro-Labourdin","version_english":"Navarro-Labourdin","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-27 16:38:11","created_on":"2012-10-03 17:17:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"EUSNLTN2ET\/EUSNLTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"EWEBSGN2DA","fcbh_id":"EWEBSGN2DA","volume_name":"Ghana - 2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"EWE","language_name":"Ewe","language_english":"Ewe","language_iso":"ewe","language_iso_2B":"ewe","language_iso_2T":"ewe","language_iso_1":"ee","language_iso_name":"Ewe","language_family_code":"EWE","language_family_name":"Ewe","language_family_english":"Ewe","language_family_iso":"ewe","language_family_iso_2B":"ewe","language_family_iso_2T":"ewe","language_family_iso_1":"ee","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 15:59:05","created_on":"2017-01-19 21:43:35","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"EWEBSGN2DA\/EWEBSGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FAAWBTN2ET","fcbh_id":"FAAWBTN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FAA","language_name":"Fasu","language_english":"Fasu","language_iso":"faa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Fasu","language_family_code":"FAA","language_family_name":"Fasu","language_family_english":"Fasu","language_family_iso":"faa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-18 21:40:14","created_on":"2014-06-05 16:05:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FAAWBTN2ET\/FAAWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"FAIPNGN2ET","fcbh_id":"FAIPNGN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FAI","language_name":"Faiwol","language_english":"Faiwol","language_iso":"fai","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Faiwol","language_family_code":"FAI","language_family_name":"Faiwol","language_family_english":"Faiwol","language_family_iso":"fai","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:52","created_on":"2014-05-05 14:21:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FAIPNGN2ET\/FAIPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"FALTBLN2DA","fcbh_id":"FALTBLN2DA","volume_name":"1975 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FAL","language_name":"Fali, South","language_english":"Fali, South","language_iso":"fal","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"South Fali","language_family_code":"FAL","language_family_name":"Fali, South","language_family_english":"Fali, South","language_family_iso":"fal","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:32","created_on":"2011-05-26 21:43:59","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"FALTBLN2DA\/FALTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"FALTBLN2ET","fcbh_id":"FALTBLN2ET","volume_name":"1975 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FAL","language_name":"Fali, South","language_english":"Fali, South","language_iso":"fal","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"South Fali","language_family_code":"FAL","language_family_name":"Fali, South","language_family_english":"Fali, South","language_family_iso":"fal","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:07","created_on":"2011-05-30 20:54:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FALTBLN2ET\/FALTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"FANBSGN2DA","fcbh_id":"FANBSGN2DA","volume_name":"Bible Society Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FAN","language_name":"Fang ","language_english":"Fang ","language_iso":"fan","language_iso_2B":"fan","language_iso_2T":"fan","language_iso_1":"","language_iso_name":"Fang (Equatorial Guinea)","language_family_code":"FAN","language_family_name":"Fang","language_family_english":"Fang","language_family_iso":"fan","language_family_iso_2B":"fan","language_family_iso_2T":"fan","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:54","created_on":"2010-11-25 20:50:17","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2FANBSG","audio_zip_path":"FANBSGN2DA\/FANBSGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FARWBTN1DA","fcbh_id":"FARWBTN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FAR","language_name":"Fataleka","language_english":"Fataleka","language_iso":"far","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Fataleka","language_family_code":"FAR","language_family_name":"Fataleka","language_family_english":"Fataleka","language_family_iso":"far","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-12 17:18:58","created_on":"2017-12-12 15:39:31","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"FARWBTN1DA\/FARWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download"],"resolution":[]},{"dam_id":"FARWBTN1ET","fcbh_id":"FARWBTN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FAR","language_name":"Fataleka","language_english":"Fataleka","language_iso":"far","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Fataleka","language_family_code":"FAR","language_family_name":"Fataleka","language_family_english":"Fataleka","language_family_iso":"far","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:50:14","created_on":"2017-12-12 15:36:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FARWBTN1ET\/FARWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FARWBTN2DA","fcbh_id":"FARWBTN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FAR","language_name":"Fataleka","language_english":"Fataleka","language_iso":"far","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Fataleka","language_family_code":"FAR","language_family_name":"Fataleka","language_family_english":"Fataleka","language_family_iso":"far","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-12 17:19:33","created_on":"2017-12-12 15:38:39","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"FARWBTN2DA\/FARWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download"],"resolution":[]},{"dam_id":"FARWBTN2ET","fcbh_id":"FARWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FAR","language_name":"Fataleka","language_english":"Fataleka","language_iso":"far","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Fataleka","language_family_code":"FAR","language_family_name":"Fataleka","language_family_english":"Fataleka","language_family_iso":"far","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:50:15","created_on":"2017-07-17 20:14:44","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FARWBTN2ET\/FARWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FFMTBLN1DA","fcbh_id":"FFMTBLN1DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FFM","language_name":"Fulfulde, Maasina","language_english":"Fulfulde, Maasina","language_iso":"ffm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Maasina Fulfulde","language_family_code":"FFM","language_family_name":"Fulfulde, Maasina","language_family_english":"Fulfulde, Maasina","language_family_iso":"ffm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-16 19:25:20","created_on":"2016-08-16 14:49:05","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"FFMTBLN1DA\/FFMTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FFMTBLN1ET","fcbh_id":"FFMTBLN1ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FFM","language_name":"Fulfulde, Maasina","language_english":"Fulfulde, Maasina","language_iso":"ffm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Maasina Fulfulde","language_family_code":"FFM","language_family_name":"Fulfulde, Maasina","language_family_english":"Fulfulde, Maasina","language_family_iso":"ffm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:22","created_on":"2016-08-16 14:13:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FFMTBLN1ET\/FFMTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FIJBSPN2DA","fcbh_id":"FIJBSPN2DA","volume_name":"2005 New Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FIJ","language_name":"Fijian","language_english":"Fijian","language_iso":"fij","language_iso_2B":"fij","language_iso_2T":"fij","language_iso_1":"fj","language_iso_name":"Fijian","language_family_code":"FIJ","language_family_name":"Fijian","language_family_english":"Fijian","language_family_iso":"fij","language_family_iso_2B":"fij","language_family_iso_2T":"fij","language_family_iso_1":"fj","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-27 16:47:26","created_on":"2010-12-07 15:00:34","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2FIJBSP","audio_zip_path":"FIJBSPN2DA\/FIJBSPN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"FIJBSPN2ET","fcbh_id":"FIJBSPN2ET","volume_name":"2005 New Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FIJ","language_name":"Fijian","language_english":"Fijian","language_iso":"fij","language_iso_2B":"fij","language_iso_2T":"fij","language_iso_1":"fj","language_iso_name":"Fijian","language_family_code":"FIJ","language_family_name":"Fijian","language_family_english":"Fijian","language_family_iso":"fij","language_family_iso_2B":"fij","language_family_iso_2T":"fij","language_family_iso_1":"fj","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-27 16:47:08","created_on":"2011-05-09 20:26:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FIJBSPN2ET\/FIJBSPN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"FIN38VN1DA","fcbh_id":"FIN38VN1DA","volume_name":"1938 Suomennos Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FIN","language_name":"Suomi","language_english":"Finnish","language_iso":"fin","language_iso_2B":"fin","language_iso_2T":"fin","language_iso_1":"fi","language_iso_name":"Finnish","language_family_code":"FIN","language_family_name":"Suomi","language_family_english":"Finnish","language_family_iso":"fin","language_family_iso_2B":"fin","language_family_iso_2T":"fin","language_family_iso_1":"fi","version_code":"38V","version_name":"1938 Suomennos Version","version_english":"1938 Suomennos Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-14 20:11:50","created_on":"2010-09-14 16:59:42","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1FIN38V","audio_zip_path":"FIN38VN1DA\/FIN38VN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"FIN38VN1ET","fcbh_id":"FIN38VN1ET","volume_name":"1938 Suomennos Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FIN","language_name":"Suomi","language_english":"Finnish","language_iso":"fin","language_iso_2B":"fin","language_iso_2T":"fin","language_iso_1":"fi","language_iso_name":"Finnish","language_family_code":"FIN","language_family_name":"Suomi","language_family_english":"Finnish","language_family_iso":"fin","language_family_iso_2B":"fin","language_family_iso_2T":"fin","language_family_iso_1":"fi","version_code":"38V","version_name":"1938 Suomennos Version","version_english":"1938 Suomennos Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-14 20:11:50","created_on":"2010-09-14 16:59:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1FIN38V","audio_zip_path":"FIN38VN1ET\/FIN38VN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"FIN38VO1ET","fcbh_id":"FIN38VO1ET","volume_name":"1938 Suomennos Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FIN","language_name":"Suomi","language_english":"Finnish","language_iso":"fin","language_iso_2B":"fin","language_iso_2T":"fin","language_iso_1":"fi","language_iso_name":"Finnish","language_family_code":"FIN","language_family_name":"Suomi","language_family_english":"Finnish","language_family_iso":"fin","language_family_iso_2B":"fin","language_family_iso_2T":"fin","language_family_iso_1":"fi","version_code":"38V","version_name":"1938 Suomennos Version","version_english":"1938 Suomennos Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-12-14 20:11:50","created_on":"2010-09-14 17:01:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"O1FIN38V","audio_zip_path":"FIN38VO1ET\/FIN38VO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"FINELCN1ET","fcbh_id":"FINELCN1ET","volume_name":"1992 The Evangelical Lutheran Church of Finland","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FIN","language_name":"Suomi","language_english":"Finnish","language_iso":"fin","language_iso_2B":"fin","language_iso_2T":"fin","language_iso_1":"fi","language_iso_name":"Finnish","language_family_code":"FIN","language_family_name":"Suomi","language_family_english":"Finnish","language_family_iso":"fin","language_family_iso_2B":"fin","language_family_iso_2T":"fin","language_family_iso_1":"fi","version_code":"ELC","version_name":"ELC","version_english":"ELC","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-16 21:03:06","created_on":"2017-12-14 17:57:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FINELCN1ET\/FINELCN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FINELCO1ET","fcbh_id":"FINELCO1ET","volume_name":"1992 The Evangelical Lutheran Church of Finland","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FIN","language_name":"Suomi","language_english":"Finnish","language_iso":"fin","language_iso_2B":"fin","language_iso_2T":"fin","language_iso_1":"fi","language_iso_name":"Finnish","language_family_code":"FIN","language_family_name":"Suomi","language_family_english":"Finnish","language_family_iso":"fin","language_family_iso_2B":"fin","language_family_iso_2T":"fin","language_family_iso_1":"fi","version_code":"ELC","version_name":"ELC","version_english":"ELC","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-08-16 21:03:27","created_on":"2017-12-14 17:57:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FINELCO1ET\/FINELCO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FIZTBLN2DA","fcbh_id":"FIZTBLN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FIZ","language_name":"Izere","language_english":"Izere","language_iso":"izr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Izere","language_family_code":"FIZ","language_family_name":"Izere","language_family_english":"Izere","language_family_iso":"izr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-12-02 21:47:30","created_on":"2010-09-14 17:01:10","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2FIZTBL","audio_zip_path":"FIZTBLN2DA\/FIZTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"FIZTBLN2ET","fcbh_id":"FIZTBLN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FIZ","language_name":"Izere","language_english":"Izere","language_iso":"izr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Izere","language_family_code":"FIZ","language_family_name":"Izere","language_family_english":"Izere","language_family_iso":"izr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:11","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2FIZTBL","audio_zip_path":"FIZTBLN2ET\/FIZTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"FLMBIVN2ET","fcbh_id":"FLMBIVN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FLM","language_name":"Chin, Falam","language_english":"Chin, Falam","language_iso":"cfm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Falam Chin","language_family_code":"FLM","language_family_name":"Chin, Falam","language_family_english":"Chin, Falam","language_family_iso":"cfm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:16","created_on":"2015-08-10 19:26:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FLMBIVN2ET\/FLMBIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FLMUBSN1ET","fcbh_id":"FLMUBSN1ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FLM","language_name":"Chin, Falam","language_english":"Chin, Falam","language_iso":"cfm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Falam Chin","language_family_code":"FLM","language_family_name":"Chin, Falam","language_family_english":"Chin, Falam","language_family_iso":"cfm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-08 21:23:44","created_on":"2018-09-08 15:11:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FLMUBSN1ET\/FLMUBSN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FLMUBSN2DA","fcbh_id":"FLMUBSN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FLM","language_name":"Chin, Falam","language_english":"Chin, Falam","language_iso":"cfm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Falam Chin","language_family_code":"FLM","language_family_name":"Chin, Falam","language_family_english":"Chin, Falam","language_family_iso":"cfm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-05 21:08:54","created_on":"2013-12-05 18:01:12","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"FLMUBSN2DA\/FLMUBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"FLMUBSN2ET","fcbh_id":"FLMUBSN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FLM","language_name":"Chin, Falam","language_english":"Chin, Falam","language_iso":"cfm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Falam Chin","language_family_code":"FLM","language_family_name":"Chin, Falam","language_family_english":"Chin, Falam","language_family_iso":"cfm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:06","created_on":"2011-10-06 19:42:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FLMUBSN2ET\/FLMUBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"FLMUBSO1DA","fcbh_id":"FLMUBSO1DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FLM","language_name":"Chin, Falam","language_english":"Chin, Falam","language_iso":"cfm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Falam Chin","language_family_code":"FLM","language_family_name":"Chin, Falam","language_family_english":"Chin, Falam","language_family_iso":"cfm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-07-27 15:43:01","created_on":"2018-07-25 22:07:01","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"FLMUBSO1DA\/FLMUBSO1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FLMUBSO1ET","fcbh_id":"FLMUBSO1ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FLM","language_name":"Chin, Falam","language_english":"Chin, Falam","language_iso":"cfm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Falam Chin","language_family_code":"FLM","language_family_name":"Chin, Falam","language_family_english":"Chin, Falam","language_family_iso":"cfm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-09-25 21:31:01","created_on":"2018-09-08 14:25:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FLMUBSO1ET\/FLMUBSO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FLMUBSO2DA","fcbh_id":"FLMUBSO2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FLM","language_name":"Chin, Falam","language_english":"Chin, Falam","language_iso":"cfm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Falam Chin","language_family_code":"FLM","language_family_name":"Chin, Falam","language_family_english":"Chin, Falam","language_family_iso":"cfm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-07-27 15:43:25","created_on":"2018-07-25 21:12:19","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"FLMUBSO2DA\/FLMUBSO2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FLMUBSO2ET","fcbh_id":"FLMUBSO2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FLM","language_name":"Chin, Falam","language_english":"Chin, Falam","language_iso":"cfm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Falam Chin","language_family_code":"FLM","language_family_name":"Chin, Falam","language_family_english":"Chin, Falam","language_family_iso":"cfm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-09-25 21:31:33","created_on":"2018-09-08 14:24:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FLMUBSO2ET\/FLMUBSO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FMUWINP1ET","fcbh_id":"FMUWINP1ET","volume_name":"WIN Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FMU","language_name":"Gaita Koitor","language_english":"Far Western Muria","language_iso":"fmu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Far Western Muria","language_family_code":"FMU","language_family_name":"Gaita Koitor","language_family_english":"Far Western Muria","language_family_iso":"fmu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WIN","version_name":"WIN","version_english":"WIN","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-11-12 17:10:24","created_on":"2018-11-09 22:22:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FMUWINP1ET\/FMUWINP1ET.zip","font":{"id":"26","name":"Mangal","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Mangal","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile"],"resolution":[]},{"dam_id":"FMUWINP2ET","fcbh_id":"FMUWINP2ET","volume_name":"WIN Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FMU","language_name":"Gaita Koitor","language_english":"Far Western Muria","language_iso":"fmu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Far Western Muria","language_family_code":"FMU","language_family_name":"Gaita Koitor","language_family_english":"Far Western Muria","language_family_iso":"fmu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WIN","version_name":"WIN","version_english":"WIN","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-11-12 17:09:49","created_on":"2018-11-09 22:16:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FMUWINP2ET\/FMUWINP2ET.zip","font":{"id":"26","name":"Mangal","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Mangal","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile"],"resolution":[]},{"dam_id":"FONBSBN1DA","fcbh_id":"FONBSBN1DA","volume_name":"AK\u0186JIJ\u0190Y\u0186\u030cY\u0186\u0301 \u0186\u0301 WÉMA","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FON","language_name":"Fon (Fongbe)","language_english":"Fon (Fongbe)","language_iso":"fon","language_iso_2B":"fon","language_iso_2T":"fon","language_iso_1":"","language_iso_name":"Fon","language_family_code":"FON","language_family_name":"Fon (Fongbe)","language_family_english":"Fon (Fongbe)","language_family_iso":"fon","language_family_iso_2B":"fon","language_family_iso_2T":"fon","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-11 22:42:49","created_on":"2016-10-25 17:03:51","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"FONBSBN1DA\/FONBSBN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FONBSBN2DA","fcbh_id":"FONBSBN2DA","volume_name":"AK\u0186JIJ\u0190Y\u0186\u030cY\u0186\u0301 \u0186\u0301 WÉMA","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FON","language_name":"Fon (Fongbe)","language_english":"Fon (Fongbe)","language_iso":"fon","language_iso_2B":"fon","language_iso_2T":"fon","language_iso_1":"","language_iso_name":"Fon","language_family_code":"FON","language_family_name":"Fon (Fongbe)","language_family_english":"Fon (Fongbe)","language_family_iso":"fon","language_family_iso_2B":"fon","language_family_iso_2T":"fon","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-11 22:43:46","created_on":"2016-10-25 17:05:18","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"FONBSBN2DA\/FONBSBN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FORBSVN2ET","fcbh_id":"FORBSVN2ET","volume_name":"1974 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FOR","language_name":"Fore","language_english":"Fore","language_iso":"for","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Fore","language_family_code":"FOR","language_family_name":"Fore","language_family_english":"Fore","language_family_iso":"for","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-21 17:26:21","created_on":"2014-06-06 18:48:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FORBSVN2ET\/FORBSVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"FRDWBTN1DA","fcbh_id":"FRDWBTN1DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FRD","language_name":"Fordata","language_english":"Fordata","language_iso":"frd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Fordata","language_family_code":"FRD","language_family_name":"Fordata","language_family_english":"Fordata","language_family_iso":"frd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:28:08","created_on":"2017-11-28 14:48:50","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"FRDWBTN1DA\/FRDWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FRDWBTN1ET","fcbh_id":"FRDWBTN1ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FRD","language_name":"Fordata","language_english":"Fordata","language_iso":"frd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Fordata","language_family_code":"FRD","language_family_name":"Fordata","language_family_english":"Fordata","language_family_iso":"frd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-18 01:27:59","created_on":"2018-09-08 15:20:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FRDWBTN1ET\/FRDWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FRDWBTN2DA","fcbh_id":"FRDWBTN2DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FRD","language_name":"Fordata","language_english":"Fordata","language_iso":"frd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Fordata","language_family_code":"FRD","language_family_name":"Fordata","language_family_english":"Fordata","language_family_iso":"frd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:28:07","created_on":"2017-11-28 14:46:51","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"FRDWBTN2DA\/FRDWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FRDWBTN2ET","fcbh_id":"FRDWBTN2ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FRD","language_name":"Fordata","language_english":"Fordata","language_iso":"frd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Fordata","language_family_code":"FRD","language_family_name":"Fordata","language_family_english":"Fordata","language_family_iso":"frd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-18 01:28:32","created_on":"2018-09-08 15:18:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FRDWBTN2ET\/FRDWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FRNDBYN2ET","fcbh_id":"FRNDBYN2ET","volume_name":"1885 Darby","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FRN","language_name":"Fran\u00e7ais","language_english":"French","language_iso":"fra","language_iso_2B":"fre","language_iso_2T":"fra","language_iso_1":"fr","language_iso_name":"French","language_family_code":"FRN","language_family_name":"Fran\u00e7ais","language_family_english":"French","language_family_iso":"fra","language_family_iso_2B":"fre","language_family_iso_2T":"fra","language_family_iso_1":"fr","version_code":"DBY","version_name":"1885 Darby","version_english":"1885 Darby","collection_code":"NT","rich":"0","collection_name":"Nouveau Testament","updated_on":"2013-11-27 17:19:12","created_on":"2010-09-14 17:01:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FRNDBYN2ET\/FRNDBYN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"FRNDBYO2ET","fcbh_id":"FRNDBYO2ET","volume_name":"1885 Darby","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FRN","language_name":"Fran\u00e7ais","language_english":"French","language_iso":"fra","language_iso_2B":"fre","language_iso_2T":"fra","language_iso_1":"fr","language_iso_name":"French","language_family_code":"FRN","language_family_name":"Fran\u00e7ais","language_family_english":"French","language_family_iso":"fra","language_family_iso_2B":"fre","language_family_iso_2T":"fra","language_family_iso_1":"fr","version_code":"DBY","version_name":"1885 Darby","version_english":"1885 Darby","collection_code":"OT","rich":"0","collection_name":"Vieux Testament","updated_on":"2013-11-27 17:18:54","created_on":"2010-09-14 17:01:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FRNDBYO2ET\/FRNDBYO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"FRNPDCN2DA","fcbh_id":"FRNPDCN2DA","volume_name":"2000 Parole de Vie (Canadian) Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FRN","language_name":"Fran\u00e7ais","language_english":"French","language_iso":"fra","language_iso_2B":"fre","language_iso_2T":"fra","language_iso_1":"fr","language_iso_name":"French","language_family_code":"FRN","language_family_name":"Fran\u00e7ais","language_family_english":"French","language_family_iso":"fra","language_family_iso_2B":"fre","language_family_iso_2T":"fra","language_family_iso_1":"fr","version_code":"PDC","version_name":"Parole de Vie Version - Canadian","version_english":"Parole de Vie Version - Canadian","collection_code":"NT","rich":"0","collection_name":"Nouveau Testament","updated_on":"2014-09-16 19:56:56","created_on":"2010-09-14 17:01:10","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2FRNPDC","audio_zip_path":"FRNPDCN2DA\/FRNPDCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"FRNPDCN2ET","fcbh_id":"FRNPDCN2ET","volume_name":"2000 Parole de Vie (Canadian) Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FRN","language_name":"Fran\u00e7ais","language_english":"French","language_iso":"fra","language_iso_2B":"fre","language_iso_2T":"fra","language_iso_1":"fr","language_iso_name":"French","language_family_code":"FRN","language_family_name":"Fran\u00e7ais","language_family_english":"French","language_family_iso":"fra","language_family_iso_2B":"fre","language_family_iso_2T":"fra","language_family_iso_1":"fr","version_code":"PDC","version_name":"Parole de Vie Version - Canadian","version_english":"Parole de Vie Version - Canadian","collection_code":"NT","rich":"0","collection_name":"Nouveau Testament","updated_on":"2018-05-23 20:00:04","created_on":"2010-09-14 17:01:10","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2FRNPDC","audio_zip_path":"FRNPDCN2ET\/FRNPDCN2ET.zip","font":{"id":"35","name":"Tahoma","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Tahoma","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"FRNPDVN2DA","fcbh_id":"FRNPDVN2DA","volume_name":"2000 Parole de Vie (African) Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FRN","language_name":"Fran\u00e7ais","language_english":"French","language_iso":"fra","language_iso_2B":"fre","language_iso_2T":"fra","language_iso_1":"fr","language_iso_name":"French","language_family_code":"FRN","language_family_name":"Fran\u00e7ais","language_family_english":"French","language_family_iso":"fra","language_family_iso_2B":"fre","language_family_iso_2T":"fra","language_family_iso_1":"fr","version_code":"PDV","version_name":"Parole de Vie Version","version_english":"Parole de Vie Version","collection_code":"NT","rich":"0","collection_name":"Nouveau Testament","updated_on":"2013-10-25 23:56:34","created_on":"2010-09-14 17:00:09","right_to_left":"false","num_art":"4","num_sample_audio":"2","sku":"N2FRNPDV","audio_zip_path":"FRNPDVN2DA\/FRNPDVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"FRNPDVN2ET","fcbh_id":"FRNPDVN2ET","volume_name":"2000 Parole de Vie (African) Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FRN","language_name":"Fran\u00e7ais","language_english":"French","language_iso":"fra","language_iso_2B":"fre","language_iso_2T":"fra","language_iso_1":"fr","language_iso_name":"French","language_family_code":"FRN","language_family_name":"Fran\u00e7ais","language_family_english":"French","language_family_iso":"fra","language_family_iso_2B":"fre","language_family_iso_2T":"fra","language_family_iso_1":"fr","version_code":"PDV","version_name":"Parole de Vie Version","version_english":"Parole de Vie Version","collection_code":"NT","rich":"0","collection_name":"Nouveau Testament","updated_on":"2018-05-16 20:30:04","created_on":"2010-09-14 17:00:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2FRNPDV","audio_zip_path":"FRNPDVN2ET\/FRNPDVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"FRNTLSN2DA","fcbh_id":"FRNTLSN2DA","volume_name":"1910 Louis Segond (Tresorsonore recording)","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FRN","language_name":"Fran\u00e7ais","language_english":"French","language_iso":"fra","language_iso_2B":"fre","language_iso_2T":"fra","language_iso_1":"fr","language_iso_name":"French","language_family_code":"FRN","language_family_name":"Fran\u00e7ais","language_family_english":"French","language_family_iso":"fra","language_family_iso_2B":"fre","language_family_iso_2T":"fra","language_family_iso_1":"fr","version_code":"TLS","version_name":"TLS","version_english":"TLS","collection_code":"NT","rich":"0","collection_name":"Nouveau Testament","updated_on":"2018-08-09 20:31:34","created_on":"2018-08-01 17:33:01","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"FRNTLSN2DA\/FRNTLSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"FRNTLSN2ET","fcbh_id":"FRNTLSN2ET","volume_name":"1910 Louis Segond (Tresorsonore recording)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FRN","language_name":"Fran\u00e7ais","language_english":"French","language_iso":"fra","language_iso_2B":"fre","language_iso_2T":"fra","language_iso_1":"fr","language_iso_name":"French","language_family_code":"FRN","language_family_name":"Fran\u00e7ais","language_family_english":"French","language_family_iso":"fra","language_family_iso_2B":"fre","language_family_iso_2T":"fra","language_family_iso_1":"fr","version_code":"TLS","version_name":"TLS","version_english":"TLS","collection_code":"NT","rich":"0","collection_name":"Nouveau Testament","updated_on":"2018-09-18 17:52:01","created_on":"2018-08-09 20:24:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FRNTLSN2ET\/FRNTLSN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FRNTLSO2DA","fcbh_id":"FRNTLSO2DA","volume_name":"1910 Louis Segond (Tresorsonore recording)","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FRN","language_name":"Fran\u00e7ais","language_english":"French","language_iso":"fra","language_iso_2B":"fre","language_iso_2T":"fra","language_iso_1":"fr","language_iso_name":"French","language_family_code":"FRN","language_family_name":"Fran\u00e7ais","language_family_english":"French","language_family_iso":"fra","language_family_iso_2B":"fre","language_family_iso_2T":"fra","language_family_iso_1":"fr","version_code":"TLS","version_name":"TLS","version_english":"TLS","collection_code":"OT","rich":"0","collection_name":"Vieux Testament","updated_on":"2018-08-09 20:31:57","created_on":"2018-08-01 17:48:55","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"FRNTLSO2DA\/FRNTLSO2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"FRNTLSO2ET","fcbh_id":"FRNTLSO2ET","volume_name":"1910 Louis Segond (Tresorsonore recording)","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FRN","language_name":"Fran\u00e7ais","language_english":"French","language_iso":"fra","language_iso_2B":"fre","language_iso_2T":"fra","language_iso_1":"fr","language_iso_name":"French","language_family_code":"FRN","language_family_name":"Fran\u00e7ais","language_family_english":"French","language_family_iso":"fra","language_family_iso_2B":"fre","language_family_iso_2T":"fra","language_family_iso_1":"fr","version_code":"TLS","version_name":"TLS","version_english":"TLS","collection_code":"OT","rich":"0","collection_name":"Vieux Testament","updated_on":"2018-09-18 17:57:07","created_on":"2018-08-09 19:51:35","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FRNTLSO2ET\/FRNTLSO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FSLSLVN2DV","fcbh_id":"FSLSLVN2DV","volume_name":"French Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FSL","language_name":"French Sign Language","language_english":"French Sign Language","language_iso":"fsl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"French Sign Language","language_family_code":"FSL","language_family_name":"French Sign Language","language_family_english":"French Sign Language","language_family_iso":"fsl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLV","version_name":"Sign Language Version","version_english":"Sign Language Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-03-26 14:53:46","created_on":"2013-02-14 17:34:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FSLSLVN2DV\/FSLSLVN2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"FU1ABCN1DA","fcbh_id":"FU1ABCN1DA","volume_name":"1995 Edition (Cameroon)","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FU1","language_name":"Fulfulde, Adamawa","language_english":"Fulfulde, Adamawa","language_iso":"fub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Adamawa Fulfulde","language_family_code":"FUB","language_family_name":"Fulfulde, Adamawa","language_family_english":"Fulfulde, Adamawa","language_family_iso":"fub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:37","created_on":"2010-09-14 16:59:43","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1FUBABC","audio_zip_path":"FU1ABCN1DA\/FU1ABCN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FU1ABCN2DA","fcbh_id":"FUBABCN2DA","volume_name":"1995 Edition (Cameroon)","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FU1","language_name":"Fulfulde, Adamawa","language_english":"Fulfulde, Adamawa","language_iso":"fub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Adamawa Fulfulde","language_family_code":"FUB","language_family_name":"Fulfulde, Adamawa","language_family_english":"Fulfulde, Adamawa","language_family_iso":"fub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:39","created_on":"2010-09-14 17:00:10","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2FUBABC","audio_zip_path":"FU1ABCN2DA\/FU1ABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"FU2TBLN1DA","fcbh_id":"FU2TBLN1DA","volume_name":"Bible League Version (Arabic Script)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FU2","language_name":"Fulfulde, Nigerian (Caka)","language_english":"Fulfulde, Nigerian (Caka)","language_iso":"fuv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nigerian Fulfulde","language_family_code":"FUV","language_family_name":"Fulfulde, Nigerian (Caka)","language_family_english":"Fulfulde, Nigerian (Caka)","language_family_iso":"fuv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-27 18:59:07","created_on":"2013-08-06 19:33:47","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"FU2TBLN1DA\/FU2TBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"FU2TBLN1ET","fcbh_id":"FU2TBLN1ET","volume_name":"Bible League Version (Arabic Script)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FU2","language_name":"Fulfulde, Nigerian (Caka)","language_english":"Fulfulde, Nigerian (Caka)","language_iso":"fuv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nigerian Fulfulde","language_family_code":"FUV","language_family_name":"Fulfulde, Nigerian (Caka)","language_family_english":"Fulfulde, Nigerian (Caka)","language_family_iso":"fuv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-19 17:13:24","created_on":"2013-08-06 19:00:02","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FU2TBLN1ET\/FU2TBLN1ET.zip","font":{"id":"30","name":"Scheherazade","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Scheherazade","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2004-2014, SIL International","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"FU3WBTN1DA","fcbh_id":"FU3WBTN1DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FU3","language_name":"Fulfulde, Western Niger","language_english":"Fulfulde, Western Niger","language_iso":"fuh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Niger Fulfulde","language_family_code":"FU3","language_family_name":"Fulfulde, Western Niger","language_family_english":"Fulfulde, Western Niger","language_family_iso":"fuh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-11 16:25:24","created_on":"2018-05-21 17:56:46","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"FU3WBTN1DA\/FU3WBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FU3WBTN1ET","fcbh_id":"FU3WBTN1ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FU3","language_name":"Fulfulde, Western Niger","language_english":"Fulfulde, Western Niger","language_iso":"fuh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Niger Fulfulde","language_family_code":"FU3","language_family_name":"Fulfulde, Western Niger","language_family_english":"Fulfulde, Western Niger","language_family_iso":"fuh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-09 22:27:44","created_on":"2018-11-09 22:11:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FU3WBTN1ET\/FU3WBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FU3WBTN2DA","fcbh_id":"FU3WBTN2DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FU3","language_name":"Fulfulde, Western Niger","language_english":"Fulfulde, Western Niger","language_iso":"fuh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Niger Fulfulde","language_family_code":"FU3","language_family_name":"Fulfulde, Western Niger","language_family_english":"Fulfulde, Western Niger","language_family_iso":"fuh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-11 16:30:07","created_on":"2018-05-21 17:53:58","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"FU3WBTN2DA\/FU3WBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FU3WBTN2ET","fcbh_id":"FU3WBTN2ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FU3","language_name":"Fulfulde, Western Niger","language_english":"Fulfulde, Western Niger","language_iso":"fuh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Niger Fulfulde","language_family_code":"FU3","language_family_name":"Fulfulde, Western Niger","language_family_english":"Fulfulde, Western Niger","language_family_iso":"fuh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-09 22:12:11","created_on":"2018-11-09 21:57:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FU3WBTN2ET\/FU3WBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FUBBSNN2DA","fcbh_id":"FUBBSNN2DA","volume_name":"1963 Edition (Nigeria)","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FUB","language_name":"Fulfulde, Adamawa","language_english":"Fulfulde, Adamawa","language_iso":"fub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Adamawa Fulfulde","language_family_code":"FUB","language_family_name":"Fulfulde, Adamawa","language_family_english":"Fulfulde, Adamawa","language_family_iso":"fub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:35","created_on":"2010-09-14 17:00:10","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2FUBBSN","audio_zip_path":"FUBBSNN2DA\/FUBBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FUCBS1N2DA","fcbh_id":"FUCBSSN2DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"FUC","language_name":"Pulaar","language_english":"Pulaar","language_iso":"fuc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pulaar","language_family_code":"FUC","language_family_name":"Pulaar","language_family_english":"Pulaar","language_family_iso":"fuc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BS1","version_name":"Bible Society of Senegal","version_english":"Bible Society of Senegal","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:07","created_on":"2011-05-31 16:44:04","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"FUCBS1N2DA\/FUCBS1N2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FUESIMN2ET","fcbh_id":"FUESIMN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FUE","language_name":"Fulfulde, Borgu","language_english":"Fulfulde, Borgu","language_iso":"fue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Borgu Fulfulde","language_family_code":"FUE","language_family_name":"Fulfulde, Borgu","language_family_english":"Fulfulde, Borgu","language_family_iso":"fue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-13 19:00:38","created_on":"2016-02-12 15:29:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FUESIMN2ET\/FUESIMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FUFPBTN2DA","fcbh_id":"FUFPBTN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FUF","language_name":"Pular","language_english":"Pular","language_iso":"fuf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pular","language_family_code":"FUF","language_family_name":"Pular","language_family_english":"Pular","language_family_iso":"fuf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-23 18:28:49","created_on":"2013-10-15 18:30:52","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"FUFPBTN2DA\/FUFPBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"FUFPBTN2ET","fcbh_id":"FUFPBTN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FUF","language_name":"Pular","language_english":"Pular","language_iso":"fuf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pular","language_family_code":"FUF","language_family_name":"Pular","language_family_english":"Pular","language_family_iso":"fuf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:13","created_on":"2013-09-23 17:24:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FUFPBTN2ET\/FUFPBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"FUHSIMN1DA","fcbh_id":"FUHSIMN1DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FUH","language_name":"Fulfulde, Burkina Faso","language_english":"Fulfulde, Burkina Faso","language_iso":"fuh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Niger Fulfulde","language_family_code":"FUH","language_family_name":"Fulfulde, Burkina Faso","language_family_english":"Fulfulde, Burkina Faso","language_family_iso":"fuh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-27 13:07:34","created_on":"2017-10-26 19:44:18","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"FUHSIMN1DA\/FUHSIMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FUHSIMN1ET","fcbh_id":"FUHSIMN1ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FUH","language_name":"Fulfulde, Burkina Faso","language_english":"Fulfulde, Burkina Faso","language_iso":"fuh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Niger Fulfulde","language_family_code":"FUH","language_family_name":"Fulfulde, Burkina Faso","language_family_english":"Fulfulde, Burkina Faso","language_family_iso":"fuh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-27 13:15:32","created_on":"2017-10-27 13:08:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FUHSIMN1ET\/FUHSIMN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FUQWBTN1DA","fcbh_id":"FUQWBTN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FUQ","language_name":"Fulfulde, Central Eastern Niger","language_english":"Fulfulde, Central Eastern Niger","language_iso":"fuq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central-Eastern Niger Fulfulde","language_family_code":"FUQ","language_family_name":"Fulfulde, Central Eastern Niger","language_family_english":"Fulfulde, Central Eastern Niger","language_family_iso":"fuq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-05 18:22:24","created_on":"2017-01-03 19:19:35","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"FUQWBTN1DA\/FUQWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FUQWBTN1ET","fcbh_id":"FUQWBTN1ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FUQ","language_name":"Fulfulde, Central Eastern Niger","language_english":"Fulfulde, Central Eastern Niger","language_iso":"fuq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central-Eastern Niger Fulfulde","language_family_code":"FUQ","language_family_name":"Fulfulde, Central Eastern Niger","language_family_english":"Fulfulde, Central Eastern Niger","language_family_iso":"fuq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-03 19:28:42","created_on":"2017-01-03 19:17:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FUQWBTN1ET\/FUQWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FUQWBTN2DA","fcbh_id":"FUQWBTN2DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FUQ","language_name":"Fulfulde, Central Eastern Niger","language_english":"Fulfulde, Central Eastern Niger","language_iso":"fuq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central-Eastern Niger Fulfulde","language_family_code":"FUQ","language_family_name":"Fulfulde, Central Eastern Niger","language_family_english":"Fulfulde, Central Eastern Niger","language_family_iso":"fuq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-05 18:22:39","created_on":"2017-01-03 19:20:46","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"FUQWBTN2DA\/FUQWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"FUQWBTN2ET","fcbh_id":"FUQWBTN2ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FUQ","language_name":"Fulfulde, Central Eastern Niger","language_english":"Fulfulde, Central Eastern Niger","language_iso":"fuq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central-Eastern Niger Fulfulde","language_family_code":"FUQ","language_family_name":"Fulfulde, Central Eastern Niger","language_family_english":"Fulfulde, Central Eastern Niger","language_family_iso":"fuq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-25 18:39:12","created_on":"2015-11-25 18:20:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FUQWBTN2ET\/FUQWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"FUVTBLN1DA","fcbh_id":"FUVTBLN1DA","volume_name":"Bible League Version (Latin Script)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FUV","language_name":"Fulfulde, Nigerian (Caka)","language_english":"Fulfulde, Nigerian (Caka)","language_iso":"fuv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nigerian Fulfulde","language_family_code":"FUV","language_family_name":"Fulfulde, Nigerian (Caka)","language_family_english":"Fulfulde, Nigerian (Caka)","language_family_iso":"fuv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:36","created_on":"2013-01-22 19:53:24","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"FUVTBLN1DA\/FUVTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"FUVTBLN1ET","fcbh_id":"FUVTBLN1ET","volume_name":"Bible League Version (Latin Script)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"FUV","language_name":"Fulfulde, Nigerian (Caka)","language_english":"Fulfulde, Nigerian (Caka)","language_iso":"fuv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nigerian Fulfulde","language_family_code":"FUV","language_family_name":"Fulfulde, Nigerian (Caka)","language_family_english":"Fulfulde, Nigerian (Caka)","language_family_iso":"fuv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:21","created_on":"2013-01-23 16:42:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"FUVTBLN1ET\/FUVTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GA1BSKN2DA","fcbh_id":"GA1BSKN2DA","volume_name":"1994 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GA1","language_name":"Borana (Oromo)","language_english":"Borana (Oromo)","language_iso":"gax","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"English","language_family_code":"GA1","language_family_name":"Borana (Oromo)","language_family_english":"Borana (Oromo)","language_family_iso":"gax","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSK","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:40","created_on":"2011-10-18 21:11:23","right_to_left":"false","num_art":"8","num_sample_audio":"2","sku":"","audio_zip_path":"GA1BSKN2DA\/GA1BSKN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GACBSGN2DA","fcbh_id":"GACBSGN2DA","volume_name":"1977 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GAC","language_name":"Ga","language_english":"Ga","language_iso":"gaa","language_iso_2B":"gaa","language_iso_2T":"gaa","language_iso_1":"","language_iso_name":"Ga","language_family_code":"GAC","language_family_name":"Ga","language_family_english":"Ga","language_family_iso":"gaa","language_family_iso_2B":"gaa","language_family_iso_2T":"gaa","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:33","created_on":"2010-09-14 17:00:10","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2GACBSG","audio_zip_path":"GACBSGN2DA\/GACBSGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GAGIB1N1DA","fcbh_id":"GAGIB1N1DA","volume_name":"2006 Edition (Cyrillic)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GAG","language_name":"Gagauz","language_english":"Gagauz","language_iso":"gag","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gagauz","language_family_code":"GAG","language_family_name":"Gagauz","language_family_english":"Gagauz","language_family_iso":"gag","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IB1","version_name":"Institute for Bible Translation","version_english":"Institute for Bible Translation","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-25 19:16:55","created_on":"2017-09-25 18:46:08","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GAGIB1N1DA\/GAGIB1N1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GAGIB1N1ET","fcbh_id":"GAGIB1N1ET","volume_name":"2006 Edition (Cyrillic)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GAG","language_name":"Gagauz","language_english":"Gagauz","language_iso":"gag","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gagauz","language_family_code":"GAG","language_family_name":"Gagauz","language_family_english":"Gagauz","language_family_iso":"gag","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IB1","version_name":"Institute for Bible Translation","version_english":"Institute for Bible Translation","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-25 19:16:55","created_on":"2017-09-25 18:50:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GAGIB1N1ET\/GAGIB1N1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"GAGIB1N2DA","fcbh_id":"GAGIB1N2DA","volume_name":"2006 Edition (Cyrillic)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GAG","language_name":"Gagauz","language_english":"Gagauz","language_iso":"gag","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gagauz","language_family_code":"GAG","language_family_name":"Gagauz","language_family_english":"Gagauz","language_family_iso":"gag","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IB1","version_name":"Institute for Bible Translation","version_english":"Institute for Bible Translation","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-25 19:16:55","created_on":"2017-09-25 18:14:31","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GAGIB1N2DA\/GAGIB1N2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GAGIB1N2ET","fcbh_id":"GAGIB1N2ET","volume_name":"2006 Edition (Cyrillic)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GAG","language_name":"Gagauz","language_english":"Gagauz","language_iso":"gag","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gagauz","language_family_code":"GAG","language_family_name":"Gagauz","language_family_english":"Gagauz","language_family_iso":"gag","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IB1","version_name":"Institute for Bible Translation","version_english":"Institute for Bible Translation","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:19","created_on":"2011-10-12 15:19:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GAGIB1N2ET\/GAGIB1N2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GAGIBTN1DA","fcbh_id":"GAGIBTN1DA","volume_name":"2006 Edition (Latin)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GAG","language_name":"Gagauz","language_english":"Gagauz","language_iso":"gag","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gagauz","language_family_code":"GAG","language_family_name":"Gagauz","language_family_english":"Gagauz","language_family_iso":"gag","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-25 19:16:55","created_on":"2017-09-25 18:54:40","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GAGIBTN1DA\/GAGIBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GAGIBTN1ET","fcbh_id":"GAGIBTN1ET","volume_name":"2006 Edition (Latin)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GAG","language_name":"Gagauz","language_english":"Gagauz","language_iso":"gag","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gagauz","language_family_code":"GAG","language_family_name":"Gagauz","language_family_english":"Gagauz","language_family_iso":"gag","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-25 20:15:50","created_on":"2017-09-25 20:07:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GAGIBTN1ET\/GAGIBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"GAGIBTN2DA","fcbh_id":"GAGIBTN2DA","volume_name":"2006 Edition (Latin)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GAG","language_name":"Gagauz","language_english":"Gagauz","language_iso":"gag","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gagauz","language_family_code":"GAG","language_family_name":"Gagauz","language_family_english":"Gagauz","language_family_iso":"gag","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-25 19:16:56","created_on":"2017-09-25 18:43:07","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GAGIBTN2DA\/GAGIBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GAGIBTN2ET","fcbh_id":"GAGIBTN2ET","volume_name":"2006 Edition (Latin)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GAG","language_name":"Gagauz","language_english":"Gagauz","language_iso":"gag","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gagauz","language_family_code":"GAG","language_family_name":"Gagauz","language_family_english":"Gagauz","language_family_iso":"gag","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:19","created_on":"2011-10-09 16:46:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GAGIBTN2ET\/GAGIBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GAHPNGN2ET","fcbh_id":"GAHPNGN2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GAH","language_name":"Alekano","language_english":"Alekano","language_iso":"gah","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Alekano","language_family_code":"GAH","language_family_name":"Alekano","language_family_english":"Alekano","language_family_iso":"gah","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-26 17:46:02","created_on":"2013-09-09 13:54:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GAHPNGN2ET\/GAHPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"GAIPBTN1DA","fcbh_id":"GAIPBTN1DA","volume_name":"PBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GAI","language_name":"Mborena Kam","language_english":"Borei","language_iso":"gai","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Borei","language_family_code":"GAI","language_family_name":"Mborena Kam","language_family_english":"Borei","language_family_iso":"gai","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-04-27 21:15:27","created_on":"2018-04-27 20:35:58","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GAIPBTN1DA\/GAIPBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GAIPBTN2DA","fcbh_id":"GAIPBTN2DA","volume_name":"PBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GAI","language_name":"Mborena Kam","language_english":"Borei","language_iso":"gai","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Borei","language_family_code":"GAI","language_family_name":"Mborena Kam","language_family_english":"Borei","language_family_iso":"gai","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-04-27 21:15:45","created_on":"2018-04-27 20:34:01","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GAIPBTN2DA\/GAIPBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GAMWBTN2ET","fcbh_id":"GAMWBTN2ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GAM","language_name":"Kandawo","language_english":"Kandawo","language_iso":"gam","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kandawo","language_family_code":"GAM","language_family_name":"Kandawo","language_family_english":"Kandawo","language_family_iso":"gam","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-28 21:34:34","created_on":"2015-05-06 21:37:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GAMWBTN2ET\/GAMWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GAWWBTN2ET","fcbh_id":"GAWWBTN2ET","volume_name":"1990 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GAW","language_name":"Nobonob","language_english":"Nobonob","language_iso":"gaw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nobonob","language_family_code":"GAW","language_family_name":"Nobonob","language_family_english":"Nobonob","language_family_iso":"gaw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-28 17:20:44","created_on":"2014-06-04 21:53:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GAWWBTN2ET\/GAWWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GAXBSEN2DA","fcbh_id":"GAXBSEN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GAX","language_name":"Guji","language_english":"Guji","language_iso":"gax","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Borana-Arsi-Guji Oromo","language_family_code":"GAX","language_family_name":"Guji","language_family_english":"Guji","language_family_iso":"gax","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-06 21:12:51","created_on":"2010-09-14 17:01:15","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2GAXBSE","audio_zip_path":"GAXBSEN2DA\/GAXBSEN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","streaming_url","digital_download"],"resolution":[]},{"dam_id":"GAZBSEN2DA","fcbh_id":"GAZBSEN2DA","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GAZ","language_name":"Oromo, West Central","language_english":"Oromo, West Central","language_iso":"gaz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"West Central Oromo","language_family_code":"GAZ","language_family_name":"Oromo, West Central","language_family_english":"Oromo, West Central","language_family_iso":"gaz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:46","created_on":"2010-09-14 17:00:11","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2GAZBSE","audio_zip_path":"GAZBSEN2DA\/GAZBSEN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GBILAIN2DA","fcbh_id":"GBILAIN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GBI","language_name":"Galela","language_english":"Galela","language_iso":"gbi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Galela","language_family_code":"GBI","language_family_name":"Galela","language_family_english":"Galela","language_family_iso":"gbi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-05-09 22:25:02","created_on":"2014-05-09 18:39:14","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"GBILAIN2DA\/GBILAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GBILAIN2ET","fcbh_id":"GBILAIN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GBI","language_name":"Galela","language_english":"Galela","language_iso":"gbi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Galela","language_family_code":"GBI","language_family_name":"Galela","language_family_english":"Galela","language_family_iso":"gbi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:19","created_on":"2012-05-09 20:28:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GBILAIN2ET\/GBILAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GBMWINP1DA","fcbh_id":"GBMWINP1DA","volume_name":"2018 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GBM","language_name":"Garhwali","language_english":"Garhwali","language_iso":"gbm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Garhwali","language_family_code":"GBM","language_family_name":"Garhwali","language_family_english":"Garhwali","language_family_iso":"gbm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WIN","version_name":"WIN","version_english":"WIN","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-11-28 20:00:39","created_on":"2018-10-29 22:18:18","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GBMWINP1DA\/GBMWINP1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web_streaming","streaming_url","digital_download"],"resolution":[]},{"dam_id":"GBMWINP2DA","fcbh_id":"GBMWINP2DA","volume_name":"2018 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GBM","language_name":"Garhwali","language_english":"Garhwali","language_iso":"gbm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Garhwali","language_family_code":"GBM","language_family_name":"Garhwali","language_family_english":"Garhwali","language_family_iso":"gbm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WIN","version_name":"WIN","version_english":"WIN","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-11-28 20:01:15","created_on":"2018-10-29 22:15:42","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GBMWINP2DA\/GBMWINP2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web_streaming","streaming_url","digital_download"],"resolution":[]},{"dam_id":"GDEWBTN2DA","fcbh_id":"GDEWBTN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GDE","language_name":"Gude","language_english":"Gude","language_iso":"gde","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gude","language_family_code":"GDE","language_family_name":"Gude","language_family_english":"Gude","language_family_iso":"gde","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 15:37:17","created_on":"2010-09-14 17:00:11","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2GDEWBT","audio_zip_path":"GDEWBTN2DA\/GDEWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GDEWBTN2ET","fcbh_id":"GDEWBTN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GDE","language_name":"Gude","language_english":"Gude","language_iso":"gde","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gude","language_family_code":"GDE","language_family_name":"Gude","language_family_english":"Gude","language_family_iso":"gde","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:02","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2GDEWBT","audio_zip_path":"GDEWBTN2ET\/GDEWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GDNPNGN2ET","fcbh_id":"GDNPNGN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GDN","language_name":"Umanakaina","language_english":"Umanakaina","language_iso":"gdn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Umanakaina","language_family_code":"GDN","language_family_name":"Umanakaina","language_family_english":"Umanakaina","language_family_iso":"gdn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 17:07:21","created_on":"2014-06-06 19:12:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GDNPNGN2ET\/GDNPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GDRPNGN2ET","fcbh_id":"GDRPNGN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GDR","language_name":"Wipi","language_english":"Wipi","language_iso":"gdr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wipi","language_family_code":"GDR","language_family_name":"Wipi","language_family_english":"Wipi","language_family_iso":"gdr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 17:12:14","created_on":"2014-05-08 19:00:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GDRPNGN2ET\/GDRPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GEJBS2N2DA","fcbh_id":"GEJBSTN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GEJ","language_name":"Mina","language_english":"Mina","language_iso":"gej","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gen","language_family_code":"GEJ","language_family_name":"Mina","language_family_english":"Mina","language_family_iso":"gej","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BS2","version_name":"Bible Society of Togo","version_english":"Bible Society of Togo","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:39","created_on":"2011-06-07 17:13:28","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"GEJBS2N2DA\/GEJBS2N2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GEJBS2N2ET","fcbh_id":"GEJBSTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GEJ","language_name":"Mina","language_english":"Mina","language_iso":"gej","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gen","language_family_code":"GEJ","language_family_name":"Mina","language_family_english":"Mina","language_family_iso":"gej","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BS2","version_name":"Bible Society of Togo","version_english":"Bible Society of Togo","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:21","created_on":"2011-06-08 22:35:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GEJBS2N2ET\/GEJBS2N2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GEOIBTN2DA","fcbh_id":"GEOIBTN2DA","volume_name":"1992 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GEO","language_name":"\u10e5\u10d0\u10e0\u10d7\u10e3\u10da","language_english":"Georgian","language_iso":"kat","language_iso_2B":"geo","language_iso_2T":"kat","language_iso_1":"ka","language_iso_name":"Georgian","language_family_code":"GEO","language_family_name":"\u10e5\u10d0\u10e0\u10d7\u10e3\u10da","language_family_english":"Georgian","language_family_iso":"kat","language_family_iso_2B":"geo","language_family_iso_2T":"kat","language_family_iso_1":"ka","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:38","created_on":"2010-09-14 17:00:11","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2GEOIBT","audio_zip_path":"GEOIBTN2DA\/GEOIBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GERD05N2ET","fcbh_id":"GERD05N2ET","volume_name":"1905 Darby Unrevidierte Elberfel","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GER","language_name":"Deutsch","language_english":"German","language_iso":"deu","language_iso_2B":"ger","language_iso_2T":"deu","language_iso_1":"de","language_iso_name":"German","language_family_code":"GER","language_family_name":"Deutsch","language_family_english":"German","language_family_iso":"deu","language_family_iso_2B":"ger","language_family_iso_2T":"deu","language_family_iso_1":"de","version_code":"D05","version_name":"1905 Darby Unrevidierte Elberfel","version_english":"1905 Darby Unrevidierte Elberfel","collection_code":"NT","rich":"0","collection_name":"Neue Testament","updated_on":"2013-11-27 21:22:30","created_on":"2010-09-14 17:01:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GERD05N2ET\/GERD05N2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GERD05O2ET","fcbh_id":"GERD05O2ET","volume_name":"1905 Darby Unrevidierte Elberfel","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GER","language_name":"Deutsch","language_english":"German","language_iso":"deu","language_iso_2B":"ger","language_iso_2T":"deu","language_iso_1":"de","language_iso_name":"German","language_family_code":"GER","language_family_name":"Deutsch","language_family_english":"German","language_family_iso":"deu","language_family_iso_2B":"ger","language_family_iso_2T":"deu","language_family_iso_1":"de","version_code":"D05","version_name":"1905 Darby Unrevidierte Elberfel","version_english":"1905 Darby Unrevidierte Elberfel","collection_code":"OT","rich":"0","collection_name":"Alte Testament","updated_on":"2013-11-27 21:22:15","created_on":"2010-09-14 17:01:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GERD05O2ET\/GERD05O2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GERD71N2ET","fcbh_id":"GERD71N2ET","volume_name":"1971 Darby Unrevidierte Elberfel","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GER","language_name":"Deutsch","language_english":"German","language_iso":"deu","language_iso_2B":"ger","language_iso_2T":"deu","language_iso_1":"de","language_iso_name":"German","language_family_code":"GER","language_family_name":"Deutsch","language_family_english":"German","language_family_iso":"deu","language_family_iso_2B":"ger","language_family_iso_2T":"deu","language_family_iso_1":"de","version_code":"D71","version_name":"1971 Darby Unrevidierte Elberfel","version_english":"1971 Darby Unrevidierte Elberfel","collection_code":"NT","rich":"0","collection_name":"Neue Testament","updated_on":"2013-11-27 21:42:14","created_on":"2010-09-14 17:01:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GERD71N2ET\/GERD71N2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GERD71O2ET","fcbh_id":"GERD71O2ET","volume_name":"1971 Darby Unrevidierte Elberfel","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GER","language_name":"Deutsch","language_english":"German","language_iso":"deu","language_iso_2B":"ger","language_iso_2T":"deu","language_iso_1":"de","language_iso_name":"German","language_family_code":"GER","language_family_name":"Deutsch","language_family_english":"German","language_family_iso":"deu","language_family_iso_2B":"ger","language_family_iso_2T":"deu","language_family_iso_1":"de","version_code":"D71","version_name":"1971 Darby Unrevidierte Elberfel","version_english":"1971 Darby Unrevidierte Elberfel","collection_code":"OT","rich":"0","collection_name":"Alte Testament","updated_on":"2013-11-27 21:23:54","created_on":"2010-09-14 17:01:44","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GERD71O2ET\/GERD71O2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GERL12N2ET","fcbh_id":"GERL12N2ET","volume_name":"1912 Luther Bibel","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GER","language_name":"Deutsch","language_english":"German","language_iso":"deu","language_iso_2B":"ger","language_iso_2T":"deu","language_iso_1":"de","language_iso_name":"German","language_family_code":"GER","language_family_name":"Deutsch","language_family_english":"German","language_family_iso":"deu","language_family_iso_2B":"ger","language_family_iso_2T":"deu","language_family_iso_1":"de","version_code":"L12","version_name":"1912 Luther Bibel","version_english":"1912 Luther Bibel","collection_code":"NT","rich":"0","collection_name":"Neue Testament","updated_on":"2016-08-31 18:01:35","created_on":"2016-08-31 17:29:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GERL12N2ET\/GERL12N2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"GERL12O2ET","fcbh_id":"GERL12O2ET","volume_name":"1912 Luther Bibel","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GER","language_name":"Deutsch","language_english":"German","language_iso":"deu","language_iso_2B":"ger","language_iso_2T":"deu","language_iso_1":"de","language_iso_name":"German","language_family_code":"GER","language_family_name":"Deutsch","language_family_english":"German","language_family_iso":"deu","language_family_iso_2B":"ger","language_family_iso_2T":"deu","language_family_iso_1":"de","version_code":"L12","version_name":"1912 Luther Bibel","version_english":"1912 Luther Bibel","collection_code":"OT","rich":"0","collection_name":"Alte Testament","updated_on":"2016-08-31 18:01:54","created_on":"2016-08-31 17:32:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GERL12O2ET\/GERL12O2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"GERL45N2ET","fcbh_id":"GERL45N2ET","volume_name":"1545 Luther Bibel","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GER","language_name":"Deutsch","language_english":"German","language_iso":"deu","language_iso_2B":"ger","language_iso_2T":"deu","language_iso_1":"de","language_iso_name":"German","language_family_code":"GER","language_family_name":"Deutsch","language_family_english":"German","language_family_iso":"deu","language_family_iso_2B":"ger","language_family_iso_2T":"deu","language_family_iso_1":"de","version_code":"L45","version_name":"1545 Luther Bibel","version_english":"1545 Luther Bibel","collection_code":"NT","rich":"0","collection_name":"Neue Testament","updated_on":"2013-11-27 21:45:53","created_on":"2010-09-14 17:01:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GERL45N2ET\/GERL45N2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GERL45O2ET","fcbh_id":"GERL45O2ET","volume_name":"1545 Luther Bibel","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GER","language_name":"Deutsch","language_english":"German","language_iso":"deu","language_iso_2B":"ger","language_iso_2T":"deu","language_iso_1":"de","language_iso_name":"German","language_family_code":"GER","language_family_name":"Deutsch","language_family_english":"German","language_family_iso":"deu","language_family_iso_2B":"ger","language_family_iso_2T":"deu","language_family_iso_1":"de","version_code":"L45","version_name":"1545 Luther Bibel","version_english":"1545 Luther Bibel","collection_code":"OT","rich":"0","collection_name":"Alte Testament","updated_on":"2013-11-27 21:45:36","created_on":"2010-09-14 17:01:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GERL45O2ET\/GERL45O2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GFKTBLN2ET","fcbh_id":"GFKTBLN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GFK","language_name":"Patpatar","language_english":"Patpatar","language_iso":"gfk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Patpatar","language_family_code":"GFK","language_family_name":"Patpatar","language_family_english":"Patpatar","language_family_iso":"gfk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 20:41:18","created_on":"2014-06-25 14:50:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GFKTBLN2ET\/GFKTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GGUABCN2DA","fcbh_id":"GGUABCN2DA","volume_name":"1998 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GGU","language_name":"Gban","language_english":"Gban","language_iso":"ggu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gagu","language_family_code":"GGU","language_family_name":"Gban","language_family_english":"Gban","language_family_iso":"ggu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:48","created_on":"2010-09-14 17:00:11","right_to_left":"false","num_art":"3","num_sample_audio":"3","sku":"N2GGUABC","audio_zip_path":"GGUABCN2DA\/GGUABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GHSPNGN2ET","fcbh_id":"GHSPNGN2ET","volume_name":"1975 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GHS","language_name":"Guhu-Samane","language_english":"Guhu-Samane","language_iso":"ghs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guhu-Samane","language_family_code":"GHS","language_family_name":"Guhu-Samane","language_family_english":"Guhu-Samane","language_family_iso":"ghs","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-21 18:34:34","created_on":"2014-05-05 15:13:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GHSPNGN2ET\/GHSPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GIDABCN2DA","fcbh_id":"GIDABCN2DA","volume_name":"1985 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GID","language_name":"Gidar","language_english":"Gidar","language_iso":"gid","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gidar","language_family_code":"GID","language_family_name":"Gidar","language_family_english":"Gidar","language_family_iso":"gid","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:01","created_on":"2011-06-01 18:47:25","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"GIDABCN2DA\/GIDABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GILBSPN1DA","fcbh_id":"GILBSPN1DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GIL","language_name":"Kiribati","language_english":"Kiribati","language_iso":"gil","language_iso_2B":"gil","language_iso_2T":"gil","language_iso_1":"","language_iso_name":"Gilbertese","language_family_code":"GIL","language_family_name":"Kiribati","language_family_english":"Kiribati","language_family_iso":"gil","language_family_iso_2B":"gil","language_family_iso_2T":"gil","language_family_iso_1":"","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-12 21:48:20","created_on":"2017-01-12 21:23:49","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GILBSPN1DA\/GILBSPN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GILBSPN2DA","fcbh_id":"GILBSPN2DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GIL","language_name":"Kiribati","language_english":"Kiribati","language_iso":"gil","language_iso_2B":"gil","language_iso_2T":"gil","language_iso_1":"","language_iso_name":"Gilbertese","language_family_code":"GIL","language_family_name":"Kiribati","language_family_english":"Kiribati","language_family_iso":"gil","language_family_iso_2B":"gil","language_family_iso_2T":"gil","language_family_iso_1":"","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-12 21:52:06","created_on":"2016-05-09 14:53:39","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GILBSPN2DA\/GILBSPN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GIZABCN2DA","fcbh_id":"GIZABCN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GIZ","language_name":"Guiziga, South","language_english":"Guiziga, South","language_iso":"giz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"South Giziga","language_family_code":"GIZ","language_family_name":"Guiziga, South","language_family_english":"Guiziga, South","language_family_iso":"giz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:46","created_on":"2010-09-14 17:00:11","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2GIZABC","audio_zip_path":"GIZABCN2DA\/GIZABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GKPABCN2DA","fcbh_id":"GKPABCN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GKP","language_name":"Kpelle for Guinea","language_english":"Kpelle for Guinea","language_iso":"gkp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guinea Kpelle","language_family_code":"GKP","language_family_name":"Kpelle for Guinea","language_family_english":"Kpelle for Guinea","language_family_iso":"gkp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:53","created_on":"2010-09-14 17:00:12","right_to_left":"false","num_art":"6","num_sample_audio":"1","sku":"N2GKPABC","audio_zip_path":"GKPABCN2DA\/GKPABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GMVTBLN2DA","fcbh_id":"GMVTBLN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GMV","language_name":"Gamo","language_english":"Gamo","language_iso":"gmv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gamo","language_family_code":"GMV","language_family_name":"Gamo","language_family_english":"Gamo","language_family_iso":"gmv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:42","created_on":"2012-10-22 15:34:15","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"GMVTBLN2DA\/GMVTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GMVTBLN2ET","fcbh_id":"GMVTBLN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GMV","language_name":"Gamo","language_english":"Gamo","language_iso":"gmv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gamo","language_family_code":"GMV","language_family_name":"Gamo","language_family_english":"Gamo","language_family_iso":"gmv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-19 17:34:00","created_on":"2011-08-16 19:08:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GMVTBLN2ET\/GMVTBLN2ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GNAWBTN1DA","fcbh_id":"GNAWBTN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GNA","language_name":"Kaansa","language_english":"Kaansa","language_iso":"gna","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaansa","language_family_code":"GNA","language_family_name":"Kaansa","language_family_english":"Kaansa","language_family_iso":"gna","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:28:08","created_on":"2016-01-22 19:46:38","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GNAWBTN1DA\/GNAWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GNAWBTN1ET","fcbh_id":"GNAWBTN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GNA","language_name":"Kaansa","language_english":"Kaansa","language_iso":"gna","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaansa","language_family_code":"GNA","language_family_name":"Kaansa","language_family_english":"Kaansa","language_family_iso":"gna","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-26 18:34:35","created_on":"2018-10-26 18:14:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GNAWBTN1ET\/GNAWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"GNAWBTN2DA","fcbh_id":"GNAWBTN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GNA","language_name":"Kaansa","language_english":"Kaansa","language_iso":"gna","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaansa","language_family_code":"GNA","language_family_name":"Kaansa","language_family_english":"Kaansa","language_family_iso":"gna","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:28:08","created_on":"2016-01-26 20:45:07","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GNAWBTN2DA\/GNAWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GNAWBTN2ET","fcbh_id":"GNAWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GNA","language_name":"Kaansa","language_english":"Kaansa","language_iso":"gna","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaansa","language_family_code":"GNA","language_family_name":"Kaansa","language_family_english":"Kaansa","language_family_iso":"gna","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-26 18:36:07","created_on":"2018-10-26 18:09:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GNAWBTN2ET\/GNAWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"GNDWYIN2DA","fcbh_id":"GNDWYIN2DA","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GND","language_name":"Zulgo","language_english":"Zulgo","language_iso":"gnd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zulgo-Gemzek","language_family_code":"GND","language_family_name":"Zulgo","language_family_english":"Zulgo","language_family_iso":"gnd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:42","created_on":"2011-05-27 19:04:35","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GNDWYIN2DA\/GNDWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GNDWYIN2ET","fcbh_id":"GNDWYIN2ET","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GND","language_name":"Zulgo","language_english":"Zulgo","language_iso":"gnd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zulgo-Gemzek","language_family_code":"GND","language_family_name":"Zulgo","language_family_english":"Zulgo","language_family_iso":"gnd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:06","created_on":"2011-10-12 16:29:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GNDWYIN2ET\/GNDWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GNGWYIN1DA","fcbh_id":"GNGWYIN1DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GNG","language_name":"Gangam","language_english":"Ngangam","language_iso":"gng","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ngangam","language_family_code":"GNG","language_family_name":"Gangam","language_family_english":"Ngangam","language_family_iso":"gng","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-19 21:17:44","created_on":"2015-02-20 20:13:23","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"GNGWYIN1DA\/GNGWYIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GNGWYIN1ET","fcbh_id":"GNGWYIN1ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GNG","language_name":"Gangam","language_english":"Ngangam","language_iso":"gng","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ngangam","language_family_code":"GNG","language_family_name":"Gangam","language_family_english":"Ngangam","language_family_iso":"gng","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:12","created_on":"2015-02-20 20:16:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GNGWYIN1ET\/GNGWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","mp3_cd"],"resolution":[]},{"dam_id":"GNGWYIN2DA","fcbh_id":"GNGWYIN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GNG","language_name":"Gangam","language_english":"Ngangam","language_iso":"gng","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ngangam","language_family_code":"GNG","language_family_name":"Gangam","language_family_english":"Ngangam","language_family_iso":"gng","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-19 21:18:18","created_on":"2015-02-20 20:12:27","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"GNGWYIN2DA\/GNGWYIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GNGWYIN2ET","fcbh_id":"GNGWYIN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GNG","language_name":"Gangam","language_english":"Ngangam","language_iso":"gng","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ngangam","language_family_code":"GNG","language_family_name":"Gangam","language_family_english":"Ngangam","language_family_iso":"gng","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:12","created_on":"2014-02-24 16:32:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GNGWYIN2ET\/GNGWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GNWNTMN1DA","fcbh_id":"GNWNTMN1DA","volume_name":"1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GNW","language_name":"Guaran\u00ed, Western Bolivian","language_english":"Western Bolivian Guarani","language_iso":"gnw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Bolivian Guaran\u00ed","language_family_code":"GNW","language_family_name":"Guaran\u00ed, Western Bolivian","language_family_english":"Western Bolivian Guarani","language_family_iso":"gnw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-15 16:34:42","created_on":"2016-09-23 16:24:43","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GNWNTMN1DA\/GNWNTMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GNWNTMN1ET","fcbh_id":"GNWNTMN1ET","volume_name":"1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GNW","language_name":"Guaran\u00ed, Western Bolivian","language_english":"Western Bolivian Guarani","language_iso":"gnw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Bolivian Guaran\u00ed","language_family_code":"GNW","language_family_name":"Guaran\u00ed, Western Bolivian","language_family_english":"Western Bolivian Guarani","language_family_iso":"gnw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-15 16:34:42","created_on":"2016-09-23 16:18:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GNWNTMN1ET\/GNWNTMN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"GNWNTMN2DA","fcbh_id":"GNWNTMN2DA","volume_name":"1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GNW","language_name":"Guaran\u00ed, Western Bolivian","language_english":"Western Bolivian Guarani","language_iso":"gnw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Bolivian Guaran\u00ed","language_family_code":"GNW","language_family_name":"Guaran\u00ed, Western Bolivian","language_family_english":"Western Bolivian Guarani","language_family_iso":"gnw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-15 16:34:42","created_on":"2016-09-23 16:25:46","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GNWNTMN2DA\/GNWNTMN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GNWNTMN2ET","fcbh_id":"GNWNTMN2ET","volume_name":"1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GNW","language_name":"Guaran\u00ed, Western Bolivian","language_english":"Western Bolivian Guarani","language_iso":"gnw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Bolivian Guaran\u00ed","language_family_code":"GNW","language_family_name":"Guaran\u00ed, Western Bolivian","language_family_english":"Western Bolivian Guarani","language_family_iso":"gnw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-15 16:34:43","created_on":"2016-09-16 18:28:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GNWNTMN2ET\/GNWNTMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"GNWNTMS1DA","fcbh_id":"GNWNTMS1DA","volume_name":"OT Portions - 1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GNW","language_name":"Guaran\u00ed, Western Bolivian","language_english":"Western Bolivian Guarani","language_iso":"gnw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Bolivian Guaran\u00ed","language_family_code":"GNW","language_family_name":"Guaran\u00ed, Western Bolivian","language_family_english":"Western Bolivian Guarani","language_family_iso":"gnw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTM","version_name":"","version_english":"","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2017-11-15 16:34:43","created_on":"2016-09-27 16:51:45","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GNWNTMS1DA\/GNWNTMS1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GNWNTMS2DA","fcbh_id":"GNWNTMS2DA","volume_name":"Ot Portions - 1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GNW","language_name":"Guaran\u00ed, Western Bolivian","language_english":"Western Bolivian Guarani","language_iso":"gnw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Bolivian Guaran\u00ed","language_family_code":"GNW","language_family_name":"Guaran\u00ed, Western Bolivian","language_family_english":"Western Bolivian Guarani","language_family_iso":"gnw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTM","version_name":"","version_english":"","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2017-11-15 16:34:43","created_on":"2016-09-27 16:58:30","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GNWNTMS2DA\/GNWNTMS2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GO1TBLN2DA","fcbh_id":"GO1TBLN2DA","volume_name":"2009 Edition (Ethiopic script)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GO1","language_name":"Goffa","language_english":"Goffa","language_iso":"gof","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gofa","language_family_code":"GOF","language_family_name":"Goffa","language_family_english":"Goffa","language_family_iso":"gof","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2012-08-21 20:09:09","created_on":"2012-08-21 18:10:10","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"GO1TBLN2DA\/GO1TBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GO1TBLN2ET","fcbh_id":"GO1TBLN2ET","volume_name":"2009 Edition (Ethiopic script)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GO1","language_name":"Goffa","language_english":"Goffa","language_iso":"gof","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gofa","language_family_code":"GOF","language_family_name":"Goffa","language_family_english":"Goffa","language_family_iso":"gof","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:40:41","created_on":"2012-08-21 19:44:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GO1TBLN2ET\/GO1TBLN2ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GOFTBLN2DA","fcbh_id":"GOFTBLN2DA","volume_name":"2009 Edition (Latin script)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GOF","language_name":"Goffa","language_english":"Goffa","language_iso":"gof","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gofa","language_family_code":"GOF","language_family_name":"Goffa","language_family_english":"Goffa","language_family_iso":"gof","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:42","created_on":"2012-08-20 20:02:48","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"GOFTBLN2DA\/GOFTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GOFTBLN2ET","fcbh_id":"GOFTBLN2ET","volume_name":"2009 Edition (Latin script)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GOF","language_name":"Goffa","language_english":"Goffa","language_iso":"gof","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gofa","language_family_code":"GOF","language_family_name":"Goffa","language_family_english":"Goffa","language_family_iso":"gof","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:40:41","created_on":"2012-08-21 19:42:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GOFTBLN2ET\/GOFTBLN2ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GOGBSTN2DA","fcbh_id":"GOGBSTN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GOG","language_name":"Chigogo","language_english":"Chigogo","language_iso":"gog","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gogo","language_family_code":"GOG","language_family_name":"Chigogo","language_family_english":"Chigogo","language_family_iso":"gog","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-29 16:26:47","created_on":"2010-09-14 17:00:12","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2GOGBST","audio_zip_path":"GOGBSTN2DA\/GOGBSTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GOGBSTN2ET","fcbh_id":"GOGBSTN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GOG","language_name":"Chigogo","language_english":"Chigogo","language_iso":"gog","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gogo","language_family_code":"GOG","language_family_name":"Chigogo","language_family_english":"Chigogo","language_family_iso":"gog","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:00:59","created_on":"2010-09-14 17:00:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2GOGBST","audio_zip_path":"GOGBSTN2ET\/GOGBSTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GORLAIN2DA","fcbh_id":"GORLAIN2DA","volume_name":"Today's Gorontalo Version 2010","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GOR","language_name":"Gorontalo","language_english":"Gorontalo","language_iso":"gor","language_iso_2B":"gor","language_iso_2T":"gor","language_iso_1":"","language_iso_name":"Gorontalo","language_family_code":"GOR","language_family_name":"Gorontalo","language_family_english":"Gorontalo","language_family_iso":"gor","language_family_iso_2B":"gor","language_family_iso_2T":"gor","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:43","created_on":"2012-04-16 20:30:46","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"GORLAIN2DA\/GORLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GORLAIN2ET","fcbh_id":"GORLAIN2ET","volume_name":"Today's Gorontalo Version, 2010","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GOR","language_name":"Gorontalo","language_english":"Gorontalo","language_iso":"gor","language_iso_2B":"gor","language_iso_2T":"gor","language_iso_1":"","language_iso_name":"Gorontalo","language_family_code":"GOR","language_family_name":"Gorontalo","language_family_english":"Gorontalo","language_family_iso":"gor","language_family_iso_2B":"gor","language_family_iso_2T":"gor","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:19","created_on":"2011-05-30 00:47:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GORLAIN2ET\/GORLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GQRWBTN1DA","fcbh_id":"GQRWBTN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GQR","language_name":"Gor","language_english":"Gor","language_iso":"gqr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gor","language_family_code":"GQR","language_family_name":"Gor","language_family_english":"Gor","language_family_iso":"gqr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-23 19:52:12","created_on":"2015-06-01 21:29:20","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"GQRWBTN1DA\/GQRWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GQRWBTN1ET","fcbh_id":"GQRWBTN1ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GQR","language_name":"Gor","language_english":"Gor","language_iso":"gqr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gor","language_family_code":"GQR","language_family_name":"Gor","language_family_english":"Gor","language_family_iso":"gqr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:23","created_on":"2015-06-04 17:04:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GQRWBTN1ET\/GQRWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GQRWBTN2DA","fcbh_id":"GQRWBTN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GQR","language_name":"Gor","language_english":"Gor","language_iso":"gqr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gor","language_family_code":"GQR","language_family_name":"Gor","language_family_english":"Gor","language_family_iso":"gqr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-23 19:53:30","created_on":"2015-06-02 18:45:43","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"GQRWBTN2DA\/GQRWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GQRWBTN2ET","fcbh_id":"GQRWBTN2ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GQR","language_name":"Gor","language_english":"Gor","language_iso":"gqr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gor","language_family_code":"GQR","language_family_name":"Gor","language_family_english":"Gor","language_family_iso":"gqr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:23","created_on":"2014-03-19 19:37:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GQRWBTN2ET\/GQRWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GRKEPTN1DA","fcbh_id":"GRKEPTN1DA","volume_name":"Ancient 1904 Ecumenical Patriarchal Text","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GRK","language_name":"Greek","language_english":"Greek","language_iso":"ell","language_iso_2B":"gre","language_iso_2T":"ell","language_iso_1":"el","language_iso_name":"Modern Greek (1453-)","language_family_code":"GRK","language_family_name":"Greek","language_family_english":"Greek","language_family_iso":"ell","language_family_iso_2B":"gre","language_family_iso_2T":"ell","language_family_iso_1":"el","version_code":"EPT","version_name":"Ecumenical Patriarchal Text","version_english":"Ecumenical Patriarchal Text","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:44","created_on":"2012-02-20 16:40:40","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"GRKEPTN1DA\/GRKEPTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GRKEPTN1ET","fcbh_id":"GRKEPTN1ET","volume_name":"Ancient 1904 Ecumenical Patriarchal Text","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GRK","language_name":"Greek","language_english":"Greek","language_iso":"ell","language_iso_2B":"gre","language_iso_2T":"ell","language_iso_1":"el","language_iso_name":"Modern Greek (1453-)","language_family_code":"GRK","language_family_name":"Greek","language_family_english":"Greek","language_family_iso":"ell","language_family_iso_2B":"gre","language_family_iso_2T":"ell","language_family_iso_1":"el","version_code":"EPT","version_name":"Ecumenical Patriarchal Text","version_english":"Ecumenical Patriarchal Text","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-07 20:45:08","created_on":"2012-02-13 17:09:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GRKEPTN1ET\/GRKEPTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GRKSFTN1DA","fcbh_id":"GRKSFTN1DA","volume_name":"2013 Spyros Filos Translation","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GRK","language_name":"Greek","language_english":"Greek","language_iso":"ell","language_iso_2B":"gre","language_iso_2T":"ell","language_iso_1":"el","language_iso_name":"Modern Greek (1453-)","language_family_code":"GRK","language_family_name":"Greek","language_family_english":"Greek","language_family_iso":"ell","language_family_iso_2B":"gre","language_family_iso_2T":"ell","language_family_iso_1":"el","version_code":"SFT","version_name":"Spyros Filos Translation","version_english":"Spyros Filos Translation","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-20 16:39:05","created_on":"2016-03-23 17:08:40","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GRKSFTN1DA\/GRKSFTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GRKSFTN1ET","fcbh_id":"GRKSFTN1ET","volume_name":"2013 Spyros Filos Translation","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GRK","language_name":"Greek","language_english":"Greek","language_iso":"ell","language_iso_2B":"gre","language_iso_2T":"ell","language_iso_1":"el","language_iso_name":"Modern Greek (1453-)","language_family_code":"GRK","language_family_name":"Greek","language_family_english":"Greek","language_family_iso":"ell","language_family_iso_2B":"gre","language_family_iso_2T":"ell","language_family_iso_1":"el","version_code":"SFT","version_name":"Spyros Filos Translation","version_english":"Spyros Filos Translation","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-26 17:23:38","created_on":"2016-08-10 20:50:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GRKSFTN1ET\/GRKSFTN1ET.zip","font":{"id":"47","name":"Galatia SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Galatia_SIL","files":{"zip":"all.zip","ttf":"GalSILR.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"GRKSFTO1ET","fcbh_id":"GRKSFTO1ET","volume_name":"2013 Spyros Filos Translation","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GRK","language_name":"Greek","language_english":"Greek","language_iso":"ell","language_iso_2B":"gre","language_iso_2T":"ell","language_iso_1":"el","language_iso_name":"Modern Greek (1453-)","language_family_code":"GRK","language_family_name":"Greek","language_family_english":"Greek","language_family_iso":"ell","language_family_iso_2B":"gre","language_family_iso_2T":"ell","language_family_iso_1":"el","version_code":"SFT","version_name":"Spyros Filos Translation","version_english":"Spyros Filos Translation","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2016-08-24 20:43:53","created_on":"2016-08-24 18:59:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GRKSFTO1ET\/GRKSFTO1ET.zip","font":{"id":"47","name":"Galatia SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Galatia_SIL","files":{"zip":"all.zip","ttf":"GalSILR.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"GRNNVSN1DA","fcbh_id":"GRNNVSN1DA","volume_name":"1987 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GRN","language_name":"Plautdietsch","language_english":"Plautdietsch","language_iso":"pdt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Plautdietsch","language_family_code":"GRN","language_family_name":"Plautdietsch","language_family_english":"Plautdietsch","language_family_iso":"pdt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:27","created_on":"2010-09-14 16:59:43","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1GRNNVS","audio_zip_path":"GRNNVSN1DA\/GRNNVSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GRTBBSN2DA","fcbh_id":"GRTBBSN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GRT","language_name":"Garo","language_english":"Garo","language_iso":"grt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Garo","language_family_code":"GRT","language_family_name":"Garo","language_family_english":"Garo","language_family_iso":"grt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-18 16:46:50","created_on":"2012-05-02 16:18:25","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"GRTBBSN2DA\/GRTBBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GRTBBSN2ET","fcbh_id":"GRTBBSN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GRT","language_name":"Garo","language_english":"Garo","language_iso":"grt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Garo","language_family_code":"GRT","language_family_name":"Garo","language_family_english":"Garo","language_family_iso":"grt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-01-28 22:28:36","created_on":"2012-08-30 22:05:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GRTBBSN2ET\/GRTBBSN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GSESLSS2DV","fcbh_id":"GSESLSS2DV","volume_name":"DOOR International Ghanaian Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GSE","language_name":"Ghanaian Sign Language","language_english":"Ghanaian Sign Language","language_iso":"gse","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ghanaian Sign Language","language_family_code":"GSE","language_family_name":"Ghanaian Sign Language","language_family_english":"Ghanaian Sign Language","language_family_iso":"gse","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLS","version_name":"Sign Language Stories","version_english":"Sign Language Stories","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2014-03-11 18:01:13","created_on":"2014-01-10 16:46:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GSESLSS2DV\/GSESLSS2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"GSOCARN2DA","fcbh_id":"GSOCARN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GSO","language_name":"Gbaya, Southwest","language_english":"Gbaya, Southwest","language_iso":"gso","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southwest Gbaya","language_family_code":"GSO","language_family_name":"Gbaya, Southwest","language_family_english":"Gbaya, Southwest","language_family_iso":"gso","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAR","version_name":"Central African Republic","version_english":"Central African Republic","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:44","created_on":"2011-10-25 16:51:34","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"GSOCARN2DA\/GSOCARN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GSOCARN2ET","fcbh_id":"GSOCARN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GSO","language_name":"Gbaya, Southwest","language_english":"Gbaya, Southwest","language_iso":"gso","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southwest Gbaya","language_family_code":"GSO","language_family_name":"Gbaya, Southwest","language_family_english":"Gbaya, Southwest","language_family_iso":"gso","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAR","version_name":"Central African Republic","version_english":"Central African Republic","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:12","created_on":"2013-07-01 17:14:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GSOCARN2ET\/GSOCARN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GU1WBTN1ET","fcbh_id":"GU1WBTN1ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GU1","language_name":"Ninkare","language_english":"Ninkare","language_iso":"gur","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Farefare","language_family_code":"GU1","language_family_name":"Ninkare","language_family_english":"Ninkare","language_family_iso":"gur","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-23 16:30:32","created_on":"2015-11-23 16:19:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GU1WBTN1ET\/GU1WBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"GU1WBTN2DA","fcbh_id":"GURWBTN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GU1","language_name":"Ninkare","language_english":"Ninkare","language_iso":"gur","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Farefare","language_family_code":"GU1","language_family_name":"Ninkare","language_family_english":"Ninkare","language_family_iso":"gur","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:45","created_on":"2010-09-14 17:00:14","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2GURWBT","audio_zip_path":"GU1WBTN2DA\/GU1WBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GU1WBTN2ET","fcbh_id":"GURWBTN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GU1","language_name":"Ninkare","language_english":"Ninkare","language_iso":"gur","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Farefare","language_family_code":"GU1","language_family_name":"Ninkare","language_family_english":"Ninkare","language_family_iso":"gur","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:17","created_on":"2010-11-25 20:49:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2GURWBT","audio_zip_path":"GU1WBTN2ET\/GU1WBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GUBWBTN1DA","fcbh_id":"GUBWBTN1DA","volume_name":"SIL Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUB","language_name":"Guajaj\u00e1ra","language_english":"Guajajara","language_iso":"gub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guajaj\u00e1ra","language_family_code":"GUB","language_family_name":"Guajaj\u00e1ra","language_family_english":"Guajajara","language_family_iso":"gub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-06-30 21:21:00","created_on":"2015-06-30 20:29:04","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"GUBWBTN1DA\/GUBWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GUBWBTN1ET","fcbh_id":"GUBWBTN1ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUB","language_name":"Guajaj\u00e1ra","language_english":"Guajajara","language_iso":"gub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guajaj\u00e1ra","language_family_code":"GUB","language_family_name":"Guajaj\u00e1ra","language_family_english":"Guajajara","language_family_iso":"gub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-04 20:45:12","created_on":"2015-07-13 21:36:35","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GUBWBTN1ET\/GUBWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GUBWBTN2DA","fcbh_id":"GUBWBTN2DA","volume_name":"SIL Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUB","language_name":"Guajaj\u00e1ra","language_english":"Guajajara","language_iso":"gub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guajaj\u00e1ra","language_family_code":"GUB","language_family_name":"Guajaj\u00e1ra","language_family_english":"Guajajara","language_family_iso":"gub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-06-30 21:24:24","created_on":"2015-06-30 20:23:32","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"GUBWBTN2DA\/GUBWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GUBWBTN2ET","fcbh_id":"GUBWBTN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUB","language_name":"Guajaj\u00e1ra","language_english":"Guajajara","language_iso":"gub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guajaj\u00e1ra","language_family_code":"GUB","language_family_name":"Guajaj\u00e1ra","language_family_english":"Guajajara","language_family_iso":"gub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-04 16:36:47","created_on":"2014-03-26 15:25:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GUBWBTN2ET\/GUBWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GUBWBTO1ET","fcbh_id":"GUBWBTO1ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUB","language_name":"Guajaj\u00e1ra","language_english":"Guajajara","language_iso":"gub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guajaj\u00e1ra","language_family_code":"GUB","language_family_name":"Guajaj\u00e1ra","language_family_english":"Guajajara","language_family_iso":"gub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-09-04 21:40:12","created_on":"2015-07-13 21:33:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GUBWBTO1ET\/GUBWBTO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GUBWBTO2ET","fcbh_id":"GUBWBTO2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUB","language_name":"Guajaj\u00e1ra","language_english":"Guajajara","language_iso":"gub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guajaj\u00e1ra","language_family_code":"GUB","language_family_name":"Guajaj\u00e1ra","language_family_english":"Guajajara","language_family_iso":"gub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-09-04 17:00:12","created_on":"2014-03-26 15:27:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GUBWBTO2ET\/GUBWBTO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GUCTBLN2DA","fcbh_id":"GUCTBLN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUC","language_name":"Wayuu","language_english":"Wayuu","language_iso":"guc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wayuu","language_family_code":"GUC","language_family_name":"Wayuu","language_family_english":"Wayuu","language_family_iso":"guc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 20:54:36","created_on":"2010-09-14 17:00:12","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2GUCTBL","audio_zip_path":"GUCTBLN2DA\/GUCTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GUCTBLN2ET","fcbh_id":"GUCTBLN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUC","language_name":"Wayuu","language_english":"Wayuu","language_iso":"guc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wayuu","language_family_code":"GUC","language_family_name":"Wayuu","language_family_english":"Wayuu","language_family_iso":"guc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 20:54:22","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2GUCTBL","audio_zip_path":"GUCTBLN2ET\/GUCTBLN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GUDBSCN1DA","fcbh_id":"GUDBSCN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUD","language_name":"Dida, Yocobou\u00e9","language_english":"Dida, Yocoboué","language_iso":"gud","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yocobou\u00e9 Dida","language_family_code":"GUD","language_family_name":"Dida, Yocobou\u00e9","language_family_english":"Dida, Yocoboué","language_family_iso":"gud","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-03 17:28:49","created_on":"2017-05-03 16:55:17","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GUDBSCN1DA\/GUDBSCN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GUDBSCN2DA","fcbh_id":"GUDBSCN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUD","language_name":"Dida, Yocobou\u00e9","language_english":"Dida, Yocoboué","language_iso":"gud","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yocobou\u00e9 Dida","language_family_code":"GUD","language_family_name":"Dida, Yocobou\u00e9","language_family_english":"Dida, Yocoboué","language_family_iso":"gud","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-03 17:28:49","created_on":"2017-05-03 16:50:13","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GUDBSCN2DA\/GUDBSCN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GUGGGGN2DA","fcbh_id":"GUGGGGN2DA","volume_name":"Misi\u00f3n Nuevas Tribus","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUG","language_name":"Guarani, Paraguayan","language_english":"Guarani, Paraguayan","language_iso":"gug","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Paraguayan Guaran\u00ed","language_family_code":"GUG","language_family_name":"Guarani, Paraguayan","language_family_english":"Guarani, Paraguayan","language_family_iso":"gug","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"GGG","version_name":"GGG","version_english":"GGG","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-17 16:35:13","created_on":"2018-06-25 19:51:03","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GUGGGGN2DA\/GUGGGGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GUGGGGO2DA","fcbh_id":"GUGGGGO2DA","volume_name":"Misi\u00f3n Nuevas Tribus","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUG","language_name":"Guarani, Paraguayan","language_english":"Guarani, Paraguayan","language_iso":"gug","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Paraguayan Guaran\u00ed","language_family_code":"GUG","language_family_name":"Guarani, Paraguayan","language_family_english":"Guarani, Paraguayan","language_family_iso":"gug","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"GGG","version_name":"GGG","version_english":"GGG","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-07-17 16:35:50","created_on":"2018-06-25 19:52:56","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GUGGGGO2DA\/GUGGGGO2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GUGGGGS2DA","fcbh_id":"GUGGGGS2DA","volume_name":"Misi\u00f3n Nuevas Tribus, La Biblia Ilustrada","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUG","language_name":"Guarani, Paraguayan","language_english":"Guarani, Paraguayan","language_iso":"gug","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Paraguayan Guaran\u00ed","language_family_code":"GUG","language_family_name":"Guarani, Paraguayan","language_family_english":"Guarani, Paraguayan","language_family_iso":"gug","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"GGG","version_name":"GGG","version_english":"GGG","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-07-17 16:37:31","created_on":"2018-06-25 20:15:44","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GUGGGGS2DA\/GUGGGGS2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["digital_download"],"resolution":[]},{"dam_id":"GUGRPVN1DA","fcbh_id":"GUGRPVN1DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUG","language_name":"Guarani, Paraguayan","language_english":"Guarani, Paraguayan","language_iso":"gug","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Paraguayan Guaran\u00ed","language_family_code":"GUG","language_family_name":"Guarani, Paraguayan","language_family_english":"Guarani, Paraguayan","language_family_iso":"gug","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RPV","version_name":"RPV","version_english":"RPV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-16 21:49:55","created_on":"2016-03-01 19:45:07","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GUGRPVN1DA\/GUGRPVN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GUGRPVN2DA","fcbh_id":"GUGRPVN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUG","language_name":"Guarani, Paraguayan","language_english":"Guarani, Paraguayan","language_iso":"gug","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Paraguayan Guaran\u00ed","language_family_code":"GUG","language_family_name":"Guarani, Paraguayan","language_family_english":"Guarani, Paraguayan","language_family_iso":"gug","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RPV","version_name":"RPV","version_english":"RPV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-01 18:14:28","created_on":"2016-03-01 17:51:43","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GUGRPVN2DA\/GUGRPVN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GUGSBPN2DA","fcbh_id":"GUGSBPN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GUG","language_name":"Guarani, Paraguayan","language_english":"Guarani, Paraguayan","language_iso":"gug","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Paraguayan Guaran\u00ed","language_family_code":"GUG","language_family_name":"Guarani, Paraguayan","language_family_english":"Guarani, Paraguayan","language_family_iso":"gug","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:37","created_on":"2010-09-14 17:00:13","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2GUGSBP","audio_zip_path":"GUGSBPN2DA\/GUGSBPN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GUHWBTN2DA","fcbh_id":"GUHWBTN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUH","language_name":"Guahibo","language_english":"Guahibo","language_iso":"guh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guahibo","language_family_code":"GUH","language_family_name":"Guahibo","language_family_english":"Guahibo","language_family_iso":"guh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:46","created_on":"2012-01-17 20:53:20","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"GUHWBTN2DA\/GUHWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GUHWBTN2ET","fcbh_id":"GUHWBTN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUH","language_name":"Guahibo","language_english":"Guahibo","language_iso":"guh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guahibo","language_family_code":"GUH","language_family_name":"Guahibo","language_family_english":"Guahibo","language_family_iso":"guh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:00:59","created_on":"2011-05-30 01:08:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GUHWBTN2ET\/GUHWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GUISBUN2DA","fcbh_id":"GUISBUN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUI","language_name":"Guarani, Bolivian","language_english":"Guarani, Bolivian","language_iso":"gui","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Bolivian Guaran\u00ed","language_family_code":"GUI","language_family_name":"Guarani, Bolivian","language_family_english":"Guarani, Bolivian","language_family_iso":"gui","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 15:19:12","created_on":"2010-09-14 17:00:13","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2GUISBU","audio_zip_path":"GUISBUN2DA\/GUISBUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GUISBUN2ET","fcbh_id":"GUISBUN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUI","language_name":"Guarani, Bolivian","language_english":"Guarani, Bolivian","language_iso":"gui","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Bolivian Guaran\u00ed","language_family_code":"GUI","language_family_name":"Guarani, Bolivian","language_family_english":"Guarani, Bolivian","language_family_iso":"gui","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:01","created_on":"2011-05-16 20:19:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GUISBUN2ET\/GUISBUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GUJWTCN2ET","fcbh_id":"GUJWTCN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUJ","language_name":"Gujarati","language_english":"Gujarati","language_iso":"guj","language_iso_2B":"guj","language_iso_2T":"guj","language_iso_1":"gu","language_iso_name":"Gujarati","language_family_code":"GUJ","language_family_name":"Gujarati","language_family_english":"Gujarati","language_family_iso":"guj","language_family_iso_2B":"guj","language_family_iso_2T":"guj","language_family_iso_1":"gu","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-21 19:29:56","created_on":"2011-08-29 20:27:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GUJWTCN2ET\/GUJWTCN2ET.zip","font":{"id":"75","name":"Lohit-Gujarati","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Gujarati","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GUJWTCO2ET","fcbh_id":"GUJWTCO2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUJ","language_name":"Gujarati","language_english":"Gujarati","language_iso":"guj","language_iso_2B":"guj","language_iso_2T":"guj","language_iso_1":"gu","language_iso_name":"Gujarati","language_family_code":"GUJ","language_family_name":"Gujarati","language_family_english":"Gujarati","language_family_iso":"guj","language_family_iso_2B":"guj","language_family_iso_2T":"guj","language_family_iso_1":"gu","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-04-21 19:29:36","created_on":"2011-08-29 20:39:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GUJWTCO2ET\/GUJWTCO2ET.zip","font":{"id":"75","name":"Lohit-Gujarati","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Gujarati","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GUKBSEN1DA","fcbh_id":"GUKBSEN1DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUK","language_name":"Gumuz","language_english":"Gumuz","language_iso":"guk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gumuz","language_family_code":"GUK","language_family_name":"Gumuz","language_family_english":"Gumuz","language_family_iso":"guk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 23:37:59","created_on":"2011-12-12 16:48:33","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"GUKBSEN1DA\/GUKBSEN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GUKBSEN1ET","fcbh_id":"GUKBSEN1ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUK","language_name":"Gumuz","language_english":"Gumuz","language_iso":"guk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gumuz","language_family_code":"GUK","language_family_name":"Gumuz","language_family_english":"Gumuz","language_family_iso":"guk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:11","created_on":"2013-12-04 22:52:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GUKBSEN1ET\/GUKBSEN1ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GUMTBLN2DA","fcbh_id":"GUMTBLN2DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUM","language_name":"Guambiano","language_english":"Guambiano","language_iso":"gum","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guambiano","language_family_code":"GUM","language_family_name":"Guambiano","language_family_english":"Guambiano","language_family_iso":"gum","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 15:16:10","created_on":"2010-09-14 17:00:13","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2GUMTBL","audio_zip_path":"GUMTBLN2DA\/GUMTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GUMTBLN2ET","fcbh_id":"GUMTBLN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUM","language_name":"Guambiano","language_english":"Guambiano","language_iso":"gum","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guambiano","language_family_code":"GUM","language_family_name":"Guambiano","language_family_english":"Guambiano","language_family_iso":"gum","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:02","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2GUMTBL","audio_zip_path":"GUMTBLN2ET\/GUMTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GUNWBTN2ET","fcbh_id":"GUNWBTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUN","language_name":"Guarani, Mbya","language_english":"Guarani, Mbya","language_iso":"gun","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mby\u00e1 Guaran\u00ed","language_family_code":"GUN","language_family_name":"Guarani, Mbya","language_family_english":"Guarani, Mbya","language_family_iso":"gun","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:17","created_on":"2011-05-30 20:26:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GUNWBTN2ET\/GUNWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GUOWBTN2DA","fcbh_id":"GUOWBTN2DA","volume_name":"WBT Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUO","language_name":"Guayabero","language_english":"Guayabero","language_iso":"guo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guayabero","language_family_code":"GUO","language_family_name":"Guayabero","language_family_english":"Guayabero","language_family_iso":"guo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 15:33:23","created_on":"2010-11-25 20:50:17","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2GUOWBT","audio_zip_path":"GUOWBTN2DA\/GUOWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GUOWBTN2ET","fcbh_id":"GUOWBTN2ET","volume_name":"WBT Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUO","language_name":"Guayabero","language_english":"Guayabero","language_iso":"guo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guayabero","language_family_code":"GUO","language_family_name":"Guayabero","language_family_english":"Guayabero","language_family_iso":"guo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:15:36","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2GUOWBT","audio_zip_path":"GUOWBTN2ET\/GUOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GUQLPYN1DA","fcbh_id":"GUQLPYN1DA","volume_name":"LETRA Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUQ","language_name":"Ach\u00e9","language_english":"Ache","language_iso":"guq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ach\u00e9","language_family_code":"GUQ","language_family_name":"Ach\u00e9","language_family_english":"Ache","language_family_iso":"guq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LPY","version_name":"LETRA Paraguay","version_english":"LETRA Paraguay","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-06 16:57:51","created_on":"2017-08-03 20:00:46","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GUQLPYN1DA\/GUQLPYN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"GUQLPYN1ET","fcbh_id":"GUQLPYN1ET","volume_name":"LETRA Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUQ","language_name":"Ach\u00e9","language_english":"Ache","language_iso":"guq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ach\u00e9","language_family_code":"GUQ","language_family_name":"Ach\u00e9","language_family_english":"Ache","language_family_iso":"guq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LPY","version_name":"LETRA Paraguay","version_english":"LETRA Paraguay","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-03 20:14:05","created_on":"2017-08-03 20:09:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GUQLPYN1ET\/GUQLPYN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"GUQLPYN2DA","fcbh_id":"GUQLPYN2DA","volume_name":"LETRA Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUQ","language_name":"Ach\u00e9","language_english":"Ache","language_iso":"guq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ach\u00e9","language_family_code":"GUQ","language_family_name":"Ach\u00e9","language_family_english":"Ache","language_family_iso":"guq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LPY","version_name":"LETRA Paraguay","version_english":"LETRA Paraguay","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-02-12 19:03:16","created_on":"2014-02-12 18:22:04","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"GUQLPYN2DA\/GUQLPYN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GUQLPYN2ET","fcbh_id":"GUQLPYN2ET","volume_name":"LETRA Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUQ","language_name":"Ach\u00e9","language_english":"Ache","language_iso":"guq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ach\u00e9","language_family_code":"GUQ","language_family_name":"Ach\u00e9","language_family_english":"Ache","language_family_iso":"guq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LPY","version_name":"LETRA Paraguay","version_english":"LETRA Paraguay","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:17","created_on":"2014-01-17 23:56:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GUQLPYN2ET\/GUQLPYN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GURIBSN2DA","fcbh_id":"GURIBSN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUR","language_name":"Frafra","language_english":"Frafra","language_iso":"gur","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Farefare","language_family_code":"GUR","language_family_name":"Frafra","language_family_english":"Frafra","language_family_iso":"gur","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-27 16:51:03","created_on":"2010-09-14 17:00:14","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2GURIBS","audio_zip_path":"GURIBSN2DA\/GURIBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GURIBSN2ET","fcbh_id":"GURIBSN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUR","language_name":"Frafra","language_english":"Frafra","language_iso":"gur","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Farefare","language_family_code":"GUR","language_family_name":"Frafra","language_family_english":"Frafra","language_family_iso":"gur","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:19","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2GURIBS","audio_zip_path":"GURIBSN2ET\/GURIBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GUUMJRN1DA","fcbh_id":"GUUMJRN1DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUU","language_name":"Yanomam\u00f6","language_english":"Yanomam\u00f6","language_iso":"guu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yanomam\u00f6","language_family_code":"GUU","language_family_name":"Yanomam\u00f6","language_family_english":"Yanomam\u00f6","language_family_iso":"guu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MJR","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 21:08:26","created_on":"2010-09-14 17:01:04","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1GUUMJR","audio_zip_path":"GUUMJRN1DA\/GUUMJRN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GUUMJRN1ET","fcbh_id":"GUUMJRN1ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUU","language_name":"Yanomam\u00f6","language_english":"Yanomam\u00f6","language_iso":"guu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yanomam\u00f6","language_family_code":"GUU","language_family_name":"Yanomam\u00f6","language_family_english":"Yanomam\u00f6","language_family_iso":"guu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MJR","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:19","created_on":"2013-12-19 23:19:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GUUMJRN1ET\/GUUMJRN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GUWNVSN1DA","fcbh_id":"GUWNVSN1DA","volume_name":"1987 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GUW","language_name":"Gun-Gbe","language_english":"Gun-Alada","language_iso":"guw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gun","language_family_code":"GUW","language_family_name":"Gun-Gbe","language_family_english":"Gun-Alada","language_family_iso":"guw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:27","created_on":"2010-09-14 16:59:43","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1GUWNVS","audio_zip_path":"GUWNVSN1DA\/GUWNVSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GUXABBN2DA","fcbh_id":"GUXABBN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUX","language_name":"Gulmancema","language_english":"Gourmanchema","language_iso":"gux","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gourmanch\u00e9ma","language_family_code":"GUX","language_family_name":"Gulmancema","language_family_english":"Gourmanchema","language_family_iso":"gux","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-19 18:10:16","created_on":"2010-09-14 17:00:14","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2GUXABB","audio_zip_path":"GUXABBN2DA\/GUXABBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GUXABBN2ET","fcbh_id":"GUXABBN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GUX","language_name":"Gulmancema","language_english":"Gourmanchema","language_iso":"gux","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gourmanch\u00e9ma","language_family_code":"GUX","language_family_name":"Gulmancema","language_family_english":"Gourmanchema","language_family_iso":"gux","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-08 22:21:36","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2GUXABB","audio_zip_path":"GUXABBN2ET\/GUXABBN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GUZBSKN2DA","fcbh_id":"GUZBSKN2DA","volume_name":"1990 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GUZ","language_name":"Ekegusii","language_english":"Ekegusii","language_iso":"guz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gusii","language_family_code":"GUZ","language_family_name":"Ekegusii","language_family_english":"Ekegusii","language_family_iso":"guz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSK","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:56","created_on":"2010-10-05 19:34:20","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2GUZBSK","audio_zip_path":"GUZBSKN2DA\/GUZBSKN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GVCTBLN2DA","fcbh_id":"GVCTBLN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GVC","language_name":"Guanano","language_english":"Guanano","language_iso":"gvc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guanano","language_family_code":"GVC","language_family_name":"Guanano","language_family_english":"Guanano","language_family_iso":"gvc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:50","created_on":"2011-05-16 18:44:28","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"GVCTBLN2DA\/GVCTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GVCTBLN2ET","fcbh_id":"GVCTBLN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GVC","language_name":"Guanano","language_english":"Guanano","language_iso":"gvc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guanano","language_family_code":"GVC","language_family_name":"Guanano","language_family_english":"Guanano","language_family_iso":"gvc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:21","created_on":"2011-05-16 18:39:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GVCTBLN2ET\/GVCTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GVFWBTN2ET","fcbh_id":"GVFWBTN2ET","volume_name":"1980 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GVF","language_name":"Golin","language_english":"Golin","language_iso":"gvf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Golin","language_family_code":"GVF","language_family_name":"Golin","language_family_english":"Golin","language_family_iso":"gvf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-21 18:32:12","created_on":"2014-06-06 18:58:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GVFWBTN2ET\/GVFWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GVLABTN2DA","fcbh_id":"GVLABTN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GVL","language_name":"Gulei","language_english":"Gulei","language_iso":"gvl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gulay","language_family_code":"GVL","language_family_name":"Gulei","language_family_english":"Gulei","language_family_iso":"gvl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:51","created_on":"2010-09-14 17:01:16","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2GVLABT","audio_zip_path":"GVLABTN2DA\/GVLABTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GVLABTN2ET","fcbh_id":"GVLABTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GVL","language_name":"Gulei","language_english":"Gulei","language_iso":"gvl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gulay","language_family_code":"GVL","language_family_name":"Gulei","language_family_english":"Gulei","language_family_iso":"gvl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-22 17:25:24","created_on":"2014-11-13 21:29:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GVLABTN2ET\/GVLABTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GWIWBTN1DA","fcbh_id":"GWIWBTN1DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GWI","language_name":"Gwich\u02bcin","language_english":"Gwichin","language_iso":"gwi","language_iso_2B":"gwi","language_iso_2T":"gwi","language_iso_1":"","language_iso_name":"Gwich\u02bcin","language_family_code":"GWI","language_family_name":"Gwich\u02bcin","language_family_english":"Gwichin","language_family_iso":"gwi","language_family_iso_2B":"gwi","language_family_iso_2T":"gwi","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-26 16:26:43","created_on":"2013-12-23 18:58:14","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"GWIWBTN1DA\/GWIWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GWIWBTN1ET","fcbh_id":"GWIWBTN1ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GWI","language_name":"Gwich\u02bcin","language_english":"Gwichin","language_iso":"gwi","language_iso_2B":"gwi","language_iso_2T":"gwi","language_iso_1":"","language_iso_name":"Gwich\u02bcin","language_family_code":"GWI","language_family_name":"Gwich\u02bcin","language_family_english":"Gwichin","language_family_iso":"gwi","language_family_iso_2B":"gwi","language_family_iso_2T":"gwi","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:14","created_on":"2014-02-05 19:22:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GWIWBTN1ET\/GWIWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GWRWBTN1DA","fcbh_id":"GWRWBTN1DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GWR","language_name":"Lugwere","language_english":"Lugwere","language_iso":"gwr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gwere","language_family_code":"GWR","language_family_name":"Lugwere","language_family_english":"Lugwere","language_family_iso":"gwr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-20 18:39:53","created_on":"2017-11-17 21:09:33","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GWRWBTN1DA\/GWRWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GWRWBTN1ET","fcbh_id":"GWRWBTN1ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GWR","language_name":"Lugwere","language_english":"Lugwere","language_iso":"gwr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gwere","language_family_code":"GWR","language_family_name":"Lugwere","language_family_english":"Lugwere","language_family_iso":"gwr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-20 18:39:06","created_on":"2017-11-17 21:04:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GWRWBTN1ET\/GWRWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"GWRWBTN2DA","fcbh_id":"GWRWBTN2DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GWR","language_name":"Lugwere","language_english":"Lugwere","language_iso":"gwr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gwere","language_family_code":"GWR","language_family_name":"Lugwere","language_family_english":"Lugwere","language_family_iso":"gwr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-20 18:39:24","created_on":"2017-11-17 21:07:39","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"GWRWBTN2DA\/GWRWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GWRWBTN2ET","fcbh_id":"GWRWBTN2ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GWR","language_name":"Lugwere","language_english":"Lugwere","language_iso":"gwr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gwere","language_family_code":"GWR","language_family_name":"Lugwere","language_family_english":"Lugwere","language_family_iso":"gwr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-03 17:22:23","created_on":"2017-08-03 16:17:15","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GWRWBTN2ET\/GWRWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"GYAABCN2DA","fcbh_id":"GYAABCN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"GYA","language_name":"Gbaya, Northwest","language_english":"Gbaya, Northwest","language_iso":"gya","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northwest Gbaya","language_family_code":"GYA","language_family_name":"Gbaya, Northwest","language_family_english":"Gbaya, Northwest","language_family_iso":"gya","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:09","created_on":"2012-02-06 16:50:39","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"GYAABCN2DA\/GYAABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"GYMWBTN2DA","fcbh_id":"GYMWBTN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GYM","language_name":"Guaymi","language_english":"Guaymi","language_iso":"gym","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ng\u00e4bere","language_family_code":"GYM","language_family_name":"Guaymi","language_family_english":"Guaymi","language_family_iso":"gym","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-12 19:23:35","created_on":"2010-09-14 17:00:14","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2GYMWBT","audio_zip_path":"GYMWBTN2DA\/GYMWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GYMWBTN2ET","fcbh_id":"GYMWBTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GYM","language_name":"Guaymi","language_english":"Guaymi","language_iso":"gym","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ng\u00e4bere","language_family_code":"GYM","language_family_name":"Guaymi","language_family_english":"Guaymi","language_family_iso":"gym","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-30 21:07:31","created_on":"2010-11-25 20:49:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2GYMWBT","audio_zip_path":"GYMWBTN2ET\/GYMWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"GYRSBBN2DA","fcbh_id":"GYRSBBN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GYR","language_name":"Guarayo","language_english":"Guarayo","language_iso":"gyr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guarayu","language_family_code":"GYR","language_family_name":"Guarayo","language_family_english":"Guarayo","language_family_iso":"gyr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 15:31:44","created_on":"2010-09-14 17:00:14","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2GYRSBB","audio_zip_path":"GYRSBBN2DA\/GYRSBBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"GYRSBBN2ET","fcbh_id":"GYRSBBN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"GYR","language_name":"Guarayo","language_english":"Guarayo","language_iso":"gyr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guarayu","language_family_code":"GYR","language_family_name":"Guarayo","language_family_english":"Guarayo","language_family_iso":"gyr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:00","created_on":"2011-07-06 19:41:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"GYRSBBN2ET\/GYRSBBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HA1THVN2DA","fcbh_id":"HA1THVN2DA","volume_name":"(Han) Today's Taiwanese Hakka Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HA1","language_name":"Hakka","language_english":"Hakka","language_iso":"hak","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hakka Chinese","language_family_code":"HAK","language_family_name":"Hakka","language_family_english":"Hakka","language_family_iso":"hak","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"THV","version_name":"Taiwan Hakka Version","version_english":"Taiwan Hakka Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-29 18:25:27","created_on":"2013-03-04 17:43:08","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"HA1THVN2DA\/HA1THVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HAEBSEN2DA","fcbh_id":"HAEBSEN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HAE","language_name":"Oromo, Eastern","language_english":"Oromo, Eastern","language_iso":"hae","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Oromo","language_family_code":"HAE","language_family_name":"Oromo, Eastern","language_family_english":"Oromo, Eastern","language_family_iso":"hae","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:52","created_on":"2012-01-06 17:20:51","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"HAEBSEN2DA\/HAEBSEN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HAEBSEN2ET","fcbh_id":"HAEBSEN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HAE","language_name":"Oromo, Eastern","language_english":"Oromo, Eastern","language_iso":"hae","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Oromo","language_family_code":"HAE","language_family_name":"Oromo, Eastern","language_family_english":"Oromo, Eastern","language_family_iso":"hae","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:11","created_on":"2013-06-19 15:41:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HAEBSEN2ET\/HAEBSEN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HAGGILN2DA","fcbh_id":"HAGGILN2DA","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HAG","language_name":"Hanga","language_english":"Hanga","language_iso":"hag","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hanga","language_family_code":"HAG","language_family_name":"Hanga","language_family_english":"Hanga","language_family_iso":"hag","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"GIL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 16:22:23","created_on":"2010-09-14 17:00:15","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2HAGGIL","audio_zip_path":"HAGGILN2DA\/HAGGILN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HAGGILN2ET","fcbh_id":"HAGGILN2ET","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HAG","language_name":"Hanga","language_english":"Hanga","language_iso":"hag","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hanga","language_family_code":"HAG","language_family_name":"Hanga","language_family_english":"Hanga","language_family_iso":"hag","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"GIL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-25 20:38:05","created_on":"2011-07-06 19:45:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HAGGILN2ET\/HAGGILN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"HAKTHVN2DA","fcbh_id":"HAKTHVN2DA","volume_name":"(Romanized) Today's Taiwanese Hakka Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HAK","language_name":"Hakka","language_english":"Hakka","language_iso":"hak","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hakka Chinese","language_family_code":"HAK","language_family_name":"Hakka","language_family_english":"Hakka","language_family_iso":"hak","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"THV","version_name":"Taiwan Hakka Version","version_english":"Taiwan Hakka Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-29 18:28:10","created_on":"2013-03-04 17:01:06","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"HAKTHVN2DA\/HAKTHVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HAKTHVN2ET","fcbh_id":"HAKTHVN2ET","volume_name":"(Romanized) Today's Taiwanese Hakka Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HAK","language_name":"Hakka","language_english":"Hakka","language_iso":"hak","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hakka Chinese","language_family_code":"HAK","language_family_name":"Hakka","language_family_english":"Hakka","language_family_iso":"hak","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"THV","version_name":"Taiwan Hakka Version","version_english":"Taiwan Hakka Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:21","created_on":"2011-08-03 19:25:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HAKTHVN2ET\/HAKTHVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HATBNVN1DA","fcbh_id":"HATBNVN1DA","volume_name":"BNV Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HAT","language_name":"Krey\u00f2l ayisyen","language_english":"Haitian Creole","language_iso":"hat","language_iso_2B":"hat","language_iso_2T":"hat","language_iso_1":"ht","language_iso_name":"Haitian","language_family_code":"HAT","language_family_name":"Krey\u00f2l ayisyen","language_family_english":"Haitian Creole","language_family_iso":"hat","language_family_iso_2B":"hat","language_family_iso_2T":"hat","language_family_iso_1":"ht","version_code":"BNV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:28","created_on":"2010-09-14 16:59:44","right_to_left":"false","num_art":"5","num_sample_audio":"1","sku":"N1HATBNV","audio_zip_path":"HATBNVN1DA\/HATBNVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"HATSBHN2DA","fcbh_id":"HATSBHN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HAT","language_name":"Krey\u00f2l ayisyen","language_english":"Haitian Creole","language_iso":"hat","language_iso_2B":"hat","language_iso_2T":"hat","language_iso_1":"ht","language_iso_name":"Haitian","language_family_code":"HAT","language_family_name":"Krey\u00f2l ayisyen","language_family_english":"Haitian Creole","language_family_iso":"hat","language_family_iso_2B":"hat","language_family_iso_2T":"hat","language_family_iso_1":"ht","version_code":"SBH","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 15:54:04","created_on":"2010-09-14 17:00:15","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2HATSBH","audio_zip_path":"HATSBHN2DA\/HATSBHN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HATSBHN2ET","fcbh_id":"HATSBHN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HAT","language_name":"Krey\u00f2l ayisyen","language_english":"Haitian Creole","language_iso":"hat","language_iso_2B":"hat","language_iso_2T":"hat","language_iso_1":"ht","language_iso_name":"Haitian","language_family_code":"HAT","language_family_name":"Krey\u00f2l ayisyen","language_family_english":"Haitian Creole","language_family_iso":"hat","language_family_iso_2B":"hat","language_family_iso_2T":"hat","language_family_iso_1":"ht","version_code":"SBH","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:35:09","created_on":"2011-11-28 19:56:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HATSBHN2ET\/HATSBHN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HAUCLVN1DA","fcbh_id":"HAUCLVN1DA","volume_name":"Common Language Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HAU","language_name":"Hausa","language_english":"Hausa","language_iso":"hau","language_iso_2B":"hau","language_iso_2T":"hau","language_iso_1":"ha","language_iso_name":"Hausa","language_family_code":"HAU","language_family_name":"Hausa","language_family_english":"Hausa","language_family_iso":"hau","language_family_iso_2B":"hau","language_family_iso_2T":"hau","language_family_iso_1":"ha","version_code":"CLV","version_name":"Common Language Version","version_english":"Common Language Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-08 15:33:56","created_on":"2018-06-07 16:07:11","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"HAUCLVN1DA\/HAUCLVN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"HAUCLVN2DA","fcbh_id":"HAUCLVN2DA","volume_name":"Common Language Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HAU","language_name":"Hausa","language_english":"Hausa","language_iso":"hau","language_iso_2B":"hau","language_iso_2T":"hau","language_iso_1":"ha","language_iso_name":"Hausa","language_family_code":"HAU","language_family_name":"Hausa","language_family_english":"Hausa","language_family_iso":"hau","language_family_iso_2B":"hau","language_family_iso_2T":"hau","language_family_iso_1":"ha","version_code":"CLV","version_name":"Common Language Version","version_english":"Common Language Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-08 15:34:54","created_on":"2018-06-07 16:05:37","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"HAUCLVN2DA\/HAUCLVN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"HAYBSTN2DA","fcbh_id":"HAYBSTN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HAY","language_name":"Ruhaya","language_english":"Ruhaya","language_iso":"hay","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Haya","language_family_code":"HAY","language_family_name":"Ruhaya","language_family_english":"Ruhaya","language_family_iso":"hay","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-29 16:26:47","created_on":"2010-09-14 17:00:15","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2HAYBST","audio_zip_path":"HAYBSTN2DA\/HAYBSTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HBRHMTN1DA","fcbh_id":"HBRHMTN1DA","volume_name":"1995 Modern Hebrew","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HBR","language_name":"\u05e2\u05d1\u05e8\u05d9\u05ea","language_english":"Hebrew","language_iso":"heb","language_iso_2B":"heb","language_iso_2T":"heb","language_iso_1":"he","language_iso_name":"Hebrew","language_family_code":"HBR","language_family_name":"\u05e2\u05d1\u05e8\u05d9\u05ea","language_family_english":"Hebrew","language_family_iso":"heb","language_family_iso_2B":"heb","language_family_iso_2T":"heb","language_family_iso_1":"he","version_code":"HMT","version_name":"Hebrew Modern Text","version_english":"Hebrew Modern Text","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-28 19:41:36","created_on":"2014-09-17 22:12:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HBRHMTN1DA\/HBRHMTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"HBRHMTN1ET","fcbh_id":"HBRHMTN1ET","volume_name":"1995 Modern Hebrew","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HBR","language_name":"\u05e2\u05d1\u05e8\u05d9\u05ea","language_english":"Hebrew","language_iso":"heb","language_iso_2B":"heb","language_iso_2T":"heb","language_iso_1":"he","language_iso_name":"Hebrew","language_family_code":"HBR","language_family_name":"\u05e2\u05d1\u05e8\u05d9\u05ea","language_family_english":"Hebrew","language_family_iso":"heb","language_family_iso_2B":"heb","language_family_iso_2T":"heb","language_family_iso_1":"he","version_code":"HMT","version_name":"Hebrew Modern Text","version_english":"Hebrew Modern Text","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:30:02","created_on":"2014-09-24 18:52:27","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HBRHMTN1ET\/HBRHMTN1ET.zip","font":{"id":"66","name":"Ezra SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Ezra_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2003 &amp;amp; 2003 &amp; 2007 Ralph Hancock (http:\/\/www.hancock.dircon.co.uk\/) and John Hudson (http:\/\/www.tiro.com), and licensed under the MIT\/X11 License.","url":"http:\/\/bit.ly\/1xw5HJu"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"HBRHMTN2DA","fcbh_id":"HBRHMTN2DA","volume_name":"1995 Modern Hebrew","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HBR","language_name":"\u05e2\u05d1\u05e8\u05d9\u05ea","language_english":"Hebrew","language_iso":"heb","language_iso_2B":"heb","language_iso_2T":"heb","language_iso_1":"he","language_iso_name":"Hebrew","language_family_code":"HBR","language_family_name":"\u05e2\u05d1\u05e8\u05d9\u05ea","language_family_english":"Hebrew","language_family_iso":"heb","language_family_iso_2B":"heb","language_family_iso_2T":"heb","language_family_iso_1":"he","version_code":"HMT","version_name":"Hebrew Modern Text","version_english":"Hebrew Modern Text","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-10 14:30:39","created_on":"2010-09-14 17:00:59","right_to_left":"true","num_art":"8","num_sample_audio":"1","sku":"N2HBRHMT","audio_zip_path":"HBRHMTN2DA\/HBRHMTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HBRHMTN2ET","fcbh_id":"HBRHMTN2ET","volume_name":"1995 Modern Hebrew","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HBR","language_name":"\u05e2\u05d1\u05e8\u05d9\u05ea","language_english":"Hebrew","language_iso":"heb","language_iso_2B":"heb","language_iso_2T":"heb","language_iso_1":"he","language_iso_name":"Hebrew","language_family_code":"HBR","language_family_name":"\u05e2\u05d1\u05e8\u05d9\u05ea","language_family_english":"Hebrew","language_family_iso":"heb","language_family_iso_2B":"heb","language_family_iso_2T":"heb","language_family_iso_1":"he","version_code":"HMT","version_name":"Hebrew Modern Text","version_english":"Hebrew Modern Text","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:30:03","created_on":"2011-05-03 22:14:34","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HBRHMTN2ET\/HBRHMTN2ET.zip","font":{"id":"66","name":"Ezra SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Ezra_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2003 &amp;amp; 2003 &amp; 2007 Ralph Hancock (http:\/\/www.hancock.dircon.co.uk\/) and John Hudson (http:\/\/www.tiro.com), and licensed under the MIT\/X11 License.","url":"http:\/\/bit.ly\/1xw5HJu"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"HBRHMTO2DA","fcbh_id":"HBRHMTO2DA","volume_name":"1995 Modern Hebrew","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HBR","language_name":"\u05e2\u05d1\u05e8\u05d9\u05ea","language_english":"Hebrew","language_iso":"heb","language_iso_2B":"heb","language_iso_2T":"heb","language_iso_1":"he","language_iso_name":"Hebrew","language_family_code":"HBR","language_family_name":"\u05e2\u05d1\u05e8\u05d9\u05ea","language_family_english":"Hebrew","language_family_iso":"heb","language_family_iso_2B":"heb","language_family_iso_2T":"heb","language_family_iso_1":"he","version_code":"HMT","version_name":"Hebrew Modern Text","version_english":"Hebrew Modern Text","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2015-07-10 14:30:39","created_on":"2014-07-09 15:27:15","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"HBRHMTO2DA\/HBRHMTO2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HBRHMTO2ET","fcbh_id":"HBRHMTO2ET","volume_name":"1995 Modern Hebrew","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HBR","language_name":"\u05e2\u05d1\u05e8\u05d9\u05ea","language_english":"Hebrew","language_iso":"heb","language_iso_2B":"heb","language_iso_2T":"heb","language_iso_1":"he","language_iso_name":"Hebrew","language_family_code":"HBR","language_family_name":"\u05e2\u05d1\u05e8\u05d9\u05ea","language_family_english":"Hebrew","language_family_iso":"heb","language_family_iso_2B":"heb","language_family_iso_2T":"heb","language_family_iso_1":"he","version_code":"HMT","version_name":"Hebrew Modern Text","version_english":"Hebrew Modern Text","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:30:03","created_on":"2012-09-14 17:15:56","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HBRHMTO2ET\/HBRHMTO2ET.zip","font":{"id":"66","name":"Ezra SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Ezra_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2003 &amp;amp; 2003 &amp; 2007 Ralph Hancock (http:\/\/www.hancock.dircon.co.uk\/) and John Hudson (http:\/\/www.tiro.com), and licensed under the MIT\/X11 License.","url":"http:\/\/bit.ly\/1xw5HJu"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HDYBSEN2DA","fcbh_id":"HDYBSEN2DA","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HDY","language_name":"Hadiyya","language_english":"Hadiyya","language_iso":"hdy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hadiyya","language_family_code":"HDY","language_family_name":"Hadiyya","language_family_english":"Hadiyya","language_family_iso":"hdy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:00","created_on":"2010-09-14 17:01:07","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2HDYBSE","audio_zip_path":"HDYBSEN2DA\/HDYBSEN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"HEHBSTN2DA","fcbh_id":"HEHBSTN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HEH","language_name":"Kihehe","language_english":"Kihehe","language_iso":"heh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hehe","language_family_code":"HEH","language_family_name":"Kihehe","language_family_english":"Kihehe","language_family_iso":"heh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:10","created_on":"2010-09-14 17:01:54","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2HEHBST","audio_zip_path":"HEHBSTN2DA\/HEHBSTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HEHBSTN2ET","fcbh_id":"HEHBSTN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HEH","language_name":"Kihehe","language_english":"Kihehe","language_iso":"heh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hehe","language_family_code":"HEH","language_family_name":"Kihehe","language_family_english":"Kihehe","language_family_iso":"heh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:10","created_on":"2010-11-25 20:50:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2HEHBST","audio_zip_path":"HEHBSTN2ET\/HEHBSTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HIFBSPN2DA","fcbh_id":"HIFBSPN2DA","volume_name":"BSSP Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HIF","language_name":"Fiji-Hindi","language_english":"Fiji-Hindi","language_iso":"hif","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Fiji Hindi","language_family_code":"HIF","language_family_name":"Fiji-Hindi","language_family_english":"Fiji-Hindi","language_family_iso":"hif","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:56:56","created_on":"2011-05-09 19:29:16","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"HIFBSPN2DA\/HIFBSPN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HIFBSPN2ET","fcbh_id":"HIFBSPN2ET","volume_name":"BSSP Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HIF","language_name":"Fiji-Hindi","language_english":"Fiji-Hindi","language_iso":"hif","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Fiji Hindi","language_family_code":"HIF","language_family_name":"Fiji-Hindi","language_family_english":"Fiji-Hindi","language_family_iso":"hif","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:19","created_on":"2011-05-09 20:01:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HIFBSPN2ET\/HIFBSPN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HIGTBLN2DA","fcbh_id":"HIGTBLN2DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HIG","language_name":"Higgi","language_english":"Higgi","language_iso":"hig","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kamwe","language_family_code":"HIG","language_family_name":"Higgi","language_family_english":"Higgi","language_family_iso":"hig","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 16:27:11","created_on":"2010-09-14 17:00:15","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2HIGTBL","audio_zip_path":"HIGTBLN2DA\/HIGTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HIGTBLN2ET","fcbh_id":"HIGTBLN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HIG","language_name":"Higgi","language_english":"Higgi","language_iso":"hig","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kamwe","language_family_code":"HIG","language_family_name":"Higgi","language_family_english":"Higgi","language_family_iso":"hig","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:15","created_on":"2011-05-26 01:25:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HIGTBLN2ET\/HIGTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HILHPVN2DA","fcbh_id":"HILHPVN2DA","volume_name":"1983 Popular Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HIL","language_name":"Hiligaynon","language_english":"Hiligaynon","language_iso":"hil","language_iso_2B":"hil","language_iso_2T":"hil","language_iso_1":"","language_iso_name":"Hiligaynon","language_family_code":"HIL","language_family_name":"Hiligaynon","language_family_english":"Hiligaynon","language_family_iso":"hil","language_family_iso_2B":"hil","language_family_iso_2T":"hil","language_family_iso_1":"","version_code":"HPV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-12 19:24:08","created_on":"2010-09-14 17:01:01","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2HILHPV","audio_zip_path":"HILHPVN2DA\/HILHPVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HILHPVN2ET","fcbh_id":"HILHPVN2ET","volume_name":"1983 Popular Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HIL","language_name":"Hiligaynon","language_english":"Hiligaynon","language_iso":"hil","language_iso_2B":"hil","language_iso_2T":"hil","language_iso_1":"","language_iso_name":"Hiligaynon","language_family_code":"HIL","language_family_name":"Hiligaynon","language_family_english":"Hiligaynon","language_family_iso":"hil","language_family_iso_2B":"hil","language_family_iso_2T":"hil","language_family_iso_1":"","version_code":"HPV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 16:28:07","created_on":"2010-09-14 17:01:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2HILHPV","audio_zip_path":"HILHPVN2ET\/HILHPVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HLAPNGN2ET","fcbh_id":"HLAPNGN2ET","volume_name":"1978 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HLA","language_name":"Halia","language_english":"Halia","language_iso":"hla","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Halia","language_family_code":"HLA","language_family_name":"Halia","language_family_english":"Halia","language_family_iso":"hla","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-21 18:37:01","created_on":"2014-04-29 21:19:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HLAPNGN2ET\/HLAPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HMOPNGN2ET","fcbh_id":"HMOPNGN2ET","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HMO","language_name":"Motu, Hiri","language_english":"Motu, Hiri","language_iso":"hmo","language_iso_2B":"hmo","language_iso_2T":"hmo","language_iso_1":"ho","language_iso_name":"Hiri Motu","language_family_code":"HMO","language_family_name":"Motu, Hiri","language_family_english":"Motu, Hiri","language_family_iso":"hmo","language_family_iso_2B":"hmo","language_family_iso_2T":"hmo","language_family_iso_1":"ho","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:46","created_on":"2014-04-29 21:06:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HMOPNGN2ET\/HMOPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HMOPNGO2ET","fcbh_id":"HMOPNGO2ET","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HMO","language_name":"Motu, Hiri","language_english":"Motu, Hiri","language_iso":"hmo","language_iso_2B":"hmo","language_iso_2T":"hmo","language_iso_1":"ho","language_iso_name":"Hiri Motu","language_family_code":"HMO","language_family_name":"Motu, Hiri","language_family_english":"Motu, Hiri","language_family_iso":"hmo","language_family_iso_2B":"hmo","language_family_iso_2T":"hmo","language_family_iso_1":"ho","version_code":"PNG","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:46","created_on":"2014-04-29 21:08:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HMOPNGO2ET\/HMOPNGO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HNDSKVN1DA","fcbh_id":"HNDSKVN1DA","volume_name":"Sab Ki Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HND","language_name":"\u0939\u093f\u0902\u0926\u0940","language_english":"Hindi","language_iso":"hin","language_iso_2B":"hin","language_iso_2T":"hin","language_iso_1":"hi","language_iso_name":"Hindi","language_family_code":"HND","language_family_name":"\u0939\u093f\u0902\u0926\u0940","language_family_english":"Hindi","language_family_iso":"hin","language_family_iso_2B":"hin","language_family_iso_2T":"hin","language_family_iso_1":"hi","version_code":"SKV","version_name":"SKV","version_english":"SKV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-17 20:13:05","created_on":"2017-08-04 15:42:08","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"HNDSKVN1DA\/HNDSKVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"HNDSKVN1ET","fcbh_id":"HNDSKVN1ET","volume_name":"Sab Ki Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HND","language_name":"\u0939\u093f\u0902\u0926\u0940","language_english":"Hindi","language_iso":"hin","language_iso_2B":"hin","language_iso_2T":"hin","language_iso_1":"hi","language_iso_name":"Hindi","language_family_code":"HND","language_family_name":"\u0939\u093f\u0902\u0926\u0940","language_family_english":"Hindi","language_family_iso":"hin","language_family_iso_2B":"hin","language_family_iso_2T":"hin","language_family_iso_1":"hi","version_code":"SKV","version_name":"SKV","version_english":"SKV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-17 20:11:15","created_on":"2017-08-17 20:04:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HNDSKVN1ET\/HNDSKVN1ET.zip","font":{"id":"53","name":"Kokila","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Kokila","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"HNDSKVN2DA","fcbh_id":"HNDSKVN2DA","volume_name":"Sab Ki Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HND","language_name":"\u0939\u093f\u0902\u0926\u0940","language_english":"Hindi","language_iso":"hin","language_iso_2B":"hin","language_iso_2T":"hin","language_iso_1":"hi","language_iso_name":"Hindi","language_family_code":"HND","language_family_name":"\u0939\u093f\u0902\u0926\u0940","language_family_english":"Hindi","language_family_iso":"hin","language_family_iso_2B":"hin","language_family_iso_2T":"hin","language_family_iso_1":"hi","version_code":"SKV","version_name":"SKV","version_english":"SKV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-17 20:13:47","created_on":"2017-08-04 15:23:16","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"HNDSKVN2DA\/HNDSKVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"HNDSKVN2ET","fcbh_id":"HNDSKVN2ET","volume_name":"Sab Ki Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HND","language_name":"\u0939\u093f\u0902\u0926\u0940","language_english":"Hindi","language_iso":"hin","language_iso_2B":"hin","language_iso_2T":"hin","language_iso_1":"hi","language_iso_name":"Hindi","language_family_code":"HND","language_family_name":"\u0939\u093f\u0902\u0926\u0940","language_family_english":"Hindi","language_family_iso":"hin","language_family_iso_2B":"hin","language_family_iso_2T":"hin","language_family_iso_1":"hi","version_code":"SKV","version_name":"SKV","version_english":"SKV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-17 20:11:33","created_on":"2017-08-17 20:02:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HNDSKVN2ET\/HNDSKVN2ET.zip","font":{"id":"53","name":"Kokila","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Kokila","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"HNDWTCN2DA","fcbh_id":"HNDWTCN2DA","volume_name":"Easy-to-Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HND","language_name":"\u0939\u093f\u0902\u0926\u0940","language_english":"Hindi","language_iso":"hin","language_iso_2B":"hin","language_iso_2T":"hin","language_iso_1":"hi","language_iso_name":"Hindi","language_family_code":"HND","language_family_name":"\u0939\u093f\u0902\u0926\u0940","language_family_english":"Hindi","language_family_iso":"hin","language_family_iso_2B":"hin","language_family_iso_2T":"hin","language_family_iso_1":"hi","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-17 19:47:30","created_on":"2013-03-04 16:39:26","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"HNDWTCN2DA\/HNDWTCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HNDWTCN2ET","fcbh_id":"HNDWTCN2ET","volume_name":"Easy-to-Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HND","language_name":"\u0939\u093f\u0902\u0926\u0940","language_english":"Hindi","language_iso":"hin","language_iso_2B":"hin","language_iso_2T":"hin","language_iso_1":"hi","language_iso_name":"Hindi","language_family_code":"HND","language_family_name":"\u0939\u093f\u0902\u0926\u0940","language_family_english":"Hindi","language_family_iso":"hin","language_family_iso_2B":"hin","language_family_iso_2T":"hin","language_family_iso_1":"hi","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-18 16:38:43","created_on":"2012-10-01 20:19:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HNDWTCN2ET\/HNDWTCN2ET.zip","font":{"id":"74","name":"Lohit-Marathi","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Marathi","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2011-12 Lohit Fonts Project contributors","url":"http:\/\/bit.ly\/1y7P7iU"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HNEBGCN1DA","fcbh_id":"HNEBGCN1DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HNE","language_name":"Chhattisgarhi","language_english":"Chattisgarhi","language_iso":"hne","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chhattisgarhi","language_family_code":"HNE","language_family_name":"Chhattisgarhi","language_family_english":"Chattisgarhi","language_family_iso":"hne","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BGC","version_name":"Bharatiya General Conference Mennonite Church","version_english":"Bharatiya General Conference Mennonite Church","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-06 16:34:18","created_on":"2017-08-03 18:57:42","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"HNEBGCN1DA\/HNEBGCN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"HNEBGCN1ET","fcbh_id":"HNEBGCN1ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HNE","language_name":"Chhattisgarhi","language_english":"Chattisgarhi","language_iso":"hne","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chhattisgarhi","language_family_code":"HNE","language_family_name":"Chhattisgarhi","language_family_english":"Chattisgarhi","language_family_iso":"hne","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BGC","version_name":"Bharatiya General Conference Mennonite Church","version_english":"Bharatiya General Conference Mennonite Church","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-03 19:06:59","created_on":"2017-08-03 18:59:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HNEBGCN1ET\/HNEBGCN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"HNEBGCN2DA","fcbh_id":"HNEBGCN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HNE","language_name":"Chhattisgarhi","language_english":"Chattisgarhi","language_iso":"hne","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chhattisgarhi","language_family_code":"HNE","language_family_name":"Chhattisgarhi","language_family_english":"Chattisgarhi","language_family_iso":"hne","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BGC","version_name":"Bharatiya General Conference Mennonite Church","version_english":"Bharatiya General Conference Mennonite Church","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-06 16:35:01","created_on":"2014-02-04 18:44:46","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"HNEBGCN2DA\/HNEBGCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"HNEBGCN2ET","fcbh_id":"HNEBGCN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HNE","language_name":"Chhattisgarhi","language_english":"Chattisgarhi","language_iso":"hne","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chhattisgarhi","language_family_code":"HNE","language_family_name":"Chhattisgarhi","language_family_english":"Chattisgarhi","language_family_iso":"hne","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BGC","version_name":"Bharatiya General Conference Mennonite Church","version_english":"Bharatiya General Conference Mennonite Church","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:25","created_on":"2013-11-18 20:26:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HNEBGCN2ET\/HNEBGCN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","mp3_cd","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HNNOMFN1DA","fcbh_id":"HNNOMFN1DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HNN","language_name":"Hanunoo","language_english":"Hanunoo","language_iso":"hnn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hanunoo","language_family_code":"HNN","language_family_name":"Hanunoo","language_family_english":"Hanunoo","language_family_iso":"hnn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"OMF","version_name":"Overseas Missionary Fellowship","version_english":"Overseas Missionary Fellowship","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-25 17:31:48","created_on":"2017-04-25 17:21:44","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"HNNOMFN1DA\/HNNOMFN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"HNNOMFN1ET","fcbh_id":"HNNOMFN1ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HNN","language_name":"Hanunoo","language_english":"Hanunoo","language_iso":"hnn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hanunoo","language_family_code":"HNN","language_family_name":"Hanunoo","language_family_english":"Hanunoo","language_family_iso":"hnn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"OMF","version_name":"Overseas Missionary Fellowship","version_english":"Overseas Missionary Fellowship","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-25 17:30:27","created_on":"2017-04-25 17:26:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HNNOMFN1ET\/HNNOMFN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"HNNOMFN2DA","fcbh_id":"HNNOMFN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HNN","language_name":"Hanunoo","language_english":"Hanunoo","language_iso":"hnn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hanunoo","language_family_code":"HNN","language_family_name":"Hanunoo","language_family_english":"Hanunoo","language_family_iso":"hnn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"OMF","version_name":"Overseas Missionary Fellowship","version_english":"Overseas Missionary Fellowship","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-01-15 17:33:32","created_on":"2015-01-15 16:39:25","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"HNNOMFN2DA\/HNNOMFN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HNNOMFN2ET","fcbh_id":"HNNOMFN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HNN","language_name":"Hanunoo","language_english":"Hanunoo","language_iso":"hnn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hanunoo","language_family_code":"HNN","language_family_name":"Hanunoo","language_family_english":"Hanunoo","language_family_iso":"hnn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"OMF","version_name":"Overseas Missionary Fellowship","version_english":"Overseas Missionary Fellowship","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:19","created_on":"2012-01-04 23:31:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HNNOMFN2ET\/HNNOMFN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HNSWBTN2DA","fcbh_id":"HNSWBTN2DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HNS","language_name":"Sarnami Hindi","language_english":"Sarnami Hindi","language_iso":"hns","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Caribbean Hindustani","language_family_code":"HNS","language_family_name":"Sarnami Hindi","language_family_english":"Sarnami Hindi","language_family_iso":"hns","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-12 20:15:17","created_on":"2010-09-14 17:01:14","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2HNSWBT","audio_zip_path":"HNSWBTN2DA\/HNSWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HNSWBTN2ET","fcbh_id":"HNSWBTN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HNS","language_name":"Sarnami Hindi","language_english":"Sarnami Hindi","language_iso":"hns","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Caribbean Hindustani","language_family_code":"HNS","language_family_name":"Sarnami Hindi","language_family_english":"Sarnami Hindi","language_family_iso":"hns","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-29 17:21:23","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2HNSWBT","audio_zip_path":"HNSWBTN2ET\/HNSWBTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HOTWBTN2ET","fcbh_id":"HOTWBTN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HOT","language_name":"Hote","language_english":"Hote","language_iso":"hot","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hote","language_family_code":"HOT","language_family_name":"Hote","language_family_english":"Hote","language_family_iso":"hot","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-21 18:40:28","created_on":"2014-05-08 18:05:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HOTWBTN2ET\/HOTWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HTOWBTN2DA","fcbh_id":"HTOWBTN2DA","volume_name":"1985 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HTO","language_name":"Huitoto, Minica","language_english":"Huitoto, Minica","language_iso":"hto","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Minica Huitoto","language_family_code":"HTO","language_family_name":"Huitoto, Minica","language_family_english":"Huitoto, Minica","language_family_iso":"hto","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-12 19:08:47","created_on":"2010-09-14 17:01:08","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2HTOWBT","audio_zip_path":"HTOWBTN2DA\/HTOWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HTOWBTN2ET","fcbh_id":"HTOWBTN2ET","volume_name":"1985 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HTO","language_name":"Huitoto, Minica","language_english":"Huitoto, Minica","language_iso":"hto","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Minica Huitoto","language_family_code":"HTO","language_family_name":"Huitoto, Minica","language_family_english":"Huitoto, Minica","language_family_iso":"hto","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:50","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2HTOWBT","audio_zip_path":"HTOWBTN2ET\/HTOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HUABSNN2DA","fcbh_id":"HUABSNN2DA","volume_name":"1979 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"HUA","language_name":"Hausa","language_english":"Hausa","language_iso":"hau","language_iso_2B":"hau","language_iso_2T":"hau","language_iso_1":"ha","language_iso_name":"Hausa","language_family_code":"HAU","language_family_name":"Hausa","language_family_english":"Hausa","language_family_iso":"hau","language_family_iso_2B":"hau","language_family_iso_2T":"hau","language_family_iso_1":"ha","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-12 17:07:12","created_on":"2010-09-14 17:00:16","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2HUABSN","audio_zip_path":"HUABSNN2DA\/HUABSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"HUBWBTN2DA","fcbh_id":"HUBWBTN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUB","language_name":"Huambisa","language_english":"Huambisa","language_iso":"hub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huambisa","language_family_code":"HUB","language_family_name":"Huambisa","language_family_english":"Huambisa","language_family_iso":"hub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:00","created_on":"2013-05-07 16:03:07","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"HUBWBTN2DA\/HUBWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HUBWBTN2ET","fcbh_id":"HUBWBTN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUB","language_name":"Huambisa","language_english":"Huambisa","language_iso":"hub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huambisa","language_family_code":"HUB","language_family_name":"Huambisa","language_family_english":"Huambisa","language_family_iso":"hub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:14","created_on":"2011-08-25 17:03:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HUBWBTN2ET\/HUBWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HUIPNGN2DA","fcbh_id":"HUIPNGN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUI","language_name":"Huli","language_english":"Huli","language_iso":"hui","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huli","language_family_code":"HUI","language_family_name":"Huli","language_family_english":"Huli","language_family_iso":"hui","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:01","created_on":"2011-07-19 15:47:49","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"HUIPNGN2DA\/HUIPNGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HUIPNGN2ET","fcbh_id":"HUIPNGN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUI","language_name":"Huli","language_english":"Huli","language_iso":"hui","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huli","language_family_code":"HUI","language_family_name":"Huli","language_family_english":"Huli","language_family_iso":"hui","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:21","created_on":"2011-05-30 01:14:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HUIPNGN2ET\/HUIPNGN2ET.zip","font":{"id":"46","name":"Doulos SIL Philippines","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL_Philippines","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HUIPNGO2ET","fcbh_id":"HUIPNGO2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUI","language_name":"Huli","language_english":"Huli","language_iso":"hui","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huli","language_family_code":"HUI","language_family_name":"Huli","language_family_english":"Huli","language_family_iso":"hui","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:19","created_on":"2013-09-03 20:40:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HUIPNGO2ET\/HUIPNGO2ET.zip","font":{"id":"46","name":"Doulos SIL Philippines","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL_Philippines","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HUNHBSN1DA","fcbh_id":"HUNHBSN1DA","volume_name":"1990 Revised Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUN","language_name":"Magyar","language_english":"Hungarian","language_iso":"hun","language_iso_2B":"hun","language_iso_2T":"hun","language_iso_1":"hu","language_iso_name":"Hungarian","language_family_code":"HUN","language_family_name":"Magyar","language_family_english":"Hungarian","language_family_iso":"hun","language_family_iso_2B":"hun","language_family_iso_2T":"hun","language_family_iso_1":"hu","version_code":"HBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"\u00dajsz\u00f6vets\u00e9g","updated_on":"2018-05-16 18:10:37","created_on":"2010-09-14 17:01:52","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1HUNHBS","audio_zip_path":"HUNHBSN1DA\/HUNHBSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HUNHBSN1ET","fcbh_id":"HUNHBSN1ET","volume_name":"1990 Revised Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUN","language_name":"Magyar","language_english":"Hungarian","language_iso":"hun","language_iso_2B":"hun","language_iso_2T":"hun","language_iso_1":"hu","language_iso_name":"Hungarian","language_family_code":"HUN","language_family_name":"Magyar","language_family_english":"Hungarian","language_family_iso":"hun","language_family_iso_2B":"hun","language_family_iso_2T":"hun","language_family_iso_1":"hu","version_code":"HBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"\u00dajsz\u00f6vets\u00e9g","updated_on":"2018-05-16 18:10:37","created_on":"2011-06-01 20:00:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HUNHBSN1ET\/HUNHBSN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HUNK90N2ET","fcbh_id":"HUNK90N2ET","volume_name":"1590 K\u00e1roli Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUN","language_name":"Magyar","language_english":"Hungarian","language_iso":"hun","language_iso_2B":"hun","language_iso_2T":"hun","language_iso_1":"hu","language_iso_name":"Hungarian","language_family_code":"HUN","language_family_name":"Magyar","language_family_english":"Hungarian","language_family_iso":"hun","language_family_iso_2B":"hun","language_family_iso_2T":"hun","language_family_iso_1":"hu","version_code":"K90","version_name":"1590 K\u00e1roli Bible","version_english":"1590 K\u00e1roli Bible","collection_code":"NT","rich":"0","collection_name":"\u00dajsz\u00f6vets\u00e9g","updated_on":"2018-11-30 17:31:20","created_on":"2010-09-14 17:01:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HUNK90N2ET\/HUNK90N2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HUNK90O2ET","fcbh_id":"HUNK90O2ET","volume_name":"1590 K\u00e1roli Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUN","language_name":"Magyar","language_english":"Hungarian","language_iso":"hun","language_iso_2B":"hun","language_iso_2T":"hun","language_iso_1":"hu","language_iso_name":"Hungarian","language_family_code":"HUN","language_family_name":"Magyar","language_family_english":"Hungarian","language_family_iso":"hun","language_family_iso_2B":"hun","language_family_iso_2T":"hun","language_family_iso_1":"hu","version_code":"K90","version_name":"1590 K\u00e1roli Bible","version_english":"1590 K\u00e1roli Bible","collection_code":"OT","rich":"0","collection_name":"\u00d3sz\u00f6vets\u00e9g","updated_on":"2018-11-30 17:22:21","created_on":"2010-09-14 17:01:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HUNK90O2ET\/HUNK90O2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HUNRNTN1DA","fcbh_id":"HUNRNTN1DA","volume_name":"2014 Revide\u00e1lt \u00faj ford\u00edt\u00e1s\u00fa Biblia","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUN","language_name":"Magyar","language_english":"Hungarian","language_iso":"hun","language_iso_2B":"hun","language_iso_2T":"hun","language_iso_1":"hu","language_iso_name":"Hungarian","language_family_code":"HUN","language_family_name":"Magyar","language_family_english":"Hungarian","language_family_iso":"hun","language_family_iso_2B":"hun","language_family_iso_2T":"hun","language_family_iso_1":"hu","version_code":"RNT","version_name":"Revide\u00e1lt \u00faj ford\u00edt\u00e1s\u00fa Biblia (2014)","version_english":"Revised Hungarian New Translation (2014)","collection_code":"NT","rich":"0","collection_name":"\u00dajsz\u00f6vets\u00e9g","updated_on":"2018-01-22 20:37:08","created_on":"2016-10-14 16:34:05","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"HUNRNTN1DA\/HUNRNTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"HUNRNTN1ET","fcbh_id":"HUNRNTN1ET","volume_name":"2014 Revide\u00e1lt \u00faj ford\u00edt\u00e1s\u00fa Biblia","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUN","language_name":"Magyar","language_english":"Hungarian","language_iso":"hun","language_iso_2B":"hun","language_iso_2T":"hun","language_iso_1":"hu","language_iso_name":"Hungarian","language_family_code":"HUN","language_family_name":"Magyar","language_family_english":"Hungarian","language_family_iso":"hun","language_family_iso_2B":"hun","language_family_iso_2T":"hun","language_family_iso_1":"hu","version_code":"RNT","version_name":"Revide\u00e1lt \u00faj ford\u00edt\u00e1s\u00fa Biblia (2014)","version_english":"Revised Hungarian New Translation (2014)","collection_code":"NT","rich":"0","collection_name":"\u00dajsz\u00f6vets\u00e9g","updated_on":"2018-05-16 19:58:42","created_on":"2017-04-24 21:05:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HUNRNTN1ET\/HUNRNTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"HUNRNTO1DA","fcbh_id":"HUNRNTO1DA","volume_name":"2014 Revide\u00e1lt \u00faj ford\u00edt\u00e1s\u00fa Biblia","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUN","language_name":"Magyar","language_english":"Hungarian","language_iso":"hun","language_iso_2B":"hun","language_iso_2T":"hun","language_iso_1":"hu","language_iso_name":"Hungarian","language_family_code":"HUN","language_family_name":"Magyar","language_family_english":"Hungarian","language_family_iso":"hun","language_family_iso_2B":"hun","language_family_iso_2T":"hun","language_family_iso_1":"hu","version_code":"RNT","version_name":"Revide\u00e1lt \u00faj ford\u00edt\u00e1s\u00fa Biblia (2014)","version_english":"Revised Hungarian New Translation (2014)","collection_code":"OT","rich":"0","collection_name":"\u00d3sz\u00f6vets\u00e9g","updated_on":"2018-01-22 20:37:08","created_on":"2016-10-14 16:26:34","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"HUNRNTO1DA\/HUNRNTO1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"HUNRNTO1ET","fcbh_id":"HUNRNTO1ET","volume_name":"2014 Revide\u00e1lt \u00faj ford\u00edt\u00e1s\u00fa Biblia","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUN","language_name":"Magyar","language_english":"Hungarian","language_iso":"hun","language_iso_2B":"hun","language_iso_2T":"hun","language_iso_1":"hu","language_iso_name":"Hungarian","language_family_code":"HUN","language_family_name":"Magyar","language_family_english":"Hungarian","language_family_iso":"hun","language_family_iso_2B":"hun","language_family_iso_2T":"hun","language_family_iso_1":"hu","version_code":"RNT","version_name":"Revide\u00e1lt \u00faj ford\u00edt\u00e1s\u00fa Biblia (2014)","version_english":"Revised Hungarian New Translation (2014)","collection_code":"OT","rich":"0","collection_name":"\u00d3sz\u00f6vets\u00e9g","updated_on":"2018-05-16 19:58:42","created_on":"2017-04-24 21:07:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HUNRNTO1ET\/HUNRNTO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"HUSLLBN2DA","fcbh_id":"HUSLLBN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUS","language_name":"Huasteco, Veracruz","language_english":"Huasteco, Veracruz","language_iso":"hus","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huastec","language_family_code":"HUS","language_family_name":"Huasteco, Veracruz","language_family_english":"Huasteco, Veracruz","language_family_iso":"hus","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LLB","version_name":"La Liga Biblica","version_english":"La Liga Biblica","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-12 19:02:58","created_on":"2010-09-14 17:00:16","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2HUSLLB","audio_zip_path":"HUSLLBN2DA\/HUSLLBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HUSLLBN2ET","fcbh_id":"HUSLLBN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUS","language_name":"Huasteco, Veracruz","language_english":"Huasteco, Veracruz","language_iso":"hus","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huastec","language_family_code":"HUS","language_family_name":"Huasteco, Veracruz","language_family_english":"Huasteco, Veracruz","language_family_iso":"hus","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LLB","version_name":"La Liga Biblica","version_english":"La Liga Biblica","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:17","created_on":"2010-09-14 17:00:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2HUSLLB","audio_zip_path":"HUSLLBN2ET\/HUSLLBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HUUTBLN1DA","fcbh_id":"HUUTBLN1DA","volume_name":"1978 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUU","language_name":"Huitoto Murui","language_english":"Huitoto Murui","language_iso":"huu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Murui Huitoto","language_family_code":"HUU","language_family_name":"Huitoto Murui","language_family_english":"Huitoto Murui","language_family_iso":"huu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-18 16:07:03","created_on":"2016-02-16 23:01:59","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"HUUTBLN1DA\/HUUTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HUUTBLN1ET","fcbh_id":"HUUTBLN1ET","volume_name":"1978 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUU","language_name":"Huitoto Murui","language_english":"Huitoto Murui","language_iso":"huu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Murui Huitoto","language_family_code":"HUU","language_family_name":"Huitoto Murui","language_family_english":"Huitoto Murui","language_family_iso":"huu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-18 16:08:51","created_on":"2016-02-16 22:33:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HUUTBLN1ET\/HUUTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"HUUTBLN2DA","fcbh_id":"HUUTBLN2DA","volume_name":"1978 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUU","language_name":"Huitoto Murui","language_english":"Huitoto Murui","language_iso":"huu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Murui Huitoto","language_family_code":"HUU","language_family_name":"Huitoto Murui","language_family_english":"Huitoto Murui","language_family_iso":"huu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-18 16:09:22","created_on":"2016-02-16 22:49:36","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"HUUTBLN2DA\/HUUTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HUUTBLN2ET","fcbh_id":"HUUTBLN2ET","volume_name":"1978 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUU","language_name":"Huitoto Murui","language_english":"Huitoto Murui","language_iso":"huu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Murui Huitoto","language_family_code":"HUU","language_family_name":"Huitoto Murui","language_family_english":"Huitoto Murui","language_family_iso":"huu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:17","created_on":"2014-02-20 17:29:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HUUTBLN2ET\/HUUTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HUVTBLN2DA","fcbh_id":"HUVTBLN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUV","language_name":"Huave de San Mateo del Mar","language_english":"Huave de San Mateo del Mar","language_iso":"huv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Mateo Del Mar Huave","language_family_code":"HUV","language_family_name":"Huave de San Mateo del Mar","language_family_english":"Huave de San Mateo del Mar","language_family_iso":"huv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 16:35:40","created_on":"2010-09-14 17:01:08","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2HUVTBL","audio_zip_path":"HUVTBLN2DA\/HUVTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"HUVTBLN2ET","fcbh_id":"HUVTBLN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUV","language_name":"Huave de San Mateo del Mar","language_english":"Huave de San Mateo del Mar","language_iso":"huv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Mateo Del Mar Huave","language_family_code":"HUV","language_family_name":"Huave de San Mateo del Mar","language_family_english":"Huave de San Mateo del Mar","language_family_iso":"huv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 16:35:25","created_on":"2010-11-25 20:49:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2HUVTBL","audio_zip_path":"HUVTBLN2ET\/HUVTBLN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"HUVTBLS1DA","fcbh_id":"HUVTBLS1DA","volume_name":"Story - Old Testament -1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HUV","language_name":"Huave de San Mateo del Mar","language_english":"Huave de San Mateo del Mar","language_iso":"huv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Mateo Del Mar Huave","language_family_code":"HUV","language_family_name":"Huave de San Mateo del Mar","language_family_english":"Huave de San Mateo del Mar","language_family_iso":"huv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-01-22 20:41:59","created_on":"2016-02-18 15:48:58","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"HUVTBLS1DA\/HUVTBLS1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"HVNLAIN2ET","fcbh_id":"HVNLAIN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"HVN","language_name":"Sabu","language_english":"Sabu","language_iso":"hvn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sabu","language_family_code":"HVN","language_family_name":"Sabu","language_family_english":"Sabu","language_family_iso":"hvn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:19","created_on":"2014-04-21 17:14:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"HVNLAIN2ET\/HVNLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IANPNGN2ET","fcbh_id":"IANPNGN2ET","volume_name":"1975 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IAN","language_name":"Iatmul","language_english":"Iatmul","language_iso":"ian","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Iatmul","language_family_code":"IAN","language_family_name":"Iatmul","language_family_english":"Iatmul","language_family_iso":"ian","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-21 18:45:17","created_on":"2014-04-29 21:01:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IANPNGN2ET\/IANPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IBATIVN2DA","fcbh_id":"IBATIVN2DA","volume_name":"Today's Iban Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IBA","language_name":"Iban","language_english":"Iban","language_iso":"iba","language_iso_2B":"iba","language_iso_2T":"iba","language_iso_1":"","language_iso_name":"Iban","language_family_code":"IBA","language_family_name":"Iban","language_family_english":"Iban","language_family_iso":"iba","language_family_iso_2B":"iba","language_family_iso_2T":"iba","language_family_iso_1":"","version_code":"TIV","version_name":"Today\\'s Iban Version","version_english":"Todays Iban Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-15 23:19:40","created_on":"2013-04-22 18:22:21","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"IBATIVN2DA\/IBATIVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"IBATIVN2ET","fcbh_id":"IBATIVN2ET","volume_name":"Today's Iban Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IBA","language_name":"Iban","language_english":"Iban","language_iso":"iba","language_iso_2B":"iba","language_iso_2T":"iba","language_iso_1":"","language_iso_name":"Iban","language_family_code":"IBA","language_family_name":"Iban","language_family_english":"Iban","language_family_iso":"iba","language_family_iso_2B":"iba","language_family_iso_2T":"iba","language_family_iso_1":"","version_code":"TIV","version_name":"Today\\'s Iban Version","version_english":"Todays Iban Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-30 17:11:45","created_on":"2011-10-17 21:38:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IBATIVN2ET\/IBATIVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ICRWYIN1DA","fcbh_id":"ICRWYIN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ICR","language_name":"San Andres Islander Creole","language_english":"San Andres Islander Creole","language_iso":"icr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Islander Creole English","language_family_code":"ICR","language_family_name":"San Andres Islander Creole","language_family_english":"San Andres Islander Creole","language_family_iso":"icr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-08-26 22:53:50","created_on":"2015-02-20 19:48:54","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"ICRWYIN1DA\/ICRWYIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ICRWYIN1ET","fcbh_id":"ICRWYIN1ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ICR","language_name":"San Andres Islander Creole","language_english":"San Andres Islander Creole","language_iso":"icr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Islander Creole English","language_family_code":"ICR","language_family_name":"San Andres Islander Creole","language_family_english":"San Andres Islander Creole","language_family_iso":"icr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:22","created_on":"2015-06-03 18:38:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ICRWYIN1ET\/ICRWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ICRWYIN2DA","fcbh_id":"ICRWYIN2DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ICR","language_name":"San Andres Islander Creole","language_english":"San Andres Islander Creole","language_iso":"icr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Islander Creole English","language_family_code":"ICR","language_family_name":"San Andres Islander Creole","language_family_english":"San Andres Islander Creole","language_family_iso":"icr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-08-26 22:54:27","created_on":"2015-02-20 18:25:51","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"ICRWYIN2DA\/ICRWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ICRWYIN2ET","fcbh_id":"ICRWYIN2ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ICR","language_name":"San Andres Islander Creole","language_english":"San Andres Islander Creole","language_iso":"icr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Islander Creole English","language_family_code":"ICR","language_family_name":"San Andres Islander Creole","language_family_english":"San Andres Islander Creole","language_family_iso":"icr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:22","created_on":"2015-05-29 15:30:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ICRWYIN2ET\/ICRWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IDABSKN2DA","fcbh_id":"IDABSKN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"IDA","language_name":"Lukakamega","language_english":"Lukakamega","language_iso":"ida","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Idakho-Isukha-Tiriki","language_family_code":"IDA","language_family_name":"Lukakamega","language_family_english":"Lukakamega","language_family_iso":"ida","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSK","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:50","created_on":"2010-09-14 17:00:16","right_to_left":"false","num_art":"2","num_sample_audio":"1","sku":"N2IDABSK","audio_zip_path":"IDABSKN2DA\/IDABSKN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"IDUBSNN2DA","fcbh_id":"IDUBSNN2DA","volume_name":"1970 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"IDU","language_name":"Idoma","language_english":"Idoma","language_iso":"idu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Idoma","language_family_code":"IDU","language_family_name":"Idoma","language_family_english":"Idoma","language_family_iso":"idu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:57","created_on":"2010-09-14 17:01:01","right_to_left":"false","num_art":"8","num_sample_audio":"1","sku":"N2IDUBSN","audio_zip_path":"IDUBSNN2DA\/IDUBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"IFAWBTN1DA","fcbh_id":"IFAWBTN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFA","language_name":"Central Ifugao","language_english":"Amganad Ifugao","language_iso":"ifa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Amganad Ifugao","language_family_code":"IFA","language_family_name":"Central Ifugao","language_family_english":"Amganad Ifugao","language_family_iso":"ifa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-07-27 18:02:08","created_on":"2016-07-27 15:47:02","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"IFAWBTN1DA\/IFAWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"IFAWBTN1ET","fcbh_id":"IFAWBTN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFA","language_name":"Central Ifugao","language_english":"Amganad Ifugao","language_iso":"ifa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Amganad Ifugao","language_family_code":"IFA","language_family_name":"Central Ifugao","language_family_english":"Amganad Ifugao","language_family_iso":"ifa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-07-27 18:02:36","created_on":"2016-07-27 16:58:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IFAWBTN1ET\/IFAWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"IFAWBTN2DA","fcbh_id":"IFAWBTN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFA","language_name":"Central Ifugao","language_english":"Amganad Ifugao","language_iso":"ifa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Amganad Ifugao","language_family_code":"IFA","language_family_name":"Central Ifugao","language_family_english":"Amganad Ifugao","language_family_iso":"ifa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-11 18:02:28","created_on":"2016-07-27 15:54:34","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"IFAWBTN2DA\/IFAWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"IFAWBTN2ET","fcbh_id":"IFAWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFA","language_name":"Central Ifugao","language_english":"Amganad Ifugao","language_iso":"ifa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Amganad Ifugao","language_family_code":"IFA","language_family_name":"Central Ifugao","language_family_english":"Amganad Ifugao","language_family_iso":"ifa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-12-23 19:55:31","created_on":"2015-12-23 19:44:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IFAWBTN2ET\/IFAWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"IFAWBTO1ET","fcbh_id":"IFAWBTO1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFA","language_name":"Central Ifugao","language_english":"Amganad Ifugao","language_iso":"ifa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Amganad Ifugao","language_family_code":"IFA","language_family_name":"Central Ifugao","language_family_english":"Amganad Ifugao","language_family_iso":"ifa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2016-08-11 18:36:25","created_on":"2016-08-11 17:55:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IFAWBTO1ET\/IFAWBTO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"IFAWBTO2ET","fcbh_id":"IFAWBTO2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFA","language_name":"Central Ifugao","language_english":"Amganad Ifugao","language_iso":"ifa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Amganad Ifugao","language_family_code":"IFA","language_family_name":"Central Ifugao","language_family_english":"Amganad Ifugao","language_family_iso":"ifa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2015-12-23 20:16:32","created_on":"2015-12-23 19:46:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IFAWBTO2ET\/IFAWBTO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"IFBTBLN2DA","fcbh_id":"IFBTBLN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFB","language_name":"Ayangan Ifugao","language_english":"Ayangan Ifugao","language_iso":"ifb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Batad Ifugao","language_family_code":"IFB","language_family_name":"Ayangan Ifugao","language_family_english":"Ayangan Ifugao","language_family_iso":"ifb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:07:55","created_on":"2012-04-16 16:56:32","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"IFBTBLN2DA\/IFBTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"IFBTBLN2ET","fcbh_id":"IFBTBLN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFB","language_name":"Ayangan Ifugao","language_english":"Ayangan Ifugao","language_iso":"ifb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Batad Ifugao","language_family_code":"IFB","language_family_name":"Ayangan Ifugao","language_family_english":"Ayangan Ifugao","language_family_iso":"ifb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:14","created_on":"2011-05-30 21:01:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IFBTBLN2ET\/IFBTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IFBTBLO2ET","fcbh_id":"IFBTBLO2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFB","language_name":"Ayangan Ifugao","language_english":"Ayangan Ifugao","language_iso":"ifb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Batad Ifugao","language_family_code":"IFB","language_family_name":"Ayangan Ifugao","language_family_english":"Ayangan Ifugao","language_family_iso":"ifb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-08-03 23:05:03","created_on":"2013-05-14 20:14:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IFBTBLO2ET\/IFBTBLO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"IFEWBTN1DA","fcbh_id":"IFEWBTN1DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFE","language_name":"If\u00e8","language_english":"Ife","language_iso":"ife","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"If\u00e8","language_family_code":"IFE","language_family_name":"If\u00e8","language_family_english":"Ife","language_family_iso":"ife","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-24 19:24:55","created_on":"2017-04-24 18:50:36","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"IFEWBTN1DA\/IFEWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"IFEWBTN1ET","fcbh_id":"IFEWBTN1ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFE","language_name":"If\u00e8","language_english":"Ife","language_iso":"ife","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"If\u00e8","language_family_code":"IFE","language_family_name":"If\u00e8","language_family_english":"Ife","language_family_iso":"ife","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-24 19:04:01","created_on":"2017-04-24 18:51:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IFEWBTN1ET\/IFEWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"IFEWBTN2DA","fcbh_id":"IFEWBTN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFE","language_name":"If\u00e8","language_english":"Ife","language_iso":"ife","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"If\u00e8","language_family_code":"IFE","language_family_name":"If\u00e8","language_family_english":"Ife","language_family_iso":"ife","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-11-24 18:51:28","created_on":"2014-11-21 19:48:53","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"IFEWBTN2DA\/IFEWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"IFEWBTN2ET","fcbh_id":"IFEWBTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFE","language_name":"If\u00e8","language_english":"Ife","language_iso":"ife","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"If\u00e8","language_family_code":"IFE","language_family_name":"If\u00e8","language_family_english":"Ife","language_family_iso":"ife","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:15","created_on":"2014-05-07 19:27:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IFEWBTN2ET\/IFEWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IFKTBLN2DA","fcbh_id":"IFKTBLN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFK","language_name":"Tuwali Ifugao","language_english":"Tuwali Ifugao","language_iso":"ifk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tuwali Ifugao","language_family_code":"IFK","language_family_name":"Tuwali Ifugao","language_family_english":"Tuwali Ifugao","language_family_iso":"ifk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:07","created_on":"2011-11-14 20:08:20","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"IFKTBLN2DA\/IFKTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"IFKTBLN2ET","fcbh_id":"IFKTBLN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFK","language_name":"Tuwali Ifugao","language_english":"Tuwali Ifugao","language_iso":"ifk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tuwali Ifugao","language_family_code":"IFK","language_family_name":"Tuwali Ifugao","language_family_english":"Tuwali Ifugao","language_family_iso":"ifk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2012-02-20 23:17:56","created_on":"2012-02-20 23:02:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IFKTBLN2ET\/IFKTBLN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IFUWPSN2DA","fcbh_id":"IFUWPSN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFU","language_name":"Mayoyao Ifugao","language_english":"Mayoyao Ifugao","language_iso":"ifu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mayoyao Ifugao","language_family_code":"IFU","language_family_name":"Mayoyao Ifugao","language_family_english":"Mayoyao Ifugao","language_family_iso":"ifu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WPS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:08","created_on":"2012-03-26 17:29:04","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"IFUWPSN2DA\/IFUWPSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"IFUWPSN2ET","fcbh_id":"IFUWPSN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFU","language_name":"Mayoyao Ifugao","language_english":"Mayoyao Ifugao","language_iso":"ifu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mayoyao Ifugao","language_family_code":"IFU","language_family_name":"Mayoyao Ifugao","language_family_english":"Mayoyao Ifugao","language_family_iso":"ifu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WPS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-30 17:41:41","created_on":"2011-06-07 22:14:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IFUWPSN2ET\/IFUWPSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IFYWBTN2DA","fcbh_id":"IFYWBTN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFY","language_name":"Antipolo Ifugao","language_english":"Antipolo Ifugao","language_iso":"ify","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Keley-I Kallahan","language_family_code":"IFY","language_family_name":"Antipolo Ifugao","language_family_english":"Antipolo Ifugao","language_family_iso":"ify","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-20 23:51:09","created_on":"2011-07-19 17:26:34","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"IFYWBTN2DA\/IFYWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"IFYWBTN2ET","fcbh_id":"IFYWBTN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFY","language_name":"Antipolo Ifugao","language_english":"Antipolo Ifugao","language_iso":"ify","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Keley-I Kallahan","language_family_code":"IFY","language_family_name":"Antipolo Ifugao","language_family_english":"Antipolo Ifugao","language_family_iso":"ify","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:38","created_on":"2011-05-30 01:21:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IFYWBTN2ET\/IFYWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IFYWBTO2ET","fcbh_id":"IFYWBTO2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IFY","language_name":"Antipolo Ifugao","language_english":"Antipolo Ifugao","language_iso":"ify","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Keley-I Kallahan","language_family_code":"IFY","language_family_name":"Antipolo Ifugao","language_family_english":"Antipolo Ifugao","language_family_iso":"ify","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:38","created_on":"2011-05-30 17:11:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IFYWBTO2ET\/IFYWBTO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IGBBSNN2DA","fcbh_id":"IGBBSNN2DA","volume_name":"1981 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"IGB","language_name":"Ebira","language_english":"Ebira","language_iso":"igb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ebira","language_family_code":"IGB","language_family_name":"Ebira","language_family_english":"Ebira","language_family_iso":"igb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:42","created_on":"2010-09-14 17:00:16","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2IGBBSN","audio_zip_path":"IGBBSNN2DA\/IGBBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"IGEBSNN2DA","fcbh_id":"IGEBSNN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"IGE","language_name":"Igede","language_english":"Igede","language_iso":"ige","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Igede","language_family_code":"IGE","language_family_name":"Igede","language_family_english":"Igede","language_family_iso":"ige","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:45","created_on":"2012-06-07 19:03:27","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"IGEBSNN2DA\/IGEBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"IGLBSNN2DA","fcbh_id":"IGLBSNN2DA","volume_name":"1970 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"IGL","language_name":"Igala","language_english":"Igala","language_iso":"igl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Igala","language_family_code":"IGL","language_family_name":"Igala","language_family_english":"Igala","language_family_iso":"igl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:40","created_on":"2010-09-14 17:00:17","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2IGLBSN","audio_zip_path":"IGLBSNN2DA\/IGLBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"IGNSBBN2DA","fcbh_id":"IGNSBBN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IGN","language_name":"Ignaciano","language_english":"Ignaciano","language_iso":"ign","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ignaciano","language_family_code":"IGN","language_family_name":"Ignaciano","language_family_english":"Ignaciano","language_family_iso":"ign","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 16:55:58","created_on":"2010-09-14 17:01:03","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2IGNSBB","audio_zip_path":"IGNSBBN2DA\/IGNSBBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"IGNSBBN2ET","fcbh_id":"IGNSBBN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IGN","language_name":"Ignaciano","language_english":"Ignaciano","language_iso":"ign","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ignaciano","language_family_code":"IGN","language_family_name":"Ignaciano","language_family_english":"Ignaciano","language_family_iso":"ign","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:16","created_on":"2011-05-18 00:23:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IGNSBBN2ET\/IGNSBBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IGRBSNN2DA","fcbh_id":"IGRBSNN2DA","volume_name":"Union Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"IGR","language_name":"Igbo","language_english":"Igbo","language_iso":"ibo","language_iso_2B":"ibo","language_iso_2T":"ibo","language_iso_1":"ig","language_iso_name":"Igbo","language_family_code":"IGR","language_family_name":"Igbo","language_family_english":"Igbo","language_family_iso":"ibo","language_family_iso_2B":"ibo","language_family_iso_2T":"ibo","language_family_iso_1":"ig","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:42","created_on":"2010-09-14 17:00:17","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2IGRBSN","audio_zip_path":"IGRBSNN2DA\/IGRBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"IJCBSNN2DA","fcbh_id":"IJCBSNN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"IJC","language_name":"Izon","language_english":"Izon","language_iso":"ijc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Izon","language_family_code":"IJC","language_family_name":"Izon","language_family_english":"Izon","language_family_iso":"ijc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:57","created_on":"2011-01-13 19:29:15","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2IJCBSN","audio_zip_path":"IJCBSNN2DA\/IJCBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"IJNBSNN2DA","fcbh_id":"IJNBSNN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"IJN","language_name":"Kalabari","language_english":"Kalabari","language_iso":"ijn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kalabari","language_family_code":"IJN","language_family_name":"Kalabari","language_family_english":"Kalabari","language_family_iso":"ijn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:05","created_on":"2010-10-05 19:34:25","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2IJNBSN","audio_zip_path":"IJNBSNN2DA\/IJNBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"IKKTBLN2ET","fcbh_id":"IKKTBLN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"IKK","language_name":"Ika","language_english":"Ika","language_iso":"ikk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ika","language_family_code":"IKK","language_family_name":"Ika","language_family_english":"Ika","language_family_iso":"ikk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-10 15:27:01","created_on":"2018-07-30 21:17:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IKKTBLN2ET\/IKKTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"IKKTBLO2ET","fcbh_id":"IKKTBLO2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"IKK","language_name":"Ika","language_english":"Ika","language_iso":"ikk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ika","language_family_code":"IKK","language_family_name":"Ika","language_family_english":"Ika","language_family_iso":"ikk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-09-10 15:42:42","created_on":"2018-07-30 22:34:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IKKTBLO2ET\/IKKTBLO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ILORPVN2DA","fcbh_id":"ILORPVN2DA","volume_name":"1996 Revised Popular Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ILO","language_name":"Ilocano","language_english":"Ilokano","language_iso":"ilo","language_iso_2B":"ilo","language_iso_2T":"ilo","language_iso_1":"","language_iso_name":"Iloko","language_family_code":"ILO","language_family_name":"Ilocano","language_family_english":"Ilokano","language_family_iso":"ilo","language_family_iso_2B":"ilo","language_family_iso_2T":"ilo","language_family_iso_1":"","version_code":"RPV","version_name":"RPV","version_english":"RPV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-08-25 16:33:52","created_on":"2010-09-14 17:00:17","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2ILORPV","audio_zip_path":"ILORPVN2DA\/ILORPVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ILORPVN2ET","fcbh_id":"ILORPVN2ET","volume_name":"1996 Revised Popular Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ILO","language_name":"Ilocano","language_english":"Ilokano","language_iso":"ilo","language_iso_2B":"ilo","language_iso_2T":"ilo","language_iso_1":"","language_iso_name":"Iloko","language_family_code":"ILO","language_family_name":"Ilocano","language_family_english":"Ilokano","language_family_iso":"ilo","language_family_iso_2B":"ilo","language_family_iso_2T":"ilo","language_family_iso_1":"","version_code":"RPV","version_name":"RPV","version_english":"RPV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-30 17:20:38","created_on":"2010-09-14 17:00:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2ILORPV","audio_zip_path":"ILORPVN2ET\/ILORPVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IMOTBLN2ET","fcbh_id":"IMOTBLN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IMO","language_name":"Imbongu","language_english":"Imbongu","language_iso":"imo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Imbongu","language_family_code":"IMO","language_family_name":"Imbongu","language_family_english":"Imbongu","language_family_iso":"imo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-21 18:49:46","created_on":"2014-06-24 23:15:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IMOTBLN2ET\/IMOTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"INBWBTN2DA","fcbh_id":"INBWBTN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"INB","language_name":"Inga","language_english":"Inga","language_iso":"inb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Inga","language_family_code":"INB","language_family_name":"Inga","language_family_english":"Inga","language_family_iso":"inb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 17:07:26","created_on":"2010-09-14 17:00:18","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2INBWBT","audio_zip_path":"INBWBTN2DA\/INBWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"INBWBTN2ET","fcbh_id":"INBWBTN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"INB","language_name":"Inga","language_english":"Inga","language_iso":"inb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Inga","language_family_code":"INB","language_family_name":"Inga","language_family_english":"Inga","language_family_iso":"inb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 17:07:11","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2INBWBT","audio_zip_path":"INBWBTN2ET\/INBWBTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"INDSHVN2ET","fcbh_id":"INDSHVN2ET","volume_name":"Sehari-hari","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IND","language_name":"Indonesian","language_english":"Indonesian","language_iso":"ind","language_iso_2B":"ind","language_iso_2T":"ind","language_iso_1":"id","language_iso_name":"Indonesian","language_family_code":"IND","language_family_name":"Indonesian","language_family_english":"Indonesian","language_family_iso":"ind","language_family_iso_2B":"ind","language_family_iso_2T":"ind","language_family_iso_1":"id","version_code":"SHV","version_name":"Sehari-hari","version_english":"Sehari-hari","collection_code":"NT","rich":"0","collection_name":"Perjanjian Baru","updated_on":"2013-11-29 17:05:59","created_on":"2010-09-14 17:01:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2INDSHV","audio_zip_path":"INDSHVN2ET\/INDSHVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"INDSHVO2ET","fcbh_id":"INDSHVO2ET","volume_name":"Sehari-hari","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IND","language_name":"Indonesian","language_english":"Indonesian","language_iso":"ind","language_iso_2B":"ind","language_iso_2T":"ind","language_iso_1":"id","language_iso_name":"Indonesian","language_family_code":"IND","language_family_name":"Indonesian","language_family_english":"Indonesian","language_family_iso":"ind","language_family_iso_2B":"ind","language_family_iso_2T":"ind","language_family_iso_1":"id","version_code":"SHV","version_name":"Sehari-hari","version_english":"Sehari-hari","collection_code":"OT","rich":"0","collection_name":"Perjanjian Lama","updated_on":"2013-11-29 17:06:20","created_on":"2010-09-14 17:01:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"O2INDSHV","audio_zip_path":"INDSHVO2ET\/INDSHVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"INOTBLN2ET","fcbh_id":"INOTBLN2ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"INO","language_name":"Inoke-Yate","language_english":"Inoke-Yate","language_iso":"ino","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Inoke-Yate","language_family_code":"INO","language_family_name":"Inoke-Yate","language_family_english":"Inoke-Yate","language_family_iso":"ino","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-21 19:37:55","created_on":"2014-06-24 23:21:10","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"INOTBLN2ET\/INOTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"INZNTVN2DA","fcbh_id":"INZNTVN2DA","volume_name":"Indonesian New Translation (formal) Version, 1974","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"INZ","language_name":"Indonesian","language_english":"Indonesian","language_iso":"ind","language_iso_2B":"ind","language_iso_2T":"ind","language_iso_1":"id","language_iso_name":"Indonesian","language_family_code":"IND","language_family_name":"Indonesian","language_family_english":"Indonesian","language_family_iso":"ind","language_family_iso_2B":"ind","language_family_iso_2T":"ind","language_family_iso_1":"id","version_code":"NTV","version_name":"1974 New Translation Version","version_english":"1974 New Translation Version","collection_code":"NT","rich":"0","collection_name":"Perjanjian Baru","updated_on":"2013-10-25 23:57:17","created_on":"2010-09-14 17:00:18","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2INZNTV","audio_zip_path":"INZNTVN2DA\/INZNTVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"INZNTVN2ET","fcbh_id":"INZNTVN2ET","volume_name":"Indonesian New Translation (formal) Version, 1974","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"INZ","language_name":"Indonesian","language_english":"Indonesian","language_iso":"ind","language_iso_2B":"ind","language_iso_2T":"ind","language_iso_1":"id","language_iso_name":"Indonesian","language_family_code":"IND","language_family_name":"Indonesian","language_family_english":"Indonesian","language_family_iso":"ind","language_family_iso_2B":"ind","language_family_iso_2T":"ind","language_family_iso_1":"id","version_code":"NTV","version_name":"1974 New Translation Version","version_english":"1974 New Translation Version","collection_code":"NT","rich":"0","collection_name":"Perjanjian Baru","updated_on":"2012-07-10 16:57:44","created_on":"2010-11-25 20:49:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2INZNTV","audio_zip_path":"INZNTVN2ET\/INZNTVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"INZNTVO2ET","fcbh_id":"INZNTVO2ET","volume_name":"Indonesian New Translation (formal) Version, 1974","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"INZ","language_name":"Indonesian","language_english":"Indonesian","language_iso":"ind","language_iso_2B":"ind","language_iso_2T":"ind","language_iso_1":"id","language_iso_name":"Indonesian","language_family_code":"IND","language_family_name":"Indonesian","language_family_english":"Indonesian","language_family_iso":"ind","language_family_iso_2B":"ind","language_family_iso_2T":"ind","language_family_iso_1":"id","version_code":"NTV","version_name":"1974 New Translation Version","version_english":"1974 New Translation Version","collection_code":"OT","rich":"0","collection_name":"Perjanjian Lama","updated_on":"2012-07-10 16:57:44","created_on":"2010-11-25 20:50:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"O2INZNTV","audio_zip_path":"INZNTVO2ET\/INZNTVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"INZTSIN1DA","fcbh_id":"INZTSIN1DA","volume_name":"Terjemahan Sederhana Indonesia (Plain Indonesian Translation)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"INZ","language_name":"Indonesian","language_english":"Indonesian","language_iso":"ind","language_iso_2B":"ind","language_iso_2T":"ind","language_iso_1":"id","language_iso_name":"Indonesian","language_family_code":"IND","language_family_name":"Indonesian","language_family_english":"Indonesian","language_family_iso":"ind","language_family_iso_2B":"ind","language_family_iso_2T":"ind","language_family_iso_1":"id","version_code":"TSI","version_name":"Terjemahan Sederhana Indonesia","version_english":"Terjemahan Sederhana Indonesia","collection_code":"NT","rich":"0","collection_name":"Perjanjian Baru","updated_on":"2017-03-22 20:15:10","created_on":"2017-03-22 18:46:32","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"INZTSIN1DA\/INZTSIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"INZTSIN1ET","fcbh_id":"INZTSIN1ET","volume_name":"Terjemahan Sederhana Indonesia (Plain Indonesian Translation)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"INZ","language_name":"Indonesian","language_english":"Indonesian","language_iso":"ind","language_iso_2B":"ind","language_iso_2T":"ind","language_iso_1":"id","language_iso_name":"Indonesian","language_family_code":"IND","language_family_name":"Indonesian","language_family_english":"Indonesian","language_family_iso":"ind","language_family_iso_2B":"ind","language_family_iso_2T":"ind","language_family_iso_1":"id","version_code":"TSI","version_name":"Terjemahan Sederhana Indonesia","version_english":"Terjemahan Sederhana Indonesia","collection_code":"NT","rich":"0","collection_name":"Perjanjian Baru","updated_on":"2017-12-14 18:10:28","created_on":"2017-03-22 18:44:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"INZTSIN1ET\/INZTSIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"INZTSIN2DA","fcbh_id":"INZTSIN2DA","volume_name":"Terjemahan Sederhana Indonesia (Plain Indonesian Translation)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"INZ","language_name":"Indonesian","language_english":"Indonesian","language_iso":"ind","language_iso_2B":"ind","language_iso_2T":"ind","language_iso_1":"id","language_iso_name":"Indonesian","language_family_code":"IND","language_family_name":"Indonesian","language_family_english":"Indonesian","language_family_iso":"ind","language_family_iso_2B":"ind","language_family_iso_2T":"ind","language_family_iso_1":"id","version_code":"TSI","version_name":"Terjemahan Sederhana Indonesia","version_english":"Terjemahan Sederhana Indonesia","collection_code":"NT","rich":"0","collection_name":"Perjanjian Baru","updated_on":"2017-03-22 20:18:26","created_on":"2017-03-22 18:47:33","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"INZTSIN2DA\/INZTSIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"INZTSIN2ET","fcbh_id":"INZTSIN2ET","volume_name":"Terjemahan Sederhana Indonesia Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"INZ","language_name":"Indonesian","language_english":"Indonesian","language_iso":"ind","language_iso_2B":"ind","language_iso_2T":"ind","language_iso_1":"id","language_iso_name":"Indonesian","language_family_code":"IND","language_family_name":"Indonesian","language_family_english":"Indonesian","language_family_iso":"ind","language_family_iso_2B":"ind","language_family_iso_2T":"ind","language_family_iso_1":"id","version_code":"TSI","version_name":"Terjemahan Sederhana Indonesia","version_english":"Terjemahan Sederhana Indonesia","collection_code":"NT","rich":"0","collection_name":"Perjanjian Baru","updated_on":"2017-12-14 18:10:31","created_on":"2015-11-06 22:41:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"INZTSIN2ET\/INZTSIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"IPIPNGN2DA","fcbh_id":"IPIPNGN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IPI","language_name":"Ipili","language_english":"Ipili","language_iso":"ipi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ipili","language_family_code":"IPI","language_family_name":"Ipili","language_family_english":"Ipili","language_family_iso":"ipi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 17:10:20","created_on":"2010-10-05 19:34:21","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2IPIPNG","audio_zip_path":"IPIPNGN2DA\/IPIPNGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"IPIPNGN2ET","fcbh_id":"IPIPNGN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IPI","language_name":"Ipili","language_english":"Ipili","language_iso":"ipi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ipili","language_family_code":"IPI","language_family_name":"Ipili","language_family_english":"Ipili","language_family_iso":"ipi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-21 19:40:25","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2IPIPNG","audio_zip_path":"IPIPNGN2ET\/IPIPNGN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IQWOBTN1DA","fcbh_id":"IQWOBTN1DA","volume_name":"2014 OneBook in cooperation with Abakaliki Literacy and Translation Trust","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IQW","language_name":"Ikwo","language_english":"Ikwo","language_iso":"iqw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ikwo","language_family_code":"IQW","language_family_name":"Ikwo","language_family_english":"Ikwo","language_family_iso":"iqw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"OBT","version_name":"OBT","version_english":"OBT","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2018-07-26 20:14:05","created_on":"2018-07-26 18:57:56","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"IQWOBTN1DA\/IQWOBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download"],"resolution":[]},{"dam_id":"IRIWYIN1DA","fcbh_id":"IRIWYIN1DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IRI","language_name":"Irigwe","language_english":"Irigwe","language_iso":"iri","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Irigwe","language_family_code":"IRI","language_family_name":"Irigwe","language_family_english":"Irigwe","language_family_iso":"iri","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-12 20:13:44","created_on":"2015-11-12 19:00:01","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"IRIWYIN1DA\/IRIWYIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"IRIWYIN1ET","fcbh_id":"IRIWYIN1ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IRI","language_name":"Irigwe","language_english":"Irigwe","language_iso":"iri","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Irigwe","language_family_code":"IRI","language_family_name":"Irigwe","language_family_english":"Irigwe","language_family_iso":"iri","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-12 20:19:39","created_on":"2015-11-12 18:55:10","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IRIWYIN1ET\/IRIWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IRIWYIN2DA","fcbh_id":"IRIWYIN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IRI","language_name":"Irigwe","language_english":"Irigwe","language_iso":"iri","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Irigwe","language_family_code":"IRI","language_family_name":"Irigwe","language_family_english":"Irigwe","language_family_iso":"iri","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-12 20:20:39","created_on":"2015-11-12 18:59:23","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"IRIWYIN2DA\/IRIWYIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"IRIWYIN2ET","fcbh_id":"IRIWYIN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IRI","language_name":"Irigwe","language_english":"Irigwe","language_iso":"iri","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Irigwe","language_family_code":"IRI","language_family_name":"Irigwe","language_family_english":"Irigwe","language_family_iso":"iri","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:17","created_on":"2014-03-19 19:44:15","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IRIWYIN2ET\/IRIWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IRKBSTN2DA","fcbh_id":"IRKBSTN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IRK","language_name":"Kiiraqw","language_english":"Kiiraqw","language_iso":"irk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Iraqw","language_family_code":"IRK","language_family_name":"Kiiraqw","language_family_english":"Kiiraqw","language_family_iso":"irk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-29 16:26:47","created_on":"2010-09-14 17:00:18","right_to_left":"false","num_art":"2","num_sample_audio":"1","sku":"N2IRKBST","audio_zip_path":"IRKBSTN2DA\/IRKBSTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"IRKBSTN2ET","fcbh_id":"IRKBSTN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IRK","language_name":"Kiiraqw","language_english":"Kiiraqw","language_iso":"irk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Iraqw","language_family_code":"IRK","language_family_name":"Kiiraqw","language_family_english":"Kiiraqw","language_family_iso":"irk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:10:02","created_on":"2010-09-14 17:00:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2IRKBST","audio_zip_path":"IRKBSTN2ET\/IRKBSTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IRYOMFN2ET","fcbh_id":"IRYOMFN2ET","volume_name":"1991 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IRY","language_name":"Iraya","language_english":"Iraya","language_iso":"iry","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Iraya","language_family_code":"IRY","language_family_name":"Iraya","language_family_english":"Iraya","language_family_iso":"iry","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"OMF","version_name":"Overseas Missionary Fellowship","version_english":"Overseas Missionary Fellowship","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:18","created_on":"2012-01-04 18:48:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IRYOMFN2ET\/IRYOMFN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ISLICEN2ET","fcbh_id":"ISLICEN2ET","volume_name":"Bibl\u00edan Heil\u00f6g Ritning","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ISL","language_name":"Icelandic","language_english":"Icelandic","language_iso":"isl","language_iso_2B":"ice","language_iso_2T":"isl","language_iso_1":"is","language_iso_name":"Icelandic","language_family_code":"ISL","language_family_name":"Icelandic","language_family_english":"Icelandic","language_family_iso":"isl","language_family_iso_2B":"ice","language_family_iso_2T":"isl","language_family_iso_1":"is","version_code":"ICE","version_name":"ICE","version_english":"ICE","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-10 18:16:49","created_on":"2018-07-18 20:22:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ISLICEN2ET\/ISLICEN2ET.zip","font":{"id":"82","name":"Maiandra GD","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Maiandra_GD","files":{"zip":"all.zip","ttf":"MAIAN.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© Copyright 1994-1997","url":""},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ISOBSNN2DA","fcbh_id":"ISOBSNN2DA","volume_name":"1977 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ISO","language_name":"Isoko","language_english":"Isoko","language_iso":"iso","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Isoko","language_family_code":"ISO","language_family_name":"Isoko","language_family_english":"Isoko","language_family_iso":"iso","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:44","created_on":"2010-09-14 17:00:18","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2ISOBSN","audio_zip_path":"ISOBSNN2DA\/ISOBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ITAR27N2ET","fcbh_id":"ITAR27N2ET","volume_name":"1927 Riveduta Bibbia","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ITA","language_name":"Italiano","language_english":"Italian","language_iso":"ita","language_iso_2B":"ita","language_iso_2T":"ita","language_iso_1":"it","language_iso_name":"Italian","language_family_code":"ITA","language_family_name":"Italiano","language_family_english":"Italian","language_family_iso":"ita","language_family_iso_2B":"ita","language_family_iso_2T":"ita","language_family_iso_1":"it","version_code":"R27","version_name":"1927 Riveduta Bibbia","version_english":"1927 Riveduta Bibbia","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-16 15:30:21","created_on":"2010-09-14 17:01:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ITAR27N2ET\/ITAR27N2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ITAR27O2ET","fcbh_id":"ITAR27O2ET","volume_name":"1927 Riveduta Bibbia","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ITA","language_name":"Italiano","language_english":"Italian","language_iso":"ita","language_iso_2B":"ita","language_iso_2T":"ita","language_iso_1":"it","language_iso_name":"Italian","language_family_code":"ITA","language_family_name":"Italiano","language_family_english":"Italian","language_family_iso":"ita","language_family_iso_2B":"ita","language_family_iso_2T":"ita","language_family_iso_1":"it","version_code":"R27","version_name":"1927 Riveduta Bibbia","version_english":"1927 Riveduta Bibbia","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2015-10-16 15:30:22","created_on":"2010-09-14 17:01:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ITAR27O2ET\/ITAR27O2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ITLIBTP1ET","fcbh_id":"ITLIBTP1ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ITL","language_name":"Itelmen","language_english":"Itelmen","language_iso":"itl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Itelmen","language_family_code":"ITL","language_family_name":"Itelmen","language_family_english":"Itelmen","language_family_iso":"itl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-09-18 01:25:50","created_on":"2018-09-08 15:31:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ITLIBTP1ET\/ITLIBTP1ET.zip","font":{"id":"45","name":"Doulos SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile"],"resolution":[]},{"dam_id":"ITVSTPN2DA","fcbh_id":"ITVSTPN2DA","volume_name":"Scripture Translation for Every People 2009","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ITV","language_name":"Itawit","language_english":"Itawit","language_iso":"itv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Itawit","language_family_code":"ITV","language_family_name":"Itawit","language_family_english":"Itawit","language_family_iso":"itv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"STP","version_name":"Scripture Translation for Every People","version_english":"Scripture Translation for Every People","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:20","created_on":"2012-11-05 20:07:48","right_to_left":"false","num_art":"0","num_sample_audio":"1","sku":"","audio_zip_path":"ITVSTPN2DA\/ITVSTPN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ITVSTPN2ET","fcbh_id":"ITVSTPN2ET","volume_name":"Scripture Translation for Every People 2009","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ITV","language_name":"Itawit","language_english":"Itawit","language_iso":"itv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Itawit","language_family_code":"ITV","language_family_name":"Itawit","language_family_english":"Itawit","language_family_iso":"itv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"STP","version_name":"Scripture Translation for Every People","version_english":"Scripture Translation for Every People","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:17","created_on":"2012-02-22 23:50:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ITVSTPN2ET\/ITVSTPN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IWSWBTN2ET","fcbh_id":"IWSWBTN2ET","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IWS","language_name":"Sepik Iwam","language_english":"Sepik Iwam","language_iso":"iws","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sepik Iwam","language_family_code":"IWS","language_family_name":"Sepik Iwam","language_family_english":"Sepik Iwam","language_family_iso":"iws","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-21 19:49:38","created_on":"2014-06-24 23:26:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IWSWBTN2ET\/IWSWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IX1WBTN1DA","fcbh_id":"IX1WBTN1DA","volume_name":"Chajul - 2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IX1","language_name":"Ixil","language_english":"Ixil","language_iso":"ixl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ixil","language_family_code":"IXL","language_family_name":"Ixil","language_family_english":"Ixil","language_family_iso":"ixl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-24 21:14:00","created_on":"2017-02-24 20:51:24","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"IX1WBTN1DA\/IX1WBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"IX1WBTN1ET","fcbh_id":"IX1WBTN1ET","volume_name":"Chajul - 2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IX1","language_name":"Ixil","language_english":"Ixil","language_iso":"ixl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ixil","language_family_code":"IXL","language_family_name":"Ixil","language_family_english":"Ixil","language_family_iso":"ixl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-18 16:35:48","created_on":"2018-06-18 15:30:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IX1WBTN1ET\/IX1WBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"IX1WBTN2DA","fcbh_id":"IX1WBTN2DA","volume_name":"Chajul - 2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IX1","language_name":"Ixil","language_english":"Ixil","language_iso":"ixl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ixil","language_family_code":"IXL","language_family_name":"Ixil","language_family_english":"Ixil","language_family_iso":"ixl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-03-01 18:16:14","created_on":"2017-02-24 20:22:05","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"IX1WBTN2DA\/IX1WBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"IX1WBTN2ET","fcbh_id":"IX1WBTN2ET","volume_name":"Chajul - 2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IX1","language_name":"Ixil","language_english":"Ixil","language_iso":"ixl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ixil","language_family_code":"IXL","language_family_name":"Ixil","language_family_english":"Ixil","language_family_iso":"ixl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-18 16:35:29","created_on":"2018-06-18 16:16:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IX1WBTN2ET\/IX1WBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"IXIWBTN2DA","fcbh_id":"IXIWBTN2DA","volume_name":"Nebaj - 2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IXI","language_name":"Ixil","language_english":"Ixil","language_iso":"ixi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"","language_family_code":"IXL","language_family_name":"Ixil","language_family_english":"Ixil","language_family_iso":"ixi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-12 18:54:51","created_on":"2010-09-14 17:00:19","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2IXIWBT","audio_zip_path":"IXIWBTN2DA\/IXIWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"IXIWBTN2ET","fcbh_id":"IXIWBTN2ET","volume_name":"Nebaj - 2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IXI","language_name":"Ixil","language_english":"Ixil","language_iso":"ixi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"","language_family_code":"IXL","language_family_name":"Ixil","language_family_english":"Ixil","language_family_iso":"ixi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:20","created_on":"2010-11-25 20:49:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2IXIWBT","audio_zip_path":"IXIWBTN2ET\/IXIWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IXLWBTN2DA","fcbh_id":"IXLWBTN2DA","volume_name":"San Juan Cotzal - 2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IXL","language_name":"Ixil","language_english":"Ixil","language_iso":"ixl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ixil","language_family_code":"IXL","language_family_name":"Ixil","language_family_english":"Ixil","language_family_iso":"ixl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-31 16:48:23","created_on":"2010-09-14 17:00:19","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2IXLWBT","audio_zip_path":"IXLWBTN2DA\/IXLWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"IXLWBTN2ET","fcbh_id":"IXLWBTN2ET","volume_name":"San Juan Cotzal - 2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IXL","language_name":"Ixil","language_english":"Ixil","language_iso":"ixl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ixil","language_family_code":"IXL","language_family_name":"Ixil","language_family_english":"Ixil","language_family_iso":"ixl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:03:48","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2IXLWBT","audio_zip_path":"IXLWBTN2ET\/IXLWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"IZZTBLN1DA","fcbh_id":"IZZTBLN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IZZ","language_name":"Izii","language_english":"Izii","language_iso":"izz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Izii","language_family_code":"IZZ","language_family_name":"Izii","language_family_english":"Izii","language_family_iso":"izz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2018-04-25 19:57:04","created_on":"2018-04-24 20:53:31","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"IZZTBLN1DA\/IZZTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"IZZTBLN1ET","fcbh_id":"IZZTBLN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IZZ","language_name":"Izii","language_english":"Izii","language_iso":"izz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Izii","language_family_code":"IZZ","language_family_name":"Izii","language_family_english":"Izii","language_family_iso":"izz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2018-04-25 19:57:23","created_on":"2018-04-25 19:45:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IZZTBLN1ET\/IZZTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"IZZTBLO1ET","fcbh_id":"IZZTBLO1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"IZZ","language_name":"Izii","language_english":"Izii","language_iso":"izz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Izii","language_family_code":"IZZ","language_family_name":"Izii","language_family_english":"Izii","language_family_iso":"izz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"OT","rich":"0","collection_name":"Old Testament","updated_on":"2018-04-25 19:57:46","created_on":"2018-04-25 19:47:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"IZZTBLO1ET\/IZZTBLO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"JACWBTN2DA","fcbh_id":"JACWBTN2DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JAC","language_name":"Jacalteco, Eastern","language_english":"Jacalteco, Eastern","language_iso":"jac","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Popti'","language_family_code":"JAC","language_family_name":"Jacalteco, Eastern","language_family_english":"Jacalteco, Eastern","language_family_iso":"jac","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 17:24:39","created_on":"2010-09-14 17:00:19","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2JACWBT","audio_zip_path":"JACWBTN2DA\/JACWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"JACWBTN2ET","fcbh_id":"JACWBTN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JAC","language_name":"Jacalteco, Eastern","language_english":"Jacalteco, Eastern","language_iso":"jac","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Popti'","language_family_code":"JAC","language_family_name":"Jacalteco, Eastern","language_family_english":"Jacalteco, Eastern","language_family_iso":"jac","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:23:03","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2JACWBT","audio_zip_path":"JACWBTN2ET\/JACWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"JAISBGN2DA","fcbh_id":"JAISBGN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JAI","language_name":"Jacalteco, Western","language_english":"Jacalteco, Western","language_iso":"jac","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Popti'","language_family_code":"JAI","language_family_name":"Jacalteco, Western","language_family_english":"Jacalteco, Western","language_family_iso":"jac","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBG","version_name":"Sociedad Biblica Guatemala","version_english":"Sociedad Biblica Guatemala","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 18:23:30","created_on":"2010-09-14 17:00:19","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2JAISBG","audio_zip_path":"JAISBGN2DA\/JAISBGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"JAISBGN2ET","fcbh_id":"JAISBGN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JAI","language_name":"Jacalteco, Western","language_english":"Jacalteco, Western","language_iso":"jac","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Popti'","language_family_code":"JAI","language_family_name":"Jacalteco, Western","language_family_english":"Jacalteco, Western","language_family_iso":"jac","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBG","version_name":"Sociedad Biblica Guatemala","version_english":"Sociedad Biblica Guatemala","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-30 17:24:08","created_on":"2013-03-25 21:33:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"JAISBGN2ET\/JAISBGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"JAMBSWN2DA","fcbh_id":"JAMBSWN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JAM","language_name":"Jamaican Creole","language_english":"Jamaican Creole","language_iso":"jam","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Jamaican Creole English","language_family_code":"JAM","language_family_name":"Jamaican Creole","language_family_english":"Jamaican Creole","language_family_iso":"jam","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSW","version_name":"Bible Society of the West Indies","version_english":"Bible Society of the West Indies","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:23","created_on":"2012-09-25 19:03:51","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"JAMBSWN2DA\/JAMBSWN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"JAMBSWN2ET","fcbh_id":"JAMBSWN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JAM","language_name":"Jamaican Creole","language_english":"Jamaican Creole","language_iso":"jam","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Jamaican Creole English","language_family_code":"JAM","language_family_name":"Jamaican Creole","language_family_english":"Jamaican Creole","language_family_iso":"jam","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSW","version_name":"Bible Society of the West Indies","version_english":"Bible Society of the West Indies","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-05-22 16:21:31","created_on":"2012-11-09 16:23:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"JAMBSWN2ET\/JAMBSWN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"JAVNRFN2DA","fcbh_id":"JAVNRFN2DA","volume_name":"New Revised Javanese (formal) Version, 2006","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JAV","language_name":"Javanese, Indonesian","language_english":"Javanese, Indonesian","language_iso":"jav","language_iso_2B":"jav","language_iso_2T":"jav","language_iso_1":"jv","language_iso_name":"Javanese","language_family_code":"JAV","language_family_name":"Javanese, Indonesian","language_family_english":"Javanese, Indonesian","language_family_iso":"jav","language_family_iso_2B":"jav","language_family_iso_2T":"jav","language_family_iso_1":"jv","version_code":"NRF","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:23","created_on":"2010-09-14 17:00:20","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2JAVNRF","audio_zip_path":"JAVNRFN2DA\/JAVNRFN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"JAVNRFN2ET","fcbh_id":"JAVNRFN2ET","volume_name":"New Revised Javanese (formal) Version, 2006","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JAV","language_name":"Javanese, Indonesian","language_english":"Javanese, Indonesian","language_iso":"jav","language_iso_2B":"jav","language_iso_2T":"jav","language_iso_1":"jv","language_iso_name":"Javanese","language_family_code":"JAV","language_family_name":"Javanese, Indonesian","language_family_english":"Javanese, Indonesian","language_family_iso":"jav","language_family_iso_2B":"jav","language_family_iso_2T":"jav","language_family_iso_1":"jv","version_code":"NRF","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-19 17:10:59","created_on":"2010-09-14 17:00:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2JAVNRF","audio_zip_path":"JAVNRFN2ET\/JAVNRFN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"JBUIBSN2DA","fcbh_id":"JBUIBSN2DA","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JBU","language_name":"Jukun","language_english":"Jukun","language_iso":"jbu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Jukun Takum","language_family_code":"JBU","language_family_name":"Jukun","language_family_english":"Jukun","language_family_iso":"jbu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:24","created_on":"2010-09-14 17:00:20","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2JBUIBS","audio_zip_path":"JBUIBSN2DA\/JBUIBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"JBUIBSN2ET","fcbh_id":"JBUIBSN2ET","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JBU","language_name":"Jukun","language_english":"Jukun","language_iso":"jbu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Jukun Takum","language_family_code":"JBU","language_family_name":"Jukun","language_family_english":"Jukun","language_family_iso":"jbu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 18:25:51","created_on":"2011-07-01 18:41:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"JBUIBSN2ET\/JBUIBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"JICWBTN2DA","fcbh_id":"JICWBTN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JIC","language_name":"Tol","language_english":"Tol","language_iso":"jic","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tol","language_family_code":"JIC","language_family_name":"Tol","language_family_english":"Tol","language_family_iso":"jic","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:24","created_on":"2010-10-05 19:34:26","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2JICWBT","audio_zip_path":"JICWBTN2DA\/JICWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"JICWBTN2ET","fcbh_id":"JICWBTN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JIC","language_name":"Tol","language_english":"Tol","language_iso":"jic","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tol","language_family_code":"JIC","language_family_name":"Tol","language_family_english":"Tol","language_family_iso":"jic","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-30 17:30:37","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2JICWBT","audio_zip_path":"JICWBTN2ET\/JICWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"JIVAIEN2DA","fcbh_id":"JIVAIEN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JIV","language_name":"Shuar","language_english":"Shuar","language_iso":"jiv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Shuar","language_family_code":"JIV","language_family_name":"Shuar","language_family_english":"Shuar","language_family_iso":"jiv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AIE","version_name":"AIESE Asociaci\u00f3n de Iglesias Evang\u00e9licas Shuar","version_english":"AIESE Asociacion de Iglesias Evangelicas Shuar","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-10 17:31:15","created_on":"2013-07-24 21:05:23","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"JIVAIEN2DA\/JIVAIEN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"JIVAIEN2ET","fcbh_id":"JIVAIEN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JIV","language_name":"Shuar","language_english":"Shuar","language_iso":"jiv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Shuar","language_family_code":"JIV","language_family_name":"Shuar","language_family_english":"Shuar","language_family_iso":"jiv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AIE","version_name":"AIESE Asociaci\u00f3n de Iglesias Evang\u00e9licas Shuar","version_english":"AIESE Asociacion de Iglesias Evangelicas Shuar","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:19","created_on":"2014-01-07 20:09:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"JIVAIEN2ET\/JIVAIEN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"JMCBSTN2DA","fcbh_id":"JMCBSTN2DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JMC","language_name":"Kimashami","language_english":"Kimashami","language_iso":"jmc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Machame","language_family_code":"JMC","language_family_name":"Kimashami","language_family_english":"Kimashami","language_family_iso":"jmc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-29 16:26:47","created_on":"2010-10-05 19:34:23","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2JMCBST","audio_zip_path":"JMCBSTN2DA\/JMCBSTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"JMCBSTN2ET","fcbh_id":"JMCBSTN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JMC","language_name":"Kimashami","language_english":"Kimashami","language_iso":"jmc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Machame","language_family_code":"JMC","language_family_name":"Kimashami","language_family_english":"Kimashami","language_family_iso":"jmc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-29 16:26:47","created_on":"2010-10-05 19:34:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2JMCBST","audio_zip_path":"JMCBSTN2ET\/JMCBSTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"JPNCJVN2ET","fcbh_id":"JPNCJVN2ET","volume_name":"1955 Colloquial Japanese","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JPN","language_name":"\u65e5\u672c\u8a9e","language_english":"Japanese","language_iso":"jpn","language_iso_2B":"jpn","language_iso_2T":"jpn","language_iso_1":"ja","language_iso_name":"Japanese","language_family_code":"JPN","language_family_name":"\u65e5\u672c\u8a9e","language_family_english":"Japanese","language_family_iso":"jpn","language_family_iso_2B":"jpn","language_family_iso_2T":"jpn","language_family_iso_1":"ja","version_code":"CJV","version_name":"1955 Colloquial Japanese","version_english":"1955 Colloquial Japanese","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 17:28:16","created_on":"2010-09-14 17:01:35","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2JPNCJV","audio_zip_path":"JPNCJVN2ET\/JPNCJVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"JPNCJVO2ET","fcbh_id":"JPNCJVO2ET","volume_name":"1955 Colloquial Japanese","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JPN","language_name":"\u65e5\u672c\u8a9e","language_english":"Japanese","language_iso":"jpn","language_iso_2B":"jpn","language_iso_2T":"jpn","language_iso_1":"ja","language_iso_name":"Japanese","language_family_code":"JPN","language_family_name":"\u65e5\u672c\u8a9e","language_family_english":"Japanese","language_family_iso":"jpn","language_family_iso_2B":"jpn","language_family_iso_2T":"jpn","language_family_iso_1":"ja","version_code":"CJV","version_name":"1955 Colloquial Japanese","version_english":"1955 Colloquial Japanese","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2014-04-22 16:45:12","created_on":"2010-09-14 17:01:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"O2JPNCJV","audio_zip_path":"JPNCJVO2ET\/JPNCJVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"JPNNITN1DA","fcbh_id":"JPNNITN1DA","volume_name":"New Interconfessional Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"JPN","language_name":"\u65e5\u672c\u8a9e","language_english":"Japanese","language_iso":"jpn","language_iso_2B":"jpn","language_iso_2T":"jpn","language_iso_1":"ja","language_iso_name":"Japanese","language_family_code":"JPN","language_family_name":"\u65e5\u672c\u8a9e","language_family_english":"Japanese","language_family_iso":"jpn","language_family_iso_2B":"jpn","language_family_iso_2T":"jpn","language_family_iso_1":"ja","version_code":"NIT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:30","created_on":"2012-03-21 20:28:47","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"JPNNITN1DA\/JPNNITN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"JSLSLVN2DV","fcbh_id":"JSLSLVN2DV","volume_name":"Japanese Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JSL","language_name":"Japanese Sign Language","language_english":"Japanese Sign Language","language_iso":"jsl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Japanese Sign Language","language_family_code":"JSL","language_family_name":"Japanese Sign Language","language_family_english":"Japanese Sign Language","language_family_iso":"jsl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLV","version_name":"Sign Language Version","version_english":"Sign Language Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-09-28 15:44:43","created_on":"2015-08-31 23:06:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"JSLSLVN2DV\/JSLSLVN2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"JSLSLVO2DV","fcbh_id":"JSLSLVO2DV","volume_name":"Japanese Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JSL","language_name":"Japanese Sign Language","language_english":"Japanese Sign Language","language_iso":"jsl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Japanese Sign Language","language_family_code":"JSL","language_family_name":"Japanese Sign Language","language_family_english":"Japanese Sign Language","language_family_iso":"jsl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLV","version_name":"Sign Language Version","version_english":"Sign Language Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2015-09-28 16:32:40","created_on":"2015-09-03 16:13:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"JSLSLVO2DV\/JSLSLVO2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"JUNWINN1DA","fcbh_id":"JUNWINN1DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JUN","language_name":"Juang","language_english":"Juang","language_iso":"jun","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Juang","language_family_code":"JUN","language_family_name":"Juang","language_family_english":"Juang","language_family_iso":"jun","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WIN","version_name":"WIN","version_english":"WIN","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-03-14 19:51:54","created_on":"2017-03-14 15:46:08","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"JUNWINN1DA\/JUNWINN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"JUNWINN1ET","fcbh_id":"JUNWINN1ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JUN","language_name":"Juang","language_english":"Juang","language_iso":"jun","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Juang","language_family_code":"JUN","language_family_name":"Juang","language_family_english":"Juang","language_family_iso":"jun","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WIN","version_name":"WIN","version_english":"WIN","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-03-14 16:17:29","created_on":"2017-03-14 15:18:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"JUNWINN1ET\/JUNWINN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"JUNWINN2DA","fcbh_id":"JUNWINN2DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JUN","language_name":"Juang","language_english":"Juang","language_iso":"jun","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Juang","language_family_code":"JUN","language_family_name":"Juang","language_family_english":"Juang","language_family_iso":"jun","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WIN","version_name":"WIN","version_english":"WIN","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-03-14 16:39:50","created_on":"2017-03-14 15:38:53","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"JUNWINN2DA\/JUNWINN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"JUNWINN2ET","fcbh_id":"JUNWINN2ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JUN","language_name":"Juang","language_english":"Juang","language_iso":"jun","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Juang","language_family_code":"JUN","language_family_name":"Juang","language_family_english":"Juang","language_family_iso":"jun","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WIN","version_name":"WIN","version_english":"WIN","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-07-07 22:55:55","created_on":"2016-07-07 22:41:47","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"JUNWINN2ET\/JUNWINN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"JVNTBLN2DA","fcbh_id":"JVNTBLN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JVN","language_name":"Javanese, Suriname","language_english":"Javanese, Suriname","language_iso":"jvn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Caribbean Javanese","language_family_code":"JVN","language_family_name":"Javanese, Suriname","language_family_english":"Javanese, Suriname","language_family_iso":"jvn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-29 15:44:31","created_on":"2010-09-14 17:00:20","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2JVNTBL","audio_zip_path":"JVNTBLN2DA\/JVNTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"JVNTBLN2ET","fcbh_id":"JVNTBLN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"JVN","language_name":"Javanese, Suriname","language_english":"Javanese, Suriname","language_iso":"jvn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Caribbean Javanese","language_family_code":"JVN","language_family_name":"Javanese, Suriname","language_family_english":"Javanese, Suriname","language_family_iso":"jvn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-29 15:44:31","created_on":"2012-01-31 19:00:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"JVNTBLN2ET\/JVNTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"KAAIBTN2DA","fcbh_id":"KAAIBTN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KAA","language_name":"Karakalpak","language_english":"Karakalpak","language_iso":"kaa","language_iso_2B":"kaa","language_iso_2T":"kaa","language_iso_1":"","language_iso_name":"Kara-Kalpak","language_family_code":"KAA","language_family_name":"Karakalpak","language_family_english":"Karakalpak","language_family_iso":"kaa","language_family_iso_2B":"kaa","language_family_iso_2T":"kaa","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:26","created_on":"2012-02-06 16:46:39","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KAAIBTN2DA\/KAAIBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KAAIBTN2ET","fcbh_id":"KAAIBTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KAA","language_name":"Karakalpak","language_english":"Karakalpak","language_iso":"kaa","language_iso_2B":"kaa","language_iso_2T":"kaa","language_iso_1":"","language_iso_name":"Kara-Kalpak","language_family_code":"KAA","language_family_name":"Karakalpak","language_family_english":"Karakalpak","language_family_iso":"kaa","language_family_iso_2B":"kaa","language_family_iso_2T":"kaa","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:17","created_on":"2012-02-13 17:30:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KAAIBTN2ET\/KAAIBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KABCEBN2DA","fcbh_id":"KABCEBN2DA","volume_name":"ACEB Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KAB","language_name":"Kabyle","language_english":"Kabyle","language_iso":"kab","language_iso_2B":"kab","language_iso_2T":"kab","language_iso_1":"","language_iso_name":"Kabyle","language_family_code":"KAB","language_family_name":"Kabyle","language_family_english":"Kabyle","language_family_iso":"kab","language_family_iso_2B":"kab","language_family_iso_2T":"kab","language_family_iso_1":"","version_code":"CEB","version_name":"CEB","version_english":"CEB","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-10 21:21:24","created_on":"2017-10-30 17:43:54","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"KABCEBN2DA\/KABCEBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KACUBSN2DA","fcbh_id":"KACUBSN2DA","volume_name":"Hanson Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KAC","language_name":"Kachin","language_english":"Kachin","language_iso":"kac","language_iso_2B":"kac","language_iso_2T":"kac","language_iso_1":"","language_iso_name":"Kachin","language_family_code":"KAC","language_family_name":"Kachin","language_family_english":"Kachin","language_family_iso":"kac","language_family_iso_2B":"kac","language_family_iso_2T":"kac","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-07-11 21:17:26","created_on":"2010-09-14 17:01:01","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KACUBS","audio_zip_path":"KACUBSN2DA\/KACUBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KACUBSN2ET","fcbh_id":"KACUBSN2ET","volume_name":"Hanson Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KAC","language_name":"Kachin","language_english":"Kachin","language_iso":"kac","language_iso_2B":"kac","language_iso_2T":"kac","language_iso_1":"","language_iso_name":"Kachin","language_family_code":"KAC","language_family_name":"Kachin","language_family_english":"Kachin","language_family_iso":"kac","language_family_iso_2B":"kac","language_family_iso_2T":"kac","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-07 18:23:59","created_on":"2011-05-26 20:05:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KACUBSN2ET\/KACUBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KACUBSO2ET","fcbh_id":"KACUBSO2ET","volume_name":"Hanson Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KAC","language_name":"Kachin","language_english":"Kachin","language_iso":"kac","language_iso_2B":"kac","language_iso_2T":"kac","language_iso_1":"","language_iso_name":"Kachin","language_family_code":"KAC","language_family_name":"Kachin","language_family_english":"Kachin","language_family_iso":"kac","language_family_iso_2B":"kac","language_family_iso_2T":"kac","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2015-10-07 18:23:06","created_on":"2013-05-22 15:58:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KACUBSO2ET\/KACUBSO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KAJBSNN2DA","fcbh_id":"KAJBSNN2DA","volume_name":"1982 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KAJ","language_name":"Jju","language_english":"Jju","language_iso":"kaj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Jju","language_family_code":"KAJ","language_family_name":"Jju","language_family_english":"Jju","language_family_iso":"kaj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:40","created_on":"2010-09-14 17:00:20","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KAJBSN","audio_zip_path":"KAJBSNN2DA\/KAJBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KAOABMN2DA","fcbh_id":"KAOABMN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KAO","language_name":"Khassonke ","language_english":"Khassonke ","language_iso":"kao","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Xaasongaxango","language_family_code":"KAO","language_family_name":"Khassonke","language_family_english":"Khassonke","language_family_iso":"kao","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 21:29:58","created_on":"2011-01-17 12:19:57","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2KAOABM","audio_zip_path":"KAOABMN2DA\/KAOABMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KAOABMN2ET","fcbh_id":"KAOABMN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KAO","language_name":"Khassonke ","language_english":"Khassonke ","language_iso":"kao","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Xaasongaxango","language_family_code":"KAO","language_family_name":"Khassonke","language_family_english":"Khassonke","language_family_iso":"kao","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:22","created_on":"2011-05-12 21:28:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KAOABMN2ET\/KAOABMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KAQTBLN1DA","fcbh_id":"KAQTBLN1DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KAQ","language_name":"Capanahua","language_english":"Capanahua","language_iso":"kaq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Capanahua","language_family_code":"KAQ","language_family_name":"Capanahua","language_family_english":"Capanahua","language_family_iso":"kaq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-30 16:41:03","created_on":"2017-08-03 21:19:48","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KAQTBLN1DA\/KAQTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KAQTBLN1ET","fcbh_id":"KAQTBLN1ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KAQ","language_name":"Capanahua","language_english":"Capanahua","language_iso":"kaq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Capanahua","language_family_code":"KAQ","language_family_name":"Capanahua","language_family_english":"Capanahua","language_family_iso":"kaq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-30 16:41:03","created_on":"2017-08-03 21:12:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KAQTBLN1ET\/KAQTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KAQTBLN2DA","fcbh_id":"KAQTBLN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KAQ","language_name":"Capanahua","language_english":"Capanahua","language_iso":"kaq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Capanahua","language_family_code":"KAQ","language_family_name":"Capanahua","language_family_english":"Capanahua","language_family_iso":"kaq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-30 16:41:03","created_on":"2017-08-03 21:14:27","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KAQTBLN2DA\/KAQTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KAQTBLN2ET","fcbh_id":"KAQTBLN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KAQ","language_name":"Capanahua","language_english":"Capanahua","language_iso":"kaq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Capanahua","language_family_code":"KAQ","language_family_name":"Capanahua","language_family_english":"Capanahua","language_family_iso":"kaq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-12-23 19:39:57","created_on":"2015-12-23 19:32:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KAQTBLN2ET\/KAQTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KAZKAZN2DA","fcbh_id":"KAZKAZN2DA","volume_name":"2010 Kiyeli kitap","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KAZ","language_name":"Kazakh","language_english":"Kazakh","language_iso":"kaz","language_iso_2B":"kaz","language_iso_2T":"kaz","language_iso_1":"kk","language_iso_name":"Kazakh","language_family_code":"KAZ","language_family_name":"Kazakh","language_family_english":"Kazakh","language_family_iso":"kaz","language_family_iso_2B":"kaz","language_family_iso_2T":"kaz","language_family_iso_1":"kk","version_code":"KAZ","version_name":"Kazakh","version_english":"Kazakh","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-21 16:03:54","created_on":"2011-12-14 16:39:36","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KAZKAZN2DA\/KAZKAZN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KAZKAZN2ET","fcbh_id":"KAZKAZN2ET","volume_name":"2010 Kiyeli kitab","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KAZ","language_name":"Kazakh","language_english":"Kazakh","language_iso":"kaz","language_iso_2B":"kaz","language_iso_2T":"kaz","language_iso_1":"kk","language_iso_name":"Kazakh","language_family_code":"KAZ","language_family_name":"Kazakh","language_family_english":"Kazakh","language_family_iso":"kaz","language_family_iso_2B":"kaz","language_family_iso_2T":"kaz","language_family_iso_1":"kk","version_code":"KAZ","version_name":"Kazakh","version_english":"Kazakh","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:11","created_on":"2011-12-14 17:39:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KAZKAZN2ET\/KAZKAZN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KAZKAZO2ET","fcbh_id":"KAZKAZO2ET","volume_name":"2010 Kiyeli kitab","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KAZ","language_name":"Kazakh","language_english":"Kazakh","language_iso":"kaz","language_iso_2B":"kaz","language_iso_2T":"kaz","language_iso_1":"kk","language_iso_name":"Kazakh","language_family_code":"KAZ","language_family_name":"Kazakh","language_family_english":"Kazakh","language_family_iso":"kaz","language_family_iso_2B":"kaz","language_family_iso_2T":"kaz","language_family_iso_1":"kk","version_code":"KAZ","version_name":"Kazakh","version_english":"Kazakh","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:12","created_on":"2011-12-14 17:42:10","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KAZKAZO2ET\/KAZKAZO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KBHWBTN2ET","fcbh_id":"KBHWBTN2ET","volume_name":"1990 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KBH","language_name":"Camsa","language_english":"Camsa","language_iso":"kbh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cams\u00e1","language_family_code":"KBH","language_family_name":"Camsa","language_family_english":"Camsa","language_family_iso":"kbh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:25","created_on":"2011-08-15 17:28:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KBHWBTN2ET\/KBHWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KBMTBLN2ET","fcbh_id":"KBMTBLN2ET","volume_name":"1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KBM","language_name":"Iwal","language_english":"Iwal","language_iso":"kbm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Iwal","language_family_code":"KBM","language_family_name":"Iwal","language_family_english":"Iwal","language_family_iso":"kbm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-21 19:44:46","created_on":"2014-06-24 23:25:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KBMTBLN2ET\/KBMTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KBPABTN2DA","fcbh_id":"KBPABTN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KBP","language_name":"Kabiye","language_english":"Kabiye","language_iso":"kbp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kabiy\u00e8","language_family_code":"KBP","language_family_name":"Kabiye","language_family_english":"Kabiye","language_family_iso":"kbp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 20:23:33","created_on":"2010-09-14 17:00:21","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KBPABT","audio_zip_path":"KBPABTN2DA\/KBPABTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KBPABTN2ET","fcbh_id":"KBPABTN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KBP","language_name":"Kabiye","language_english":"Kabiye","language_iso":"kbp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kabiy\u00e8","language_family_code":"KBP","language_family_name":"Kabiye","language_family_english":"Kabiye","language_family_iso":"kbp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:42:36","created_on":"2011-05-12 21:18:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KBPABTN2ET\/KBPABTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KBPBIVN2ET","fcbh_id":"KBPBIVN2ET","volume_name":"2011 Bibles International","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KBP","language_name":"Kabiye","language_english":"Kabiye","language_iso":"kbp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kabiy\u00e8","language_family_code":"KBP","language_family_name":"Kabiye","language_family_english":"Kabiye","language_family_iso":"kbp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:13","created_on":"2015-06-05 16:38:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KBPBIVN2ET\/KBPBIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KBPRCVN1DA","fcbh_id":"KBPRCVN1DA","volume_name":"Roman Catholic Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KBP","language_name":"Kabiye","language_english":"Kabiye","language_iso":"kbp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kabiy\u00e8","language_family_code":"KBP","language_family_name":"Kabiye","language_family_english":"Kabiye","language_family_iso":"kbp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RCV","version_name":"Roman Catholic Version","version_english":"Roman Catholic Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-02 17:13:12","created_on":"2018-01-31 23:17:10","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KBPRCVN1DA\/KBPRCVN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KBPRCVN1ET","fcbh_id":"KBPRCVN1ET","volume_name":"Roman Catholic Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KBP","language_name":"Kabiye","language_english":"Kabiye","language_iso":"kbp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kabiy\u00e8","language_family_code":"KBP","language_family_name":"Kabiye","language_family_english":"Kabiye","language_family_iso":"kbp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RCV","version_name":"Roman Catholic Version","version_english":"Roman Catholic Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:42:36","created_on":"2018-02-02 17:08:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KBPRCVN1ET\/KBPRCVN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KBPRCVN2DA","fcbh_id":"KBPRCVN2DA","volume_name":"Roman Catholic Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KBP","language_name":"Kabiye","language_english":"Kabiye","language_iso":"kbp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kabiy\u00e8","language_family_code":"KBP","language_family_name":"Kabiye","language_family_english":"Kabiye","language_family_iso":"kbp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RCV","version_name":"Roman Catholic Version","version_english":"Roman Catholic Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-02 17:13:55","created_on":"2018-01-31 23:04:45","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KBPRCVN2DA\/KBPRCVN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KBPRCVN2ET","fcbh_id":"KBPRCVN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KBP","language_name":"Kabiye","language_english":"Kabiye","language_iso":"kbp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kabiy\u00e8","language_family_code":"KBP","language_family_name":"Kabiye","language_family_english":"Kabiye","language_family_iso":"kbp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RCV","version_name":"Roman Catholic Version","version_english":"Roman Catholic Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:42:36","created_on":"2017-04-17 18:07:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KBPRCVN2ET\/KBPRCVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KBRSIMN2DA","fcbh_id":"KBRSIMN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KBR","language_name":"Kafa","language_english":"Kafa","language_iso":"kbr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kafa","language_family_code":"KBR","language_family_name":"Kafa","language_family_english":"Kafa","language_family_iso":"kbr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:28","created_on":"2012-09-17 20:55:16","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KBRSIMN2DA\/KBRSIMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KBRSIMN2ET","fcbh_id":"KBRSIMN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KBR","language_name":"Kafa","language_english":"Kafa","language_iso":"kbr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kafa","language_family_code":"KBR","language_family_name":"Kafa","language_family_english":"Kafa","language_family_iso":"kbr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:16","created_on":"2012-10-05 15:38:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KBRSIMN2ET\/KBRSIMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KCGWBTN1DA","fcbh_id":"KCGWBTN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KCG","language_name":"Tyap","language_english":"Tyap","language_iso":"kcg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tyap","language_family_code":"KCG","language_family_name":"Tyap","language_family_english":"Tyap","language_family_iso":"kcg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-11 19:47:54","created_on":"2017-05-11 19:22:17","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KCGWBTN1DA\/KCGWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KCGWBTN1ET","fcbh_id":"KCGWBTN1ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KCG","language_name":"Tyap","language_english":"Tyap","language_iso":"kcg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tyap","language_family_code":"KCG","language_family_name":"Tyap","language_family_english":"Tyap","language_family_iso":"kcg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-11 19:48:20","created_on":"2017-05-11 19:19:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KCGWBTN1ET\/KCGWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KCGWBTN2DA","fcbh_id":"KCGWBTN2DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KCG","language_name":"Tyap","language_english":"Tyap","language_iso":"kcg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tyap","language_family_code":"KCG","language_family_name":"Tyap","language_family_english":"Tyap","language_family_iso":"kcg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 15:59:06","created_on":"2014-01-02 17:58:27","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KCGWBTN2DA\/KCGWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KCGWBTN2ET","fcbh_id":"KCGWBTN2ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KCG","language_name":"Tyap","language_english":"Tyap","language_iso":"kcg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tyap","language_family_code":"KCG","language_family_name":"Tyap","language_family_english":"Tyap","language_family_iso":"kcg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-25 18:37:59","created_on":"2015-11-25 18:30:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KCGWBTN2ET\/KCGWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KCKBSBN2DA","fcbh_id":"KCKBSBN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KCK","language_name":"Kalanga","language_english":"Kalanga","language_iso":"kck","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kalanga","language_family_code":"KCK","language_family_name":"Kalanga","language_family_english":"Kalanga","language_family_iso":"kck","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:02","created_on":"2010-11-25 20:50:15","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2KCKBSB","audio_zip_path":"KCKBSBN2DA\/KCKBSBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KD1BSUN2DA","fcbh_id":"KD1BSUN2DA","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KD1","language_name":"Kebu","language_english":"Kebu","language_iso":"kdp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaningdon-Nindem","language_family_code":"KD1","language_family_name":"Kebu","language_family_english":"Kebu","language_family_iso":"kdp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 21:15:07","created_on":"2012-07-23 17:25:48","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KD1BSUN2DA\/KD1BSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KD1BSUN2ET","fcbh_id":"KD1BSUN2ET","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KD1","language_name":"Kebu","language_english":"Kebu","language_iso":"kdp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaningdon-Nindem","language_family_code":"KD1","language_family_name":"Kebu","language_family_english":"Kebu","language_family_iso":"kdp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:09","created_on":"2014-03-03 18:23:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KD1BSUN2ET\/KD1BSUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","streaming_url","subsplash"],"resolution":[]},{"dam_id":"KDCPBTN1DA","fcbh_id":"KDCPBTN1DA","volume_name":"PBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KDC","language_name":"Kutu","language_english":"Kutu","language_iso":"kdc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kutu","language_family_code":"KDC","language_family_name":"Kutu","language_family_english":"Kutu","language_family_iso":"kdc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-07-27 18:13:54","created_on":"2016-06-23 19:43:39","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KDCPBTN1DA\/KDCPBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KDCPBTN1ET","fcbh_id":"KDCPBTN1ET","volume_name":"PBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KDC","language_name":"Kutu","language_english":"Kutu","language_iso":"kdc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kutu","language_family_code":"KDC","language_family_name":"Kutu","language_family_english":"Kutu","language_family_iso":"kdc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-28 17:25:14","created_on":"2016-06-28 17:10:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KDCPBTN1ET\/KDCPBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KDCPBTN2DA","fcbh_id":"KDCPBTN2DA","volume_name":"PBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KDC","language_name":"Kutu","language_english":"Kutu","language_iso":"kdc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kutu","language_family_code":"KDC","language_family_name":"Kutu","language_family_english":"Kutu","language_family_iso":"kdc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-07-27 18:22:42","created_on":"2016-06-23 19:48:45","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KDCPBTN2DA\/KDCPBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KDCPBTN2ET","fcbh_id":"KDCPBTN2ET","volume_name":"PBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KDC","language_name":"Kutu","language_english":"Kutu","language_iso":"kdc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kutu","language_family_code":"KDC","language_family_name":"Kutu","language_family_english":"Kutu","language_family_iso":"kdc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-30 16:31:29","created_on":"2015-12-22 22:21:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KDCPBTN2ET\/KDCPBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KDIBSUN2DA","fcbh_id":"KDIBSUN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KDI","language_name":"Kumam","language_english":"Kumam","language_iso":"kue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kuman","language_family_code":"KDI","language_family_name":"Kumam","language_family_english":"Kumam","language_family_iso":"kue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 20:57:42","created_on":"2010-09-14 17:01:16","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2KDIBSU","audio_zip_path":"KDIBSUN2DA\/KDIBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KDIBSUN2ET","fcbh_id":"KDIBSUN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KDI","language_name":"Kumam","language_english":"Kumam","language_iso":"kue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kuman","language_family_code":"KDI","language_family_name":"Kumam","language_family_english":"Kumam","language_family_iso":"kue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:09","created_on":"2014-03-03 18:02:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KDIBSUN2ET\/KDIBSUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KDJBSUN2DA","fcbh_id":"KDJBSUN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KDJ","language_name":"Karimojong","language_english":"Karimojong","language_iso":"kdj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Karamojong","language_family_code":"KDJ","language_family_name":"Karimojong","language_family_english":"Karimojong","language_family_iso":"kdj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-25 21:18:14","created_on":"2010-09-14 17:01:09","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KDJBSU","audio_zip_path":"KDJBSUN2DA\/KDJBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KDJBSUN2ET","fcbh_id":"KDJBSUN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KDJ","language_name":"Karimojong","language_english":"Karimojong","language_iso":"kdj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Karamojong","language_family_code":"KDJ","language_family_name":"Karimojong","language_family_english":"Karimojong","language_family_iso":"kdj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:09","created_on":"2014-01-21 20:15:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KDJBSUN2ET\/KDJBSUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KDNBSZN2DA","fcbh_id":"KDNBSZN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KDN","language_name":"Chikunda","language_english":"Chikunda","language_iso":"kdn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kunda","language_family_code":"KDN","language_family_name":"Chikunda","language_family_english":"Chikunda","language_family_iso":"kdn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSZ","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:09","created_on":"2011-05-26 01:00:16","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KDNBSZN2DA\/KDNBSZN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KEKIBSN2DA","fcbh_id":"KEKIBSN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KEK","language_name":"Kekchi","language_english":"Kekchi","language_iso":"kek","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kekch\u00ed","language_family_code":"KEK","language_family_name":"Kekchi","language_family_english":"Kekchi","language_family_iso":"kek","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:31","created_on":"2010-09-14 17:00:21","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KEKIBS","audio_zip_path":"KEKIBSN2DA\/KEKIBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KEKIBSN2ET","fcbh_id":"KEKIBSN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KEK","language_name":"Kekchi","language_english":"Kekchi","language_iso":"kek","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kekch\u00ed","language_family_code":"KEK","language_family_name":"Kekchi","language_family_english":"Kekchi","language_family_iso":"kek","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:18","created_on":"2010-09-14 17:00:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2KEKIBS","audio_zip_path":"KEKIBSN2ET\/KEKIBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KEKSBGN2DA","fcbh_id":"KEKSBGN2DA","volume_name":"2005 Catholic Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KEK","language_name":"Kekchi","language_english":"Kekchi","language_iso":"kek","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kekch\u00ed","language_family_code":"KEK","language_family_name":"Kekchi","language_family_english":"Kekchi","language_family_iso":"kek","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBG","version_name":"Sociedad Biblica Guatemala","version_english":"Sociedad Biblica Guatemala","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 21:17:42","created_on":"2010-09-14 17:00:22","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KEKSBG","audio_zip_path":"KEKSBGN2DA\/KEKSBGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KEKSBGN2ET","fcbh_id":"KEKSBGN2ET","volume_name":"2005 Catholic Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KEK","language_name":"Kekchi","language_english":"Kekchi","language_iso":"kek","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kekch\u00ed","language_family_code":"KEK","language_family_name":"Kekchi","language_family_english":"Kekchi","language_family_iso":"kek","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBG","version_name":"Sociedad Biblica Guatemala","version_english":"Sociedad Biblica Guatemala","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:16","created_on":"2011-07-08 19:16:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KEKSBGN2ET\/KEKSBGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KENWBTN2DA","fcbh_id":"KENWBTN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KEN","language_name":"Kenyang","language_english":"Kenyang","language_iso":"ken","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kenyang","language_family_code":"KEN","language_family_name":"Kenyang","language_family_english":"Kenyang","language_family_iso":"ken","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:32","created_on":"2011-05-31 18:41:05","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KENWBTN2DA\/KENWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KENWBTN2ET","fcbh_id":"KENWBTN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KEN","language_name":"Kenyang","language_english":"Kenyang","language_iso":"ken","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kenyang","language_family_code":"KEN","language_family_name":"Kenyang","language_family_english":"Kenyang","language_family_iso":"ken","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-19 16:48:57","created_on":"2011-06-02 20:40:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KENWBTN2ET\/KENWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KEOBSUN2DA","fcbh_id":"KEOBSUN2DA","volume_name":"1977 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KEO","language_name":"Kakwa","language_english":"Kakwa","language_iso":"keo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kakwa","language_family_code":"KEO","language_family_name":"Kakwa","language_family_english":"Kakwa","language_family_iso":"keo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:33","created_on":"2012-01-05 16:45:06","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KEOBSUN2DA\/KEOBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KEOBSUN2ET","fcbh_id":"KEOBSUN2ET","volume_name":"1977 Editions","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KEO","language_name":"Kakwa","language_english":"Kakwa","language_iso":"keo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kakwa","language_family_code":"KEO","language_family_name":"Kakwa","language_family_english":"Kakwa","language_family_iso":"keo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:08","created_on":"2014-02-13 17:25:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KEOBSUN2ET\/KEOBSUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KERABTN2DA","fcbh_id":"KERABTN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KER","language_name":"Kera","language_english":"Kera","language_iso":"ker","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kera","language_family_code":"KER","language_family_name":"Kera","language_family_english":"Kera","language_family_iso":"ker","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 21:25:07","created_on":"2013-11-18 17:47:06","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"KERABTN2DA\/KERABTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KERABTN2ET","fcbh_id":"KERABTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KER","language_name":"Kera","language_english":"Kera","language_iso":"ker","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kera","language_family_code":"KER","language_family_name":"Kera","language_family_english":"Kera","language_family_iso":"ker","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:21","created_on":"2013-09-23 17:01:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KERABTN2ET\/KERABTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KEZLCNN2DA","fcbh_id":"KEZLCNN2DA","volume_name":"1979 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KEZ","language_name":"Kukele","language_english":"Kukele","language_iso":"kez","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kukele","language_family_code":"KEZ","language_family_name":"Kukele","language_family_english":"Kukele","language_family_iso":"kez","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LCN","version_name":"Lutheran Church of Nigeria","version_english":"Lutheran Church of Nigeria","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-30 18:54:53","created_on":"2013-12-23 19:58:22","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"KEZLCNN2DA\/KEZLCNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KEZLCNN2ET","fcbh_id":"KEZLCNN2ET","volume_name":"1979 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KEZ","language_name":"Kukele","language_english":"Kukele","language_iso":"kez","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kukele","language_family_code":"KEZ","language_family_name":"Kukele","language_family_english":"Kukele","language_family_iso":"kez","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LCN","version_name":"Lutheran Church of Nigeria","version_english":"Lutheran Church of Nigeria","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-19 17:02:17","created_on":"2012-06-22 17:18:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KEZLCNN2ET\/KEZLCNN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KFBMUJN2DA","fcbh_id":"KFBMUJN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KFB","language_name":"Kolami, Northwestern","language_english":"Kolami, Northwestern","language_iso":"kfb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northwestern Kolami","language_family_code":"KFB","language_family_name":"Kolami, Northwestern","language_family_english":"Kolami, Northwestern","language_family_iso":"kfb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MUJ","version_name":"Malcolm and Uma Johnson","version_english":"Malcolm and Uma Johnson","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:10","created_on":"2013-07-22 21:04:11","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KFBMUJN2DA\/KFBMUJN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KFCKSSN2DA","fcbh_id":"KFCKSSN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KFC","language_name":"Konda-Dora","language_english":"Konda-Dora","language_iso":"kfc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Konda-Dora","language_family_code":"KFC","language_family_name":"Konda-Dora","language_family_english":"Konda-Dora","language_family_iso":"kfc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"KSS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:45","created_on":"2010-09-14 17:00:22","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KFCKSS","audio_zip_path":"KFCKSSN2DA\/KFCKSSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KFFIEMN2DA","fcbh_id":"KFFIEMN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KFF","language_name":"Koya","language_english":"Koya","language_iso":"kff","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Koya","language_family_code":"KFF","language_family_name":"Koya","language_family_english":"Koya","language_family_iso":"kff","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IEM","version_name":"IEM","version_english":"IEM","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:41:58","created_on":"2015-06-25 15:06:31","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"KFFIEMN2DA\/KFFIEMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KGRLAIN2ET","fcbh_id":"KGRLAIN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KGR","language_name":"Abun","language_english":"Abun","language_iso":"kgr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Abun","language_family_code":"KGR","language_family_name":"Abun","language_family_english":"Abun","language_family_iso":"kgr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-29 18:02:16","created_on":"2014-08-15 14:07:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KGRLAIN2ET\/KGRLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KHKMUBN2DA","fcbh_id":"KHKMUBN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KHK","language_name":"Mongolian, Outer","language_english":"Mongolian, Outer","language_iso":"khk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Halh Mongolian","language_family_code":"KHK","language_family_name":"Mongolian, Outer","language_family_english":"Mongolian, Outer","language_family_iso":"khk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MUB","version_name":"Mongolian Union Bible Society","version_english":"Mongolian Union Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-13 23:15:29","created_on":"2012-11-16 20:35:27","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"KHKMUBN2DA\/KHKMUBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KHQBIVN1DA","fcbh_id":"KHQBIVN1DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KHQ","language_name":"Songhay, Timbuktu","language_english":"Koyra Ciini","language_iso":"khq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Koyra Chiini Songhay","language_family_code":"KHQ","language_family_name":"Songhay, Timbuktu","language_family_english":"Koyra Ciini","language_family_iso":"khq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 23:23:12","created_on":"2017-10-11 16:32:51","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KHQBIVN1DA\/KHQBIVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KHQBIVN1ET","fcbh_id":"KHQBIVN1ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KHQ","language_name":"Songhay, Timbuktu","language_english":"Koyra Ciini","language_iso":"khq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Koyra Chiini Songhay","language_family_code":"KHQ","language_family_name":"Songhay, Timbuktu","language_family_english":"Koyra Ciini","language_family_iso":"khq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-30 21:55:55","created_on":"2018-10-30 21:09:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KHQBIVN1ET\/KHQBIVN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KHZPNGN2ET","fcbh_id":"KHZPNGN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KHZ","language_name":"Kalo","language_english":"Kalo","language_iso":"khz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Keapara","language_family_code":"KHZ","language_family_name":"Kalo","language_family_english":"Kalo","language_family_iso":"khz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 21:52:05","created_on":"2014-06-24 23:29:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KHZPNGN2ET\/KHZPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KIABSCN1DA","fcbh_id":"KIABSCN1DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KIA","language_name":"Garap","language_english":"Kim","language_iso":"kia","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kim","language_family_code":"KIA","language_family_name":"Garap","language_family_english":"Kim","language_family_iso":"kia","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-03 15:28:10","created_on":"2017-05-03 14:54:42","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KIABSCN1DA\/KIABSCN1DA.zip","font":{"id":"16","name":"Gentium","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Gentium","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KIABSCN2DA","fcbh_id":"KIABSCN2DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KIA","language_name":"Garap","language_english":"Kim","language_iso":"kia","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kim","language_family_code":"KIA","language_family_name":"Garap","language_family_english":"Kim","language_family_iso":"kia","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-03 15:28:11","created_on":"2017-05-03 14:49:05","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KIABSCN2DA\/KIABSCN2DA.zip","font":{"id":"16","name":"Gentium","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Gentium","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KIAWBTN1DA","fcbh_id":"KIAWBTN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KIA","language_name":"Garap","language_english":"Kim","language_iso":"kia","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kim","language_family_code":"KIA","language_family_name":"Garap","language_family_english":"Kim","language_family_iso":"kia","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-15 22:57:41","created_on":"2017-02-15 19:02:44","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KIAWBTN1DA\/KIAWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download"],"resolution":[]},{"dam_id":"KIAWBTN1ET","fcbh_id":"KIAWBTN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KIA","language_name":"Garap","language_english":"Kim","language_iso":"kia","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kim","language_family_code":"KIA","language_family_name":"Garap","language_family_english":"Kim","language_family_iso":"kia","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:50:14","created_on":"2017-02-15 18:58:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KIAWBTN1ET\/KIAWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KIAWBTN2DA","fcbh_id":"KIAWBTN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KIA","language_name":"Garap","language_english":"Kim","language_iso":"kia","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kim","language_family_code":"KIA","language_family_name":"Garap","language_family_english":"Kim","language_family_iso":"kia","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-15 23:21:35","created_on":"2017-02-15 19:00:35","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KIAWBTN2DA\/KIAWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KIAWBTN2ET","fcbh_id":"KIAWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KIA","language_name":"Garap","language_english":"Kim","language_iso":"kia","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kim","language_family_code":"KIA","language_family_name":"Garap","language_family_english":"Kim","language_family_iso":"kia","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:50:14","created_on":"2016-10-13 20:20:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KIAWBTN2ET\/KIAWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KIJPNGN1DA","fcbh_id":"KIJPNGN1DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KIJ","language_name":"Kiriwina","language_english":"Kiriwina","language_iso":"kij","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kilivila","language_family_code":"KIJ","language_family_name":"Kiriwina","language_family_english":"Kiriwina","language_family_iso":"kij","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-15 18:26:38","created_on":"2017-09-15 16:31:04","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KIJPNGN1DA\/KIJPNGN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download"],"resolution":[]},{"dam_id":"KIJPNGN1ET","fcbh_id":"KIJPNGN1ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KIJ","language_name":"Kiriwina","language_english":"Kiriwina","language_iso":"kij","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kilivila","language_family_code":"KIJ","language_family_name":"Kiriwina","language_family_english":"Kiriwina","language_family_iso":"kij","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-19 17:15:13","created_on":"2017-09-15 18:16:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KIJPNGN1ET\/KIJPNGN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KIJPNGN2DA","fcbh_id":"KIJPNGN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KIJ","language_name":"Kiriwina","language_english":"Kiriwina","language_iso":"kij","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kilivila","language_family_code":"KIJ","language_family_name":"Kiriwina","language_family_english":"Kiriwina","language_family_iso":"kij","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-05-09 22:20:04","created_on":"2014-05-09 20:40:40","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KIJPNGN2DA\/KIJPNGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KIJPNGN2ET","fcbh_id":"KIJPNGN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KIJ","language_name":"Kiriwina","language_english":"Kiriwina","language_iso":"kij","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kilivila","language_family_code":"KIJ","language_family_name":"Kiriwina","language_family_english":"Kiriwina","language_family_iso":"kij","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-19 17:15:23","created_on":"2014-04-07 17:38:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KIJPNGN2ET\/KIJPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KIKBSKN2DA","fcbh_id":"KIKBSKN2DA","volume_name":"1998 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KIK","language_name":"Kikamba","language_english":"Kikamba","language_iso":"kik","language_iso_2B":"kik","language_iso_2T":"kik","language_iso_1":"ki","language_iso_name":"Kikuyu","language_family_code":"KIK","language_family_name":"Kikamba","language_family_english":"Kikamba","language_family_iso":"kik","language_family_iso_2B":"kik","language_family_iso_2T":"kik","language_family_iso_1":"ki","version_code":"BSK","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:41","created_on":"2010-09-14 17:00:22","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KIKBSK","audio_zip_path":"KIKBSKN2DA\/KIKBSKN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KIRBSKN2DA","fcbh_id":"KIRBSKN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KIR","language_name":"Kirghiz","language_english":"Kirghiz","language_iso":"kir","language_iso_2B":"kir","language_iso_2T":"kir","language_iso_1":"ky","language_iso_name":"Kirghiz","language_family_code":"KIR","language_family_name":"Kirghiz","language_family_english":"Kirghiz","language_family_iso":"kir","language_family_iso_2B":"kir","language_family_iso_2T":"kir","language_family_iso_1":"ky","version_code":"BSK","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:47","created_on":"2010-09-14 17:00:22","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KIRBSK","audio_zip_path":"KIRBSKN2DA\/KIRBSKN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KIUBSKN2DA","fcbh_id":"KIUBSKN2DA","volume_name":"1965 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KIU","language_name":"Gikuyu","language_english":"Gikuyu","language_iso":"kik","language_iso_2B":"kik","language_iso_2T":"kik","language_iso_1":"ki","language_iso_name":"Kikuyu","language_family_code":"KIU","language_family_name":"Gikuyu","language_family_english":"Gikuyu","language_family_iso":"kik","language_family_iso_2B":"kik","language_family_iso_2T":"kik","language_family_iso_1":"ki","version_code":"BSK","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:33","created_on":"2010-09-14 17:00:23","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KIUBSK","audio_zip_path":"KIUBSKN2DA\/KIUBSKN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KJBSBGN2DA","fcbh_id":"KJBSBGN2DA","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KJB","language_name":"Kanjobal, Eastern","language_english":"Kanjobal, Eastern","language_iso":"kjb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Q'anjob'al","language_family_code":"KJB","language_family_name":"Kanjobal, Eastern","language_family_english":"Kanjobal, Eastern","language_family_iso":"kjb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBG","version_name":"Sociedad Biblica Guatemala","version_english":"Sociedad Biblica Guatemala","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 20:43:08","created_on":"2010-09-14 17:00:23","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KJBSBG","audio_zip_path":"KJBSBGN2DA\/KJBSBGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KJBSBGN2ET","fcbh_id":"KJBSBGN2ET","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KJB","language_name":"Kanjobal, Eastern","language_english":"Kanjobal, Eastern","language_iso":"kjb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Q'anjob'al","language_family_code":"KJB","language_family_name":"Kanjobal, Eastern","language_family_english":"Kanjobal, Eastern","language_family_iso":"kjb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBG","version_name":"Sociedad Biblica Guatemala","version_english":"Sociedad Biblica Guatemala","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:24","created_on":"2011-07-08 17:45:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KJBSBGN2ET\/KJBSBGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KJEWBTN1DA","fcbh_id":"KJEWBTN1DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KJE","language_name":"Kisar","language_english":"Kisar","language_iso":"kje","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kisar","language_family_code":"KJE","language_family_name":"Kisar","language_family_english":"Kisar","language_family_iso":"kje","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-07 16:07:25","created_on":"2017-07-07 14:56:41","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KJEWBTN1DA\/KJEWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KJEWBTN1ET","fcbh_id":"KJEWBTN1ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KJE","language_name":"Kisar","language_english":"Kisar","language_iso":"kje","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kisar","language_family_code":"KJE","language_family_name":"Kisar","language_family_english":"Kisar","language_family_iso":"kje","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-19 17:04:39","created_on":"2017-07-17 20:02:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KJEWBTN1ET\/KJEWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KJEWBTN2DA","fcbh_id":"KJEWBTN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KJE","language_name":"Kisar","language_english":"Kisar","language_iso":"kje","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kisar","language_family_code":"KJE","language_family_name":"Kisar","language_family_english":"Kisar","language_family_iso":"kje","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-07 16:07:42","created_on":"2017-07-07 14:54:29","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KJEWBTN2DA\/KJEWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KJEWBTN2ET","fcbh_id":"KJEWBTN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KJE","language_name":"Kisar","language_english":"Kisar","language_iso":"kje","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kisar","language_family_code":"KJE","language_family_name":"Kisar","language_family_english":"Kisar","language_family_iso":"kje","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-19 17:05:58","created_on":"2017-07-17 20:01:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KJEWBTN2ET\/KJEWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KJHIBTN1DA","fcbh_id":"KJHIBTN1DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KJH","language_name":"Khakas","language_english":"Khakas","language_iso":"kjh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Khakas","language_family_code":"KJH","language_family_name":"Khakas","language_family_english":"Khakas","language_family_iso":"kjh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-07 19:53:03","created_on":"2018-06-07 15:55:16","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KJHIBTN1DA\/KJHIBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KJHIBTN1ET","fcbh_id":"KJHIBTN1ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KJH","language_name":"Khakas","language_english":"Khakas","language_iso":"kjh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Khakas","language_family_code":"KJH","language_family_name":"Khakas","language_family_english":"Khakas","language_family_iso":"kjh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-07 18:27:31","created_on":"2018-06-07 15:59:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KJHIBTN1ET\/KJHIBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KJHIBTN2DA","fcbh_id":"KJHIBTN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KJH","language_name":"Khakas","language_english":"Khakas","language_iso":"kjh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Khakas","language_family_code":"KJH","language_family_name":"Khakas","language_family_english":"Khakas","language_family_iso":"kjh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-07 20:10:57","created_on":"2018-06-07 15:54:13","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KJHIBTN2DA\/KJHIBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KJHIBTN2ET","fcbh_id":"KJHIBTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KJH","language_name":"Khakas","language_english":"Khakas","language_iso":"kjh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Khakas","language_family_code":"KJH","language_family_name":"Khakas","language_family_english":"Khakas","language_family_iso":"kjh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-12 15:52:42","created_on":"2016-02-12 15:35:44","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KJHIBTN2ET\/KJHIBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KJSWBTN2ET","fcbh_id":"KJSWBTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KJS","language_name":"Kewa, East","language_english":"Kewa, East","language_iso":"kjs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"East Kewa","language_family_code":"KJS","language_family_name":"Kewa, East","language_family_english":"Kewa, East","language_family_iso":"kjs","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:17","created_on":"2011-07-07 22:26:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KJSWBTN2ET\/KJSWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KKIBSTN2DA","fcbh_id":"KKIBSTN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KKI","language_name":"Kikagulu","language_english":"Kikagulu","language_iso":"kki","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kagulu","language_family_code":"KKI","language_family_name":"Kikagulu","language_family_english":"Kikagulu","language_family_iso":"kki","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-29 16:26:47","created_on":"2011-05-09 22:51:28","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KKIBSTN2DA\/KKIBSTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KKIBSTN2ET","fcbh_id":"KKIBSTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KKI","language_name":"Kikagulu","language_english":"Kikagulu","language_iso":"kki","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kagulu","language_family_code":"KKI","language_family_name":"Kikagulu","language_family_english":"Kikagulu","language_family_iso":"kki","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:21","created_on":"2011-05-24 21:26:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KKIBSTN2ET\/KKIBSTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KKJWBTN2DA","fcbh_id":"KKJWBTN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KKJ","language_name":"Kako","language_english":"Kako","language_iso":"kkj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kako","language_family_code":"KKJ","language_family_name":"Kako","language_family_english":"Kako","language_family_iso":"kkj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:37","created_on":"2010-09-14 17:00:24","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KKJWBT","audio_zip_path":"KKJWBTN2DA\/KKJWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KKJWBTN2ET","fcbh_id":"KKJWBTN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KKJ","language_name":"Kako","language_english":"Kako","language_iso":"kkj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kako","language_family_code":"KKJ","language_family_name":"Kako","language_family_english":"Kako","language_family_iso":"kkj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:02","created_on":"2010-11-25 20:49:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2KKJWBT","audio_zip_path":"KKJWBTN2ET\/KKJWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KLENLIN1DA","fcbh_id":"KLENLIN1DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KLE","language_name":"Kulung","language_english":"Kulung","language_iso":"kle","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kulung (Nepal)","language_family_code":"KLE","language_family_name":"Kulung","language_family_english":"Kulung","language_family_iso":"kle","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NLI","version_name":"Nepali National Language Preservation Institute","version_english":"Nepali National Language Preservation Institute","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 15:59:05","created_on":"2018-01-31 22:38:02","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KLENLIN1DA\/KLENLIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KLENLIN1ET","fcbh_id":"KLENLIN1ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KLE","language_name":"Kulung","language_english":"Kulung","language_iso":"kle","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kulung (Nepal)","language_family_code":"KLE","language_family_name":"Kulung","language_family_english":"Kulung","language_family_iso":"kle","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NLI","version_name":"Nepali National Language Preservation Institute","version_english":"Nepali National Language Preservation Institute","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-09 22:52:14","created_on":"2018-11-09 22:26:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KLENLIN1ET\/KLENLIN1ET.zip","font":{"id":"5","name":"Annapurna SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Annapurna_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KLENLIN2DA","fcbh_id":"KLENLIN2DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KLE","language_name":"Kulung","language_english":"Kulung","language_iso":"kle","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kulung (Nepal)","language_family_code":"KLE","language_family_name":"Kulung","language_family_english":"Kulung","language_family_iso":"kle","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NLI","version_name":"Nepali National Language Preservation Institute","version_english":"Nepali National Language Preservation Institute","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 15:59:05","created_on":"2018-01-31 22:24:17","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KLENLIN2DA\/KLENLIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KLENLIN2ET","fcbh_id":"KLENLIN2ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KLE","language_name":"Kulung","language_english":"Kulung","language_iso":"kle","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kulung (Nepal)","language_family_code":"KLE","language_family_name":"Kulung","language_family_english":"Kulung","language_family_iso":"kle","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NLI","version_name":"Nepali National Language Preservation Institute","version_english":"Nepali National Language Preservation Institute","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-09 22:52:23","created_on":"2018-11-09 22:30:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KLENLIN2ET\/KLENLIN2ET.zip","font":{"id":"5","name":"Annapurna SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Annapurna_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KLNRKVN1DA","fcbh_id":"KLNRKVN1DA","volume_name":"Arorutyet Ne Leel","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KLN","language_name":"Kalenjin","language_english":"Kalenjin","language_iso":"kln","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kalenjin","language_family_code":"KLN","language_family_name":"Kalenjin","language_family_english":"Kalenjin","language_family_iso":"kln","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RKV","version_name":"RKV","version_english":"RKV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-06 15:52:32","created_on":"2018-09-05 16:05:35","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KLNRKVN1DA\/KLNRKVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"KLNRKVN2DA","fcbh_id":"KLNRKVN2DA","volume_name":"Arorutyet Ne Leel","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KLN","language_name":"Kalenjin","language_english":"Kalenjin","language_iso":"kln","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kalenjin","language_family_code":"KLN","language_family_name":"Kalenjin","language_family_english":"Kalenjin","language_family_iso":"kln","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RKV","version_name":"RKV","version_english":"RKV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-06 15:55:53","created_on":"2018-09-05 16:03:39","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KLNRKVN2DA\/KLNRKVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"KLNUBSN1DA","fcbh_id":"KLNUBSN1DA","volume_name":"1968 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KLN","language_name":"Kalenjin","language_english":"Kalenjin","language_iso":"kln","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kalenjin","language_family_code":"KLN","language_family_name":"Kalenjin","language_family_english":"Kalenjin","language_family_iso":"kln","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:26","created_on":"2010-09-14 16:59:45","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1KLNUBS","audio_zip_path":"KLNUBSN1DA\/KLNUBSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KLUBSLN2DA","fcbh_id":"KLUBSLN2DA","volume_name":"1998 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KLU","language_name":"Klao","language_english":"Klao","language_iso":"klu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Klao","language_family_code":"KLU","language_family_name":"Klao","language_family_english":"Klao","language_family_iso":"klu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:00","created_on":"2010-09-14 17:01:18","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2KLUBSL","audio_zip_path":"KLUBSLN2DA\/KLUBSLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KLVWBTN1DA","fcbh_id":"KLVWBTN1DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KLV","language_name":"Maskelynes","language_english":"Maskelynes","language_iso":"klv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Maskelynes","language_family_code":"KLV","language_family_name":"Maskelynes","language_family_english":"Maskelynes","language_family_iso":"klv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-14 17:55:38","created_on":"2016-09-01 18:17:57","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KLVWBTN1DA\/KLVWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KLVWBTN1ET","fcbh_id":"KLVWBTN1ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KLV","language_name":"Maskelynes","language_english":"Maskelynes","language_iso":"klv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Maskelynes","language_family_code":"KLV","language_family_name":"Maskelynes","language_family_english":"Maskelynes","language_family_iso":"klv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:03:49","created_on":"2016-09-01 18:15:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KLVWBTN1ET\/KLVWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KM2IBTN1DA","fcbh_id":"KM2IBTN1DA","volume_name":"Cyrillic - Transcaucasia","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KM2","language_name":"Kurmanc\u00ee","language_english":"Kurdish Kurmanji","language_iso":"kmr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Kurdish","language_family_code":"KMR","language_family_name":"Kurmanc\u00ee","language_family_english":"Kurdish Kurmanji","language_family_iso":"kmr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-30 18:45:35","created_on":"2018-08-01 20:55:42","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KM2IBTN1DA\/KM2IBTN1DA.zip","font":{"id":"80","name":"PT Serif","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/PT_Serif","files":{"zip":"all.zip","ttf":"PT Serif.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"","url":"http:\/\/ittybittyurl.com\/3uIq"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KM2IBTN1ET","fcbh_id":"KM2IBTN1ET","volume_name":"Cyrillic - Transcaucasia","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KM2","language_name":"Kurmanc\u00ee","language_english":"Kurdish Kurmanji","language_iso":"kmr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Kurdish","language_family_code":"KMR","language_family_name":"Kurmanc\u00ee","language_family_english":"Kurdish Kurmanji","language_family_iso":"kmr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-31 16:05:47","created_on":"2018-08-01 20:13:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KM2IBTN1ET\/KM2IBTN1ET.zip","font":{"id":"80","name":"PT Serif","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/PT_Serif","files":{"zip":"all.zip","ttf":"PT Serif.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"","url":"http:\/\/ittybittyurl.com\/3uIq"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KM2IBTN2DA","fcbh_id":"KM2IBTN2DA","volume_name":"Cyrillic - Transcaucasia","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KM2","language_name":"Kurmanc\u00ee","language_english":"Kurdish Kurmanji","language_iso":"kmr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Kurdish","language_family_code":"KMR","language_family_name":"Kurmanc\u00ee","language_family_english":"Kurdish Kurmanji","language_family_iso":"kmr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-30 18:45:35","created_on":"2018-08-01 20:16:47","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KM2IBTN2DA\/KM2IBTN2DA.zip","font":{"id":"80","name":"PT Serif","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/PT_Serif","files":{"zip":"all.zip","ttf":"PT Serif.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"","url":"http:\/\/ittybittyurl.com\/3uIq"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KM2IBTN2ET","fcbh_id":"KM2IBTN2ET","volume_name":"Cyrillic - Transcaucasia","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KM2","language_name":"Kurmanc\u00ee","language_english":"Kurdish Kurmanji","language_iso":"kmr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Kurdish","language_family_code":"KMR","language_family_name":"Kurmanc\u00ee","language_family_english":"Kurdish Kurmanji","language_family_iso":"kmr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-31 16:06:19","created_on":"2018-08-01 20:44:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KM2IBTN2ET\/KM2IBTN2ET.zip","font":{"id":"80","name":"PT Serif","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/PT_Serif","files":{"zip":"all.zip","ttf":"PT Serif.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"","url":"http:\/\/ittybittyurl.com\/3uIq"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KMAWBTN2DA","fcbh_id":"KMAWBTN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KMA","language_name":"Koma","language_english":"Koma","language_iso":"kmy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Koma","language_family_code":"KMA","language_family_name":"Koma","language_family_english":"Koma","language_family_iso":"kmy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 20:26:19","created_on":"2010-09-14 17:01:02","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KMAWBT","audio_zip_path":"KMAWBTN2DA\/KMAWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KMAWBTN2ET","fcbh_id":"KMAWBTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KMA","language_name":"Koma","language_english":"Koma","language_iso":"kmy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Koma","language_family_code":"KMA","language_family_name":"Koma","language_family_english":"Koma","language_family_iso":"kmy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:17","created_on":"2011-06-08 21:49:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KMAWBTN2ET\/KMAWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KMBUBSN2DA","fcbh_id":"KMBUBSN2DA","volume_name":"1980 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KMB","language_name":"Kimbundu","language_english":"Kimbundu","language_iso":"kmb","language_iso_2B":"kmb","language_iso_2T":"kmb","language_iso_1":"","language_iso_name":"Kimbundu","language_family_code":"KMB","language_family_name":"Kimbundu","language_family_english":"Kimbundu","language_family_iso":"kmb","language_family_iso_2B":"kmb","language_family_iso_2T":"kmb","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:49","created_on":"2010-09-14 17:00:24","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2KMBUBS","audio_zip_path":"KMBUBSN2DA\/KMBUBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KMDTAPN2ET","fcbh_id":"KMDTAPN2ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KMD","language_name":"Kalinga Majukayang","language_english":"Kalinga Majukayang","language_iso":"kmd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Majukayang Kalinga","language_family_code":"KMD","language_family_name":"Kalinga Majukayang","language_family_english":"Kalinga Majukayang","language_family_iso":"kmd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TAP","version_name":"Translators Association of the Philippines","version_english":"Translators Association of the Philippines","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-29 17:25:34","created_on":"2018-10-18 19:58:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KMDTAPN2ET\/KMDTAPN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KMHBSCN2DA","fcbh_id":"KMRBSCN2DA","volume_name":"Khmer Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KMH","language_name":"Khmer, Central","language_english":"Khmer, Central","language_iso":"khm","language_iso_2B":"khm","language_iso_2T":"khm","language_iso_1":"km","language_iso_name":"Central Khmer","language_family_code":"KMH","language_family_name":"Khmer, Central","language_family_english":"Khmer, Central","language_family_iso":"khm","language_family_iso_2B":"khm","language_family_iso_2T":"khm","language_family_iso_1":"km","version_code":"BSC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:41","created_on":"2010-09-14 17:00:24","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KMRBSC","audio_zip_path":"KMHBSCN2DA\/KMHBSCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KMHBSCN2ET","fcbh_id":"KMHBSCN2ET","volume_name":"Khmer Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KMH","language_name":"Khmer, Central","language_english":"Khmer, Central","language_iso":"khm","language_iso_2B":"khm","language_iso_2T":"khm","language_iso_1":"km","language_iso_name":"Central Khmer","language_family_code":"KMH","language_family_name":"Khmer, Central","language_family_english":"Khmer, Central","language_family_iso":"khm","language_family_iso_2B":"khm","language_family_iso_2T":"khm","language_family_iso_1":"km","version_code":"BSC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-23 18:58:29","created_on":"2011-10-12 14:53:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KMHBSCN2ET\/KMHBSCN2ET.zip","font":{"id":"71","name":"Khmer OFL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Khmer_OFL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2010, Danh Hong","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KMHKOVN2DA","fcbh_id":"KMRKOVN2DA","volume_name":"Old Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KMH","language_name":"Khmer, Central","language_english":"Khmer, Central","language_iso":"khm","language_iso_2B":"khm","language_iso_2T":"khm","language_iso_1":"km","language_iso_name":"Central Khmer","language_family_code":"KMH","language_family_name":"Khmer, Central","language_family_english":"Khmer, Central","language_family_iso":"khm","language_family_iso_2B":"khm","language_family_iso_2T":"khm","language_family_iso_1":"km","version_code":"KOV","version_name":"Old Version","version_english":"Old Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:41","created_on":"2010-09-14 17:00:24","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KMRKOV","audio_zip_path":"KMHKOVN2DA\/KMHKOVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KMHKOVN2ET","fcbh_id":"KMHKOVN2ET","volume_name":"Old version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KMH","language_name":"Khmer, Central","language_english":"Khmer, Central","language_iso":"khm","language_iso_2B":"khm","language_iso_2T":"khm","language_iso_1":"km","language_iso_name":"Central Khmer","language_family_code":"KMH","language_family_name":"Khmer, Central","language_family_english":"Khmer, Central","language_family_iso":"khm","language_family_iso_2B":"khm","language_family_iso_2T":"khm","language_family_iso_1":"km","version_code":"KOV","version_name":"Old Version","version_english":"Old Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-12 19:21:31","created_on":"2012-08-14 16:06:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KMHKOVN2ET\/KMHKOVN2ET.zip","font":{"id":"79","name":"Mondulkiri","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Mondulkiri","files":{"zip":"all.zip","ttf":"Mondulkiri-R.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"","url":""},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KMOWBTN2ET","fcbh_id":"KMOWBTN2ET","volume_name":"1974 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KMO","language_name":"Kwoma","language_english":"Kwoma","language_iso":"kmo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kwoma","language_family_code":"KMO","language_family_name":"Kwoma","language_family_english":"Kwoma","language_family_iso":"kmo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:18","created_on":"2014-07-07 20:46:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KMOWBTN2ET\/KMOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KMRIBTN1DA","fcbh_id":"KMRIBTN1DA","volume_name":"Latin - Transcaucasia","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KMR","language_name":"Kurmanc\u00ee","language_english":"Kurdish Kurmanji","language_iso":"kmr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Kurdish","language_family_code":"KMR","language_family_name":"Kurmanc\u00ee","language_family_english":"Kurdish Kurmanji","language_family_iso":"kmr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-30 18:46:25","created_on":"2018-05-24 21:24:06","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KMRIBTN1DA\/KMRIBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KMRIBTN1ET","fcbh_id":"KMRIBTN1ET","volume_name":"Latin - Transcaucasia","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KMR","language_name":"Kurmanc\u00ee","language_english":"Kurdish Kurmanji","language_iso":"kmr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Kurdish","language_family_code":"KMR","language_family_name":"Kurmanc\u00ee","language_family_english":"Kurdish Kurmanji","language_family_iso":"kmr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-31 15:59:36","created_on":"2018-08-01 20:05:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KMRIBTN1ET\/KMRIBTN1ET.zip","font":{"id":"80","name":"PT Serif","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/PT_Serif","files":{"zip":"all.zip","ttf":"PT Serif.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"","url":"http:\/\/ittybittyurl.com\/3uIq"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KMRIBTN2DA","fcbh_id":"KMRIBTN2DA","volume_name":"Latin - Transcaucasia","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KMR","language_name":"Kurmanc\u00ee","language_english":"Kurdish Kurmanji","language_iso":"kmr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Kurdish","language_family_code":"KMR","language_family_name":"Kurmanc\u00ee","language_family_english":"Kurdish Kurmanji","language_family_iso":"kmr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-30 18:46:26","created_on":"2018-05-22 20:37:04","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KMRIBTN2DA\/KMRIBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KMRIBTN2ET","fcbh_id":"KMRIBTN2ET","volume_name":"Latin - Transcaucasia","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KMR","language_name":"Kurmanc\u00ee","language_english":"Kurdish Kurmanji","language_iso":"kmr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Kurdish","language_family_code":"KMR","language_family_name":"Kurmanc\u00ee","language_family_english":"Kurdish Kurmanji","language_family_iso":"kmr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-31 16:03:44","created_on":"2018-08-01 20:37:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KMRIBTN2ET\/KMRIBTN2ET.zip","font":{"id":"80","name":"PT Serif","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/PT_Serif","files":{"zip":"all.zip","ttf":"PT Serif.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"","url":"http:\/\/ittybittyurl.com\/3uIq"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KMRUBSN2DA","fcbh_id":"KMRUBSN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KMR","language_name":"Kurmanc\u00ee","language_english":"Kurdish Kurmanji","language_iso":"kmr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Kurdish","language_family_code":"KMR","language_family_name":"Kurmanc\u00ee","language_family_english":"Kurdish Kurmanji","language_family_iso":"kmr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-14 17:30:39","created_on":"2010-09-14 17:01:13","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2KMRUBS","audio_zip_path":"KMRUBSN2DA\/KMRUBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KMSPNGN2ET","fcbh_id":"KMSPNGN2ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KMS","language_name":"Kamasau","language_english":"Kamasau","language_iso":"kms","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kamasau","language_family_code":"KMS","language_family_name":"Kamasau","language_family_english":"Kamasau","language_family_iso":"kms","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-28 22:28:03","created_on":"2014-04-16 16:06:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KMSPNGN2ET\/KMSPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KMUTBLN2ET","fcbh_id":"KMUTBLN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KMU","language_name":"Kanite","language_english":"Kanite","language_iso":"kmu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kanite","language_family_code":"KMU","language_family_name":"Kanite","language_family_english":"Kanite","language_family_iso":"kmu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-03 18:33:09","created_on":"2014-06-25 19:11:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KMUTBLN2ET\/KMUTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KN1PNGN2ET","fcbh_id":"KN1PNGN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KN1","language_name":"Tabo Aramia","language_english":"Tabo Aramia","language_iso":"knv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tabo","language_family_code":"KN1","language_family_name":"Tabo Aramia","language_family_english":"Tabo Aramia","language_family_iso":"knv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-07 23:45:53","created_on":"2013-09-03 19:09:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KN1PNGN2ET\/KN1PNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KNBTAPN1DA","fcbh_id":"KNBTAPN1DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KNB","language_name":"Kalinga Lubuagan","language_english":"Kalinga Lubuagan","language_iso":"knb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lubuagan Kalinga","language_family_code":"KNB","language_family_name":"Kalinga Lubuagan","language_family_english":"Kalinga Lubuagan","language_family_iso":"knb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TAP","version_name":"Translators Association of the Philippines","version_english":"Translators Association of the Philippines","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 15:59:05","created_on":"2018-01-31 21:54:38","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KNBTAPN1DA\/KNBTAPN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KNBTAPN2DA","fcbh_id":"KNBTAPN2DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KNB","language_name":"Kalinga Lubuagan","language_english":"Kalinga Lubuagan","language_iso":"knb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lubuagan Kalinga","language_family_code":"KNB","language_family_name":"Kalinga Lubuagan","language_family_english":"Kalinga Lubuagan","language_family_iso":"knb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TAP","version_name":"Translators Association of the Philippines","version_english":"Translators Association of the Philippines","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 15:59:06","created_on":"2018-01-31 21:33:22","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KNBTAPN2DA\/KNBTAPN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KNETBLN1DA","fcbh_id":"KNETBLN1DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KNE","language_name":"Kankanaey","language_english":"Kankanaey","language_iso":"kne","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kankanaey","language_family_code":"KNE","language_family_name":"Kankanaey","language_family_english":"Kankanaey","language_family_iso":"kne","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-24 16:34:03","created_on":"2015-07-13 14:24:56","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KNETBLN1DA\/KNETBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KNETBLN1ET","fcbh_id":"KNETBLN1ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KNE","language_name":"Kankanaey","language_english":"Kankanaey","language_iso":"kne","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kankanaey","language_family_code":"KNE","language_family_name":"Kankanaey","language_family_english":"Kankanaey","language_family_iso":"kne","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-08 15:53:36","created_on":"2015-07-13 14:09:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KNETBLN1ET\/KNETBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KNETBLN2DA","fcbh_id":"KNETBLN2DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KNE","language_name":"Kankanaey","language_english":"Kankanaey","language_iso":"kne","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kankanaey","language_family_code":"KNE","language_family_name":"Kankanaey","language_family_english":"Kankanaey","language_family_iso":"kne","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-24 16:33:05","created_on":"2015-07-13 13:48:31","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KNETBLN2DA\/KNETBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KNETBLN2ET","fcbh_id":"KNETBLN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KNE","language_name":"Kankanaey","language_english":"Kankanaey","language_iso":"kne","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kankanaey","language_family_code":"KNE","language_family_name":"Kankanaey","language_family_english":"Kankanaey","language_family_iso":"kne","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:02","created_on":"2012-09-14 17:08:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KNETBLN2ET\/KNETBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KNGDRCN2DA","fcbh_id":"KNGDRCN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KNG","language_name":"Kikongo","language_english":"Kikongo","language_iso":"kng","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Koongo","language_family_code":"KNG","language_family_name":"Kikongo","language_family_english":"Kikongo","language_family_iso":"kng","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"DRC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:50","created_on":"2010-09-14 17:01:10","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KNGDRC","audio_zip_path":"KNGDRCN2DA\/KNGDRCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KNJSBIN2DA","fcbh_id":"KNJSBIN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KNJ","language_name":"Akateko","language_english":"Acateco","language_iso":"knj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Kanjobal","language_family_code":"KNJ","language_family_name":"Akateko","language_family_english":"Acateco","language_family_iso":"knj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBI","version_name":"2001 Edition","version_english":"2001 Edition","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-03-14 19:52:44","created_on":"2010-09-14 17:00:25","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KNJSBI","audio_zip_path":"KNJSBIN2DA\/KNJSBIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KNJSBIN2ET","fcbh_id":"KNJSBIN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KNJ","language_name":"Akateko","language_english":"Acateco","language_iso":"knj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Kanjobal","language_family_code":"KNJ","language_family_name":"Akateko","language_family_english":"Acateco","language_family_iso":"knj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBI","version_name":"2001 Edition","version_english":"2001 Edition","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:00","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2KNJSBI","audio_zip_path":"KNJSBIN2ET\/KNJSBIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KNKBSLN2DA","fcbh_id":"KNKBSLN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KNK","language_name":"Kuranko","language_english":"Kuranko","language_iso":"knk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kuranko","language_family_code":"KNK","language_family_name":"Kuranko","language_family_english":"Kuranko","language_family_iso":"knk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 21:17:20","created_on":"2010-09-14 17:00:25","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2KNKBSL","audio_zip_path":"KNKBSLN2DA\/KNKBSLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KNKBSLN2ET","fcbh_id":"KNKBSLN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KNK","language_name":"Kuranko","language_english":"Kuranko","language_iso":"knk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kuranko","language_family_code":"KNK","language_family_name":"Kuranko","language_family_english":"Kuranko","language_family_iso":"knk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:18","created_on":"2011-08-08 18:20:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KNKBSLN2ET\/KNKBSLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KNOBSLN2DA","fcbh_id":"KNOBSLN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KNO","language_name":"Kono","language_english":"Kono","language_iso":"kno","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kono (Sierra Leone)","language_family_code":"KNO","language_family_name":"Kono","language_family_english":"Kono","language_family_iso":"kno","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 20:36:12","created_on":"2010-09-14 17:01:06","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KNOBSL","audio_zip_path":"KNOBSLN2DA\/KNOBSLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KNOBSLN2ET","fcbh_id":"KNOBSLN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KNO","language_name":"Kono","language_english":"Kono","language_iso":"kno","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kono (Sierra Leone)","language_family_code":"KNO","language_family_name":"Kono","language_family_english":"Kono","language_family_iso":"kno","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:11","created_on":"2011-10-10 16:45:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KNOBSLN2ET\/KNOBSLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KNPABCN2DA","fcbh_id":"KNPABCN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KNP","language_name":"Kwanja","language_english":"Kwanja","language_iso":"knp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kwanja","language_family_code":"KNP","language_family_name":"Kwanja","language_family_english":"Kwanja","language_family_iso":"knp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:01","created_on":"2010-09-14 17:01:52","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2KNPABC","audio_zip_path":"KNPABCN2DA\/KNPABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KNVPNGN2ET","fcbh_id":"KNVPNGN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KNV","language_name":"Tabo Fly River","language_english":"Tabo Fly River","language_iso":"knv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tabo","language_family_code":"KNV","language_family_name":"Tabo Fly River","language_family_english":"Tabo Fly River","language_family_iso":"knv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-07 23:44:56","created_on":"2011-08-03 19:14:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KNVPNGN2ET\/KNVPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KO2NKVN1DA","fcbh_id":"KO2NKVN1DA","volume_name":"(North) Revised New Korean Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KO2","language_name":"\ud55c\uad6d\uc5b4, \ubd81\ud55c","language_english":"Korean, North","language_iso":"kor","language_iso_2B":"kor","language_iso_2T":"kor","language_iso_1":"ko","language_iso_name":"Korean","language_family_code":"KOR","language_family_name":"\ud55c\uad6d\uc5b4","language_family_english":"Korean","language_family_iso":"kor","language_family_iso_2B":"kor","language_family_iso_2T":"kor","language_family_iso_1":"ko","version_code":"NKV","version_name":"Revised New Korean Standard Version","version_english":"Revised New Korean Standard Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-07 18:29:02","created_on":"2015-09-22 16:23:26","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"KO2NKVN1DA\/KO2NKVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"KO2NKVN1ET","fcbh_id":"KO2NKVN1ET","volume_name":"(North) Revised New Korean Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KO2","language_name":"\ud55c\uad6d\uc5b4, \ubd81\ud55c","language_english":"Korean, North","language_iso":"kor","language_iso_2B":"kor","language_iso_2T":"kor","language_iso_1":"ko","language_iso_name":"Korean","language_family_code":"KOR","language_family_name":"\ud55c\uad6d\uc5b4","language_family_english":"Korean","language_family_iso":"kor","language_family_iso_2B":"kor","language_family_iso_2T":"kor","language_family_iso_1":"ko","version_code":"NKV","version_name":"Revised New Korean Standard Version","version_english":"Revised New Korean Standard Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-18 19:55:30","created_on":"2015-09-22 16:29:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KO2NKVN1ET\/KO2NKVN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KO2NKVN2DA","fcbh_id":"KORNKVN2DA","volume_name":"(North) Revised New Korean Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KO2","language_name":"\ud55c\uad6d\uc5b4, \ubd81\ud55c","language_english":"Korean, North","language_iso":"kor","language_iso_2B":"kor","language_iso_2T":"kor","language_iso_1":"ko","language_iso_name":"Korean","language_family_code":"KOR","language_family_name":"\ud55c\uad6d\uc5b4","language_family_english":"Korean","language_family_iso":"kor","language_family_iso_2B":"kor","language_family_iso_2T":"kor","language_family_iso_1":"ko","version_code":"NKV","version_name":"Revised New Korean Standard Version","version_english":"Revised New Korean Standard Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-18 19:54:48","created_on":"2010-09-14 17:01:22","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2KORNKV","audio_zip_path":"KO2NKVN2DA\/KO2NKVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KO2NKVN2ET","fcbh_id":"KO2NKVN2ET","volume_name":"(North) Revised New Korean Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KO2","language_name":"\ud55c\uad6d\uc5b4, \ubd81\ud55c","language_english":"Korean, North","language_iso":"kor","language_iso_2B":"kor","language_iso_2T":"kor","language_iso_1":"ko","language_iso_name":"Korean","language_family_code":"KOR","language_family_name":"\ud55c\uad6d\uc5b4","language_family_english":"Korean","language_family_iso":"kor","language_family_iso_2B":"kor","language_family_iso_2T":"kor","language_family_iso_1":"ko","version_code":"NKV","version_name":"Revised New Korean Standard Version","version_english":"Revised New Korean Standard Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-18 19:56:31","created_on":"2012-08-09 16:27:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KO2NKVN2ET\/KO2NKVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KO2NKVO1ET","fcbh_id":"KO2NKVO1ET","volume_name":"(North) Revised New Korean Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KO2","language_name":"\ud55c\uad6d\uc5b4, \ubd81\ud55c","language_english":"Korean, North","language_iso":"kor","language_iso_2B":"kor","language_iso_2T":"kor","language_iso_1":"ko","language_iso_name":"Korean","language_family_code":"KOR","language_family_name":"\ud55c\uad6d\uc5b4","language_family_english":"Korean","language_family_iso":"kor","language_family_iso_2B":"kor","language_family_iso_2T":"kor","language_family_iso_1":"ko","version_code":"NKV","version_name":"Revised New Korean Standard Version","version_english":"Revised New Korean Standard Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-12-18 19:55:53","created_on":"2015-09-22 16:34:47","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KO2NKVO1ET\/KO2NKVO1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KO2NKVO2ET","fcbh_id":"KO2NKVO2ET","volume_name":"(North) Revised New Korean Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KO2","language_name":"\ud55c\uad6d\uc5b4, \ubd81\ud55c","language_english":"Korean, North","language_iso":"kor","language_iso_2B":"kor","language_iso_2T":"kor","language_iso_1":"ko","language_iso_name":"Korean","language_family_code":"KOR","language_family_name":"\ud55c\uad6d\uc5b4","language_family_english":"Korean","language_family_iso":"kor","language_family_iso_2B":"kor","language_family_iso_2T":"kor","language_family_iso_1":"ko","version_code":"NKV","version_name":"Revised New Korean Standard Version","version_english":"Revised New Korean Standard Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-12-18 19:56:11","created_on":"2012-08-09 16:24:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KO2NKVO2ET\/KO2NKVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KOGWBTN1DA","fcbh_id":"KOGWBTN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KOG","language_name":"Kogi","language_english":"Kogi","language_iso":"kog","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cogui","language_family_code":"KOG","language_family_name":"Kogi","language_family_english":"Kogi","language_family_iso":"kog","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-08 14:07:18","created_on":"2017-04-25 16:05:52","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KOGWBTN1DA\/KOGWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KOGWBTN1ET","fcbh_id":"KOGWBTN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KOG","language_name":"Kogi","language_english":"Kogi","language_iso":"kog","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cogui","language_family_code":"KOG","language_family_name":"Kogi","language_family_english":"Kogi","language_family_iso":"kog","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-08 14:07:18","created_on":"2017-04-25 16:07:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KOGWBTN1ET\/KOGWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KOGWBTN2DA","fcbh_id":"KOGWBTN2DA","volume_name":"WBT Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KOG","language_name":"Kogi","language_english":"Kogi","language_iso":"kog","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cogui","language_family_code":"KOG","language_family_name":"Kogi","language_family_english":"Kogi","language_family_iso":"kog","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-08 14:07:18","created_on":"2014-10-21 15:30:18","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KOGWBTN2DA\/KOGWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KOGWBTN2ET","fcbh_id":"KOGWBTN2ET","volume_name":"WBT Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KOG","language_name":"Kogi","language_english":"Kogi","language_iso":"kog","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cogui","language_family_code":"KOG","language_family_name":"Kogi","language_family_english":"Kogi","language_family_iso":"kog","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:05","created_on":"2015-01-26 18:08:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KOGWBTN2ET\/KOGWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KPFWBTN2ET","fcbh_id":"KPFWBTN2ET","volume_name":"1980 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KPF","language_name":"Komba","language_english":"Komba","language_iso":"kpf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Komba","language_family_code":"KPF","language_family_name":"Komba","language_family_english":"Komba","language_family_iso":"kpf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-17 22:45:26","created_on":"2014-06-26 19:45:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KPFWBTN2ET\/KPFWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KPGKTCN2ET","fcbh_id":"KPGKTCN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KPG","language_name":"Kapingamarangi","language_english":"Kapingamarangi","language_iso":"kpg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kapingamarangi","language_family_code":"KPG","language_family_name":"Kapingamarangi","language_family_english":"Kapingamarangi","language_family_iso":"kpg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"KTC","version_name":"Kapingamarangi Bible Translation Committee","version_english":"Kapingamarangi Bible Translation Committee","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-17 22:28:46","created_on":"2014-10-21 21:51:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KPGKTCN2ET\/KPGKTCN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KPGKTCO2ET","fcbh_id":"KPGKTCO2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KPG","language_name":"Kapingamarangi","language_english":"Kapingamarangi","language_iso":"kpg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kapingamarangi","language_family_code":"KPG","language_family_name":"Kapingamarangi","language_family_english":"Kapingamarangi","language_family_iso":"kpg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"KTC","version_name":"Kapingamarangi Bible Translation Committee","version_english":"Kapingamarangi Bible Translation Committee","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-04-17 22:50:25","created_on":"2017-04-17 22:33:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KPGKTCO2ET\/KPGKTCO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KPHBSNN2DA","fcbh_id":"KPHBSNN2DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KPH","language_name":"Kanuri, Central","language_english":"Kanuri, Central","language_iso":"knc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Kanuri","language_family_code":"KPH","language_family_name":"Kanuri, Central","language_family_english":"Kanuri, Central","language_family_iso":"knc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-29 22:08:22","created_on":"2010-09-14 17:00:25","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KPHBSN","audio_zip_path":"KPHBSNN2DA\/KPHBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KPMDVSN2DA","fcbh_id":"KPMDVSN2DA","volume_name":"DVS Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KPM","language_name":"Koho","language_english":"Koho","language_iso":"kpm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Koho","language_family_code":"KPM","language_family_name":"Koho","language_family_english":"Koho","language_family_iso":"kpm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"DVS","version_name":"Dinh Vinh Sang","version_english":"Dinh Vinh Sang","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 23:23:52","created_on":"2014-12-31 17:22:41","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KPMDVSN2DA\/KPMDVSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KPQBSIN2ET","fcbh_id":"KPQBSIN2ET","volume_name":"BSI Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KPQ","language_name":"Kimyal of Korupun","language_english":"Korupun-Sela","language_iso":"kpq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Korupun-Sela","language_family_code":"KPQ","language_family_name":"Kimyal of Korupun","language_family_english":"Korupun-Sela","language_family_iso":"kpq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-15 16:00:04","created_on":"2018-10-12 17:42:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KPQBSIN2ET\/KPQBSIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KPRTBLN2ET","fcbh_id":"KPRTBLN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KPR","language_name":"Korafe","language_english":"Korafe","language_iso":"kpr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Korafe-Yegha","language_family_code":"KPR","language_family_name":"Korafe","language_family_english":"Korafe","language_family_iso":"kpr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:05","created_on":"2011-08-30 21:17:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KPRTBLN2ET\/KPRTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KPVIBTN1DA","fcbh_id":"KPVIBTN1DA","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KPV","language_name":"Komi-Zyrian","language_english":"Komi-Zyrian","language_iso":"kpv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Komi-Zyrian","language_family_code":"KPV","language_family_name":"Komi-Zyrian","language_family_english":"Komi-Zyrian","language_family_iso":"kpv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-04-07 18:59:43","created_on":"2015-03-23 16:49:22","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KPVIBTN1DA\/KPVIBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KPVIBTN1ET","fcbh_id":"KPVIBTN1ET","volume_name":"IBT Volume","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KPV","language_name":"Komi-Zyrian","language_english":"Komi-Zyrian","language_iso":"kpv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Komi-Zyrian","language_family_code":"KPV","language_family_name":"Komi-Zyrian","language_family_english":"Komi-Zyrian","language_family_iso":"kpv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-01 19:32:46","created_on":"2015-03-26 16:51:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KPVIBTN1ET\/KPVIBTN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KPVIBTN2DA","fcbh_id":"KPVIBTN2DA","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KPV","language_name":"Komi-Zyrian","language_english":"Komi-Zyrian","language_iso":"kpv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Komi-Zyrian","language_family_code":"KPV","language_family_name":"Komi-Zyrian","language_family_english":"Komi-Zyrian","language_family_iso":"kpv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-04-07 19:00:15","created_on":"2015-03-23 17:14:29","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KPVIBTN2DA\/KPVIBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KPVIBTN2ET","fcbh_id":"KPVIBTN2ET","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KPV","language_name":"Komi-Zyrian","language_english":"Komi-Zyrian","language_iso":"kpv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Komi-Zyrian","language_family_code":"KPV","language_family_name":"Komi-Zyrian","language_family_english":"Komi-Zyrian","language_family_iso":"kpv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2012-02-13 16:43:39","created_on":"2012-02-06 21:28:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KPVIBTN2ET\/KPVIBTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KPWPNGN2ET","fcbh_id":"KPWPNGN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KPW","language_name":"Kobon","language_english":"Kobon","language_iso":"kpw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kobon","language_family_code":"KPW","language_family_name":"Kobon","language_family_english":"Kobon","language_family_iso":"kpw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:05","created_on":"2014-04-29 20:55:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KPWPNGN2ET\/KPWPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KPZBSUN2DA","fcbh_id":"KPZBSUN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KPZ","language_name":"Kupsapiny","language_english":"Kupsapiny","language_iso":"kpz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kupsabiny","language_family_code":"KPZ","language_family_name":"Kupsapiny","language_family_english":"Kupsapiny","language_family_iso":"kpz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-05-19 21:37:40","created_on":"2010-12-07 15:00:32","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2KPZBSU","audio_zip_path":"KPZBSUN2DA\/KPZBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KPZBSUN2ET","fcbh_id":"KPZBSUN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KPZ","language_name":"Kupsapiny","language_english":"Kupsapiny","language_iso":"kpz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kupsabiny","language_family_code":"KPZ","language_family_name":"Kupsapiny","language_family_english":"Kupsapiny","language_family_iso":"kpz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:05","created_on":"2013-05-17 16:54:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KPZBSUN2ET\/KPZBSUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KQETBLN1DA","fcbh_id":"KQETBLN1DA","volume_name":"2012 BLI Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KQE","language_name":"Kalagan, Eastern","language_english":"Kalagan, Eastern","language_iso":"kqe","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kalagan","language_family_code":"KQE","language_family_name":"Kalagan, Eastern","language_family_english":"Kalagan, Eastern","language_family_iso":"kqe","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-29 16:48:22","created_on":"2016-05-26 16:19:50","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KQETBLN1DA\/KQETBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KQETBLN1ET","fcbh_id":"KQETBLN1ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KQE","language_name":"Kalagan, Eastern","language_english":"Kalagan, Eastern","language_iso":"kqe","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kalagan","language_family_code":"KQE","language_family_name":"Kalagan, Eastern","language_family_english":"Kalagan, Eastern","language_family_iso":"kqe","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-08 15:55:59","created_on":"2016-05-26 17:14:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KQETBLN1ET\/KQETBLN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KQETBLN2DA","fcbh_id":"KQETBLN2DA","volume_name":"2012 BLI Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KQE","language_name":"Kalagan, Eastern","language_english":"Kalagan, Eastern","language_iso":"kqe","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kalagan","language_family_code":"KQE","language_family_name":"Kalagan, Eastern","language_family_english":"Kalagan, Eastern","language_family_iso":"kqe","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-29 16:48:45","created_on":"2016-05-26 16:34:44","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KQETBLN2DA\/KQETBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KQETBLN2ET","fcbh_id":"KQETBLN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KQE","language_name":"Kalagan, Eastern","language_english":"Kalagan, Eastern","language_iso":"kqe","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kalagan","language_family_code":"KQE","language_family_name":"Kalagan, Eastern","language_family_english":"Kalagan, Eastern","language_family_iso":"kqe","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-18 21:58:23","created_on":"2015-06-16 16:48:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KQETBLN2ET\/KQETBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KQNBSZN2DA","fcbh_id":"KQNBSZN2DA","volume_name":"1975 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KQN","language_name":"Kaonde","language_english":"Kaonde","language_iso":"kqn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaonde","language_family_code":"KQN","language_family_name":"Kaonde","language_family_english":"Kaonde","language_family_iso":"kqn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSZ","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:36","created_on":"2010-09-14 17:01:17","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2KQNBSZ","audio_zip_path":"KQNBSZN2DA\/KQNBSZN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KQPWBTN2DA","fcbh_id":"KQPWBTN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KQP","language_name":"Kimre","language_english":"Kimre","language_iso":"kqp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kimr\u00e9","language_family_code":"KQP","language_family_name":"Kimre","language_family_english":"Kimre","language_family_iso":"kqp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 18:38:29","created_on":"2012-10-01 17:00:53","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KQPWBTN2DA\/KQPWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KQPWBTN2ET","fcbh_id":"KQPWBTN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KQP","language_name":"Kimre","language_english":"Kimre","language_iso":"kqp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kimr\u00e9","language_family_code":"KQP","language_family_name":"Kimre","language_family_english":"Kimre","language_family_iso":"kqp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:05","created_on":"2011-05-30 01:25:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KQPWBTN2ET\/KQPWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KQYBSEN2DA","fcbh_id":"KQYBSEN2DA","volume_name":"Bible Society Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KQY","language_name":"Koorete","language_english":"Koorete","language_iso":"kqy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Koorete","language_family_code":"KQY","language_family_name":"Koorete","language_family_english":"Koorete","language_family_iso":"kqy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:48","created_on":"2011-11-03 17:37:35","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KQYBSEN2DA\/KQYBSEN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KQYBSEN2ET","fcbh_id":"KQYBSEN2ET","volume_name":"Bible Society Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KQY","language_name":"Koorete","language_english":"Koorete","language_iso":"kqy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Koorete","language_family_code":"KQY","language_family_name":"Koorete","language_family_english":"Koorete","language_family_iso":"kqy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:06","created_on":"2013-06-19 19:08:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KQYBSEN2ET\/KQYBSEN2ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KRCLION1DA","fcbh_id":"KRCLION1DA","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KRC","language_name":"Balkar","language_english":"Balkar","language_iso":"krc","language_iso_2B":"krc","language_iso_2T":"krc","language_iso_1":"","language_iso_name":"Karachay-Balkar","language_family_code":"KRC","language_family_name":"Balkar","language_family_english":"Balkar","language_family_iso":"krc","language_family_iso_2B":"krc","language_family_iso_2T":"krc","language_family_iso_1":"","version_code":"LIO","version_name":"Licht im Osten","version_english":"Licht im Osten","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-26 18:14:41","created_on":"2016-04-29 18:34:52","right_to_left":"false","num_art":"5","num_sample_audio":"0","sku":"","audio_zip_path":"KRCLION1DA\/KRCLION1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KRCLION1ET","fcbh_id":"KRCLION1ET","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KRC","language_name":"Balkar","language_english":"Balkar","language_iso":"krc","language_iso_2B":"krc","language_iso_2T":"krc","language_iso_1":"","language_iso_name":"Karachay-Balkar","language_family_code":"KRC","language_family_name":"Balkar","language_family_english":"Balkar","language_family_iso":"krc","language_family_iso_2B":"krc","language_family_iso_2T":"krc","language_family_iso_1":"","version_code":"LIO","version_name":"Licht im Osten","version_english":"Licht im Osten","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:11","created_on":"2016-05-09 18:47:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KRCLION1ET\/KRCLION1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KRCLION2DA","fcbh_id":"KRCLION2DA","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KRC","language_name":"Balkar","language_english":"Balkar","language_iso":"krc","language_iso_2B":"krc","language_iso_2T":"krc","language_iso_1":"","language_iso_name":"Karachay-Balkar","language_family_code":"KRC","language_family_name":"Balkar","language_family_english":"Balkar","language_family_iso":"krc","language_family_iso_2B":"krc","language_family_iso_2T":"krc","language_family_iso_1":"","version_code":"LIO","version_name":"Licht im Osten","version_english":"Licht im Osten","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-20 13:34:27","created_on":"2016-04-29 18:45:54","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KRCLION2DA\/KRCLION2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KRCLION2ET","fcbh_id":"KRCLION2ET","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KRC","language_name":"Balkar","language_english":"Balkar","language_iso":"krc","language_iso_2B":"krc","language_iso_2T":"krc","language_iso_1":"","language_iso_name":"Karachay-Balkar","language_family_code":"KRC","language_family_name":"Balkar","language_family_english":"Balkar","language_family_iso":"krc","language_family_iso_2B":"krc","language_family_iso_2T":"krc","language_family_iso_1":"","version_code":"LIO","version_name":"Licht im Osten","version_english":"Licht im Osten","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:11","created_on":"2012-02-06 20:52:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KRCLION2ET\/KRCLION2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KRINVSN2DA","fcbh_id":"KRINVSN2DA","volume_name":"1992 Good News for All Men","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KRI","language_name":"Krio","language_english":"Krio","language_iso":"kri","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Krio","language_family_code":"KRI","language_family_name":"Krio","language_family_english":"Krio","language_family_iso":"kri","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 20:56:37","created_on":"2010-09-14 17:00:26","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KRINVS","audio_zip_path":"KRINVSN2DA\/KRINVSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KRINVSN2ET","fcbh_id":"KRINVSN2ET","volume_name":"1992 Good News for All Men","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KRI","language_name":"Krio","language_english":"Krio","language_iso":"kri","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Krio","language_family_code":"KRI","language_family_name":"Krio","language_family_english":"Krio","language_family_iso":"kri","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:06","created_on":"2011-08-08 18:10:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KRINVSN2ET\/KRINVSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KRJWBTN2DA","fcbh_id":"KRJWBTN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KRJ","language_name":"Kinaray-a","language_english":"Kinaray-a","language_iso":"krj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kinaray-A","language_family_code":"KRJ","language_family_name":"Kinaray-a","language_family_english":"Kinaray-a","language_family_iso":"krj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:49","created_on":"2011-07-25 16:02:04","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KRJWBTN2DA\/KRJWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KRJWBTN2ET","fcbh_id":"KRJWBTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KRJ","language_name":"Kinaray-a","language_english":"Kinaray-a","language_iso":"krj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kinaray-A","language_family_code":"KRJ","language_family_name":"Kinaray-a","language_family_english":"Kinaray-a","language_family_iso":"krj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:06","created_on":"2011-10-12 16:49:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KRJWBTN2ET\/KRJWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KRLIBTN1DA","fcbh_id":"KRLIBTN1DA","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KRL","language_name":"Karelian, North","language_english":"Karelian, North","language_iso":"krl","language_iso_2B":"krl","language_iso_2T":"krl","language_iso_1":"","language_iso_name":"Karelian","language_family_code":"KRL","language_family_name":"Karelian, North","language_family_english":"Karelian, North","language_family_iso":"krl","language_family_iso_2B":"krl","language_family_iso_2T":"krl","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-09-12 17:32:17","created_on":"2014-08-14 18:59:09","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KRLIBTN1DA\/KRLIBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KRLIBTN1ET","fcbh_id":"KRLIBTN1ET","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KRL","language_name":"Karelian, North","language_english":"Karelian, North","language_iso":"krl","language_iso_2B":"krl","language_iso_2T":"krl","language_iso_1":"","language_iso_name":"Karelian","language_family_code":"KRL","language_family_name":"Karelian, North","language_family_english":"Karelian, North","language_family_iso":"krl","language_family_iso_2B":"krl","language_family_iso_2T":"krl","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-31 14:50:28","created_on":"2015-06-16 15:31:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KRLIBTN1ET\/KRLIBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KRUFMPN1DA","fcbh_id":"KRUFMPN1DA","volume_name":"Friends Missionary Prayer Band Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KRU","language_name":"Kurukh","language_english":"Kurukh","language_iso":"kru","language_iso_2B":"kru","language_iso_2T":"kru","language_iso_1":"","language_iso_name":"Kurukh","language_family_code":"KRU","language_family_name":"Kurukh","language_family_english":"Kurukh","language_family_iso":"kru","language_family_iso_2B":"kru","language_family_iso_2T":"kru","language_family_iso_1":"","version_code":"FMP","version_name":"FMP","version_english":"FMP","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-22 19:47:21","created_on":"2015-04-07 15:29:40","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KRUFMPN1DA\/KRUFMPN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KRUFMPN1ET","fcbh_id":"KRUFMPN1ET","volume_name":"Friends Missionary Prayer Band Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KRU","language_name":"Kurukh","language_english":"Kurukh","language_iso":"kru","language_iso_2B":"kru","language_iso_2T":"kru","language_iso_1":"","language_iso_name":"Kurukh","language_family_code":"KRU","language_family_name":"Kurukh","language_family_english":"Kurukh","language_family_iso":"kru","language_family_iso_2B":"kru","language_family_iso_2T":"kru","language_family_iso_1":"","version_code":"FMP","version_name":"FMP","version_english":"FMP","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-10 16:21:04","created_on":"2016-10-10 16:14:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KRUFMPN1ET\/KRUFMPN1ET.zip","font":{"id":"5","name":"Annapurna SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Annapurna_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KRUFMPN2DA","fcbh_id":"KRUFMPN2DA","volume_name":"Friends Missionary Prayer Band Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KRU","language_name":"Kurukh","language_english":"Kurukh","language_iso":"kru","language_iso_2B":"kru","language_iso_2T":"kru","language_iso_1":"","language_iso_name":"Kurukh","language_family_code":"KRU","language_family_name":"Kurukh","language_family_english":"Kurukh","language_family_iso":"kru","language_family_iso_2B":"kru","language_family_iso_2T":"kru","language_family_iso_1":"","version_code":"FMP","version_name":"FMP","version_english":"FMP","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:13","created_on":"2015-04-07 16:43:37","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KRUFMPN2DA\/KRUFMPN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KRUFMPN2ET","fcbh_id":"KRUFMPN2ET","volume_name":"Friends Missionary Prayer Brand Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KRU","language_name":"Kurukh","language_english":"Kurukh","language_iso":"kru","language_iso_2B":"kru","language_iso_2T":"kru","language_iso_1":"","language_iso_name":"Kurukh","language_family_code":"KRU","language_family_name":"Kurukh","language_family_english":"Kurukh","language_family_iso":"kru","language_family_iso_2B":"kru","language_family_iso_2T":"kru","language_family_iso_1":"","version_code":"FMP","version_name":"FMP","version_english":"FMP","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-02 21:49:12","created_on":"2016-03-02 21:35:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KRUFMPN2ET\/KRUFMPN2ET.zip","font":{"id":"5","name":"Annapurna SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Annapurna_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KRWBSLN2DA","fcbh_id":"KRWBSLN2DA","volume_name":"1998 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KRW","language_name":"Krahn, Western","language_english":"Krahn, Western","language_iso":"krw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Krahn","language_family_code":"KRW","language_family_name":"Krahn, Western","language_family_english":"Krahn, Western","language_family_iso":"krw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:05","created_on":"2011-05-31 20:10:51","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KRWBSLN2DA\/KRWBSLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KSBBSTN1DA","fcbh_id":"KSBBSTN1DA","volume_name":"1969 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KSB","language_name":"Kishambala","language_english":"Shambala","language_iso":"ksb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Shambala","language_family_code":"KSB","language_family_name":"Kishambala","language_family_english":"Shambala","language_family_iso":"ksb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-22 21:41:45","created_on":"2017-02-16 18:00:38","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KSBBSTN1DA\/KSBBSTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KSBBSTN2DA","fcbh_id":"KSBBSTN2DA","volume_name":"1969 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KSB","language_name":"Kishambala","language_english":"Shambala","language_iso":"ksb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Shambala","language_family_code":"KSB","language_family_name":"Kishambala","language_family_english":"Shambala","language_family_iso":"ksb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-22 21:42:32","created_on":"2017-02-16 17:57:16","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KSBBSTN2DA\/KSBBSTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KSDPNGN2ET","fcbh_id":"KSDPNGN2ET","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KSD","language_name":"Kuanua","language_english":"Kuanua","language_iso":"ksd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kuanua","language_family_code":"KSD","language_family_name":"Kuanua","language_family_english":"Kuanua","language_family_iso":"ksd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:06","created_on":"2014-04-16 16:48:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KSDPNGN2ET\/KSDPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KSDPNGO2ET","fcbh_id":"KSDPNGO2ET","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KSD","language_name":"Kuanua","language_english":"Kuanua","language_iso":"ksd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kuanua","language_family_code":"KSD","language_family_name":"Kuanua","language_family_english":"Kuanua","language_family_iso":"ksd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:06","created_on":"2014-04-16 16:50:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KSDPNGO2ET\/KSDPNGO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KSFABCN2DA","fcbh_id":"KSFABCN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KSF","language_name":"Bafia ","language_english":"Bafia ","language_iso":"ksf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bafia","language_family_code":"KSF","language_family_name":"Bafia","language_family_english":"Bafia","language_family_iso":"ksf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:02","created_on":"2010-12-07 15:00:33","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2KSFABC","audio_zip_path":"KSFABCN2DA\/KSFABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KSRPNGN2ET","fcbh_id":"KSRPNGN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KSR","language_name":"Borong","language_english":"Borong","language_iso":"ksr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Borong","language_family_code":"KSR","language_family_name":"Borong","language_family_english":"Borong","language_family_iso":"ksr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 18:27:04","created_on":"2014-04-16 15:38:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KSRPNGN2ET\/KSRPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KSSBSLN2DA","fcbh_id":"KSSBSLN2DA","volume_name":"1991 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KSS","language_name":"Kisi, Southern","language_english":"Kisi, Southern","language_iso":"kss","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Kisi","language_family_code":"KSS","language_family_name":"Kisi, Southern","language_family_english":"Kisi, Southern","language_family_iso":"kss","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:37","created_on":"2010-09-14 17:00:26","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KSSBSL","audio_zip_path":"KSSBSLN2DA\/KSSBSLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KSWBSMN2DA","fcbh_id":"KSWBSMN2DA","volume_name":"UBS Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KSW","language_name":"Karen, S'Gaw","language_english":"Karen, S'Gaw","language_iso":"ksw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"S'gaw Karen","language_family_code":"KSW","language_family_name":"Karen, S'Gaw","language_family_english":"Karen, S'Gaw","language_family_iso":"ksw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:57","created_on":"2010-09-14 17:00:26","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KSWBSM","audio_zip_path":"KSWBSMN2DA\/KSWBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KTBBSEN2DA","fcbh_id":"KTBBSEN2DA","volume_name":"Bible Society Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KTB","language_name":"Kambaata","language_english":"Kambaata","language_iso":"ktb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kambaata","language_family_code":"KTB","language_family_name":"Kambaata","language_family_english":"Kambaata","language_family_iso":"ktb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:51","created_on":"2011-10-05 20:09:25","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KTBBSEN2DA\/KTBBSEN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KTBBSEN2ET","fcbh_id":"KTBBSEN2ET","volume_name":"Bible Society Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KTB","language_name":"Kambaata","language_english":"Kambaata","language_iso":"ktb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kambaata","language_family_code":"KTB","language_family_name":"Kambaata","language_family_english":"Kambaata","language_family_iso":"ktb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:06","created_on":"2013-06-18 21:16:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KTBBSEN2ET\/KTBBSEN2ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KTJWBTN1DA","fcbh_id":"KTJWBTN1DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KTJ","language_name":"Krumen, Plapo","language_english":"Kroumen, Plaapo","language_iso":"ktj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Plapo Krumen","language_family_code":"KTJ","language_family_name":"Krumen, Plapo","language_family_english":"Kroumen, Plaapo","language_family_iso":"ktj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-09-29 18:03:58","created_on":"2015-02-23 19:12:25","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KTJWBTN1DA\/KTJWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KTJWBTN1ET","fcbh_id":"KTJWBTN1ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KTJ","language_name":"Krumen, Plapo","language_english":"Kroumen, Plaapo","language_iso":"ktj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Plapo Krumen","language_family_code":"KTJ","language_family_name":"Krumen, Plapo","language_family_english":"Kroumen, Plaapo","language_family_iso":"ktj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-09-29 18:03:58","created_on":"2015-02-23 18:13:47","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KTJWBTN1ET\/KTJWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","mp3_cd"],"resolution":[]},{"dam_id":"KTJWBTN2DA","fcbh_id":"KTJWBTN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KTJ","language_name":"Krumen, Plapo","language_english":"Kroumen, Plaapo","language_iso":"ktj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Plapo Krumen","language_family_code":"KTJ","language_family_name":"Krumen, Plapo","language_family_english":"Kroumen, Plaapo","language_family_iso":"ktj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-09-29 18:03:58","created_on":"2015-02-23 18:11:20","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KTJWBTN2DA\/KTJWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KTJWBTN2ET","fcbh_id":"KTJWBTN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KTJ","language_name":"Krumen, Plapo","language_english":"Kroumen, Plaapo","language_iso":"ktj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Plapo Krumen","language_family_code":"KTJ","language_family_name":"Krumen, Plapo","language_family_english":"Kroumen, Plaapo","language_family_iso":"ktj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:06","created_on":"2014-03-31 16:52:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KTJWBTN2ET\/KTJWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KTOWBTN2ET","fcbh_id":"KTOWBTN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KTO","language_name":"Kuot","language_english":"Kuot","language_iso":"kto","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kuot","language_family_code":"KTO","language_family_name":"Kuot","language_family_english":"Kuot","language_family_iso":"kto","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:07","created_on":"2014-07-07 20:41:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KTOWBTN2ET\/KTOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KTUDRCN2DA","fcbh_id":"KTUDRCN2DA","volume_name":"1990 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KTU","language_name":"Kituba for DRC","language_english":"Kituba for DRC","language_iso":"ktu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kituba (Democratic Republic of Congo)","language_family_code":"KTU","language_family_name":"Kituba for DRC","language_family_english":"Kituba for DRC","language_family_iso":"ktu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"DRC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:54","created_on":"2010-09-14 17:01:11","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KTUDRC","audio_zip_path":"KTUDRCN2DA\/KTUDRCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KUBTBLN2DA","fcbh_id":"KUBTBLN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KUB","language_name":"Kutep","language_english":"Kutep","language_iso":"kub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kutep","language_family_code":"KUB","language_family_name":"Kutep","language_family_english":"Kutep","language_family_iso":"kub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-09-15 19:47:37","created_on":"2010-09-14 17:01:08","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KUBTBL","audio_zip_path":"KUBTBLN2DA\/KUBTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KUBTBLN2ET","fcbh_id":"KUBTBLN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KUB","language_name":"Kutep","language_english":"Kutep","language_iso":"kub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kutep","language_family_code":"KUB","language_family_name":"Kutep","language_family_english":"Kutep","language_family_iso":"kub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:07","created_on":"2011-10-10 16:42:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KUBTBLN2ET\/KUBTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KUDBTAN2ET","fcbh_id":"KUDBTAN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KUD","language_name":"Kurux","language_english":"Auhelawa","language_iso":"kud","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"'Auhelawa","language_family_code":"KUD","language_family_name":"Kurux","language_family_english":"Auhelawa","language_family_iso":"kud","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTA","version_name":"Bible Translation Association","version_english":"Bible Translation Association","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-16 15:20:07","created_on":"2014-06-06 18:35:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KUDBTAN2ET\/KUDBTAN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KUEPNGN2DA","fcbh_id":"KUEPNGN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KUE","language_name":"Kuman","language_english":"Kuman","language_iso":"kue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kuman","language_family_code":"KUE","language_family_name":"Kuman","language_family_english":"Kuman","language_family_iso":"kue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:53","created_on":"2012-04-16 18:00:01","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KUEPNGN2DA\/KUEPNGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KUEPNGN2ET","fcbh_id":"KUEPNGN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KUE","language_name":"Kuman","language_english":"Kuman","language_iso":"kue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kuman","language_family_code":"KUE","language_family_name":"Kuman","language_family_english":"Kuman","language_family_iso":"kue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-15 19:02:40","created_on":"2011-07-01 17:36:37","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KUEPNGN2ET\/KUEPNGN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KUPTBLN2ET","fcbh_id":"KUPTBLN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KUP","language_name":"Kunimaipa","language_english":"Kunimaipa","language_iso":"kup","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kunimaipa","language_family_code":"KUP","language_family_name":"Kunimaipa","language_family_english":"Kunimaipa","language_family_iso":"kup","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 19:51:23","created_on":"2014-07-07 21:32:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KUPTBLN2ET\/KUPTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KUSTBLN2DA","fcbh_id":"KUSTBLN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KUS","language_name":"Kusaal","language_english":"Kusaal","language_iso":"kus","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kusaal","language_family_code":"KUS","language_family_name":"Kusaal","language_family_english":"Kusaal","language_family_iso":"kus","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 21:19:52","created_on":"2010-09-14 17:00:26","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KUSTBL","audio_zip_path":"KUSTBLN2DA\/KUSTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KUSTBLN2ET","fcbh_id":"KUSTBLN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KUS","language_name":"Kusaal","language_english":"Kusaal","language_iso":"kus","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kusaal","language_family_code":"KUS","language_family_name":"Kusaal","language_family_english":"Kusaal","language_family_iso":"kus","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:55:07","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2KUSTBL","audio_zip_path":"KUSTBLN2ET\/KUSTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KVJABCN2DA","fcbh_id":"KVJABCN2DA","volume_name":"1988 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"KVJ","language_name":"Kapsiki","language_english":"Kapsiki","language_iso":"kvj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Psikye","language_family_code":"KVJ","language_family_name":"Kapsiki","language_family_english":"Kapsiki","language_family_iso":"kvj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:06","created_on":"2011-11-09 16:28:14","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KVJABCN2DA\/KVJABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KVNWBTN1DA","fcbh_id":"KVNWBTN1DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KVN","language_name":"Kuna Border","language_english":"Kuna Border","language_iso":"kvn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Border Kuna","language_family_code":"KVN","language_family_name":"Kuna Border","language_family_english":"Kuna Border","language_family_iso":"kvn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-05 19:39:18","created_on":"2017-02-15 18:46:56","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KVNWBTN1DA\/KVNWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KVNWBTN1ET","fcbh_id":"KVNWBTN1ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KVN","language_name":"Kuna Border","language_english":"Kuna Border","language_iso":"kvn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Border Kuna","language_family_code":"KVN","language_family_name":"Kuna Border","language_family_english":"Kuna Border","language_family_iso":"kvn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-15 22:56:14","created_on":"2017-02-15 18:44:35","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KVNWBTN1ET\/KVNWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KVNWBTN2DA","fcbh_id":"KVNWBTN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KVN","language_name":"Kuna Border","language_english":"Kuna Border","language_iso":"kvn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Border Kuna","language_family_code":"KVN","language_family_name":"Kuna Border","language_family_english":"Kuna Border","language_family_iso":"kvn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-08-12 17:20:43","created_on":"2015-07-20 21:26:26","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"KVNWBTN2DA\/KVNWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KVNWBTN2ET","fcbh_id":"KVNWBTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KVN","language_name":"Kuna Border","language_english":"Kuna Border","language_iso":"kvn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Border Kuna","language_family_code":"KVN","language_family_name":"Kuna Border","language_family_english":"Kuna Border","language_family_iso":"kvn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:15","created_on":"2015-05-01 13:05:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KVNWBTN2ET\/KVNWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KWFWBTN2ET","fcbh_id":"KWFWBTN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KWF","language_name":"Kwara'ae","language_english":"Kwara'ae","language_iso":"kwf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kwara'ae","language_family_code":"KWF","language_family_name":"Kwara'ae","language_family_english":"Kwara'ae","language_family_iso":"kwf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 22:13:34","created_on":"2011-10-10 19:06:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KWFWBTN2ET\/KWFWBTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KWIWBTN2DA","fcbh_id":"KWIWBTN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KWI","language_name":"Awa for Ecuador","language_english":"Awa for Ecuador","language_iso":"kwi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Awa-Cuaiquer","language_family_code":"KWI","language_family_name":"Awa for Ecuador","language_family_english":"Awa for Ecuador","language_family_iso":"kwi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:06:10","created_on":"2010-09-14 17:00:26","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KWIWBT","audio_zip_path":"KWIWBTN2DA\/KWIWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KWIWBTN2ET","fcbh_id":"KWIWBTN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KWI","language_name":"Awa for Ecuador","language_english":"Awa for Ecuador","language_iso":"kwi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Awa-Cuaiquer","language_family_code":"KWI","language_family_name":"Awa for Ecuador","language_family_english":"Awa for Ecuador","language_family_iso":"kwi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:00:59","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2KWIWBT","audio_zip_path":"KWIWBTN2ET\/KWIWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KWJWBTN2ET","fcbh_id":"KWJWBTN2ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KWJ","language_name":"Kwanga","language_english":"Kwanga","language_iso":"kwj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kwanga","language_family_code":"KWJ","language_family_name":"Kwanga","language_family_english":"Kwanga","language_family_iso":"kwj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-28 17:00:41","created_on":"2014-07-07 20:38:10","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KWJWBTN2ET\/KWJWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KXCBSEN2DA","fcbh_id":"KXCBSEN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KXC","language_name":"Konso","language_english":"Konso","language_iso":"kxc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Konso","language_family_code":"KXC","language_family_name":"Konso","language_family_english":"Konso","language_family_iso":"kxc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 20:38:40","created_on":"2011-11-23 21:58:43","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KXCBSEN2DA\/KXCBSEN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KXCBSEN2ET","fcbh_id":"KXCBSEN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KXC","language_name":"Konso","language_english":"Konso","language_iso":"kxc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Konso","language_family_code":"KXC","language_family_name":"Konso","language_family_english":"Konso","language_family_iso":"kxc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:11","created_on":"2013-05-22 15:48:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KXCBSEN2ET\/KXCBSEN2ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KXMTBSN2DA","fcbh_id":"KXMTBSN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KXM","language_name":"Khmer, Northern","language_english":"Khmer, Northern","language_iso":"kxm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Khmer","language_family_code":"KXM","language_family_name":"Khmer, Northern","language_family_english":"Khmer, Northern","language_family_iso":"kxm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBS","version_name":"Thailand Bible Society","version_english":"Thailand Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:56","created_on":"2011-07-20 15:53:05","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KXMTBSN2DA\/KXMTBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KXMTBSN2ET","fcbh_id":"KXMTBSN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KXM","language_name":"Khmer, Northern","language_english":"Khmer, Northern","language_iso":"kxm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Khmer","language_family_code":"KXM","language_family_name":"Khmer, Northern","language_family_english":"Khmer, Northern","language_family_iso":"kxm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBS","version_name":"Thailand Bible Society","version_english":"Thailand Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:34","created_on":"2011-07-18 18:48:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KXMTBSN2ET\/KXMTBSN2ET.zip","font":{"id":"71","name":"Khmer OFL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Khmer_OFL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2010, Danh Hong","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KYCPNGN2DA","fcbh_id":"KYCPNGN2DA","volume_name":"Bible Society Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KYC","language_name":"Kyaka","language_english":"Kyaka","language_iso":"kyc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kyaka","language_family_code":"KYC","language_family_name":"Kyaka","language_family_english":"Kyaka","language_family_iso":"kyc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:57","created_on":"2011-05-24 22:32:35","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KYCPNGN2DA\/KYCPNGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KYCPNGN2ET","fcbh_id":"KYCPNGN2ET","volume_name":"Bible Society Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KYC","language_name":"Kyaka","language_english":"Kyaka","language_iso":"kyc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kyaka","language_family_code":"KYC","language_family_name":"Kyaka","language_family_english":"Kyaka","language_family_iso":"kyc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:19","created_on":"2011-06-03 17:12:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KYCPNGN2ET\/KYCPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KYFWBTN1DA","fcbh_id":"KYFWBTN1DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KYF","language_name":"Kouya","language_english":"Kouya","language_iso":"kyf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kouya","language_family_code":"KYF","language_family_name":"Kouya","language_family_english":"Kouya","language_family_iso":"kyf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-22 19:30:40","created_on":"2015-04-07 17:23:55","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KYFWBTN1DA\/KYFWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KYFWBTN1ET","fcbh_id":"KYFWBTN1ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KYF","language_name":"Kouya","language_english":"Kouya","language_iso":"kyf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kouya","language_family_code":"KYF","language_family_name":"Kouya","language_family_english":"Kouya","language_family_iso":"kyf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:00:59","created_on":"2015-07-22 19:32:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KYFWBTN1ET\/KYFWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KYFWBTN2DA","fcbh_id":"KYFWBTN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KYF","language_name":"Kouya","language_english":"Kouya","language_iso":"kyf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kouya","language_family_code":"KYF","language_family_name":"Kouya","language_family_english":"Kouya","language_family_iso":"kyf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-22 19:31:10","created_on":"2015-04-07 16:38:30","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KYFWBTN2DA\/KYFWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KYFWBTN2ET","fcbh_id":"KYFWBTN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KYF","language_name":"Kouya","language_english":"Kouya","language_iso":"kyf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kouya","language_family_code":"KYF","language_family_name":"Kouya","language_family_english":"Kouya","language_family_iso":"kyf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:00:59","created_on":"2014-02-24 16:36:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KYFWBTN2ET\/KYFWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KYQWYIN2DA","fcbh_id":"KYQWYIN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KYQ","language_name":"Kenga","language_english":"Kenga","language_iso":"kyq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kenga","language_family_code":"KYQ","language_family_name":"Kenga","language_family_english":"Kenga","language_family_iso":"kyq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:58","created_on":"2013-06-10 21:31:27","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"KYQWYIN2DA\/KYQWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KYQWYIN2ET","fcbh_id":"KYQWYIN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KYQ","language_name":"Kenga","language_english":"Kenga","language_iso":"kyq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kenga","language_family_code":"KYQ","language_family_name":"Kenga","language_family_english":"Kenga","language_family_iso":"kyq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:17","created_on":"2011-10-09 16:55:10","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KYQWYIN2ET\/KYQWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KYUBSMN2DA","fcbh_id":"KYUBSMN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KYU","language_name":"Kayah, Western","language_english":"Kayah, Western","language_iso":"kyu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Kayah","language_family_code":"KYU","language_family_name":"Kayah, Western","language_family_english":"Kayah, Western","language_family_iso":"kyu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:57:59","created_on":"2012-09-07 15:31:36","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"KYUBSMN2DA\/KYUBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KYUBSMN2ET","fcbh_id":"KYUBSMN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KYU","language_name":"Kayah, Western","language_english":"Kayah, Western","language_iso":"kyu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Kayah","language_family_code":"KYU","language_family_name":"Kayah, Western","language_family_english":"Kayah, Western","language_family_iso":"kyu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:15","created_on":"2011-08-25 16:43:47","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KYUBSMN2ET\/KYUBSMN2ET.zip","font":{"id":"28","name":"Padauk OT","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/PadaukOT","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&amp;amp;copy; SIL International, 2003. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KYZWBTN1DA","fcbh_id":"KYZWBTN1DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KYZ","language_name":"Kayabi","language_english":"Kayabi","language_iso":"kyz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kayab\u00ed","language_family_code":"KYZ","language_family_name":"Kayabi","language_family_english":"Kayabi","language_family_iso":"kyz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-04-01 18:49:55","created_on":"2016-04-01 17:41:26","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KYZWBTN1DA\/KYZWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KYZWBTN1ET","fcbh_id":"KYZWBTN1ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KYZ","language_name":"Kayabi","language_english":"Kayabi","language_iso":"kyz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kayab\u00ed","language_family_code":"KYZ","language_family_name":"Kayabi","language_family_english":"Kayabi","language_family_iso":"kyz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-04-01 17:55:34","created_on":"2016-04-01 17:35:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KYZWBTN1ET\/KYZWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KYZWBTN2DA","fcbh_id":"KYZWBTN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KYZ","language_name":"Kayabi","language_english":"Kayabi","language_iso":"kyz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kayab\u00ed","language_family_code":"KYZ","language_family_name":"Kayabi","language_family_english":"Kayabi","language_family_iso":"kyz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-26 17:05:56","created_on":"2014-12-11 19:57:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KYZWBTN2DA\/KYZWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KYZWBTN2ET","fcbh_id":"KYZWBTN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KYZ","language_name":"Kayabi","language_english":"Kayabi","language_iso":"kyz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kayab\u00ed","language_family_code":"KYZ","language_family_name":"Kayabi","language_family_english":"Kayabi","language_family_iso":"kyz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:36","created_on":"2011-10-09 16:51:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KYZWBTN2ET\/KYZWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KZEWBTN2ET","fcbh_id":"KZEWBTN2ET","volume_name":"1980 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KZE","language_name":"Kosena","language_english":"Kosena","language_iso":"kze","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kosena","language_family_code":"KZE","language_family_name":"Kosena","language_family_english":"Kosena","language_family_iso":"kze","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:48","created_on":"2014-07-07 20:31:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KZEWBTN2ET\/KZEWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KZFLAIN2DA","fcbh_id":"KZFLAIN2DA","volume_name":"1998 Today's Da'a Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KZF","language_name":"Kaili, Da'a","language_english":"Kaili, Da'a","language_iso":"kzf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Da'a Kaili","language_family_code":"KZF","language_family_name":"Kaili, Da'a","language_family_english":"Kaili, Da'a","language_family_iso":"kzf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 20:27:34","created_on":"2010-10-05 19:34:22","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2KZFLAI","audio_zip_path":"KZFLAIN2DA\/KZFLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"KZFLAIN2ET","fcbh_id":"KZFLAIN2ET","volume_name":"1998 Today's Da'a Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KZF","language_name":"Kaili, Da'a","language_english":"Kaili, Da'a","language_iso":"kzf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Da'a Kaili","language_family_code":"KZF","language_family_name":"Kaili, Da'a","language_family_english":"Kaili, Da'a","language_family_iso":"kzf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-09 21:52:10","created_on":"2011-05-18 17:38:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KZFLAIN2ET\/KZFLAIN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"KZJAKKN1DA","fcbh_id":"KZJAKKN1DA","volume_name":"AKK Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KZJ","language_name":"Kadazan, Coastal","language_english":"Kadazan, Coastal","language_iso":"kzj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Coastal Kadazan","language_family_code":"KZJ","language_family_name":"Kadazan, Coastal","language_family_english":"Kadazan, Coastal","language_family_iso":"kzj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AKK","version_name":"Archdiocese of Kota Kinabalu","version_english":"Archdiocese of Kota Kinabalu","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-03 17:55:03","created_on":"2017-02-02 22:53:44","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KZJAKKN1DA\/KZJAKKN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KZJAKKN1ET","fcbh_id":"KZJAKKN1ET","volume_name":"AKK Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KZJ","language_name":"Kadazan, Coastal","language_english":"Kadazan, Coastal","language_iso":"kzj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Coastal Kadazan","language_family_code":"KZJ","language_family_name":"Kadazan, Coastal","language_family_english":"Kadazan, Coastal","language_family_iso":"kzj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AKK","version_name":"Archdiocese of Kota Kinabalu","version_english":"Archdiocese of Kota Kinabalu","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-03 17:55:27","created_on":"2017-02-02 22:46:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KZJAKKN1ET\/KZJAKKN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"KZJAKKN2DA","fcbh_id":"KZJAKKN2DA","volume_name":"AKK Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KZJ","language_name":"Kadazan, Coastal","language_english":"Kadazan, Coastal","language_iso":"kzj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Coastal Kadazan","language_family_code":"KZJ","language_family_name":"Kadazan, Coastal","language_family_english":"Kadazan, Coastal","language_family_iso":"kzj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AKK","version_name":"Archdiocese of Kota Kinabalu","version_english":"Archdiocese of Kota Kinabalu","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-03 17:55:53","created_on":"2017-02-02 22:51:22","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"KZJAKKN2DA\/KZJAKKN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"KZJAKKN2ET","fcbh_id":"KZJAKKN2ET","volume_name":"AKK Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"KZJ","language_name":"Kadazan, Coastal","language_english":"Kadazan, Coastal","language_iso":"kzj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Coastal Kadazan","language_family_code":"KZJ","language_family_name":"Kadazan, Coastal","language_family_english":"Kadazan, Coastal","language_family_iso":"kzj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AKK","version_name":"Archdiocese of Kota Kinabalu","version_english":"Archdiocese of Kota Kinabalu","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-23 19:07:26","created_on":"2016-09-15 20:27:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"KZJAKKN2ET\/KZJAKKN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"LACTBLN1DA","fcbh_id":"LACTBLN1DA","volume_name":"1978 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LAC","language_name":"Lacandon","language_english":"Lacandon","language_iso":"lac","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lacandon","language_family_code":"LAC","language_family_name":"Lacandon","language_family_english":"Lacandon","language_family_iso":"lac","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-12-17 22:31:49","created_on":"2014-12-08 17:09:26","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"LACTBLN1DA\/LACTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LACTBLN1ET","fcbh_id":"LACTBLN1ET","volume_name":"1978 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LAC","language_name":"Lacandon","language_english":"Lacandon","language_iso":"lac","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lacandon","language_family_code":"LAC","language_family_name":"Lacandon","language_family_english":"Lacandon","language_family_iso":"lac","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:18","created_on":"2014-03-31 17:00:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LACTBLN1ET\/LACTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LAIBSMN1DA","fcbh_id":"LAIBSMN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LAI","language_name":"Lambya","language_english":"Lambya","language_iso":"lai","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lambya","language_family_code":"LAI","language_family_name":"Lambya","language_family_english":"Lambya","language_family_iso":"lai","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 15:45:57","created_on":"2018-04-25 20:11:44","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LAIBSMN1DA\/LAIBSMN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LAIBSMN2DA","fcbh_id":"LAIBSMN2DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LAI","language_name":"Lambya","language_english":"Lambya","language_iso":"lai","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lambya","language_family_code":"LAI","language_family_name":"Lambya","language_family_english":"Lambya","language_family_iso":"lai","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-18 17:18:05","created_on":"2018-04-25 19:50:32","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LAIBSMN2DA\/LAIBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LAJBSUN2DA","fcbh_id":"LAJBSUN2DA","volume_name":"1978 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LAJ","language_name":"Lango","language_english":"Lango","language_iso":"laj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lango (Uganda)","language_family_code":"LAJ","language_family_name":"Lango","language_family_english":"Lango","language_family_iso":"laj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 22:19:08","created_on":"2011-05-31 20:05:54","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LAJBSUN2DA\/LAJBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LAJBSUN2ET","fcbh_id":"LAJBSUN2ET","volume_name":"1978 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LAJ","language_name":"Lango","language_english":"Lango","language_iso":"laj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lango (Uganda)","language_family_code":"LAJ","language_family_name":"Lango","language_family_english":"Lango","language_family_iso":"laj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:07","created_on":"2014-05-07 19:37:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LAJBSUN2ET\/LAJBSUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LAMBSZN2DA","fcbh_id":"LAMBSZN2DA","volume_name":"1959 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"LAM","language_name":"Lamba for Zambia","language_english":"Lamba for Zambia","language_iso":"lam","language_iso_2B":"lam","language_iso_2T":"lam","language_iso_1":"","language_iso_name":"Lamba","language_family_code":"LAM","language_family_name":"Lamba for Zambia","language_family_english":"Lamba for Zambia","language_family_iso":"lam","language_family_iso_2B":"lam","language_family_iso_2T":"lam","language_family_iso_1":"","version_code":"BSZ","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:34","created_on":"2010-11-25 20:50:16","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2LAMBSZ","audio_zip_path":"LAMBSZN2DA\/LAMBSZN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LAOUBSN2DA","fcbh_id":"LAOUBSN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LAO","language_name":"\u0ea5\u0eb2\u0ea7","language_english":"Lao","language_iso":"lao","language_iso_2B":"lao","language_iso_2T":"lao","language_iso_1":"lo","language_iso_name":"Lao","language_family_code":"LAO","language_family_name":"\u0ea5\u0eb2\u0ea7","language_family_english":"Lao","language_family_iso":"lao","language_family_iso_2B":"lao","language_family_iso_2T":"lao","language_family_iso_1":"lo","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:01","created_on":"2013-04-19 17:27:47","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LAOUBSN2DA\/LAOUBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LAOUBSN2ET","fcbh_id":"LAOUBSN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LAO","language_name":"\u0ea5\u0eb2\u0ea7","language_english":"Lao","language_iso":"lao","language_iso_2B":"lao","language_iso_2T":"lao","language_iso_1":"lo","language_iso_name":"Lao","language_family_code":"LAO","language_family_name":"\u0ea5\u0eb2\u0ea7","language_family_english":"Lao","language_family_iso":"lao","language_family_iso_2B":"lao","language_family_iso_2T":"lao","language_family_iso_1":"lo","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:13","created_on":"2012-10-02 18:09:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LAOUBSN2ET\/LAOUBSN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LASABTN2DA","fcbh_id":"LASABTN2DA","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LAS","language_name":"Lamba for Togo","language_english":"Lamba for Togo","language_iso":"lam","language_iso_2B":"lam","language_iso_2T":"lam","language_iso_1":"","language_iso_name":"Lamba","language_family_code":"LAS","language_family_name":"Lamba for Togo","language_family_english":"Lamba for Togo","language_family_iso":"lam","language_family_iso_2B":"lam","language_family_iso_2T":"lam","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 22:15:45","created_on":"2010-09-14 17:00:27","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2LASABT","audio_zip_path":"LASABTN2DA\/LASABTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LASABTN2ET","fcbh_id":"LASABTN2ET","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LAS","language_name":"Lamba for Togo","language_english":"Lamba for Togo","language_iso":"lam","language_iso_2B":"lam","language_iso_2T":"lam","language_iso_1":"","language_iso_name":"Lamba","language_family_code":"LAS","language_family_name":"Lamba for Togo","language_family_english":"Lamba for Togo","language_family_iso":"lam","language_family_iso_2B":"lam","language_family_iso_2T":"lam","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:36","created_on":"2011-05-12 22:13:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LASABTN2ET\/LASABTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LAWNTMN1DA","fcbh_id":"LAWNTMN1DA","volume_name":"NTM Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LAW","language_name":"Lauje","language_english":"Lauje","language_iso":"law","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lauje","language_family_code":"LAW","language_family_name":"Lauje","language_family_english":"Lauje","language_family_iso":"law","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-21 18:31:38","created_on":"2017-11-20 22:52:02","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LAWNTMN1DA\/LAWNTMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LAWNTMN1ET","fcbh_id":"LAWNTMN1ET","volume_name":"NTM Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LAW","language_name":"Lauje","language_english":"Lauje","language_iso":"law","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lauje","language_family_code":"LAW","language_family_name":"Lauje","language_family_english":"Lauje","language_family_iso":"law","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-21 18:31:20","created_on":"2017-11-20 22:53:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LAWNTMN1ET\/LAWNTMN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"LAWNTMN2DA","fcbh_id":"LAWNTMN2DA","volume_name":"NTM Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LAW","language_name":"Lauje","language_english":"Lauje","language_iso":"law","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lauje","language_family_code":"LAW","language_family_name":"Lauje","language_family_english":"Lauje","language_family_iso":"law","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-21 18:31:01","created_on":"2017-11-20 22:49:48","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LAWNTMN2DA\/LAWNTMN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LAWNTMN2ET","fcbh_id":"LAWNTMN2ET","volume_name":"NTM Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LAW","language_name":"Lauje","language_english":"Lauje","language_iso":"law","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lauje","language_family_code":"LAW","language_family_name":"Lauje","language_family_english":"Lauje","language_family_iso":"law","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-01 18:53:51","created_on":"2017-08-01 18:47:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LAWNTMN2ET\/LAWNTMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"LDIBSCN2DA","fcbh_id":"LDIBSCN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"LDI","language_name":"Lari","language_english":"Lari","language_iso":"ldi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Laari","language_family_code":"LDI","language_family_name":"Lari","language_family_english":"Lari","language_family_iso":"ldi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:09","created_on":"2012-04-16 17:20:11","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LDIBSCN2DA\/LDIBSCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LEEWBTN2DA","fcbh_id":"LEEWBTN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LEE","language_name":"Lyele","language_english":"Lyele","language_iso":"lee","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ly\u00e9l\u00e9","language_family_code":"LEE","language_family_name":"Lyele","language_family_english":"Lyele","language_family_iso":"lee","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:02","created_on":"2010-09-14 17:00:27","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2LEEWBT","audio_zip_path":"LEEWBTN2DA\/LEEWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LEEWBTN2ET","fcbh_id":"LEEWBTN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LEE","language_name":"Lyele","language_english":"Lyele","language_iso":"lee","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ly\u00e9l\u00e9","language_family_code":"LEE","language_family_name":"Lyele","language_family_english":"Lyele","language_family_iso":"lee","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:00","created_on":"2011-05-12 20:48:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LEEWBTN2ET\/LEEWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LEFTBLN2DA","fcbh_id":"LEFTBLN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LEF","language_name":"Lelemi","language_english":"Lelemi","language_iso":"lef","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lelemi","language_family_code":"LEF","language_family_name":"Lelemi","language_family_english":"Lelemi","language_family_iso":"lef","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 23:07:05","created_on":"2010-09-14 17:00:27","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2LEFTBL","audio_zip_path":"LEFTBLN2DA\/LEFTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LEFTBLN2ET","fcbh_id":"LEFTBLN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LEF","language_name":"Lelemi","language_english":"Lelemi","language_iso":"lef","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lelemi","language_family_code":"LEF","language_family_name":"Lelemi","language_family_english":"Lelemi","language_family_iso":"lef","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:54","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2LEFTBL","audio_zip_path":"LEFTBLN2ET\/LEFTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LEGSBPN2DA","fcbh_id":"LEGSBPN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"LEG","language_name":"Enhlit","language_english":"Enhlit","language_iso":"leg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lengua","language_family_code":"LEG","language_family_name":"Enhlit","language_family_english":"Enhlit","language_family_iso":"leg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:47","created_on":"2010-09-14 17:00:27","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2LEGSBP","audio_zip_path":"LEGSBPN2DA\/LEGSBPN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LEMWBTN2DA","fcbh_id":"LEMWBTN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LEM","language_name":"Nomaande","language_english":"Nomaande","language_iso":"lem","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nomaande","language_family_code":"LEM","language_family_name":"Nomaande","language_family_english":"Nomaande","language_family_iso":"lem","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:04","created_on":"2011-11-07 17:20:59","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LEMWBTN2DA\/LEMWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LEMWBTN2ET","fcbh_id":"LEMWBTN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LEM","language_name":"Nomaande","language_english":"Nomaande","language_iso":"lem","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nomaande","language_family_code":"LEM","language_family_name":"Nomaande","language_family_english":"Nomaande","language_family_iso":"lem","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:35","created_on":"2011-05-30 20:00:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LEMWBTN2ET\/LEMWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LEUTBLN2ET","fcbh_id":"LEUTBLN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LEU","language_name":"Kara (Papua New Guinea)","language_english":"Kara (Papua New Guinea)","language_iso":"leu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kara (Papua New Guinea)","language_family_code":"LEU","language_family_name":"Kara (Papua New Guinea)","language_family_english":"Kara (Papua New Guinea)","language_family_iso":"leu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-03 21:30:11","created_on":"2014-05-13 19:21:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LEUTBLN2ET\/LEUTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LEWLAIN1DA","fcbh_id":"LEWLAIN1DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LEW","language_name":"Ledo Kaili","language_english":"Ledo Kaili","language_iso":"lew","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ledo Kaili","language_family_code":"LEW","language_family_name":"Ledo Kaili","language_family_english":"Ledo Kaili","language_family_iso":"lew","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-08 17:26:22","created_on":"2015-07-08 14:50:28","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LEWLAIN1DA\/LEWLAIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LEWLAIN1ET","fcbh_id":"LEWLAIN1ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LEW","language_name":"Ledo Kaili","language_english":"Ledo Kaili","language_iso":"lew","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ledo Kaili","language_family_code":"LEW","language_family_name":"Ledo Kaili","language_family_english":"Ledo Kaili","language_family_iso":"lew","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-14 15:52:32","created_on":"2015-07-14 15:14:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LEWLAIN1ET\/LEWLAIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LEWLAIN2DA","fcbh_id":"LEWLAIN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LEW","language_name":"Ledo Kaili","language_english":"Ledo Kaili","language_iso":"lew","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ledo Kaili","language_family_code":"LEW","language_family_name":"Ledo Kaili","language_family_english":"Ledo Kaili","language_family_iso":"lew","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:07","created_on":"2015-07-08 15:59:42","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LEWLAIN2DA\/LEWLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LEWLAIN2ET","fcbh_id":"LEWLAIN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LEW","language_name":"Ledo Kaili","language_english":"Ledo Kaili","language_iso":"lew","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ledo Kaili","language_family_code":"LEW","language_family_name":"Ledo Kaili","language_family_english":"Ledo Kaili","language_family_iso":"lew","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-14 15:14:03","created_on":"2014-03-19 19:51:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LEWLAIN2ET\/LEWLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LEXWBTN1DA","fcbh_id":"LEXWBTN1DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LEX","language_name":"Luang","language_english":"Luang","language_iso":"lex","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Luang","language_family_code":"LEX","language_family_name":"Luang","language_family_english":"Luang","language_family_iso":"lex","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-23 18:21:11","created_on":"2016-06-27 17:20:08","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LEXWBTN1DA\/LEXWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LEXWBTN1ET","fcbh_id":"LEXWBTN1ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LEX","language_name":"Luang","language_english":"Luang","language_iso":"lex","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Luang","language_family_code":"LEX","language_family_name":"Luang","language_family_english":"Luang","language_family_iso":"lex","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-29 17:26:41","created_on":"2016-06-27 17:31:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LEXWBTN1ET\/LEXWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"LEXWBTN2DA","fcbh_id":"LEXWBTN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LEX","language_name":"Luang","language_english":"Luang","language_iso":"lex","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Luang","language_family_code":"LEX","language_family_name":"Luang","language_family_english":"Luang","language_family_iso":"lex","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-27 17:50:47","created_on":"2016-06-27 17:23:02","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LEXWBTN2DA\/LEXWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LEXWBTN2ET","fcbh_id":"LEXWBTN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LEX","language_name":"Luang","language_english":"Luang","language_iso":"lex","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Luang","language_family_code":"LEX","language_family_name":"Luang","language_family_english":"Luang","language_family_iso":"lex","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-29 17:36:54","created_on":"2015-09-04 18:57:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LEXWBTN2ET\/LEXWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"LGGBSUN2DA","fcbh_id":"LGGBSUN2DA","volume_name":"1966 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LGG","language_name":"Lugbara","language_english":"Lugbara","language_iso":"lgg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lugbara","language_family_code":"LGG","language_family_name":"Lugbara","language_family_english":"Lugbara","language_family_iso":"lgg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-05 00:12:28","created_on":"2011-07-12 21:03:05","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LGGBSUN2DA\/LGGBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LGGBSUN2ET","fcbh_id":"LGGBSUN2ET","volume_name":"1966 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LGG","language_name":"Lugbara","language_english":"Lugbara","language_iso":"lgg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lugbara","language_family_code":"LGG","language_family_name":"Lugbara","language_family_english":"Lugbara","language_family_iso":"lgg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:08","created_on":"2014-05-07 19:43:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LGGBSUN2ET\/LGGBSUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LGLWYIN2ET","fcbh_id":"LGLWYIN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"LGL","language_name":"Wala","language_english":"","language_iso":"lgl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wala","language_family_code":"LGL","language_family_name":"Wala","language_family_english":"","language_family_iso":"lgl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-18 19:09:11","created_on":"2018-10-12 17:56:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LGLWYIN2ET\/LGLWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"LHUTBSN2DA","fcbh_id":"LHUTBSN2DA","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LHU","language_name":"Lahu","language_english":"Lahu","language_iso":"lhu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lahu","language_family_code":"LHU","language_family_name":"Lahu","language_family_english":"Lahu","language_family_iso":"lhu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBS","version_name":"Thailand Bible Society","version_english":"Thailand Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 22:14:40","created_on":"2010-11-25 20:50:14","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2LHUTBS","audio_zip_path":"LHUTBSN2DA\/LHUTBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LHUTBSN2ET","fcbh_id":"LHUTBSN2ET","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LHU","language_name":"Lahu","language_english":"Lahu","language_iso":"lhu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lahu","language_family_code":"LHU","language_family_name":"Lahu","language_family_english":"Lahu","language_family_iso":"lhu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBS","version_name":"Thailand Bible Society","version_english":"Thailand Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:23","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2LHUTBS","audio_zip_path":"LHUTBSN2ET\/LHUTBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LIABSLN2DA","fcbh_id":"LIABSLN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LIA","language_name":"Limba West","language_english":"Limba West","language_iso":"lia","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"West-Central Limba","language_family_code":"LIA","language_family_name":"Limba West","language_family_english":"Limba West","language_family_iso":"lia","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:05","created_on":"2011-06-03 21:32:15","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LIABSLN2DA\/LIABSLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LIABSLN2ET","fcbh_id":"LIABSLN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LIA","language_name":"Limba West","language_english":"Limba West","language_iso":"lia","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"West-Central Limba","language_family_code":"LIA","language_family_name":"Limba West","language_family_english":"Limba West","language_family_iso":"lia","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:40:42","created_on":"2011-05-30 01:34:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LIABSLN2ET\/LIABSLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LIFWBTN2DA","fcbh_id":"LIFWBTN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LIF","language_name":"Limbu","language_english":"Limbu","language_iso":"lif","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Limbu","language_family_code":"LIF","language_family_name":"Limbu","language_family_english":"Limbu","language_family_iso":"lif","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 23:11:47","created_on":"2010-09-14 17:01:14","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2LIFWBT","audio_zip_path":"LIFWBTN2DA\/LIFWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LIFWBTN2ET","fcbh_id":"LIFWBTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LIF","language_name":"Limbu","language_english":"Limbu","language_iso":"lif","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Limbu","language_family_code":"LIF","language_family_name":"Limbu","language_family_english":"Limbu","language_family_iso":"lif","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:16","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2LIFWBT","audio_zip_path":"LIFWBTN2ET\/LIFWBTN2ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LIMBSCN2DA","fcbh_id":"LIMBSCN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"LIM","language_name":"Limbum","language_english":"Limbum","language_iso":"lmp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Limbum","language_family_code":"LIM","language_family_name":"Limbum","language_family_english":"Limbum","language_family_iso":"lmp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:42","created_on":"2010-09-14 17:00:27","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2LIMBSC","audio_zip_path":"LIMBSCN2DA\/LIMBSCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LINRDCN2DA","fcbh_id":"LINRDCN2DA","volume_name":"1982 Boyokant Ya Sika","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"LIN","language_name":"Lingala","language_english":"Lingala","language_iso":"lin","language_iso_2B":"lin","language_iso_2T":"lin","language_iso_1":"ln","language_iso_name":"Lingala","language_family_code":"LIN","language_family_name":"Lingala","language_family_english":"Lingala","language_family_iso":"lin","language_family_iso_2B":"lin","language_family_iso_2T":"lin","language_family_iso_1":"ln","version_code":"RDC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:32","created_on":"2010-09-14 17:00:28","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2LINRDC","audio_zip_path":"LINRDCN2DA\/LINRDCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LIPWBTN2DA","fcbh_id":"LIPWBTN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LIP","language_name":"Sekpele","language_english":"Sekpele","language_iso":"lip","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sekpele","language_family_code":"LIP","language_family_name":"Sekpele","language_family_english":"Sekpele","language_family_iso":"lip","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-06-04 18:00:53","created_on":"2013-11-18 19:54:24","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LIPWBTN2DA\/LIPWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LIPWBTN2ET","fcbh_id":"LIPWBTN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LIP","language_name":"Sekpele","language_english":"Sekpele","language_iso":"lip","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sekpele","language_family_code":"LIP","language_family_name":"Sekpele","language_family_english":"Sekpele","language_family_iso":"lip","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:19","created_on":"2013-08-13 22:22:35","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LIPWBTN2ET\/LIPWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LISTCMN1DA","fcbh_id":"LISTCMN1DA","volume_name":"North Thailand Christian Mission","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LIS","language_name":"Lisu","language_english":"Lisu","language_iso":"lis","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lisu","language_family_code":"LIS","language_family_name":"Lisu","language_family_english":"Lisu","language_family_iso":"lis","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TCM","version_name":"North Thailand Christian Mission","version_english":"North Thailand Christian Mission","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:07","created_on":"2011-05-27 20:54:27","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LISTCMN1DA\/LISTCMN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LISTCMN1ET","fcbh_id":"LISTCMN1ET","volume_name":"North Thailand Christian Mission","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LIS","language_name":"Lisu","language_english":"Lisu","language_iso":"lis","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lisu","language_family_code":"LIS","language_family_name":"Lisu","language_family_english":"Lisu","language_family_iso":"lis","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TCM","version_name":"North Thailand Christian Mission","version_english":"North Thailand Christian Mission","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:18","created_on":"2012-09-28 16:55:35","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LISTCMN1ET\/LISTCMN1ET.zip","font":{"id":"76","name":"Lisu","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lisu","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© NTCM","url":"http:\/\/www.bible.is\/"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LISTCMN2DA","fcbh_id":"LISTCMN2DA","volume_name":"North Thailand Christian Mission","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LIS","language_name":"Lisu","language_english":"Lisu","language_iso":"lis","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lisu","language_family_code":"LIS","language_family_name":"Lisu","language_family_english":"Lisu","language_family_iso":"lis","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TCM","version_name":"North Thailand Christian Mission","version_english":"North Thailand Christian Mission","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:08","created_on":"2011-05-27 20:52:09","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LISTCMN2DA\/LISTCMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LISTCMN2ET","fcbh_id":"LISTCMN2ET","volume_name":"North Thailand Christian Mission","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LIS","language_name":"Lisu","language_english":"Lisu","language_iso":"lis","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lisu","language_family_code":"LIS","language_family_name":"Lisu","language_family_english":"Lisu","language_family_iso":"lis","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TCM","version_name":"North Thailand Christian Mission","version_english":"North Thailand Christian Mission","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:18","created_on":"2012-09-28 16:54:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LISTCMN2ET\/LISTCMN2ET.zip","font":{"id":"76","name":"Lisu","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lisu","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© NTCM","url":"http:\/\/www.bible.is\/"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LITLVKN1DA","fcbh_id":"LITLVKN1DA","volume_name":"LVK Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LIT","language_name":"Lietuvi\u0173","language_english":"Lithuanian","language_iso":"lit","language_iso_2B":"lit","language_iso_2T":"lit","language_iso_1":"lt","language_iso_name":"Lithuanian","language_family_code":"LIT","language_family_name":"Lietuvi\u0173","language_family_english":"Lithuanian","language_family_iso":"lit","language_family_iso_2B":"lit","language_family_iso_2T":"lit","language_family_iso_1":"lt","version_code":"LVK","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:28","created_on":"2010-09-14 16:59:46","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1LITLVK","audio_zip_path":"LITLVKN1DA\/LITLVKN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LJPLAIN2DA","fcbh_id":"LJPLAIN2DA","volume_name":"2002 Today's Lampung Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LJP","language_name":"Lampung","language_english":"Lampung","language_iso":"ljp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lampung Api","language_family_code":"LJP","language_family_name":"Lampung","language_family_english":"Lampung","language_family_iso":"ljp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:12","created_on":"2013-04-22 15:48:45","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LJPLAIN2DA\/LJPLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LJPLAIN2ET","fcbh_id":"LJPLAIN2ET","volume_name":"2002 Today's Lampung Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LJP","language_name":"Lampung","language_english":"Lampung","language_iso":"ljp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lampung Api","language_family_code":"LJP","language_family_name":"Lampung","language_family_english":"Lampung","language_family_iso":"ljp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-09 21:54:34","created_on":"2011-08-08 18:35:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LJPLAIN2ET\/LJPLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LLNABTN1DA","fcbh_id":"LLNABTN1DA","volume_name":"1991 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LLN","language_name":"L\u00e9l\u00e9 (Chad)","language_english":"Lele (Chad)","language_iso":"lln","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lele (Chad)","language_family_code":"LLN","language_family_name":"L\u00e9l\u00e9 (Chad)","language_family_english":"Lele (Chad)","language_family_iso":"lln","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-25 19:21:40","created_on":"2016-01-25 19:06:59","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LLNABTN1DA\/LLNABTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LLNABTN1ET","fcbh_id":"LLNABTN1ET","volume_name":"1991 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LLN","language_name":"L\u00e9l\u00e9 (Chad)","language_english":"Lele (Chad)","language_iso":"lln","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lele (Chad)","language_family_code":"LLN","language_family_name":"L\u00e9l\u00e9 (Chad)","language_family_english":"Lele (Chad)","language_family_iso":"lln","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-25 19:21:56","created_on":"2016-01-25 19:00:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LLNABTN1ET\/LLNABTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"LLNABTN2DA","fcbh_id":"LLNABTN2DA","volume_name":"1991 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LLN","language_name":"L\u00e9l\u00e9 (Chad)","language_english":"Lele (Chad)","language_iso":"lln","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lele (Chad)","language_family_code":"LLN","language_family_name":"L\u00e9l\u00e9 (Chad)","language_family_english":"Lele (Chad)","language_family_iso":"lln","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-25 19:30:28","created_on":"2016-01-25 19:18:12","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LLNABTN2DA\/LLNABTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LLNABTN2ET","fcbh_id":"LLNABTN2ET","volume_name":"1991 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LLN","language_name":"L\u00e9l\u00e9 (Chad)","language_english":"Lele (Chad)","language_iso":"lln","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lele (Chad)","language_family_code":"LLN","language_family_name":"L\u00e9l\u00e9 (Chad)","language_family_english":"Lele (Chad)","language_family_iso":"lln","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:22","created_on":"2014-11-20 23:18:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LLNABTN2ET\/LLNABTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LMKBIVN2ET","fcbh_id":"LMKBIVN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LMK","language_name":"Lamkang","language_english":"Lamkang","language_iso":"lmk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lamkang","language_family_code":"LMK","language_family_name":"Lamkang","language_family_english":"Lamkang","language_family_iso":"lmk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:01","created_on":"2015-07-10 21:52:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LMKBIVN2ET\/LMKBIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LNDBSMN1DA","fcbh_id":"LNDBSMN1DA","volume_name":"1982 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LND","language_name":"Lun Bawang - Lun Dayah","language_english":"Lun Dayah","language_iso":"lnd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lundayeh","language_family_code":"LND","language_family_name":"Lun Bawang - Lun Dayah","language_family_english":"Lun Dayah","language_family_iso":"lnd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-31 16:34:07","created_on":"2016-06-24 19:33:35","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LNDBSMN1DA\/LNDBSMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LNDBSMN1ET","fcbh_id":"LNDBSMN1ET","volume_name":"1982 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LND","language_name":"Lun Bawang - Lun Dayah","language_english":"Lun Dayah","language_iso":"lnd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lundayeh","language_family_code":"LND","language_family_name":"Lun Bawang - Lun Dayah","language_family_english":"Lun Dayah","language_family_iso":"lnd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-31 16:34:07","created_on":"2016-06-29 18:08:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LNDBSMN1ET\/LNDBSMN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LNDBSMN2DA","fcbh_id":"LNDBSMN2DA","volume_name":"1982 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LND","language_name":"Lun Bawang - Lun Dayah","language_english":"Lun Dayah","language_iso":"lnd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lundayeh","language_family_code":"LND","language_family_name":"Lun Bawang - Lun Dayah","language_family_english":"Lun Dayah","language_family_iso":"lnd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-31 16:34:07","created_on":"2016-06-24 20:04:56","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LNDBSMN2DA\/LNDBSMN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LNDBSMN2ET","fcbh_id":"LNDBSMN2ET","volume_name":"1982 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LND","language_name":"Lun Bawang - Lun Dayah","language_english":"Lun Dayah","language_iso":"lnd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lundayeh","language_family_code":"LND","language_family_name":"Lun Bawang - Lun Dayah","language_family_english":"Lun Dayah","language_family_iso":"lnd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:48","created_on":"2014-10-31 19:36:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LNDBSMN2ET\/LNDBSMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LNDBSMO1ET","fcbh_id":"LNDBSMO1ET","volume_name":"1982 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LND","language_name":"Lun Bawang - Lun Dayah","language_english":"Lun Dayah","language_iso":"lnd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lundayeh","language_family_code":"LND","language_family_name":"Lun Bawang - Lun Dayah","language_family_english":"Lun Dayah","language_family_iso":"lnd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2016-10-31 16:34:07","created_on":"2016-06-29 18:12:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LNDBSMO1ET\/LNDBSMO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LNDBSMO2ET","fcbh_id":"LNDBSMO2ET","volume_name":"1982 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LND","language_name":"Lun Bawang - Lun Dayah","language_english":"Lun Dayah","language_iso":"lnd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lundayeh","language_family_code":"LND","language_family_name":"Lun Bawang - Lun Dayah","language_family_english":"Lun Dayah","language_family_iso":"lnd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:48","created_on":"2014-11-04 21:06:47","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LNDBSMO2ET\/LNDBSMO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LNSCABN1DA","fcbh_id":"LNSCABN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LNS","language_name":"Lamnso","language_english":"Lamnso'","language_iso":"lns","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lamnso'","language_family_code":"LNS","language_family_name":"Lamnso","language_family_english":"Lamnso'","language_family_iso":"lns","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAB","version_name":"CABTAL","version_english":"CABTAL","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:42:00","created_on":"2017-11-13 18:52:17","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LNSCABN1DA\/LNSCABN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LNSCABN2DA","fcbh_id":"LNSCABN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LNS","language_name":"Lamnso","language_english":"Lamnso'","language_iso":"lns","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lamnso'","language_family_code":"LNS","language_family_name":"Lamnso","language_family_english":"Lamnso'","language_family_iso":"lns","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAB","version_name":"CABTAL","version_english":"CABTAL","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-14 18:43:09","created_on":"2017-11-07 22:38:14","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LNSCABN2DA\/LNSCABN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LOBBSBN2DA","fcbh_id":"LOBBSBN2DA","volume_name":"1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LOB","language_name":"Lobiri","language_english":"Lobiri","language_iso":"lob","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lobi","language_family_code":"LOB","language_family_name":"Lobiri","language_family_english":"Lobiri","language_family_iso":"lob","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 23:53:43","created_on":"2013-10-25 20:07:07","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"LOBBSBN2DA\/LOBBSBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LOBBSBN2ET","fcbh_id":"LOBBSBN2ET","volume_name":"1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LOB","language_name":"Lobiri","language_english":"Lobiri","language_iso":"lob","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lobi","language_family_code":"LOB","language_family_name":"Lobiri","language_family_english":"Lobiri","language_family_iso":"lob","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:11","created_on":"2013-11-12 20:45:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LOBBSBN2ET\/LOBBSBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LOELAIN2ET","fcbh_id":"LOELAIN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LOE","language_name":"Saluan","language_english":"Saluan","language_iso":"loe","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Saluan","language_family_code":"LOE","language_family_name":"Saluan","language_family_english":"Saluan","language_family_iso":"loe","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:19","created_on":"2014-10-24 17:27:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LOELAIN2ET\/LOELAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LOGWYIN1DA","fcbh_id":"LOGWYIN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LOG","language_name":"Logo","language_english":"Logo","language_iso":"log","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Logo","language_family_code":"LOG","language_family_name":"Logo","language_family_english":"Logo","language_family_iso":"log","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:09","created_on":"2016-10-28 20:36:54","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"LOGWYIN1DA\/LOGWYIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LOGWYIN2DA","fcbh_id":"LOGWYIN2DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LOG","language_name":"Logo","language_english":"Logo","language_iso":"log","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Logo","language_family_code":"LOG","language_family_name":"Logo","language_family_english":"Logo","language_family_iso":"log","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:09","created_on":"2016-10-28 20:41:26","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LOGWYIN2DA\/LOGWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LOKLBTN1DA","fcbh_id":"LOKLBTN1DA","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LOK","language_name":"Loko","language_english":"Loko","language_iso":"lok","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Loko","language_family_code":"LOK","language_family_name":"Loko","language_family_english":"Loko","language_family_iso":"lok","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LBT","version_name":"Lutheran Bible Translators","version_english":"Lutheran Bible Translators","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-30 21:11:11","created_on":"2017-02-07 23:02:46","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LOKLBTN1DA\/LOKLBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LOKLBTN1ET","fcbh_id":"LOKLBTN1ET","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LOK","language_name":"Loko","language_english":"Loko","language_iso":"lok","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Loko","language_family_code":"LOK","language_family_name":"Loko","language_family_english":"Loko","language_family_iso":"lok","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LBT","version_name":"Lutheran Bible Translators","version_english":"Lutheran Bible Translators","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-07 23:03:25","created_on":"2017-02-07 22:12:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LOKLBTN1ET\/LOKLBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"LOKLBTN2DA","fcbh_id":"LOKLBTN2DA","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LOK","language_name":"Loko","language_english":"Loko","language_iso":"lok","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Loko","language_family_code":"LOK","language_family_name":"Loko","language_family_english":"Loko","language_family_iso":"lok","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LBT","version_name":"Lutheran Bible Translators","version_english":"Lutheran Bible Translators","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-07 23:10:03","created_on":"2017-02-07 22:15:18","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LOKLBTN2DA\/LOKLBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LOKLBTN2ET","fcbh_id":"LOKLBTN2ET","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LOK","language_name":"Loko","language_english":"Loko","language_iso":"lok","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Loko","language_family_code":"LOK","language_family_name":"Loko","language_family_english":"Loko","language_family_iso":"lok","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LBT","version_name":"Lutheran Bible Translators","version_english":"Lutheran Bible Translators","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:49","created_on":"2015-03-19 21:46:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LOKLBTN2ET\/LOKLBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LOLDRCN2DA","fcbh_id":"LOLDRCN2DA","volume_name":"1987 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"LOL","language_name":"Lomongo","language_english":"Lomongo","language_iso":"lol","language_iso_2B":"lol","language_iso_2T":"lol","language_iso_1":"","language_iso_name":"Mongo","language_family_code":"LOL","language_family_name":"Lomongo","language_family_english":"Lomongo","language_family_iso":"lol","language_family_iso_2B":"lol","language_family_iso_2T":"lol","language_family_iso_1":"","version_code":"DRC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:04","created_on":"2011-02-02 03:45:49","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2LOLDRC","audio_zip_path":"LOLDRCN2DA\/LOLDRCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LOMBSLN2DA","fcbh_id":"LOMBSLN2DA","volume_name":"1971 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"LOM","language_name":"Lorma","language_english":"Lorma","language_iso":"lom","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Loma (Liberia)","language_family_code":"LOM","language_family_name":"Lorma","language_family_english":"Lorma","language_family_iso":"lom","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:07","created_on":"2011-05-26 20:51:12","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LOMBSLN2DA\/LOMBSLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LONBSMN1DA","fcbh_id":"LONBSMN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LON","language_name":"Elhomwe","language_english":"Malawi Lomwe","language_iso":"lon","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Malawi Lomwe","language_family_code":"LON","language_family_name":"Elhomwe","language_family_english":"Malawi Lomwe","language_family_iso":"lon","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-03 18:20:07","created_on":"2017-02-02 23:21:35","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"LONBSMN1DA\/LONBSMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LONBSMN2DA","fcbh_id":"LONBSMN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LON","language_name":"Elhomwe","language_english":"Malawi Lomwe","language_iso":"lon","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Malawi Lomwe","language_family_code":"LON","language_family_name":"Elhomwe","language_family_english":"Malawi Lomwe","language_family_iso":"lon","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-31 18:17:33","created_on":"2017-02-02 23:05:01","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"LONBSMN2DA\/LONBSMN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LOZBSZN2DA","fcbh_id":"LOZBSZN2DA","volume_name":"1951 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"LOZ","language_name":"Lozi","language_english":"Lozi","language_iso":"loz","language_iso_2B":"loz","language_iso_2T":"loz","language_iso_1":"","language_iso_name":"Lozi","language_family_code":"LOZ","language_family_name":"Lozi","language_family_english":"Lozi","language_family_iso":"loz","language_family_iso_2B":"loz","language_family_iso_2T":"loz","language_family_iso_1":"","version_code":"BSZ","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:34","created_on":"2010-09-14 17:01:07","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2LOZBSZ","audio_zip_path":"LOZBSZN2DA\/LOZBSZN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LSIBSMN1DA","fcbh_id":"LSIBSMN1DA","volume_name":"Lacid Common Language Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LSI","language_name":"Lacid","language_english":"Lashi","language_iso":"lsi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lashi","language_family_code":"LSI","language_family_name":"Lacid","language_family_english":"Lashi","language_family_iso":"lsi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-21 20:38:41","created_on":"2017-06-22 16:24:28","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LSIBSMN1DA\/LSIBSMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LSIBSMN2DA","fcbh_id":"LSIBSMN2DA","volume_name":"Lacid Common Language Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LSI","language_name":"Lacid","language_english":"Lashi","language_iso":"lsi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lashi","language_family_code":"LSI","language_family_name":"Lacid","language_family_english":"Lashi","language_family_iso":"lsi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-21 20:40:31","created_on":"2017-06-22 16:23:16","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LSIBSMN2DA\/LSIBSMN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LSMBSUN2DA","fcbh_id":"LSMBSUN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LSM","language_name":"Lusamya-Lugwe","language_english":"Lusamya-Lugwe","language_iso":"lsm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Saamia","language_family_code":"LSM","language_family_name":"Lusamya-Lugwe","language_family_english":"Lusamya-Lugwe","language_family_iso":"lsm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:15","created_on":"2011-10-06 17:44:58","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LSMBSUN2DA\/LSMBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LSMBSUN2ET","fcbh_id":"LSMBSUN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LSM","language_name":"Lusamya-Lugwe","language_english":"Lusamya-Lugwe","language_iso":"lsm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Saamia","language_family_code":"LSM","language_family_name":"Lusamya-Lugwe","language_family_english":"Lusamya-Lugwe","language_family_iso":"lsm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:09","created_on":"2013-05-17 17:02:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LSMBSUN2ET\/LSMBSUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LTNNVVN1DA","fcbh_id":"LTNNVVN1DA","volume_name":"Neo Vulgata Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LTN","language_name":"Latin","language_english":"Latin","language_iso":"lat","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Latin","language_family_code":"LTN","language_family_name":"Latin","language_family_english":"Latin","language_family_iso":"lat","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":" ","updated_on":"2018-01-31 16:19:59","created_on":"2011-11-22 22:55:07","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LTNNVVN1DA\/LTNNVVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LTNNVVN1ET","fcbh_id":"LTNNVVN1ET","volume_name":"Neo Vulgata Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LTN","language_name":"Latin","language_english":"Latin","language_iso":"lat","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Latin","language_family_code":"LTN","language_family_name":"Latin","language_family_english":"Latin","language_family_iso":"lat","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":" ","updated_on":"2018-05-08 15:57:31","created_on":"2011-11-23 00:03:10","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LTNNVVN1ET\/LTNNVVN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"LTNNVVN2DA","fcbh_id":"LTNNVVN2DA","volume_name":"Neo Vulgata Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"LTN","language_name":"Latin","language_english":"Latin","language_iso":"lat","language_iso_2B":"lat","language_iso_2T":"lat","language_iso_1":"la","language_iso_name":"Latin","language_family_code":"LTN","language_family_name":"Latin","language_family_english":"Latin","language_family_iso":"lat","language_family_iso_2B":"lat","language_family_iso_2T":"lat","language_family_iso_1":"la","version_code":"NVV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":" ","updated_on":"2014-07-14 15:52:30","created_on":"2014-07-01 18:33:50","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LTNNVVN2DA\/LTNNVVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LTNNVVN2ET","fcbh_id":"LTNNVVN2ET","volume_name":"Neo Vulgata Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LTN","language_name":"Latin","language_english":"Latin","language_iso":"lat","language_iso_2B":"lat","language_iso_2T":"lat","language_iso_1":"la","language_iso_name":"Latin","language_family_code":"LTN","language_family_name":"Latin","language_family_english":"Latin","language_family_iso":"lat","language_family_iso_2B":"lat","language_family_iso_2T":"lat","language_family_iso_1":"la","version_code":"NVV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":" ","updated_on":"2018-01-31 16:17:21","created_on":"2013-04-17 16:53:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LTNNVVN2ET\/LTNNVVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LTNNVVO1ET","fcbh_id":"LTNNVVO1ET","volume_name":"Neo Vulgata Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LTN","language_name":"Latin","language_english":"Latin","language_iso":"lat","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Latin","language_family_code":"LTN","language_family_name":"Latin","language_family_english":"Latin","language_family_iso":"lat","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVV","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":" ","updated_on":"2018-01-31 16:20:33","created_on":"2011-12-14 12:09:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LTNNVVO1ET\/LTNNVVO1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"LTNNVVO2ET","fcbh_id":"LTNNVVO2ET","volume_name":"Neo Vulgata Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LTN","language_name":"Latin","language_english":"Latin","language_iso":"lat","language_iso_2B":"lat","language_iso_2T":"lat","language_iso_1":"la","language_iso_name":"Latin","language_family_code":"LTN","language_family_name":"Latin","language_family_english":"Latin","language_family_iso":"lat","language_family_iso_2B":"lat","language_family_iso_2T":"lat","language_family_iso_1":"la","version_code":"NVV","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":" ","updated_on":"2018-01-31 16:19:28","created_on":"2013-04-17 16:57:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LTNNVVO2ET\/LTNNVVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LTZBIVN2ET","fcbh_id":"LTZBIVN2ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"LTZ","language_name":"Luxembourgish","language_english":"Luxembourgish","language_iso":"ltz","language_iso_2B":"ltz","language_iso_2T":"ltz","language_iso_1":"lb","language_iso_name":"Luxembourgish","language_family_code":"LTZ","language_family_name":"Luxembourgish","language_family_english":"Luxembourgish","language_family_iso":"ltz","language_family_iso_2B":"ltz","language_family_iso_2T":"ltz","language_family_iso_1":"lb","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-18 19:38:36","created_on":"2018-10-12 18:07:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LTZBIVN2ET\/LTZBIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"LU1ABUN2DA","fcbh_id":"LUBABUN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"LU1","language_name":"Tshiluba","language_english":"Tshiluba","language_iso":"lub","language_iso_2B":"lub","language_iso_2T":"lub","language_iso_1":"lu","language_iso_name":"Luba-Katanga","language_family_code":"LU1","language_family_name":"Tshiluba","language_family_english":"Tshiluba","language_family_iso":"lub","language_family_iso_2B":"lub","language_family_iso_2T":"lub","language_family_iso_1":"lu","version_code":"ABU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:40","created_on":"2010-09-14 17:00:28","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2LUBABU","audio_zip_path":"LU1ABUN2DA\/LU1ABUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LUBDRCN2DA","fcbh_id":"LUBDRCN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"LUB","language_name":"Kiluba","language_english":"Kiluba","language_iso":"lub","language_iso_2B":"lub","language_iso_2T":"lub","language_iso_1":"lu","language_iso_name":"Luba-Katanga","language_family_code":"LUB","language_family_name":"Kiluba","language_family_english":"Kiluba","language_family_iso":"lub","language_family_iso_2B":"lub","language_family_iso_2T":"lub","language_family_iso_1":"lu","version_code":"DRC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:55","created_on":"2010-09-14 17:00:58","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2LUBDRC","audio_zip_path":"LUBDRCN2DA\/LUBDRCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LUCHLAN1DA","fcbh_id":"LUCHLAN1DA","volume_name":"2013 Here is Life","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LUC","language_name":"Aringa","language_english":"Aringa","language_iso":"luc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Aringa","language_family_code":"LUC","language_family_name":"Aringa","language_family_english":"Aringa","language_family_iso":"luc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"HLA","version_name":"HLA","version_english":"HLA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-06-30 20:30:07","created_on":"2015-06-22 21:53:49","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"LUCHLAN1DA\/LUCHLAN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LUCHLAN1ET","fcbh_id":"LUCHLAN1ET","volume_name":"2013 Here is Life","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LUC","language_name":"Aringa","language_english":"Aringa","language_iso":"luc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Aringa","language_family_code":"LUC","language_family_name":"Aringa","language_family_english":"Aringa","language_family_iso":"luc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"HLA","version_name":"HLA","version_english":"HLA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-31 18:12:43","created_on":"2015-09-11 16:33:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LUCHLAN1ET\/LUCHLAN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"LUCHLAN2DA","fcbh_id":"LUCHLAN2DA","volume_name":"2013 Here is Life","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LUC","language_name":"Aringa","language_english":"Aringa","language_iso":"luc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Aringa","language_family_code":"LUC","language_family_name":"Aringa","language_family_english":"Aringa","language_family_iso":"luc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"HLA","version_name":"HLA","version_english":"HLA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-31 18:13:14","created_on":"2015-06-22 21:44:33","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"LUCHLAN2DA\/LUCHLAN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LUCHLAN2ET","fcbh_id":"LUCHLAN2ET","volume_name":"2013 Here is Life","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LUC","language_name":"Aringa","language_english":"Aringa","language_iso":"luc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Aringa","language_family_code":"LUC","language_family_name":"Aringa","language_family_english":"Aringa","language_family_iso":"luc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"HLA","version_name":"HLA","version_english":"HLA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-31 18:14:32","created_on":"2015-09-10 23:59:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LUCHLAN2ET\/LUCHLAN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"LUGBSUN2DA","fcbh_id":"LUGBSUN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LUG","language_name":"Luganda","language_english":"Luganda","language_iso":"lug","language_iso_2B":"lug","language_iso_2T":"lug","language_iso_1":"lg","language_iso_name":"Ganda","language_family_code":"LUG","language_family_name":"Luganda","language_family_english":"Luganda","language_family_iso":"lug","language_family_iso_2B":"lug","language_family_iso_2T":"lug","language_family_iso_1":"lg","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:43","created_on":"2010-09-14 17:00:28","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2LUGBSU","audio_zip_path":"LUGBSUN2DA\/LUGBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LUNBSZN2DA","fcbh_id":"LUNBSZN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"LUN","language_name":"Lunda","language_english":"Lunda","language_iso":"lun","language_iso_2B":"lun","language_iso_2T":"lun","language_iso_1":"","language_iso_name":"Lunda","language_family_code":"LUN","language_family_name":"Lunda","language_family_english":"Lunda","language_family_iso":"lun","language_family_iso_2B":"lun","language_family_iso_2T":"lun","language_family_iso_1":"","version_code":"BSZ","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:10","created_on":"2012-08-06 16:28:06","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LUNBSZN2DA\/LUNBSZN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LUOBSKN2DA","fcbh_id":"LUOBSKN2DA","volume_name":"1978 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"LUO","language_name":"Luo","language_english":"Luo","language_iso":"luo","language_iso_2B":"luo","language_iso_2T":"luo","language_iso_1":"","language_iso_name":"Luo (Kenya and Tanzania)","language_family_code":"LUO","language_family_name":"Luo","language_family_english":"Luo","language_family_iso":"luo","language_family_iso_2B":"luo","language_family_iso_2T":"luo","language_family_iso_1":"","version_code":"BSK","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:38","created_on":"2010-09-14 17:00:28","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2LUOBSK","audio_zip_path":"LUOBSKN2DA\/LUOBSKN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LUSBIVN2ET","fcbh_id":"LUSBIVN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"LUS","language_name":"Mizo","language_english":"Mizo","language_iso":"lus","language_iso_2B":"lus","language_iso_2T":"lus","language_iso_1":"","language_iso_name":"Lushai","language_family_code":"LUS","language_family_name":"Mizo","language_family_english":"Mizo","language_family_iso":"lus","language_family_iso_2B":"lus","language_family_iso_2T":"lus","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:17","created_on":"2015-07-20 17:41:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LUSBIVN2ET\/LUSBIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"LUYBSKN2DA","fcbh_id":"LUYBSKN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"LUY","language_name":"Oluluyia","language_english":"Oluluyia","language_iso":"luy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Luyia","language_family_code":"LUY","language_family_name":"Oluluyia","language_family_english":"Oluluyia","language_family_iso":"luy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSK","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:50","created_on":"2010-09-14 17:00:29","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2LUYBSK","audio_zip_path":"LUYBSKN2DA\/LUYBSKN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"LWOWBTN2DA","fcbh_id":"LWOWBTN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LWO","language_name":"Luwo","language_english":"Luwo","language_iso":"lwo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Luwo","language_family_code":"LWO","language_family_name":"Luwo","language_family_english":"Luwo","language_family_iso":"lwo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:18","created_on":"2011-11-14 19:01:39","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"LWOWBTN2DA\/LWOWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"LWOWBTN2ET","fcbh_id":"LWOWBTN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LWO","language_name":"Luwo","language_english":"Luwo","language_iso":"lwo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Luwo","language_family_code":"LWO","language_family_name":"Luwo","language_family_english":"Luwo","language_family_iso":"lwo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:35","created_on":"2011-08-30 21:30:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LWOWBTN2ET\/LWOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"LWWWBTN1ET","fcbh_id":"LWWWBTN1ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"LWW","language_name":"Lewo","language_english":"Lewo","language_iso":"lww","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lewo","language_family_code":"LWW","language_family_name":"Lewo","language_family_english":"Lewo","language_family_iso":"lww","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-01 15:40:14","created_on":"2018-07-31 14:53:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"LWWWBTN1ET\/LWWWBTN1ET.zip","font":{"id":"42","name":"Calibri","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Calibri","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MAASAVN2DA","fcbh_id":"MAASAVN2DA","volume_name":"2011 Edition (San Antonio)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAA","language_name":"Mazatec (San Antonio & San Jeronimo)","language_english":"Mazatec (San Antonio & San Jeronimo)","language_iso":"maa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Jer\u00f3nimo Tec\u00f3atl Mazatec","language_family_code":"MAA","language_family_name":"Mazatec (San Antonio & San Jeronimo)","language_family_english":"Mazatec (San Antonio & San Jeronimo)","language_family_iso":"maa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SAV","version_name":"San Antonio","version_english":"San Antonio","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-30 20:51:19","created_on":"2011-07-14 16:13:20","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MAASAVN2DA\/MAASAVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MAASAVN2ET","fcbh_id":"MAASAVN2ET","volume_name":"2011 Edition (San Antonio)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAA","language_name":"Mazatec (San Antonio & San Jeronimo)","language_english":"Mazatec (San Antonio & San Jeronimo)","language_iso":"maa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Jer\u00f3nimo Tec\u00f3atl Mazatec","language_family_code":"MAA","language_family_name":"Mazatec (San Antonio & San Jeronimo)","language_family_english":"Mazatec (San Antonio & San Jeronimo)","language_family_iso":"maa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SAV","version_name":"San Antonio","version_english":"San Antonio","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:18","created_on":"2011-07-14 16:12:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MAASAVN2ET\/MAASAVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MAASJVN2DA","fcbh_id":"MAASJVN2DA","volume_name":"2012 Edition (San Jeronimo)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAA","language_name":"Mazatec (San Antonio & San Jeronimo)","language_english":"Mazatec (San Antonio & San Jeronimo)","language_iso":"maa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Jer\u00f3nimo Tec\u00f3atl Mazatec","language_family_code":"MAA","language_family_name":"Mazatec (San Antonio & San Jeronimo)","language_family_english":"Mazatec (San Antonio & San Jeronimo)","language_family_iso":"maa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SJV","version_name":"San Jeronimo","version_english":"San Jeronimo","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-30 20:51:19","created_on":"2011-07-14 16:27:41","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MAASJVN2DA\/MAASJVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MAASJVN2ET","fcbh_id":"MAASJVN2ET","volume_name":"2012 Edition (San Jeronimo)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAA","language_name":"Mazatec (San Antonio & San Jeronimo)","language_english":"Mazatec (San Antonio & San Jeronimo)","language_iso":"maa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Jer\u00f3nimo Tec\u00f3atl Mazatec","language_family_code":"MAA","language_family_name":"Mazatec (San Antonio & San Jeronimo)","language_family_english":"Mazatec (San Antonio & San Jeronimo)","language_family_iso":"maa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SJV","version_name":"San Jeronimo","version_english":"San Jeronimo","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:24","created_on":"2011-07-14 15:28:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MAASJVN2ET\/MAASJVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MADIBSN2DA","fcbh_id":"MADIBSN2DA","volume_name":"Today's Madura Version, 1994","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAD","language_name":"Madurese","language_english":"Madurese","language_iso":"mad","language_iso_2B":"mad","language_iso_2T":"mad","language_iso_1":"","language_iso_name":"Madurese","language_family_code":"MAD","language_family_name":"Madurese","language_family_english":"Madurese","language_family_iso":"mad","language_family_iso_2B":"mad","language_family_iso_2T":"mad","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:19","created_on":"2010-09-14 17:01:11","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2MADIBS","audio_zip_path":"MADIBSN2DA\/MADIBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MADIBSN2ET","fcbh_id":"MADIBSN2ET","volume_name":"Today's Madura Version, 1994","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAD","language_name":"Madurese","language_english":"Madurese","language_iso":"mad","language_iso_2B":"mad","language_iso_2T":"mad","language_iso_1":"","language_iso_name":"Madurese","language_family_code":"MAD","language_family_name":"Madurese","language_family_english":"Madurese","language_family_iso":"mad","language_family_iso_2B":"mad","language_family_iso_2T":"mad","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-02 21:25:58","created_on":"2011-06-07 22:55:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MADIBSN2ET\/MADIBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MADIBSO2ET","fcbh_id":"MADIBSO2ET","volume_name":"Today's Madura Version, 1994","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAD","language_name":"Madurese","language_english":"Madurese","language_iso":"mad","language_iso_2B":"mad","language_iso_2T":"mad","language_iso_1":"","language_iso_name":"Madurese","language_family_code":"MAD","language_family_name":"Madurese","language_family_english":"Madurese","language_family_iso":"mad","language_family_iso_2B":"mad","language_family_iso_2T":"mad","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-11-02 21:35:21","created_on":"2013-08-13 22:19:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MADIBSO2ET\/MADIBSO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MAFABCN2DA","fcbh_id":"MAFABCN2DA","volume_name":"1989 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MAF","language_name":"Mofa","language_english":"Mofa","language_iso":"maf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mafa","language_family_code":"MAF","language_family_name":"Mofa","language_family_english":"Mofa","language_family_iso":"maf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:03","created_on":"2010-11-25 20:50:17","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2MAFABC","audio_zip_path":"MAFABCN2DA\/MAFABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MAGSSIN1DA","fcbh_id":"MAGSSIN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAG","language_name":"Magahi","language_english":"Magahi","language_iso":"mag","language_iso_2B":"mag","language_iso_2T":"mag","language_iso_1":"","language_iso_name":"Magahi","language_family_code":"MAG","language_family_name":"Magahi","language_family_english":"Magahi","language_family_iso":"mag","language_family_iso_2B":"mag","language_family_iso_2T":"mag","language_family_iso_1":"","version_code":"SSI","version_name":"Asian Sahyogi Sanstha India","version_english":"Asian Sahyogi Sanstha India","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-11 21:16:07","created_on":"2016-02-09 20:16:05","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MAGSSIN1DA\/MAGSSIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MAGSSIN1ET","fcbh_id":"MAGSSIN1ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAG","language_name":"Magahi","language_english":"Magahi","language_iso":"mag","language_iso_2B":"mag","language_iso_2T":"mag","language_iso_1":"","language_iso_name":"Magahi","language_family_code":"MAG","language_family_name":"Magahi","language_family_english":"Magahi","language_family_iso":"mag","language_family_iso_2B":"mag","language_family_iso_2T":"mag","language_family_iso_1":"","version_code":"SSI","version_name":"Asian Sahyogi Sanstha India","version_english":"Asian Sahyogi Sanstha India","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-11 21:33:12","created_on":"2016-02-11 21:24:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MAGSSIN1ET\/MAGSSIN1ET.zip","font":{"id":"5","name":"Annapurna SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Annapurna_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MAGSSIN2DA","fcbh_id":"MAGSSIN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAG","language_name":"Magahi","language_english":"Magahi","language_iso":"mag","language_iso_2B":"mag","language_iso_2T":"mag","language_iso_1":"","language_iso_name":"Magahi","language_family_code":"MAG","language_family_name":"Magahi","language_family_english":"Magahi","language_family_iso":"mag","language_family_iso_2B":"mag","language_family_iso_2T":"mag","language_family_iso_1":"","version_code":"SSI","version_name":"Asian Sahyogi Sanstha India","version_english":"Asian Sahyogi Sanstha India","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-11 21:16:29","created_on":"2016-02-09 20:12:49","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MAGSSIN2DA\/MAGSSIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MAGSSIN2ET","fcbh_id":"MAGSSIN2ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAG","language_name":"Magahi","language_english":"Magahi","language_iso":"mag","language_iso_2B":"mag","language_iso_2T":"mag","language_iso_1":"","language_iso_name":"Magahi","language_family_code":"MAG","language_family_name":"Magahi","language_family_english":"Magahi","language_family_iso":"mag","language_family_iso_2B":"mag","language_family_iso_2T":"mag","language_family_iso_1":"","version_code":"SSI","version_name":"Asian Sahyogi Sanstha India","version_english":"Asian Sahyogi Sanstha India","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-11 21:33:52","created_on":"2016-02-11 21:20:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MAGSSIN2ET\/MAGSSIN2ET.zip","font":{"id":"5","name":"Annapurna SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Annapurna_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MAHWGMN2ET","fcbh_id":"MAHWGMN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAH","language_name":"Marshallese","language_english":"Marshallese","language_iso":"mah","language_iso_2B":"mah","language_iso_2T":"mah","language_iso_1":"mh","language_iso_name":"Marshallese","language_family_code":"MAH","language_family_name":"Marshallese","language_family_english":"Marshallese","language_family_iso":"mah","language_family_iso_2B":"mah","language_family_iso_2T":"mah","language_family_iso_1":"mh","version_code":"WGM","version_name":"Words of Grace Ministries","version_english":"Words of Grace Ministries","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:15","created_on":"2012-06-29 21:19:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MAHWGMN2ET\/MAHWGMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MAHWGMO2ET","fcbh_id":"MAHWGMO2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAH","language_name":"Marshallese","language_english":"Marshallese","language_iso":"mah","language_iso_2B":"mah","language_iso_2T":"mah","language_iso_1":"mh","language_iso_name":"Marshallese","language_family_code":"MAH","language_family_name":"Marshallese","language_family_english":"Marshallese","language_family_iso":"mah","language_family_iso_2B":"mah","language_family_iso_2T":"mah","language_family_iso_1":"mh","version_code":"WGM","version_name":"Words of Grace Ministries","version_english":"Words of Grace Ministries","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:15","created_on":"2012-06-29 21:21:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MAHWGMO2ET\/MAHWGMO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MAIWBTN2DA","fcbh_id":"MAIWBTN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAI","language_name":"Maithili","language_english":"Maithili","language_iso":"mai","language_iso_2B":"mai","language_iso_2T":"mai","language_iso_1":"","language_iso_name":"Maithili","language_family_code":"MAI","language_family_name":"Maithili","language_family_english":"Maithili","language_family_iso":"mai","language_family_iso_2B":"mai","language_family_iso_2T":"mai","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-05 15:15:02","created_on":"2010-12-07 15:00:35","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2MAIWBT","audio_zip_path":"MAIWBTN2DA\/MAIWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MAIWBTN2ET","fcbh_id":"MAIWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAI","language_name":"Maithili","language_english":"Maithili","language_iso":"mai","language_iso_2B":"mai","language_iso_2T":"mai","language_iso_1":"","language_iso_name":"Maithili","language_family_code":"MAI","language_family_name":"Maithili","language_family_english":"Maithili","language_family_iso":"mai","language_family_iso_2B":"mai","language_family_iso_2T":"mai","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-25 18:31:18","created_on":"2011-06-08 22:10:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MAIWBTN2ET\/MAIWBTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MAKLAIN2DA","fcbh_id":"MAKLAIN2DA","volume_name":"Today's Makassar Vesion, 1999","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAK","language_name":"Makassar","language_english":"Makassar","language_iso":"mak","language_iso_2B":"mak","language_iso_2T":"mak","language_iso_1":"","language_iso_name":"Makasar","language_family_code":"MAK","language_family_name":"Makassar","language_family_english":"Makassar","language_family_iso":"mak","language_family_iso_2B":"mak","language_family_iso_2T":"mak","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:21","created_on":"2012-03-01 22:45:17","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MAKLAIN2DA\/MAKLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MAKLAIN2ET","fcbh_id":"MAKLAIN2ET","volume_name":"Today's Makassar Version, 1999","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAK","language_name":"Makassar","language_english":"Makassar","language_iso":"mak","language_iso_2B":"mak","language_iso_2T":"mak","language_iso_1":"","language_iso_name":"Makasar","language_family_code":"MAK","language_family_name":"Makassar","language_family_english":"Makassar","language_family_iso":"mak","language_family_iso_2B":"mak","language_family_iso_2T":"mak","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-26 18:48:22","created_on":"2011-05-30 01:31:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MAKLAIN2ET\/MAKLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MAMSBGN2DA","fcbh_id":"MAMSBGN2DA","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAM","language_name":"Mam, Northern","language_english":"Mam, Northern","language_iso":"mam","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mam","language_family_code":"MAM","language_family_name":"Mam, Northern","language_family_english":"Mam, Northern","language_family_iso":"mam","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBG","version_name":"Sociedad Biblica Guatemala","version_english":"Sociedad Biblica Guatemala","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-05 16:42:15","created_on":"2010-09-14 17:00:29","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2MAMSBG","audio_zip_path":"MAMSBGN2DA\/MAMSBGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MAMSBGN2ET","fcbh_id":"MAMSBGN2ET","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAM","language_name":"Mam, Northern","language_english":"Mam, Northern","language_iso":"mam","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mam","language_family_code":"MAM","language_family_name":"Mam, Northern","language_family_english":"Mam, Northern","language_family_iso":"mam","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBG","version_name":"Sociedad Biblica Guatemala","version_english":"Sociedad Biblica Guatemala","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:50","created_on":"2011-07-07 21:50:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MAMSBGN2ET\/MAMSBGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MAMSBGO2ET","fcbh_id":"MAMSBGO2ET","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAM","language_name":"Mam, Northern","language_english":"Mam, Northern","language_iso":"mam","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mam","language_family_code":"MAM","language_family_name":"Mam, Northern","language_family_english":"Mam, Northern","language_family_iso":"mam","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBG","version_name":"Sociedad Biblica Guatemala","version_english":"Sociedad Biblica Guatemala","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:50","created_on":"2011-07-07 21:52:47","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MAMSBGO2ET\/MAMSBGO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MARWTCN1DA","fcbh_id":"MARWTCN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAR","language_name":"Marathi","language_english":"Marathi","language_iso":"mar","language_iso_2B":"mar","language_iso_2T":"mar","language_iso_1":"mr","language_iso_name":"Marathi","language_family_code":"MAR","language_family_name":"Marathi","language_family_english":"Marathi","language_family_iso":"mar","language_family_iso_2B":"mar","language_family_iso_2T":"mar","language_family_iso_1":"mr","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-05-27 21:32:13","created_on":"2015-05-27 21:05:26","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MARWTCN1DA\/MARWTCN1DA.zip","font":{"id":"74","name":"Lohit-Marathi","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Marathi","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2011-12 Lohit Fonts Project contributors","url":"http:\/\/bit.ly\/1y7P7iU"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MARWTCN1ET","fcbh_id":"MARWTCN1ET","volume_name":"1993 World Bible Translation Center","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAR","language_name":"Marathi","language_english":"Marathi","language_iso":"mar","language_iso_2B":"mar","language_iso_2T":"mar","language_iso_1":"mr","language_iso_name":"Marathi","language_family_code":"MAR","language_family_name":"Marathi","language_family_english":"Marathi","language_family_iso":"mar","language_family_iso_2B":"mar","language_family_iso_2T":"mar","language_family_iso_1":"mr","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-21 19:35:17","created_on":"2015-06-04 16:40:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MARWTCN1ET\/MARWTCN1ET.zip","font":{"id":"74","name":"Lohit-Marathi","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Marathi","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2011-12 Lohit Fonts Project contributors","url":"http:\/\/bit.ly\/1y7P7iU"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","subsplash"],"resolution":[]},{"dam_id":"MARWTCN2DA","fcbh_id":"MARWTCN2DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAR","language_name":"Marathi","language_english":"Marathi","language_iso":"mar","language_iso_2B":"mar","language_iso_2T":"mar","language_iso_1":"mr","language_iso_name":"Marathi","language_family_code":"MAR","language_family_name":"Marathi","language_family_english":"Marathi","language_family_iso":"mar","language_family_iso_2B":"mar","language_family_iso_2T":"mar","language_family_iso_1":"mr","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-05-27 21:38:03","created_on":"2015-05-27 21:08:36","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MARWTCN2DA\/MARWTCN2DA.zip","font":{"id":"74","name":"Lohit-Marathi","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Marathi","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2011-12 Lohit Fonts Project contributors","url":"http:\/\/bit.ly\/1y7P7iU"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MARWTCN2ET","fcbh_id":"MARWTCN2ET","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAR","language_name":"Marathi","language_english":"Marathi","language_iso":"mar","language_iso_2B":"mar","language_iso_2T":"mar","language_iso_1":"mr","language_iso_name":"Marathi","language_family_code":"MAR","language_family_name":"Marathi","language_family_english":"Marathi","language_family_iso":"mar","language_family_iso_2B":"mar","language_family_iso_2T":"mar","language_family_iso_1":"mr","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-21 19:35:18","created_on":"2012-05-09 21:04:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MARWTCN2ET\/MARWTCN2ET.zip","font":{"id":"74","name":"Lohit-Marathi","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Marathi","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2011-12 Lohit Fonts Project contributors","url":"http:\/\/bit.ly\/1y7P7iU"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MAWWBTN2DA","fcbh_id":"MAWWBTN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAW","language_name":"Mampruli","language_english":"Mampruli","language_iso":"maw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mampruli","language_family_code":"MAW","language_family_name":"Mampruli","language_family_english":"Mampruli","language_family_iso":"maw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-05 16:49:44","created_on":"2010-09-14 17:00:29","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2MAWWBT","audio_zip_path":"MAWWBTN2DA\/MAWWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MAWWBTN2ET","fcbh_id":"MAWWBTN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAW","language_name":"Mampruli","language_english":"Mampruli","language_iso":"maw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mampruli","language_family_code":"MAW","language_family_name":"Mampruli","language_family_english":"Mampruli","language_family_iso":"maw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:01","created_on":"2010-11-25 20:49:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2MAWWBT","audio_zip_path":"MAWWBTN2ET\/MAWWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MAZTBLN2DA","fcbh_id":"MAZTBLN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAZ","language_name":"Mazahua, Central","language_english":"Mazahua, Central","language_iso":"maz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Mazahua","language_family_code":"MAZ","language_family_name":"Mazahua, Central","language_family_english":"Mazahua, Central","language_family_iso":"maz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-19 16:41:47","created_on":"2012-06-26 15:13:46","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MAZTBLN2DA\/MAZTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MAZTBLN2ET","fcbh_id":"MAZTBLN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MAZ","language_name":"Mazahua, Central","language_english":"Mazahua, Central","language_iso":"maz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Mazahua","language_family_code":"MAZ","language_family_name":"Mazahua, Central","language_family_english":"Mazahua, Central","language_family_iso":"maz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:21","created_on":"2011-10-10 19:17:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MAZTBLN2ET\/MAZTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MBBWPSN2DA","fcbh_id":"MBBWPSN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MBB","language_name":"Manobo, Western Bukidnon","language_english":"Manobo, Western Bukidnon","language_iso":"mbb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Bukidnon Manobo","language_family_code":"MBB","language_family_name":"Manobo, Western Bukidnon","language_family_english":"Manobo, Western Bukidnon","language_family_iso":"mbb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WPS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-05 17:05:39","created_on":"2010-10-05 19:34:22","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2MBBWPS","audio_zip_path":"MBBWPSN2DA\/MBBWPSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MBBWPSN2ET","fcbh_id":"MBBWPSN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MBB","language_name":"Manobo, Western Bukidnon","language_english":"Manobo, Western Bukidnon","language_iso":"mbb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Bukidnon Manobo","language_family_code":"MBB","language_family_name":"Manobo, Western Bukidnon","language_family_english":"Manobo, Western Bukidnon","language_family_iso":"mbb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WPS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-24 16:55:58","created_on":"2010-11-25 20:50:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2MBBWPS","audio_zip_path":"MBBWPSN2ET\/MBBWPSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MBBWPSO2ET","fcbh_id":"MBBWPSO2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MBB","language_name":"Manobo, Western Bukidnon","language_english":"Manobo, Western Bukidnon","language_iso":"mbb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Bukidnon Manobo","language_family_code":"MBB","language_family_name":"Manobo, Western Bukidnon","language_family_english":"Manobo, Western Bukidnon","language_family_iso":"mbb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WPS","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-09-24 18:19:19","created_on":"2018-09-24 16:47:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MBBWPSO2ET\/MBBWPSO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MBCMVAN2ET","fcbh_id":"MBCMVAN2ET","volume_name":"MEA Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MBC","language_name":"Macushi","language_english":"Macushi","language_iso":"mbc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Macushi","language_family_code":"MBC","language_family_name":"Macushi","language_family_english":"Macushi","language_family_iso":"mbc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MVA","version_name":"Miss\u00e3o Evang\u00e9lica da Amaz\u00f4nia","version_english":"Amazon Evangelical Mission","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-09-22 20:29:27","created_on":"2016-09-22 20:22:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MBCMVAN2ET\/MBCMVAN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MBFNZVN1DA","fcbh_id":"MBFNZVN1DA","volume_name":"1952 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MBF","language_name":"Maori","language_english":"Maori","language_iso":"mri","language_iso_2B":"mao","language_iso_2T":"mri","language_iso_1":"mi","language_iso_name":"Maori","language_family_code":"MBF","language_family_name":"Maori","language_family_english":"Maori","language_family_iso":"mri","language_family_iso_2B":"mao","language_family_iso_2T":"mri","language_family_iso_1":"mi","version_code":"NZV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:30","created_on":"2010-09-14 16:59:46","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1MBFNZV","audio_zip_path":"MBFNZVN1DA\/MBFNZVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MBHTBLN2ET","fcbh_id":"MBHTBLN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MBH","language_name":"Mangseng","language_english":"Mangseng","language_iso":"mbh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mangseng","language_family_code":"MBH","language_family_name":"Mangseng","language_family_english":"Mangseng","language_family_iso":"mbh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 18:19:37","created_on":"2014-05-08 18:24:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MBHTBLN2ET\/MBHTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MBTWBTN2DA","fcbh_id":"MBTWBTN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MBT","language_name":"Matigsalug","language_english":"Matigsalug","language_iso":"mbt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Matigsalug Manobo","language_family_code":"MBT","language_family_name":"Matigsalug","language_family_english":"Matigsalug","language_family_iso":"mbt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:24","created_on":"2011-05-27 18:01:21","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MBTWBTN2DA\/MBTWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MBTWBTN2ET","fcbh_id":"MBTWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MBT","language_name":"Matigsalug","language_english":"Matigsalug","language_iso":"mbt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Matigsalug Manobo","language_family_code":"MBT","language_family_name":"Matigsalug","language_family_english":"Matigsalug","language_family_iso":"mbt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:14","created_on":"2011-06-03 17:18:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MBTWBTN2ET\/MBTWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MCAWYIN2DA","fcbh_id":"MCAWYIN2DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCA","language_name":"Maka","language_english":"Maka","language_iso":"mca","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Maca","language_family_code":"MCA","language_family_name":"Maka","language_family_english":"Maka","language_family_iso":"mca","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-10-03 18:19:15","created_on":"2014-02-28 20:42:00","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MCAWYIN2DA\/MCAWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MCAWYIN2ET","fcbh_id":"MCAWYIN2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCA","language_name":"Maka","language_english":"Maka","language_iso":"mca","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Maca","language_family_code":"MCA","language_family_name":"Maka","language_family_english":"Maka","language_family_iso":"mca","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:23","created_on":"2014-01-07 19:49:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MCAWYIN2ET\/MCAWYIN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MCDTBLN1DA","fcbh_id":"MCDTBLN1DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCD","language_name":"Sharanahua","language_english":"Sharanahua","language_iso":"mcd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sharanahua","language_family_code":"MCD","language_family_name":"Sharanahua","language_family_english":"Sharanahua","language_family_iso":"mcd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-08 15:05:54","created_on":"2016-06-03 17:30:18","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MCDTBLN1DA\/MCDTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MCDTBLN1ET","fcbh_id":"MCDTBLN1ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCD","language_name":"Sharanahua","language_english":"Sharanahua","language_iso":"mcd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sharanahua","language_family_code":"MCD","language_family_name":"Sharanahua","language_family_english":"Sharanahua","language_family_iso":"mcd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-29 20:46:20","created_on":"2016-06-08 14:53:10","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MCDTBLN1ET\/MCDTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MCDTBLN2DA","fcbh_id":"MCDTBLN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCD","language_name":"Sharanahua","language_english":"Sharanahua","language_iso":"mcd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sharanahua","language_family_code":"MCD","language_family_name":"Sharanahua","language_family_english":"Sharanahua","language_family_iso":"mcd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-07 19:29:57","created_on":"2016-06-03 17:36:07","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MCDTBLN2DA\/MCDTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MCDTBLN2ET","fcbh_id":"MCDTBLN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCD","language_name":"Sharanahua","language_english":"Sharanahua","language_iso":"mcd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sharanahua","language_family_code":"MCD","language_family_name":"Sharanahua","language_family_english":"Sharanahua","language_family_iso":"mcd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-29 20:46:59","created_on":"2014-10-25 00:11:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MCDTBLN2ET\/MCDTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MCNABCN2DA","fcbh_id":"MCNABCN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MCN","language_name":"Massana","language_english":"Massana","language_iso":"mcn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Masana","language_family_code":"MCN","language_family_name":"Massana","language_family_english":"Massana","language_family_iso":"mcn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:48","created_on":"2010-09-14 17:00:29","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2MCNABC","audio_zip_path":"MCNABCN2DA\/MCNABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MCOTBLN1DA","fcbh_id":"MCOTBLN1DA","volume_name":"1976 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCO","language_name":"Mixe de Coatlan","language_english":"Mixe de Coatlan","language_iso":"mco","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Coatl\u00e1n Mixe","language_family_code":"MCO","language_family_name":"Mixe de Coatlan","language_family_english":"Mixe de Coatlan","language_family_iso":"mco","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-12 18:52:05","created_on":"2010-09-14 17:01:12","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1MCOTBL","audio_zip_path":"MCOTBLN1DA\/MCOTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MCOTBLN1ET","fcbh_id":"MCOTBLN1ET","volume_name":"1976 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCO","language_name":"Mixe de Coatlan","language_english":"Mixe de Coatlan","language_iso":"mco","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Coatl\u00e1n Mixe","language_family_code":"MCO","language_family_name":"Mixe de Coatlan","language_family_english":"Mixe de Coatlan","language_family_iso":"mco","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:16","created_on":"2013-04-16 21:18:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MCOTBLN1ET\/MCOTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MCOTBLN2DA","fcbh_id":"MCOTBLN2DA","volume_name":"1976 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCO","language_name":"Mixe de Coatlan","language_english":"Mixe de Coatlan","language_iso":"mco","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Coatl\u00e1n Mixe","language_family_code":"MCO","language_family_name":"Mixe de Coatlan","language_family_english":"Mixe de Coatlan","language_family_iso":"mco","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:25","created_on":"2010-10-05 19:34:22","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2MCOTBL","audio_zip_path":"MCOTBLN2DA\/MCOTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MCOTBLN2ET","fcbh_id":"MCOTBLN2ET","volume_name":"1976 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCO","language_name":"Mixe de Coatlan","language_english":"Mixe de Coatlan","language_iso":"mco","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Coatl\u00e1n Mixe","language_family_code":"MCO","language_family_name":"Mixe de Coatlan","language_family_english":"Mixe de Coatlan","language_family_iso":"mco","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:17","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2MCOTBL","audio_zip_path":"MCOTBLN2ET\/MCOTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MCPWBTN1DA","fcbh_id":"MCPWBTN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCP","language_name":"Makaa","language_english":"Makaa","language_iso":"mcp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Makaa","language_family_code":"MCP","language_family_name":"Makaa","language_family_english":"Makaa","language_family_iso":"mcp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-08-10 22:29:30","created_on":"2015-08-10 16:08:15","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MCPWBTN1DA\/MCPWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MCPWBTN1ET","fcbh_id":"MCPWBTN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCP","language_name":"Makaa","language_english":"Makaa","language_iso":"mcp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Makaa","language_family_code":"MCP","language_family_name":"Makaa","language_family_english":"Makaa","language_family_iso":"mcp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:23","created_on":"2015-08-10 16:02:47","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MCPWBTN1ET\/MCPWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MCPWBTN2DA","fcbh_id":"MCPWBTN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCP","language_name":"Makaa","language_english":"Makaa","language_iso":"mcp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Makaa","language_family_code":"MCP","language_family_name":"Makaa","language_family_english":"Makaa","language_family_iso":"mcp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-08-10 16:27:51","created_on":"2015-08-07 21:47:01","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MCPWBTN2DA\/MCPWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MCPWBTN2ET","fcbh_id":"MCPWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCP","language_name":"Makaa","language_english":"Makaa","language_iso":"mcp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Makaa","language_family_code":"MCP","language_family_name":"Makaa","language_family_english":"Makaa","language_family_iso":"mcp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:23","created_on":"2014-10-03 18:12:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MCPWBTN2ET\/MCPWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MCQTBLN1DA","fcbh_id":"MCQTBLN1DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MCQ","language_name":"Ese","language_english":"Ese","language_iso":"mcq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ese","language_family_code":"MCQ","language_family_name":"Ese","language_family_english":"Ese","language_family_iso":"mcq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-16 22:42:23","created_on":"2016-02-16 22:27:59","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MCQTBLN1DA\/MCQTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MCQTBLN1ET","fcbh_id":"MCQTBLN1ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCQ","language_name":"Ese","language_english":"Ese","language_iso":"mcq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ese","language_family_code":"MCQ","language_family_name":"Ese","language_family_english":"Ese","language_family_iso":"mcq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 19:28:53","created_on":"2016-02-16 22:09:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MCQTBLN1ET\/MCQTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MCQTBLN2DA","fcbh_id":"MCQTBLN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MCQ","language_name":"Ese","language_english":"Ese","language_iso":"mcq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ese","language_family_code":"MCQ","language_family_name":"Ese","language_family_english":"Ese","language_family_iso":"mcq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-16 22:43:17","created_on":"2016-02-16 22:11:37","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MCQTBLN2DA\/MCQTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MCQTBLN2ET","fcbh_id":"MCQTBLN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCQ","language_name":"Ese","language_english":"Ese","language_iso":"mcq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ese","language_family_code":"MCQ","language_family_name":"Ese","language_family_english":"Ese","language_family_iso":"mcq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 19:28:53","created_on":"2013-08-26 19:38:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MCQTBLN2ET\/MCQTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MCRPNGN1DA","fcbh_id":"MCRPNGN1DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCR","language_name":"Menya","language_english":"Menya","language_iso":"mcr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Menya","language_family_code":"MCR","language_family_name":"Menya","language_family_english":"Menya","language_family_iso":"mcr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-11 21:45:56","created_on":"2018-07-11 21:12:34","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MCRPNGN1DA\/MCRPNGN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MCRPNGN2DA","fcbh_id":"MCRPNGN2DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCR","language_name":"Menya","language_english":"Menya","language_iso":"mcr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Menya","language_family_code":"MCR","language_family_name":"Menya","language_family_english":"Menya","language_family_iso":"mcr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-11 21:46:20","created_on":"2018-06-29 21:24:34","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"MCRPNGN2DA\/MCRPNGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MCUTBLN2DA","fcbh_id":"MCUTBLN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCU","language_name":"Mambila for Cameroon","language_english":"Mambila for Cameroon","language_iso":"mcu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cameroon Mambila","language_family_code":"MCU","language_family_name":"Mambila for Cameroon","language_family_english":"Mambila for Cameroon","language_family_iso":"mcu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-05 16:46:19","created_on":"2010-09-14 17:00:30","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2MCUTBL","audio_zip_path":"MCUTBLN2DA\/MCUTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MCUTBLN2ET","fcbh_id":"MCUTBLN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MCU","language_name":"Mambila for Cameroon","language_english":"Mambila for Cameroon","language_iso":"mcu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cameroon Mambila","language_family_code":"MCU","language_family_name":"Mambila for Cameroon","language_family_english":"Mambila for Cameroon","language_family_iso":"mcu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:36","created_on":"2011-07-15 21:46:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MCUTBLN2ET\/MCUTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MDAWBTN2DA","fcbh_id":"MDAWBTN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MDA","language_name":"Mada","language_english":"Mada","language_iso":"mda","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mada (Nigeria)","language_family_code":"MDA","language_family_name":"Mada","language_family_english":"Mada","language_family_iso":"mda","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-05 15:07:53","created_on":"2010-09-14 17:01:14","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2MDAWBT","audio_zip_path":"MDAWBTN2DA\/MDAWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MDAWBTN2ET","fcbh_id":"MDAWBTN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MDA","language_name":"Mada","language_english":"Mada","language_iso":"mda","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mada (Nigeria)","language_family_code":"MDA","language_family_name":"Mada","language_family_english":"Mada","language_family_iso":"mda","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:02","created_on":"2010-11-25 20:49:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2MDAWBT","audio_zip_path":"MDAWBTN2ET\/MDAWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MDMWYIN1DA","fcbh_id":"MDMWYIN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MDM","language_name":"Mayogo","language_english":"Mayogo","language_iso":"mdm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mayogo","language_family_code":"MDM","language_family_name":"Mayogo","language_family_english":"Mayogo","language_family_iso":"mdm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-14 16:27:52","created_on":"2016-10-14 16:00:39","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MDMWYIN1DA\/MDMWYIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MDMWYIN2DA","fcbh_id":"MDMWYIN2DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MDM","language_name":"Mayogo","language_english":"Mayogo","language_iso":"mdm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mayogo","language_family_code":"MDM","language_family_name":"Mayogo","language_family_english":"Mayogo","language_family_iso":"mdm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-15 19:39:08","created_on":"2015-07-27 15:43:32","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MDMWYIN2DA\/MDMWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MDYBSEN2DA","fcbh_id":"MDYBSEN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MDY","language_name":"Maale","language_english":"Maale","language_iso":"mdy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Male (Ethiopia)","language_family_code":"MDY","language_family_name":"Maale","language_family_english":"Maale","language_family_iso":"mdy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:27","created_on":"2011-06-14 20:48:14","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MDYBSEN2DA\/MDYBSEN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MDYBSEN2ET","fcbh_id":"MDYBSEN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MDY","language_name":"Maale","language_english":"Maale","language_iso":"mdy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Male (Ethiopia)","language_family_code":"MDY","language_family_name":"Maale","language_family_english":"Maale","language_family_iso":"mdy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-12 22:12:41","created_on":"2013-06-18 21:20:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MDYBSEN2ET\/MDYBSEN2ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MDYBSEO2ET","fcbh_id":"MDYBSEO2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MDY","language_name":"Maale","language_english":"Maale","language_iso":"mdy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Male (Ethiopia)","language_family_code":"MDY","language_family_name":"Maale","language_family_english":"Maale","language_family_iso":"mdy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-04-17 19:31:14","created_on":"2017-04-12 22:12:47","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MDYBSEO2ET\/MDYBSEO2ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ME1PNGN1DA","fcbh_id":"ME1PNGN1DA","volume_name":"PNG Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ME1","language_name":"Mato","language_english":"Mato","language_iso":"met","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mato","language_family_code":"ME1","language_family_name":"Mato","language_family_english":"Mato","language_family_iso":"met","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 19:15:59","created_on":"2018-10-15 21:17:12","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ME1PNGN1DA\/ME1PNGN1DA.zip","font":{"id":"42","name":"Calibri","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Calibri","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"ME1PNGN1ET","fcbh_id":"ME1PNGN1ET","volume_name":"PNG Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ME1","language_name":"Mato","language_english":"Mato","language_iso":"met","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mato","language_family_code":"ME1","language_family_name":"Mato","language_family_english":"Mato","language_family_iso":"met","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 19:16:24","created_on":"2018-10-15 21:13:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ME1PNGN1ET\/ME1PNGN1ET.zip","font":{"id":"42","name":"Calibri","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Calibri","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ME1PNGN2DA","fcbh_id":"ME1PNGN2DA","volume_name":"PNG Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ME1","language_name":"Mato","language_english":"Mato","language_iso":"met","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mato","language_family_code":"ME1","language_family_name":"Mato","language_family_english":"Mato","language_family_iso":"met","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 19:16:43","created_on":"2018-10-15 18:29:21","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ME1PNGN2DA\/ME1PNGN2DA.zip","font":{"id":"42","name":"Calibri","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Calibri","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"ME1PNGN2ET","fcbh_id":"ME1PNGN2ET","volume_name":"PNG Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ME1","language_name":"Mato","language_english":"Mato","language_iso":"met","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mato","language_family_code":"ME1","language_family_name":"Mato","language_family_english":"Mato","language_family_iso":"met","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-25 21:40:51","created_on":"2018-09-21 23:27:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ME1PNGN2ET\/ME1PNGN2ET.zip","font":{"id":"42","name":"Calibri","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Calibri","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MEDPNGN1ET","fcbh_id":"MEDPNGN1ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MED","language_name":"Melpa","language_english":"Melpa","language_iso":"med","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Melpa","language_family_code":"MED","language_family_name":"Melpa","language_family_english":"Melpa","language_family_iso":"med","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-28 17:22:12","created_on":"2015-11-06 20:29:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MEDPNGN1ET\/MEDPNGN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MEDPNGN2ET","fcbh_id":"MEDPNGN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MED","language_name":"Melpa","language_english":"Melpa","language_iso":"med","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Melpa","language_family_code":"MED","language_family_name":"Melpa","language_family_english":"Melpa","language_family_iso":"med","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-28 17:21:52","created_on":"2014-05-13 19:24:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MEDPNGN2ET\/MEDPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MEETBLN2ET","fcbh_id":"MEETBLN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MEE","language_name":"Mengen","language_english":"Mengen","language_iso":"mee","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mengen","language_family_code":"MEE","language_family_name":"Mengen","language_family_english":"Mengen","language_family_iso":"mee","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 19:54:34","created_on":"2014-05-13 19:30:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MEETBLN2ET\/MEETBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MEJTBLN1DA","fcbh_id":"MEJTBLN1DA","volume_name":"Yayasan Sumber Sejahtera","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MEJ","language_name":"Meyah","language_english":"Meyah","language_iso":"mej","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Meyah","language_family_code":"MEJ","language_family_name":"Meyah","language_family_english":"Meyah","language_family_iso":"mej","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-30 22:21:46","created_on":"2017-01-10 16:39:46","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MEJTBLN1DA\/MEJTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MEJTBLN1ET","fcbh_id":"MEJTBLN1ET","volume_name":"Yayasan Sumber Sejahtera","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MEJ","language_name":"Meyah","language_english":"Meyah","language_iso":"mej","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Meyah","language_family_code":"MEJ","language_family_name":"Meyah","language_family_english":"Meyah","language_family_iso":"mej","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-30 22:23:15","created_on":"2017-01-10 16:38:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MEJTBLN1ET\/MEJTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MEJTBLN2DA","fcbh_id":"MEJTBLN2DA","volume_name":"Yayasan Sumber Sejahtera","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MEJ","language_name":"Meyah","language_english":"Meyah","language_iso":"mej","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Meyah","language_family_code":"MEJ","language_family_name":"Meyah","language_family_english":"Meyah","language_family_iso":"mej","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-30 22:22:39","created_on":"2017-01-10 16:40:41","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MEJTBLN2DA\/MEJTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MEJTBLN2ET","fcbh_id":"MEJTBLN2ET","volume_name":"Yayasan Sumber Sejahtera","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MEJ","language_name":"Meyah","language_english":"Meyah","language_iso":"mej","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Meyah","language_family_code":"MEJ","language_family_name":"Meyah","language_family_english":"Meyah","language_family_iso":"mej","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-30 22:22:21","created_on":"2012-04-16 20:40:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MEJTBLN2ET\/MEJTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MEKPNGN2ET","fcbh_id":"MEKPNGN2ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MEK","language_name":"Mekeo","language_english":"Mekeo","language_iso":"mek","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mekeo","language_family_code":"MEK","language_family_name":"Mekeo","language_family_english":"Mekeo","language_family_iso":"mek","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 19:49:42","created_on":"2014-05-08 18:35:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MEKPNGN2ET\/MEKPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MENBSLN2DA","fcbh_id":"MENBSLN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MEN","language_name":"Mende","language_english":"Mende","language_iso":"men","language_iso_2B":"men","language_iso_2T":"men","language_iso_1":"","language_iso_name":"Mende (Sierra Leone)","language_family_code":"MEN","language_family_name":"Mende","language_family_english":"Mende","language_family_iso":"men","language_family_iso_2B":"men","language_family_iso_2T":"men","language_family_iso_1":"","version_code":"BSL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-11 23:02:40","created_on":"2010-09-14 17:00:30","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2MENBSL","audio_zip_path":"MENBSLN2DA\/MENBSLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MENBSLN2ET","fcbh_id":"MENBSLN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MEN","language_name":"Mende","language_english":"Mende","language_iso":"men","language_iso_2B":"men","language_iso_2T":"men","language_iso_1":"","language_iso_name":"Mende (Sierra Leone)","language_family_code":"MEN","language_family_name":"Mende","language_family_english":"Mende","language_family_iso":"men","language_family_iso_2B":"men","language_family_iso_2T":"men","language_family_iso_1":"","version_code":"BSL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:11","created_on":"2011-08-03 19:42:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MENBSLN2ET\/MENBSLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MEQWBTN2DA","fcbh_id":"MEQWBTN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MEQ","language_name":"Merey","language_english":"Merey","language_iso":"meq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Merey","language_family_code":"MEQ","language_family_name":"Merey","language_family_english":"Merey","language_family_iso":"meq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-11 23:05:45","created_on":"2013-10-08 19:16:24","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MEQWBTN2DA\/MEQWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MEQWBTN2ET","fcbh_id":"MEQWBTN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MEQ","language_name":"Merey","language_english":"Merey","language_iso":"meq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Merey","language_family_code":"MEQ","language_family_name":"Merey","language_family_english":"Merey","language_family_iso":"meq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:25","created_on":"2012-11-01 18:10:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MEQWBTN2ET\/MEQWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MERUBSN2DA","fcbh_id":"MERUBSN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MER","language_name":"Kimeru","language_english":"Kimeru","language_iso":"mer","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Meru","language_family_code":"MER","language_family_name":"Kimeru","language_family_english":"Kimeru","language_family_iso":"mer","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:09","created_on":"2012-07-02 17:59:37","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MERUBSN2DA\/MERUBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"METBSVN2DA","fcbh_id":"METBSVN2DA","volume_name":"1991 Biblia Sinyati Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MET","language_name":"Maasai","language_english":"Maasai","language_iso":"mas","language_iso_2B":"mas","language_iso_2T":"mas","language_iso_1":"","language_iso_name":"Masai","language_family_code":"MET","language_family_name":"Maasai","language_family_english":"Maasai","language_family_iso":"mas","language_family_iso_2B":"mas","language_family_iso_2T":"mas","language_family_iso_1":"","version_code":"BSV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:40","created_on":"2010-09-14 17:00:30","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2METBSV","audio_zip_path":"METBSVN2DA\/METBSVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MEUPNGN2ET","fcbh_id":"MEUPNGN2ET","volume_name":"1973 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MEU","language_name":"Motu","language_english":"Motu","language_iso":"meu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Motu","language_family_code":"MEU","language_family_name":"Motu","language_family_english":"Motu","language_family_iso":"meu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:46","created_on":"2014-04-29 20:13:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MEUPNGN2ET\/MEUPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MEUPNGO2ET","fcbh_id":"MEUPNGO2ET","volume_name":"1973 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MEU","language_name":"Motu","language_english":"Motu","language_iso":"meu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Motu","language_family_code":"MEU","language_family_name":"Motu","language_family_english":"Motu","language_family_iso":"meu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:46","created_on":"2014-04-29 20:48:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MEUPNGO2ET\/MEUPNGO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MEVBSLN2DA","fcbh_id":"MEVBSLN2DA","volume_name":"1978 Edition","status":"live","dbp_agreement":"false","expiration":"2020-12-31","language_code":"MEV","language_name":"Mano","language_english":"Mano","language_iso":"mev","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mann","language_family_code":"MEV","language_family_name":"Mano","language_family_english":"Mano","language_family_iso":"mev","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:09","created_on":"2011-05-31 19:12:14","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MEVBSLN2DA\/MEVBSLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MF1WBTN2DA","fcbh_id":"MF1WBTN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MF1","language_name":"Moba","language_english":"Moba","language_iso":"mf1","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Moba","language_family_code":"MF1","language_family_name":"Moba","language_family_english":"Moba","language_family_iso":"mf1","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2013-10-25 23:58:29","created_on":"2012-01-03 20:13:31","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MF1WBTN2DA\/MF1WBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MF1WBTN2ET","fcbh_id":"MF1WBTN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MF1","language_name":"Moba","language_english":"Moba","language_iso":"mf1","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Moba","language_family_code":"MF1","language_family_name":"Moba","language_family_english":"Moba","language_family_iso":"mf1","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"New Testament","updated_on":"2018-01-25 21:36:37","created_on":"2012-07-16 16:30:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MF1WBTN2ET\/MF1WBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MFEBSMN2DA","fcbh_id":"MFEBSMN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MFE","language_name":"Mauritian Kreol","language_english":"Mauritian Kreol","language_iso":"mfe","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Morisyen","language_family_code":"MFE","language_family_name":"Mauritian Kreol","language_family_english":"Mauritian Kreol","language_family_iso":"mfe","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:29","created_on":"2013-02-15 22:31:57","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MFEBSMN2DA\/MFEBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MFEBSMN2ET","fcbh_id":"MFEBSMN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MFE","language_name":"Mauritian Kreol","language_english":"Mauritian Kreol","language_iso":"mfe","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Morisyen","language_family_code":"MFE","language_family_name":"Mauritian Kreol","language_family_english":"Mauritian Kreol","language_family_iso":"mfe","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:20","created_on":"2013-03-04 21:21:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MFEBSMN2ET\/MFEBSMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MFHWYIN2DA","fcbh_id":"MFHWYIN2DA","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MFH","language_name":"Matal","language_english":"Matal","language_iso":"mfh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Matal","language_family_code":"MFH","language_family_name":"Matal","language_family_english":"Matal","language_family_iso":"mfh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:30","created_on":"2011-05-17 22:01:43","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MFHWYIN2DA\/MFHWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MFHWYIN2ET","fcbh_id":"MFHWYIN2ET","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MFH","language_name":"Matal","language_english":"Matal","language_iso":"mfh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Matal","language_family_code":"MFH","language_family_name":"Matal","language_family_english":"Matal","language_family_iso":"mfh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:06","created_on":"2011-06-02 21:13:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MFHWYIN2ET\/MFHWYIN2ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MFIWYIN2DA","fcbh_id":"MFIWYIN2DA","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MFI","language_name":"Mandara","language_english":"Mandara","language_iso":"mfi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wandala","language_family_code":"MFI","language_family_name":"Mandara","language_family_english":"Mandara","language_family_iso":"mfi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:30","created_on":"2010-12-07 15:00:35","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2MFIWYI","audio_zip_path":"MFIWYIN2DA\/MFIWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MFIWYIN2ET","fcbh_id":"MFIWYIN2ET","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MFI","language_name":"Mandara","language_english":"Mandara","language_iso":"mfi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wandala","language_family_code":"MFI","language_family_name":"Mandara","language_family_english":"Mandara","language_family_iso":"mfi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:06","created_on":"2011-05-09 23:21:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MFIWYIN2ET\/MFIWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MFKABCN1DA","fcbh_id":"MFKABCN1DA","volume_name":"1975 Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MFK","language_name":"Mofu, North","language_english":"Mofu, North","language_iso":"mfk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"North Mofu","language_family_code":"MFK","language_family_name":"Mofu, North","language_family_english":"Mofu, North","language_family_iso":"mfk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-30 17:59:30","created_on":"2016-07-18 20:32:01","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MFKABCN1DA\/MFKABCN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MFKABCN1ET","fcbh_id":"MFKABCN1ET","volume_name":"1975 Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MFK","language_name":"Mofu, North","language_english":"Mofu, North","language_iso":"mfk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"North Mofu","language_family_code":"MFK","language_family_name":"Mofu, North","language_family_english":"Mofu, North","language_family_iso":"mfk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:03:46","created_on":"2016-07-22 16:57:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MFKABCN1ET\/MFKABCN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MFKABCN2DA","fcbh_id":"MFKABCN2DA","volume_name":"1975 Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MFK","language_name":"Mofu, North","language_english":"Mofu, North","language_iso":"mfk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"North Mofu","language_family_code":"MFK","language_family_name":"Mofu, North","language_family_english":"Mofu, North","language_family_iso":"mfk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-30 18:05:55","created_on":"2016-07-18 20:33:05","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MFKABCN2DA\/MFKABCN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MFKABCN2ET","fcbh_id":"MFKABCN2ET","volume_name":"1975 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MFK","language_name":"Mofu, North","language_english":"Mofu, North","language_iso":"mfk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"North Mofu","language_family_code":"MFK","language_family_name":"Mofu, North","language_family_english":"Mofu, North","language_family_iso":"mfk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:17","created_on":"2014-10-21 17:37:44","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MFKABCN2ET\/MFKABCN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MFQABTN2DA","fcbh_id":"MFQABTN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MFQ","language_name":"Moba Lok","language_english":"Moba Lok","language_iso":"mfq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Moba","language_family_code":"MFQ","language_family_name":"Moba Lok","language_family_english":"Moba Lok","language_family_iso":"mfq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:30","created_on":"2012-12-17 19:55:13","right_to_left":"false","num_art":"0","num_sample_audio":"1","sku":"","audio_zip_path":"MFQABTN2DA\/MFQABTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MFQABTN2ET","fcbh_id":"MFQABTN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MFQ","language_name":"Moba Lok","language_english":"Moba Lok","language_iso":"mfq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Moba","language_family_code":"MFQ","language_family_name":"Moba Lok","language_family_english":"Moba Lok","language_family_iso":"mfq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:12","created_on":"2011-10-17 21:55:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MFQABTN2ET\/MFQABTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MFYWBTN2DA","fcbh_id":"MFYWBTN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MFY","language_name":"Mayo","language_english":"Mayo","language_iso":"mfy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mayo","language_family_code":"MFY","language_family_name":"Mayo","language_family_english":"Mayo","language_family_iso":"mfy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-13 19:43:22","created_on":"2014-01-13 18:30:10","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MFYWBTN2DA\/MFYWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MFYWBTN2ET","fcbh_id":"MFYWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MFY","language_name":"Mayo","language_english":"Mayo","language_iso":"mfy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mayo","language_family_code":"MFY","language_family_name":"Mayo","language_family_english":"Mayo","language_family_iso":"mfy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:28:30","created_on":"2013-09-27 17:42:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MFYWBTN2ET\/MFYWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MFZBSSN2DA","fcbh_id":"MFZBSSN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MFZ","language_name":"Mabaan","language_english":"Mabaan","language_iso":"mfz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mabaan","language_family_code":"MFZ","language_family_name":"Mabaan","language_family_english":"Mabaan","language_family_iso":"mfz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-05-22 16:14:58","created_on":"2011-06-22 17:39:50","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MFZBSSN2DA\/MFZBSSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MFZBSSN2ET","fcbh_id":"MFZBSSN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MFZ","language_name":"Mabaan","language_english":"Mabaan","language_iso":"mfz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mabaan","language_family_code":"MFZ","language_family_name":"Mabaan","language_family_english":"Mabaan","language_family_iso":"mfz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:17","created_on":"2011-06-27 17:21:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MFZBSSN2ET\/MFZBSSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MGDBSSN1DA","fcbh_id":"MGDBSSN1DA","volume_name":"BSS 1996 Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MGD","language_name":"Moru","language_english":"Moru","language_iso":"mgd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Moru","language_family_code":"MGD","language_family_name":"Moru","language_family_english":"Moru","language_family_iso":"mgd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-19 17:25:33","created_on":"2016-08-01 15:51:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MGDBSSN1DA\/MGDBSSN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MGDBSSN2DA","fcbh_id":"MGDBSSN2DA","volume_name":"BSS 1996 Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MGD","language_name":"Moru","language_english":"Moru","language_iso":"mgd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Moru","language_family_code":"MGD","language_family_name":"Moru","language_family_english":"Moru","language_family_iso":"mgd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-01 20:15:10","created_on":"2016-08-01 15:54:48","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MGDBSSN2DA\/MGDBSSN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MGHPBTN1ET","fcbh_id":"MGHPBTN1ET","volume_name":"PBT Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MGH","language_name":"Makhuwa-Meetto","language_english":"Makhuwa-Meetto","language_iso":"mgh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Makhuwa-Meetto","language_family_code":"MGH","language_family_name":"Makhuwa-Meetto","language_family_english":"Makhuwa-Meetto","language_family_iso":"mgh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-19 18:10:12","created_on":"2018-04-19 16:13:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MGHPBTN1ET\/MGHPBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MGOWYIN1DA","fcbh_id":"MGOWYIN1DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MGO","language_name":"Meta","language_english":"Meta","language_iso":"mgo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Meta'","language_family_code":"MGO","language_family_name":"Meta","language_family_english":"Meta","language_family_iso":"mgo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-03 21:09:27","created_on":"2017-08-03 20:56:38","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MGOWYIN1DA\/MGOWYIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","sign_language","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MGOWYIN1ET","fcbh_id":"MGOWYIN1ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MGO","language_name":"Meta","language_english":"Meta","language_iso":"mgo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Meta'","language_family_code":"MGO","language_family_name":"Meta","language_family_english":"Meta","language_family_iso":"mgo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-03 21:05:17","created_on":"2017-08-03 20:44:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MGOWYIN1ET\/MGOWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MGOWYIN2DA","fcbh_id":"MGOWYIN2DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MGO","language_name":"Meta","language_english":"Meta","language_iso":"mgo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Meta'","language_family_code":"MGO","language_family_name":"Meta","language_family_english":"Meta","language_family_iso":"mgo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-03 21:05:17","created_on":"2017-08-03 20:46:58","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MGOWYIN2DA\/MGOWYIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MGOWYIN2ET","fcbh_id":"MGOWYIN2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MGO","language_name":"Meta","language_english":"Meta","language_iso":"mgo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Meta'","language_family_code":"MGO","language_family_name":"Meta","language_family_english":"Meta","language_family_iso":"mgo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-03 20:53:02","created_on":"2014-10-03 18:26:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MGOWYIN2ET\/MGOWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MGRBSZN2DA","fcbh_id":"MGRBSZN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MGR","language_name":"Mambwe-Lungu","language_english":"Mambwe-Lungu","language_iso":"mgr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mambwe-Lungu","language_family_code":"MGR","language_family_name":"Mambwe-Lungu","language_family_english":"Mambwe-Lungu","language_family_iso":"mgr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSZ","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:57","created_on":"2010-10-05 19:34:19","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2MGRBSZ","audio_zip_path":"MGRBSZN2DA\/MGRBSZN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MHIBSUN2DA","fcbh_id":"MHIBSUN2DA","volume_name":"1977 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MHI","language_name":"Ma'di","language_english":"Ma'di","language_iso":"mhi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ma'di","language_family_code":"MHI","language_family_name":"Ma'di","language_family_english":"Ma'di","language_family_iso":"mhi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-28 20:23:18","created_on":"2013-09-24 19:28:25","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MHIBSUN2DA\/MHIBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MHIBSUN2ET","fcbh_id":"MHIBSUN2ET","volume_name":"1977 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MHI","language_name":"Ma'di","language_english":"Ma'di","language_iso":"mhi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ma'di","language_family_code":"MHI","language_family_name":"Ma'di","language_family_english":"Ma'di","language_family_iso":"mhi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:08","created_on":"2013-08-13 22:14:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MHIBSUN2ET\/MHIBSUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MHLPNGN2ET","fcbh_id":"MHLPNGN2ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MHL","language_name":"Mawake","language_english":"Mauwake","language_iso":"mhl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mauwake","language_family_code":"MHL","language_family_name":"Mawake","language_family_english":"Mauwake","language_family_iso":"mhl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-28 17:02:08","created_on":"2014-05-08 23:06:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MHLPNGN2ET\/MHLPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MHMCATN2DA","fcbh_id":"MHMCATN2DA","volume_name":"1998 Roman Catholic Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MHM","language_name":"Moore","language_english":"Moore","language_iso":"mos","language_iso_2B":"mos","language_iso_2T":"mos","language_iso_1":"","language_iso_name":"Mossi","language_family_code":"MHM","language_family_name":"Moore","language_family_english":"Moore","language_family_iso":"mos","language_family_iso_2B":"mos","language_family_iso_2T":"mos","language_family_iso_1":"","version_code":"CAT","version_name":"Catholic Version","version_english":"Catholic Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-12 19:48:15","created_on":"2010-09-14 17:00:04","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2MHMCAT","audio_zip_path":"MHMCATN2DA\/MHMCATN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MHMCATN2ET","fcbh_id":"MHMCATN2ET","volume_name":"1998 Roman Catholic Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MHM","language_name":"Moore","language_english":"Moore","language_iso":"mos","language_iso_2B":"mos","language_iso_2T":"mos","language_iso_1":"","language_iso_name":"Mossi","language_family_code":"MHM","language_family_name":"Moore","language_family_english":"Moore","language_family_iso":"mos","language_family_iso_2B":"mos","language_family_iso_2T":"mos","language_family_iso_1":"","version_code":"CAT","version_name":"Catholic Version","version_english":"Catholic Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:21","created_on":"2011-07-01 18:10:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MHMCATN2ET\/MHMCATN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MHRIBTN2ET","fcbh_id":"MHRIBTN2ET","volume_name":"Institute for Bible Translation","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MHR","language_name":"Mari-Meadow","language_english":"Mari-Meadow","language_iso":"mhr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Mari","language_family_code":"MHR","language_family_name":"Mari-Meadow","language_family_english":"Mari-Meadow","language_family_iso":"mhr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-02 13:56:14","created_on":"2012-05-09 21:34:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MHRIBTN2ET\/MHRIBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MHXBSMN1DA","fcbh_id":"MHXBSMN1DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MHX","language_name":"Lhaovo","language_english":"Lhaovo","language_iso":"mhx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Maru","language_family_code":"MHX","language_family_name":"Lhaovo","language_family_english":"Lhaovo","language_family_iso":"mhx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-26 15:09:49","created_on":"2015-10-26 14:38:08","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MHXBSMN1DA\/MHXBSMN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MHXBSMN1ET","fcbh_id":"MHXBSMN1ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MHX","language_name":"Lhaovo","language_english":"Lhaovo","language_iso":"mhx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Maru","language_family_code":"MHX","language_family_name":"Lhaovo","language_family_english":"Lhaovo","language_family_iso":"mhx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-26 15:10:13","created_on":"2015-10-26 14:44:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MHXBSMN1ET\/MHXBSMN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MHXBSMN2DA","fcbh_id":"MHXBSMN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MHX","language_name":"Lhaovo","language_english":"Lhaovo","language_iso":"mhx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Maru","language_family_code":"MHX","language_family_name":"Lhaovo","language_family_english":"Lhaovo","language_family_iso":"mhx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-26 15:10:37","created_on":"2015-10-26 14:24:30","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MHXBSMN2DA\/MHXBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MHXBSMN2ET","fcbh_id":"MHXBSMN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MHX","language_name":"Lhaovo","language_english":"Lhaovo","language_iso":"mhx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Maru","language_family_code":"MHX","language_family_name":"Lhaovo","language_family_english":"Lhaovo","language_family_iso":"mhx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 23:09:49","created_on":"2011-10-10 16:19:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MHXBSMN2ET\/MHXBSMN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MHYLAIN1DA","fcbh_id":"MHYLAIN1DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MHY","language_name":"Dayak Ma'anyan","language_english":"Dayak Maanyan","language_iso":"mhy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ma'anyan","language_family_code":"MHY","language_family_name":"Dayak Ma'anyan","language_family_english":"Dayak Maanyan","language_family_iso":"mhy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-29 18:36:24","created_on":"2016-11-29 17:43:27","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MHYLAIN1DA\/MHYLAIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MHYLAIN1ET","fcbh_id":"MHYLAIN1ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MHY","language_name":"Dayak Ma'anyan","language_english":"Dayak Maanyan","language_iso":"mhy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ma'anyan","language_family_code":"MHY","language_family_name":"Dayak Ma'anyan","language_family_english":"Dayak Maanyan","language_family_iso":"mhy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-30 18:58:48","created_on":"2016-11-29 17:41:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MHYLAIN1ET\/MHYLAIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MHYLAIN2DA","fcbh_id":"MHYLAIN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MHY","language_name":"Dayak Ma'anyan","language_english":"Dayak Maanyan","language_iso":"mhy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ma'anyan","language_family_code":"MHY","language_family_name":"Dayak Ma'anyan","language_family_english":"Dayak Maanyan","language_family_iso":"mhy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-29 18:40:34","created_on":"2016-11-29 17:55:35","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MHYLAIN2DA\/MHYLAIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MHYLAIN2ET","fcbh_id":"MHYLAIN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MHY","language_name":"Dayak Ma'anyan","language_english":"Dayak Maanyan","language_iso":"mhy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ma'anyan","language_family_code":"MHY","language_family_name":"Dayak Ma'anyan","language_family_english":"Dayak Maanyan","language_family_iso":"mhy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-30 18:57:47","created_on":"2014-03-31 16:22:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MHYLAIN2ET\/MHYLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MIBTBLN1DA","fcbh_id":"MIBTBLN1DA","volume_name":"1973 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIB","language_name":"Mixtec, Atatl\u00e1huca","language_english":"Mixteco de Atatláhuca","language_iso":"mib","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Atatl\u00e1huca Mixtec","language_family_code":"MIB","language_family_name":"Mixtec, Atatl\u00e1huca","language_family_english":"Mixteco de Atatláhuca","language_family_iso":"mib","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-09 20:15:01","created_on":"2016-05-10 19:54:04","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MIBTBLN1DA\/MIBTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MIBTBLN1ET","fcbh_id":"MIBTBLN1ET","volume_name":"1973 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIB","language_name":"Mixtec, Atatl\u00e1huca","language_english":"Mixteco de Atatláhuca","language_iso":"mib","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Atatl\u00e1huca Mixtec","language_family_code":"MIB","language_family_name":"Mixtec, Atatl\u00e1huca","language_family_english":"Mixteco de Atatláhuca","language_family_iso":"mib","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-09 20:15:01","created_on":"2016-05-10 20:04:10","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MIBTBLN1ET\/MIBTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MIBTBLN2DA","fcbh_id":"MIBTBLN2DA","volume_name":"1973 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIB","language_name":"Mixtec, Atatl\u00e1huca","language_english":"Mixteco de Atatláhuca","language_iso":"mib","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Atatl\u00e1huca Mixtec","language_family_code":"MIB","language_family_name":"Mixtec, Atatl\u00e1huca","language_family_english":"Mixteco de Atatláhuca","language_family_iso":"mib","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-09 20:15:01","created_on":"2016-05-10 20:08:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MIBTBLN2DA\/MIBTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MIBTBLN2ET","fcbh_id":"MIBTBLN2ET","volume_name":"1973 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIB","language_name":"Mixtec, Atatl\u00e1huca","language_english":"Mixteco de Atatláhuca","language_iso":"mib","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Atatl\u00e1huca Mixtec","language_family_code":"MIB","language_family_name":"Mixtec, Atatl\u00e1huca","language_family_english":"Mixteco de Atatláhuca","language_family_iso":"mib","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:18","created_on":"2015-05-07 15:08:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MIBTBLN2ET\/MIBTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MIETBLN1DA","fcbh_id":"MIETBLN1DA","volume_name":"1977 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIE","language_name":"Mixteco de Ocotepec","language_english":"Mixteco de Ocotepec","language_iso":"mie","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ocotepec Mixtec","language_family_code":"MIE","language_family_name":"Mixteco de Ocotepec","language_family_english":"Mixteco de Ocotepec","language_family_iso":"mie","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-12 19:16:20","created_on":"2010-09-14 17:01:55","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1MIETBL","audio_zip_path":"MIETBLN1DA\/MIETBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MIETBLN1ET","fcbh_id":"MIETBLN1ET","volume_name":"1977 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIE","language_name":"Mixteco de Ocotepec","language_english":"Mixteco de Ocotepec","language_iso":"mie","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ocotepec Mixtec","language_family_code":"MIE","language_family_name":"Mixteco de Ocotepec","language_family_english":"Mixteco de Ocotepec","language_family_iso":"mie","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:17","created_on":"2010-11-25 20:50:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1MIETBL","audio_zip_path":"MIETBLN1ET\/MIETBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MIFWBTN2DA","fcbh_id":"MIFWBTN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIF","language_name":"Mofu-Gudur","language_english":"Mofu-Gudur","language_iso":"mif","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mofu-Gudur","language_family_code":"MIF","language_family_name":"Mofu-Gudur","language_family_english":"Mofu-Gudur","language_family_iso":"mif","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-12 19:43:31","created_on":"2010-09-14 17:00:31","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2MIFWBT","audio_zip_path":"MIFWBTN2DA\/MIFWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MIFWBTN2ET","fcbh_id":"MIFWBTN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIF","language_name":"Mofu-Gudur","language_english":"Mofu-Gudur","language_iso":"mif","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mofu-Gudur","language_family_code":"MIF","language_family_name":"Mofu-Gudur","language_family_english":"Mofu-Gudur","language_family_iso":"mif","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:20","created_on":"2010-11-25 20:49:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2MIFWBT","audio_zip_path":"MIFWBTN2ET\/MIFWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MILTBLN1DA","fcbh_id":"MILTBLN1DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIL","language_name":"Mixteco de Penoles","language_english":"Mixteco de Penoles","language_iso":"mil","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pe\u00f1oles Mixtec","language_family_code":"MIL","language_family_name":"Mixteco de Penoles","language_family_english":"Mixteco de Penoles","language_family_iso":"mil","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:34","created_on":"2010-09-14 17:01:28","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1MILTBL","audio_zip_path":"MILTBLN1DA\/MILTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MILTBLN1ET","fcbh_id":"MILTBLN1ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIL","language_name":"Mixteco de Penoles","language_english":"Mixteco de Penoles","language_iso":"mil","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pe\u00f1oles Mixtec","language_family_code":"MIL","language_family_name":"Mixteco de Penoles","language_family_english":"Mixteco de Penoles","language_family_iso":"mil","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:47","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1MILTBL","audio_zip_path":"MILTBLN1ET\/MILTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MILTBLN2DA","fcbh_id":"MILTBLN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIL","language_name":"Mixteco de Penoles","language_english":"Mixteco de Penoles","language_iso":"mil","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pe\u00f1oles Mixtec","language_family_code":"MIL","language_family_name":"Mixteco de Penoles","language_family_english":"Mixteco de Penoles","language_family_iso":"mil","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:34","created_on":"2012-07-20 20:52:17","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MILTBLN2DA\/MILTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MILTBLN2ET","fcbh_id":"MILTBLN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIL","language_name":"Mixteco de Penoles","language_english":"Mixteco de Penoles","language_iso":"mil","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pe\u00f1oles Mixtec","language_family_code":"MIL","language_family_name":"Mixteco de Penoles","language_family_english":"Mixteco de Penoles","language_family_iso":"mil","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:47","created_on":"2012-07-23 16:11:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MILTBLN2ET\/MILTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MIMWYIN1DA","fcbh_id":"MIMWYIN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIM","language_name":"Mixtec, Alacatlatzala","language_english":"Alacatlatzala Mixtec","language_iso":"mim","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Alacatlatzala Mixtec","language_family_code":"MIM","language_family_name":"Mixtec, Alacatlatzala","language_family_english":"Alacatlatzala Mixtec","language_family_iso":"mim","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-07 18:36:39","created_on":"2017-02-09 20:10:57","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MIMWYIN1DA\/MIMWYIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MIMWYIN1ET","fcbh_id":"MIMWYIN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MIM","language_name":"Mixtec, Alacatlatzala","language_english":"Alacatlatzala Mixtec","language_iso":"mim","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Alacatlatzala Mixtec","language_family_code":"MIM","language_family_name":"Mixtec, Alacatlatzala","language_family_english":"Alacatlatzala Mixtec","language_family_iso":"mim","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-21 23:46:37","created_on":"2018-09-21 23:39:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MIMWYIN1ET\/MIMWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MIMWYIN2DA","fcbh_id":"MIMWYIN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIM","language_name":"Mixtec, Alacatlatzala","language_english":"Alacatlatzala Mixtec","language_iso":"mim","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Alacatlatzala Mixtec","language_family_code":"MIM","language_family_name":"Mixtec, Alacatlatzala","language_family_english":"Alacatlatzala Mixtec","language_family_iso":"mim","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-10 23:28:12","created_on":"2017-02-09 20:19:26","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MIMWYIN2DA\/MIMWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"MIMWYIN2ET","fcbh_id":"MIMWYIN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MIM","language_name":"Mixtec, Alacatlatzala","language_english":"Alacatlatzala Mixtec","language_iso":"mim","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Alacatlatzala Mixtec","language_family_code":"MIM","language_family_name":"Mixtec, Alacatlatzala","language_family_english":"Alacatlatzala Mixtec","language_family_iso":"mim","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-21 23:47:01","created_on":"2018-09-21 23:37:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MIMWYIN2ET\/MIMWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MINLAIN2DA","fcbh_id":"MINLAIN2DA","volume_name":"Today's Minang Version, 2010","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIN","language_name":"Minangkabau","language_english":"Minangkabau","language_iso":"min","language_iso_2B":"min","language_iso_2T":"min","language_iso_1":"","language_iso_name":"Minangkabau","language_family_code":"MIN","language_family_name":"Minangkabau","language_family_english":"Minangkabau","language_family_iso":"min","language_family_iso_2B":"min","language_family_iso_2T":"min","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:35","created_on":"2012-03-05 23:04:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MINLAIN2DA\/MINLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MINLAIN2ET","fcbh_id":"MINLAIN2ET","volume_name":"Today's Minang Version, 2010","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIN","language_name":"Minangkabau","language_english":"Minangkabau","language_iso":"min","language_iso_2B":"min","language_iso_2T":"min","language_iso_1":"","language_iso_name":"Minangkabau","language_family_code":"MIN","language_family_name":"Minangkabau","language_family_english":"Minangkabau","language_family_iso":"min","language_family_iso_2B":"min","language_family_iso_2T":"min","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:21","created_on":"2011-06-07 22:20:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MINLAIN2ET\/MINLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MIOWBTN2DA","fcbh_id":"MIOWBTN2DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIO","language_name":"Mixtec, Pinotepa Nacional","language_english":"Mixtec, Pinotepa Nacional","language_iso":"mio","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pinotepa Nacional Mixtec","language_family_code":"MIO","language_family_name":"Mixtec, Pinotepa Nacional","language_family_english":"Mixtec, Pinotepa Nacional","language_family_iso":"mio","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-21 17:21:33","created_on":"2014-05-09 19:53:33","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MIOWBTN2DA\/MIOWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MIOWBTN2ET","fcbh_id":"MIOWBTN2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIO","language_name":"Mixtec, Pinotepa Nacional","language_english":"Mixtec, Pinotepa Nacional","language_iso":"mio","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pinotepa Nacional Mixtec","language_family_code":"MIO","language_family_name":"Mixtec, Pinotepa Nacional","language_family_english":"Mixtec, Pinotepa Nacional","language_family_iso":"mio","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:23","created_on":"2014-04-28 19:20:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MIOWBTN2ET\/MIOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MIPUTIN1DA","fcbh_id":"MIPUTIN1DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIP","language_name":"Mixteco Apasco-Apoala","language_english":"Mixteco Apasco-Apoala","language_iso":"mip","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Apasco-Apoala Mixtec","language_family_code":"MIP","language_family_name":"Mixteco Apasco-Apoala","language_family_english":"Mixteco Apasco-Apoala","language_family_iso":"mip","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UTI","version_name":"Union Nacional de Traductores Indigenas A.C.","version_english":"Union Nacional de Traductores Indigenas A.C.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-04-27 21:14:36","created_on":"2018-04-27 20:54:02","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MIPUTIN1DA\/MIPUTIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MIPUTIN1ET","fcbh_id":"MIPUTIN1ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MIP","language_name":"Mixteco Apasco-Apoala","language_english":"Mixteco Apasco-Apoala","language_iso":"mip","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Apasco-Apoala Mixtec","language_family_code":"MIP","language_family_name":"Mixteco Apasco-Apoala","language_family_english":"Mixteco Apasco-Apoala","language_family_iso":"mip","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UTI","version_name":"Union Nacional de Traductores Indigenas A.C.","version_english":"Union Nacional de Traductores Indigenas A.C.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-12 19:34:28","created_on":"2018-11-12 19:26:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MIPUTIN1ET\/MIPUTIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MIPUTIN2DA","fcbh_id":"MIPUTIN2DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIP","language_name":"Mixteco Apasco-Apoala","language_english":"Mixteco Apasco-Apoala","language_iso":"mip","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Apasco-Apoala Mixtec","language_family_code":"MIP","language_family_name":"Mixteco Apasco-Apoala","language_family_english":"Mixteco Apasco-Apoala","language_family_iso":"mip","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UTI","version_name":"Union Nacional de Traductores Indigenas A.C.","version_english":"Union Nacional de Traductores Indigenas A.C.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-04-27 21:14:55","created_on":"2018-04-27 20:52:12","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MIPUTIN2DA\/MIPUTIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MIPUTIN2ET","fcbh_id":"MIPUTIN2ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MIP","language_name":"Mixteco Apasco-Apoala","language_english":"Mixteco Apasco-Apoala","language_iso":"mip","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Apasco-Apoala Mixtec","language_family_code":"MIP","language_family_name":"Mixteco Apasco-Apoala","language_family_english":"Mixteco Apasco-Apoala","language_family_iso":"mip","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UTI","version_name":"Union Nacional de Traductores Indigenas A.C.","version_english":"Union Nacional de Traductores Indigenas A.C.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-12 19:34:16","created_on":"2018-11-12 19:25:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MIPUTIN2ET\/MIPUTIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MIQSBNN2DA","fcbh_id":"MIQSBNN2DA","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIQ","language_name":"M\u00edskito","language_english":"Miskito","language_iso":"miq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"M\u00edskito","language_family_code":"MIQ","language_family_name":"M\u00edskito","language_family_english":"Miskito","language_family_iso":"miq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:36","created_on":"2010-09-14 17:00:31","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2MIQSBN","audio_zip_path":"MIQSBNN2DA\/MIQSBNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MIQSBNN2ET","fcbh_id":"MIQSBNN2ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIQ","language_name":"M\u00edskito","language_english":"Miskito","language_iso":"miq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"M\u00edskito","language_family_code":"MIQ","language_family_name":"M\u00edskito","language_family_english":"Miskito","language_family_iso":"miq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:35:09","created_on":"2013-09-03 19:44:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MIQSBNN2ET\/MIQSBNN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MIRTBLN1DA","fcbh_id":"MIRTBLN1DA","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIR","language_name":"Mixe del Istmo","language_english":"Mixe del Istmo","language_iso":"mir","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Isthmus Mixe","language_family_code":"MIR","language_family_name":"Mixe del Istmo","language_family_english":"Mixe del Istmo","language_family_iso":"mir","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-12 19:02:13","created_on":"2010-11-25 20:50:16","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1MIRTBL","audio_zip_path":"MIRTBLN1DA\/MIRTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MIRTBLN1ET","fcbh_id":"MIRTBLN1ET","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIR","language_name":"Mixe del Istmo","language_english":"Mixe del Istmo","language_iso":"mir","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Isthmus Mixe","language_family_code":"MIR","language_family_name":"Mixe del Istmo","language_family_english":"Mixe del Istmo","language_family_iso":"mir","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:21","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1MIRTBL","audio_zip_path":"MIRTBLN1ET\/MIRTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MITTBLN2DA","fcbh_id":"MITTBLN2DA","volume_name":"1978 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIT","language_name":"Mixteco del Sur de Puebla","language_english":"Mixteco del Sur de Puebla","language_iso":"mit","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Puebla Mixtec","language_family_code":"MIT","language_family_name":"Mixteco del Sur de Puebla","language_family_english":"Mixteco del Sur de Puebla","language_family_iso":"mit","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:37","created_on":"2012-10-15 17:39:45","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MITTBLN2DA\/MITTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MITTBLN2ET","fcbh_id":"MITTBLN2ET","volume_name":"1978 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIT","language_name":"Mixteco del Sur de Puebla","language_english":"Mixteco del Sur de Puebla","language_iso":"mit","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Puebla Mixtec","language_family_code":"MIT","language_family_name":"Mixteco del Sur de Puebla","language_family_english":"Mixteco del Sur de Puebla","language_family_iso":"mit","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:47","created_on":"2012-04-16 20:45:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MITTBLN2ET\/MITTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MIYWYIN1DA","fcbh_id":"MIYWYIN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIY","language_name":"Mixteco de Ayutla","language_english":"Mixtec Ayutla","language_iso":"miy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ayutla Mixtec","language_family_code":"MIY","language_family_name":"Mixteco de Ayutla","language_family_english":"Mixtec Ayutla","language_family_iso":"miy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-21 17:15:17","created_on":"2015-04-07 17:29:55","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MIYWYIN1DA\/MIYWYIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MIYWYIN1ET","fcbh_id":"MIYWYIN1ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIY","language_name":"Mixteco de Ayutla","language_english":"Mixtec Ayutla","language_iso":"miy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ayutla Mixtec","language_family_code":"MIY","language_family_name":"Mixteco de Ayutla","language_family_english":"Mixtec Ayutla","language_family_iso":"miy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-11 18:40:38","created_on":"2018-06-11 18:14:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MIYWYIN1ET\/MIYWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MIYWYIN2DA","fcbh_id":"MIYWYIN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIY","language_name":"Mixteco de Ayutla","language_english":"Mixtec Ayutla","language_iso":"miy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ayutla Mixtec","language_family_code":"MIY","language_family_name":"Mixteco de Ayutla","language_family_english":"Mixtec Ayutla","language_family_iso":"miy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:28:08","created_on":"2015-04-07 17:28:23","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MIYWYIN2DA\/MIYWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MIYWYIN2ET","fcbh_id":"MIYWYIN2ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIY","language_name":"Mixteco de Ayutla","language_english":"Mixtec Ayutla","language_iso":"miy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ayutla Mixtec","language_family_code":"MIY","language_family_name":"Mixteco de Ayutla","language_family_english":"Mixtec Ayutla","language_family_iso":"miy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-11 18:59:46","created_on":"2018-06-11 18:28:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MIYWYIN2ET\/MIYWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MIZTBLN1DA","fcbh_id":"MIZTBLN1DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIZ","language_name":"Mixteco de Coatzospan","language_english":"Mixteco de Coatzospan","language_iso":"miz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Coatzospan Mixtec","language_family_code":"MIZ","language_family_name":"Mixteco de Coatzospan","language_family_english":"Mixteco de Coatzospan","language_family_iso":"miz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-12 19:11:33","created_on":"2010-09-14 17:01:22","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1MIZTBL","audio_zip_path":"MIZTBLN1DA\/MIZTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MIZTBLN1ET","fcbh_id":"MIZTBLN1ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MIZ","language_name":"Mixteco de Coatzospan","language_english":"Mixteco de Coatzospan","language_iso":"miz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Coatzospan Mixtec","language_family_code":"MIZ","language_family_name":"Mixteco de Coatzospan","language_family_english":"Mixteco de Coatzospan","language_family_iso":"miz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:00:58","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1MIZTBL","audio_zip_path":"MIZTBLN1ET\/MIZTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MJSWTCN1DA","fcbh_id":"MJSWTCN1DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MJS","language_name":"Malayalam","language_english":"Malayalam","language_iso":"mal","language_iso_2B":"mal","language_iso_2T":"mal","language_iso_1":"ml","language_iso_name":"Malayalam","language_family_code":"MJS","language_family_name":"Malayalam","language_family_english":"Malayalam","language_family_iso":"mal","language_family_iso_2B":"mal","language_family_iso_2T":"mal","language_family_iso_1":"ml","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-07 18:08:34","created_on":"2015-12-30 21:16:06","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MJSWTCN1DA\/MJSWTCN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MJSWTCN1ET","fcbh_id":"MJSWTCN1ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MJS","language_name":"Malayalam","language_english":"Malayalam","language_iso":"mal","language_iso_2B":"mal","language_iso_2T":"mal","language_iso_1":"ml","language_iso_name":"Malayalam","language_family_code":"MJS","language_family_name":"Malayalam","language_family_english":"Malayalam","language_family_iso":"mal","language_family_iso_2B":"mal","language_family_iso_2T":"mal","language_family_iso_1":"ml","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 19:30:59","created_on":"2015-12-29 22:57:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MJSWTCN1ET\/MJSWTCN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MJSWTCN2DA","fcbh_id":"MJSWTCN2DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MJS","language_name":"Malayalam","language_english":"Malayalam","language_iso":"mal","language_iso_2B":"mal","language_iso_2T":"mal","language_iso_1":"ml","language_iso_name":"Malayalam","language_family_code":"MJS","language_family_name":"Malayalam","language_family_english":"Malayalam","language_family_iso":"mal","language_family_iso_2B":"mal","language_family_iso_2T":"mal","language_family_iso_1":"ml","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-07 17:44:01","created_on":"2015-12-30 21:11:50","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MJSWTCN2DA\/MJSWTCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MJSWTCN2ET","fcbh_id":"MJSWTCN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MJS","language_name":"Malayalam","language_english":"Malayalam","language_iso":"mal","language_iso_2B":"mal","language_iso_2T":"mal","language_iso_1":"ml","language_iso_name":"Malayalam","language_family_code":"MJS","language_family_name":"Malayalam","language_family_english":"Malayalam","language_family_iso":"mal","language_family_iso_2B":"mal","language_family_iso_2T":"mal","language_family_iso_1":"ml","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 19:30:59","created_on":"2015-03-20 17:24:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MJSWTCN2ET\/MJSWTCN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MKDMKVN2DA","fcbh_id":"MKDMKVN2DA","volume_name":"Konstantinov Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MKD","language_name":"Macedonian","language_english":"Macedonian","language_iso":"mkd","language_iso_2B":"mac","language_iso_2T":"mkd","language_iso_1":"mk","language_iso_name":"Macedonian","language_family_code":"MKD","language_family_name":"Macedonian","language_family_english":"Macedonian","language_family_iso":"mkd","language_family_iso_2B":"mac","language_family_iso_2T":"mkd","language_family_iso_1":"mk","version_code":"MKV","version_name":"MKV","version_english":"MKV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-17 17:49:56","created_on":"2018-05-24 20:32:11","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MKDMKVN2DA\/MKDMKVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MKDMKVO2DA","fcbh_id":"MKDMKVO2DA","volume_name":"Konstantinov Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MKD","language_name":"Macedonian","language_english":"Macedonian","language_iso":"mkd","language_iso_2B":"mac","language_iso_2T":"mkd","language_iso_1":"mk","language_iso_name":"Macedonian","language_family_code":"MKD","language_family_name":"Macedonian","language_family_english":"Macedonian","language_family_iso":"mkd","language_family_iso_2B":"mac","language_family_iso_2T":"mkd","language_family_iso_1":"mk","version_code":"MKV","version_name":"MKV","version_english":"MKV","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-07-17 17:49:14","created_on":"2018-07-17 16:28:32","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MKDMKVO2DA\/MKDMKVO2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MKLSIMN1DA","fcbh_id":"MKLSIMN1DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MKL","language_name":"Mokole","language_english":"Mokole","language_iso":"mkl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mokole","language_family_code":"MKL","language_family_name":"Mokole","language_family_english":"Mokole","language_family_iso":"mkl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 22:41:11","created_on":"2018-10-17 22:24:16","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MKLSIMN1DA\/MKLSIMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"MKLSIMN1ET","fcbh_id":"MKLSIMN1ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MKL","language_name":"Mokole","language_english":"Mokole","language_iso":"mkl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mokole","language_family_code":"MKL","language_family_name":"Mokole","language_family_english":"Mokole","language_family_iso":"mkl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 22:33:26","created_on":"2018-10-17 22:13:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MKLSIMN1ET\/MKLSIMN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MKLSIMN2DA","fcbh_id":"MKLSIMN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MKL","language_name":"Mokole","language_english":"Mokole","language_iso":"mkl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mokole","language_family_code":"MKL","language_family_name":"Mokole","language_family_english":"Mokole","language_family_iso":"mkl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 22:41:56","created_on":"2018-10-17 22:23:16","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MKLSIMN2DA\/MKLSIMN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"MKLSIMN2ET","fcbh_id":"MKLSIMN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MKL","language_name":"Mokole","language_english":"Mokole","language_iso":"mkl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mokole","language_family_code":"MKL","language_family_name":"Mokole","language_family_english":"Mokole","language_family_iso":"mkl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-10 19:09:36","created_on":"2014-03-26 15:30:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MKLSIMN2ET\/MKLSIMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MKWABCN2DA","fcbh_id":"MKWABCN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MKW","language_name":"Kituba for Congo","language_english":"Kituba for Congo","language_iso":"mkw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kituba (Congo)","language_family_code":"MKW","language_family_name":"Kituba for Congo","language_family_english":"Kituba for Congo","language_family_iso":"mkw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:09","created_on":"2012-02-03 18:25:18","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MKWABCN2DA\/MKWABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MLGDPVN1DA","fcbh_id":"MEXDPVN1DA","volume_name":"Protestant Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MLG","language_name":"Malagasy","language_english":"Malagasy","language_iso":"mlg","language_iso_2B":"mlg","language_iso_2T":"mlg","language_iso_1":"mg","language_iso_name":"Malagasy","language_family_code":"MLG","language_family_name":"Malagasy","language_family_english":"Malagasy","language_family_iso":"mlg","language_family_iso_2B":"mlg","language_family_iso_2T":"mlg","language_family_iso_1":"mg","version_code":"DPV","version_name":"Protestant Version","version_english":"Protestant Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:38","created_on":"2010-09-14 16:59:46","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1MEXDPV","audio_zip_path":"MLGDPVN1DA\/MLGDPVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MLGDPVN1ET","fcbh_id":"MLGDPVN1ET","volume_name":"Protestant Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MLG","language_name":"Malagasy","language_english":"Malagasy","language_iso":"mlg","language_iso_2B":"mlg","language_iso_2T":"mlg","language_iso_1":"mg","language_iso_name":"Malagasy","language_family_code":"MLG","language_family_name":"Malagasy","language_family_english":"Malagasy","language_family_iso":"mlg","language_family_iso_2B":"mlg","language_family_iso_2T":"mlg","language_family_iso_1":"mg","version_code":"DPV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:46","created_on":"2012-10-05 15:57:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MLGDPVN1ET\/MLGDPVN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MLGDPVO1ET","fcbh_id":"MLGDPVO1ET","volume_name":"Protestant Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MLG","language_name":"Malagasy","language_english":"Malagasy","language_iso":"mlg","language_iso_2B":"mlg","language_iso_2T":"mlg","language_iso_1":"mg","language_iso_name":"Malagasy","language_family_code":"MLG","language_family_name":"Malagasy","language_family_english":"Malagasy","language_family_iso":"mlg","language_family_iso_2B":"mlg","language_family_iso_2T":"mlg","language_family_iso_1":"mg","version_code":"DPV","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2012-10-08 16:23:57","created_on":"2012-10-05 16:16:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MLGDPVO1ET\/MLGDPVO1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MLGEIVN2DA","fcbh_id":"MEXEIVN2DA","volume_name":"Interconfessional Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MLG","language_name":"Malagasy","language_english":"Malagasy","language_iso":"mlg","language_iso_2B":"mlg","language_iso_2T":"mlg","language_iso_1":"mg","language_iso_name":"Malagasy","language_family_code":"MLG","language_family_name":"Malagasy","language_family_english":"Malagasy","language_family_iso":"mlg","language_family_iso_2B":"mlg","language_family_iso_2T":"mlg","language_family_iso_1":"mg","version_code":"EIV","version_name":"Interconfessional Version","version_english":"Interconfessional Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:39","created_on":"2010-09-14 17:00:30","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2MEXEIV","audio_zip_path":"MLGEIVN2DA\/MLGEIVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MLGEIVN2ET","fcbh_id":"MEXEIVN2ET","volume_name":"Interconfessional Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MLG","language_name":"Malagasy","language_english":"Malagasy","language_iso":"mlg","language_iso_2B":"mlg","language_iso_2T":"mlg","language_iso_1":"mg","language_iso_name":"Malagasy","language_family_code":"MLG","language_family_name":"Malagasy","language_family_english":"Malagasy","language_family_iso":"mlg","language_family_iso_2B":"mlg","language_family_iso_2T":"mlg","language_family_iso_1":"mg","version_code":"EIV","version_name":"Interconfessional Version","version_english":"Interconfessional Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-09-08 17:55:21","created_on":"2010-11-25 20:49:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2MEXEIV","audio_zip_path":"MLGEIVN2ET\/MLGEIVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MLGRCVN2DA","fcbh_id":"MEXRCVN2DA","volume_name":"Roman Catholic Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MLG","language_name":"Malagasy","language_english":"Malagasy","language_iso":"mlg","language_iso_2B":"mlg","language_iso_2T":"mlg","language_iso_1":"mg","language_iso_name":"Malagasy","language_family_code":"MLG","language_family_name":"Malagasy","language_family_english":"Malagasy","language_family_iso":"mlg","language_family_iso_2B":"mlg","language_family_iso_2T":"mlg","language_family_iso_1":"mg","version_code":"RCV","version_name":"Roman Catholic Version","version_english":"Roman Catholic Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:39","created_on":"2010-11-25 20:50:16","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2MEXRCV","audio_zip_path":"MLGRCVN2DA\/MLGRCVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MLGRCVN2ET","fcbh_id":"MEXRCVN2ET","volume_name":"Roman Catholic Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MLG","language_name":"Malagasy","language_english":"Malagasy","language_iso":"mlg","language_iso_2B":"mlg","language_iso_2T":"mlg","language_iso_1":"mg","language_iso_name":"Malagasy","language_family_code":"MLG","language_family_name":"Malagasy","language_family_english":"Malagasy","language_family_iso":"mlg","language_family_iso_2B":"mlg","language_family_iso_2T":"mlg","language_family_iso_1":"mg","version_code":"RCV","version_name":"Roman Catholic Version","version_english":"Roman Catholic Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2012-10-05 20:24:50","created_on":"2011-09-12 19:04:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MLGRCVN2ET\/MLGRCVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MLGRCVO2ET","fcbh_id":"MEXRCVO2ET","volume_name":"Roman Catholic Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MLG","language_name":"Malagasy","language_english":"Malagasy","language_iso":"mlg","language_iso_2B":"mlg","language_iso_2T":"mlg","language_iso_1":"mg","language_iso_name":"Malagasy","language_family_code":"MLG","language_family_name":"Malagasy","language_family_english":"Malagasy","language_family_iso":"mlg","language_family_iso_2B":"mlg","language_family_iso_2T":"mlg","language_family_iso_1":"mg","version_code":"RCV","version_name":"Roman Catholic Version","version_english":"Roman Catholic Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2012-10-05 20:24:28","created_on":"2011-09-12 19:15:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MLGRCVO2ET\/MLGRCVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MLGRPVN1DA","fcbh_id":"MLGRPVN1DA","volume_name":"Revised Protestant Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MLG","language_name":"Malagasy","language_english":"Malagasy","language_iso":"mlg","language_iso_2B":"mlg","language_iso_2T":"mlg","language_iso_1":"mg","language_iso_name":"Malagasy","language_family_code":"MLG","language_family_name":"Malagasy","language_family_english":"Malagasy","language_family_iso":"mlg","language_family_iso_2B":"mlg","language_family_iso_2T":"mlg","language_family_iso_1":"mg","version_code":"RPV","version_name":"RPV","version_english":"RPV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-06 18:59:03","created_on":"2018-02-02 17:36:42","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MLGRPVN1DA\/MLGRPVN1DA.zip","font":{"id":"45","name":"Doulos SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MLGRPVN2DA","fcbh_id":"MLGRPVN2DA","volume_name":"Revised Protestant Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MLG","language_name":"Malagasy","language_english":"Malagasy","language_iso":"mlg","language_iso_2B":"mlg","language_iso_2T":"mlg","language_iso_1":"mg","language_iso_name":"Malagasy","language_family_code":"MLG","language_family_name":"Malagasy","language_family_english":"Malagasy","language_family_iso":"mlg","language_family_iso_2B":"mlg","language_family_iso_2T":"mlg","language_family_iso_1":"mg","version_code":"RPV","version_name":"RPV","version_english":"RPV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-06 18:59:02","created_on":"2018-02-02 17:26:54","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MLGRPVN2DA\/MLGRPVN2DA.zip","font":{"id":"45","name":"Doulos SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MLPTBLN2ET","fcbh_id":"MLPTBLN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MLP","language_name":"Bargam","language_english":"Bargam","language_iso":"mlp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bargam","language_family_code":"MLP","language_family_name":"Bargam","language_family_english":"Bargam","language_family_iso":"mlp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 19:44:48","created_on":"2011-08-15 18:57:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MLPTBLN2ET\/MLPTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MLYBSMN2DA","fcbh_id":"MLYBSMN2DA","volume_name":"2001 Today's Malay Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MLY","language_name":"Malay Bahasa","language_english":"Malay Bahasa","language_iso":"zsm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Standard Malay","language_family_code":"ZLM","language_family_name":"Malay","language_family_english":"Malay","language_family_iso":"zlm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-19 16:21:57","created_on":"2010-09-14 17:01:21","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2MLYBSM","audio_zip_path":"MLYBSMN2DA\/MLYBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MLYBSMN2ET","fcbh_id":"MLYBSMN2ET","volume_name":"2001 Today's Malay Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MLY","language_name":"Malay Bahasa","language_english":"Malay Bahasa","language_iso":"zsm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Standard Malay","language_family_code":"ZLM","language_family_name":"Malay","language_family_english":"Malay","language_family_iso":"zlm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:11","created_on":"2011-07-07 22:19:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MLYBSMN2ET\/MLYBSMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MMOWBTN2ET","fcbh_id":"MMOWBTN2ET","volume_name":"1981 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MMO","language_name":"Buang - Mangga","language_english":"Buang - Mangga","language_iso":"mmo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mangga Buang","language_family_code":"MMO","language_family_name":"Buang - Mangga","language_family_english":"Buang - Mangga","language_family_iso":"mmo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-11 22:40:29","created_on":"2014-05-22 16:39:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MMOWBTN2ET\/MMOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MMSBSGN1DA","fcbh_id":"MMSBSGN1DA","volume_name":"1980 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MMS","language_name":"Mam, Southern","language_english":"Mam, Southern","language_iso":"mam","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mam","language_family_code":"MMS","language_family_name":"Mam, Southern","language_family_english":"Mam, Southern","language_family_iso":"mam","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:40","created_on":"2010-09-14 16:59:47","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1MMSBSG","audio_zip_path":"MMSBSGN1DA\/MMSBSGN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MMSBSGN1ET","fcbh_id":"MMSBSGN1ET","volume_name":"1980 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MMS","language_name":"Mam, Southern","language_english":"Mam, Southern","language_iso":"mam","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mam","language_family_code":"MMS","language_family_name":"Mam, Southern","language_family_english":"Mam, Southern","language_family_iso":"mam","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:48","created_on":"2011-07-07 22:05:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MMSBSGN1ET\/MMSBSGN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MMSBSGN2DA","fcbh_id":"MMSBSGN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MMS","language_name":"Mam, Southern","language_english":"Mam, Southern","language_iso":"mam","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mam","language_family_code":"MMS","language_family_name":"Mam, Southern","language_family_english":"Mam, Southern","language_family_iso":"mam","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 18:23:29","created_on":"2013-06-11 15:06:08","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MMSBSGN2DA\/MMSBSGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MMSBSGN2ET","fcbh_id":"MMSBSGN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MMS","language_name":"Mam, Southern","language_english":"Mam, Southern","language_iso":"mam","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mam","language_family_code":"MMS","language_family_name":"Mam, Southern","language_family_english":"Mam, Southern","language_family_iso":"mam","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:16","created_on":"2013-06-11 19:20:35","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MMSBSGN2ET\/MMSBSGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MNBTBLN2DA","fcbh_id":"MNBTBLN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MNB","language_name":"Muna","language_english":"Muna","language_iso":"mnb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Muna","language_family_code":"MNB","language_family_name":"Muna","language_family_english":"Muna","language_family_iso":"mnb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:41","created_on":"2012-09-07 20:24:04","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MNBTBLN2DA\/MNBTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MNBTBLN2ET","fcbh_id":"MNBTBLN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MNB","language_name":"Muna","language_english":"Muna","language_iso":"mnb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Muna","language_family_code":"MNB","language_family_name":"Muna","language_family_english":"Muna","language_family_iso":"mnb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:21","created_on":"2012-02-23 00:13:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MNBTBLN2ET\/MNBTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MNFCABN2DA","fcbh_id":"MNFCABN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MNF","language_name":"Mundani","language_english":"Mundani","language_iso":"mnf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mundani","language_family_code":"MNF","language_family_name":"Mundani","language_family_english":"Mundani","language_family_iso":"mnf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAB","version_name":"CABTAL","version_english":"CABTAL","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:41","created_on":"2011-06-30 15:32:57","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MNFCABN2DA\/MNFCABN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MNFCABN2ET","fcbh_id":"MNFCABN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MNF","language_name":"Mundani","language_english":"Mundani","language_iso":"mnf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mundani","language_family_code":"MNF","language_family_name":"Mundani","language_family_english":"Mundani","language_family_iso":"mnf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAB","version_name":"CABTAL","version_english":"CABTAL","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:39","created_on":"2011-08-17 18:54:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MNFCABN2ET\/MNFCABN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MNKBSGN2DA","fcbh_id":"MNKBSGN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MNK","language_name":"Mandinka","language_english":"Mandinka","language_iso":"mnk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandinka","language_family_code":"MNK","language_family_name":"Mandinka","language_family_english":"Mandinka","language_family_iso":"mnk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-04-23 16:01:06","created_on":"2013-03-28 21:38:23","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MNKBSGN2DA\/MNKBSGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MNKBSGN2ET","fcbh_id":"MNKBSGN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MNK","language_name":"Mandinka","language_english":"Mandinka","language_iso":"mnk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mandinka","language_family_code":"MNK","language_family_name":"Mandinka","language_family_english":"Mandinka","language_family_iso":"mnk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:40:42","created_on":"2012-05-09 21:02:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MNKBSGN2ET\/MNKBSGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MOAWBTN1DA","fcbh_id":"MOAWBTN1DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MOA","language_name":"Mwan","language_english":"Mwan","language_iso":"moa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mwan","language_family_code":"MOA","language_family_name":"Mwan","language_family_english":"Mwan","language_family_iso":"moa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-25 21:06:36","created_on":"2016-01-25 20:49:56","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MOAWBTN1DA\/MOAWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MOAWBTN1ET","fcbh_id":"MOAWBTN1ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MOA","language_name":"Mwan","language_english":"Mwan","language_iso":"moa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mwan","language_family_code":"MOA","language_family_name":"Mwan","language_family_english":"Mwan","language_family_iso":"moa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-25 20:53:01","created_on":"2016-01-25 20:44:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MOAWBTN1ET\/MOAWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MOAWBTN2DA","fcbh_id":"MOAWBTN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MOA","language_name":"Mwan","language_english":"Mwan","language_iso":"moa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mwan","language_family_code":"MOA","language_family_name":"Mwan","language_family_english":"Mwan","language_family_iso":"moa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-25 21:07:01","created_on":"2016-01-25 20:47:36","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MOAWBTN2DA\/MOAWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MOAWBTN2ET","fcbh_id":"MOAWBTN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MOA","language_name":"Mwan","language_english":"Mwan","language_iso":"moa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mwan","language_family_code":"MOA","language_family_name":"Mwan","language_family_english":"Mwan","language_family_iso":"moa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:20","created_on":"2014-12-24 17:46:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MOAWBTN2ET\/MOAWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","mp3_cd"],"resolution":[]},{"dam_id":"MOGLAIN2DA","fcbh_id":"MOGLAIN2DA","volume_name":"Today's Mongondow Version, 2006","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MOG","language_name":"Mongondow","language_english":"Mongondow","language_iso":"mog","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mongondow","language_family_code":"MOG","language_family_name":"Mongondow","language_family_english":"Mongondow","language_family_iso":"mog","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:42","created_on":"2011-07-12 21:46:18","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MOGLAIN2DA\/MOGLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MOGLAIN2ET","fcbh_id":"MOGLAIN2ET","volume_name":"Today's Mongondow Version, 2006","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MOG","language_name":"Mongondow","language_english":"Mongondow","language_iso":"mog","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mongondow","language_family_code":"MOG","language_family_name":"Mongondow","language_family_english":"Mongondow","language_family_iso":"mog","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-26 19:31:35","created_on":"2011-05-30 16:58:35","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MOGLAIN2ET\/MOGLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MOPWBTN2DA","fcbh_id":"MOPWBTN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MOP","language_name":"Maya, Mopan","language_english":"Maya, Mopan","language_iso":"mop","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mop\u00e1n Maya","language_family_code":"MOP","language_family_name":"Maya, Mopan","language_family_english":"Maya, Mopan","language_family_iso":"mop","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-11 16:14:03","created_on":"2010-09-14 17:01:08","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2MOPWBT","audio_zip_path":"MOPWBTN2DA\/MOPWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MOPWBTN2ET","fcbh_id":"MOPWBTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MOP","language_name":"Maya, Mopan","language_english":"Maya, Mopan","language_iso":"mop","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mop\u00e1n Maya","language_family_code":"MOP","language_family_name":"Maya, Mopan","language_family_english":"Maya, Mopan","language_family_iso":"mop","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-11 16:13:47","created_on":"2011-08-15 19:25:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MOPWBTN2ET\/MOPWBTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MORBSSN2DA","fcbh_id":"MORBSSN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MOR","language_name":"Nuba Moro","language_english":"Nuba Moro","language_iso":"mor","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Moro","language_family_code":"MOR","language_family_name":"Nuba Moro","language_family_english":"Nuba Moro","language_family_iso":"mor","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-05-22 16:14:58","created_on":"2014-05-12 16:05:16","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MORBSSN2DA\/MORBSSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MORBSSN2ET","fcbh_id":"MORBSSN2ET","volume_name":"1965 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MOR","language_name":"Nuba Moro","language_english":"Nuba Moro","language_iso":"mor","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Moro","language_family_code":"MOR","language_family_name":"Nuba Moro","language_family_english":"Nuba Moro","language_family_iso":"mor","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:08","created_on":"2014-02-13 17:35:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MORBSSN2ET\/MORBSSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MOXFSAN1DA","fcbh_id":"MOXFSAN1DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MOX","language_name":"Molima","language_english":"Molima","language_iso":"mox","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Molima","language_family_code":"MOX","language_family_name":"Molima","language_family_english":"Molima","language_family_iso":"mox","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"FSA","version_name":"Folk&Spr\u00e5k and Swedish Mission Alliance","version_english":"Folk and Sprak and Swedish Mission Alliance","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 16:44:21","created_on":"2015-12-04 14:51:58","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MOXFSAN1DA\/MOXFSAN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MOXFSAN1ET","fcbh_id":"MOXFSAN1ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MOX","language_name":"Molima","language_english":"Molima","language_iso":"mox","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Molima","language_family_code":"MOX","language_family_name":"Molima","language_family_english":"Molima","language_family_iso":"mox","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"FSA","version_name":"Folk&Spr\u00e5k and Swedish Mission Alliance","version_english":"Folk and Sprak and Swedish Mission Alliance","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-20 14:57:36","created_on":"2015-12-04 14:58:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MOXFSAN1ET\/MOXFSAN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MPDNTMN1DA","fcbh_id":"MPDNTMN1DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MPD","language_name":"Machineri","language_english":"Machineri","language_iso":"mpd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Machinere","language_family_code":"MPD","language_family_name":"Machineri","language_family_english":"Machineri","language_family_iso":"mpd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-04-19 17:29:37","created_on":"2018-04-18 21:22:19","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MPDNTMN1DA\/MPDNTMN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MPDNTMN2DA","fcbh_id":"MPDNTMN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MPD","language_name":"Machineri","language_english":"Machineri","language_iso":"mpd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Machinere","language_family_code":"MPD","language_family_name":"Machineri","language_family_english":"Machineri","language_family_iso":"mpd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-04-19 17:29:54","created_on":"2018-04-18 21:25:06","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MPDNTMN2DA\/MPDNTMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MPGABTN2DA","fcbh_id":"MPGABTN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MPG","language_name":"Azumeina","language_english":"Azumeina","language_iso":"mpg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Marba","language_family_code":"MPG","language_family_name":"Azumeina","language_family_english":"Azumeina","language_family_iso":"mpg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:14:41","created_on":"2012-05-30 18:12:33","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MPGABTN2DA\/MPGABTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MPGABTN2ET","fcbh_id":"MPGABTN2ET","volume_name":"1999 Editon","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MPG","language_name":"Azumeina","language_english":"Azumeina","language_iso":"mpg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Marba","language_family_code":"MPG","language_family_name":"Azumeina","language_family_english":"Azumeina","language_family_iso":"mpg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:21","created_on":"2013-08-13 22:12:37","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MPGABTN2ET\/MPGABTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MPMTBLN1DA","fcbh_id":"MPMTBLN1DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MPM","language_name":"Mixteco de Santiago Yosundua","language_english":"Mixteco de Santiago Yosundua","language_iso":"mpm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yosond\u00faa Mixtec","language_family_code":"MPM","language_family_name":"Mixteco de Santiago Yosundua","language_family_english":"Mixteco de Santiago Yosundua","language_family_iso":"mpm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-05 22:32:15","created_on":"2017-05-03 19:28:59","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MPMTBLN1DA\/MPMTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MPMTBLN1ET","fcbh_id":"MPMTBLN1ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MPM","language_name":"Mixteco de Santiago Yosundua","language_english":"Mixteco de Santiago Yosundua","language_iso":"mpm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yosond\u00faa Mixtec","language_family_code":"MPM","language_family_name":"Mixteco de Santiago Yosundua","language_family_english":"Mixteco de Santiago Yosundua","language_family_iso":"mpm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-05 22:32:15","created_on":"2017-05-03 19:25:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MPMTBLN1ET\/MPMTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MPMTBLN2DA","fcbh_id":"MPMTBLN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MPM","language_name":"Mixteco de Santiago Yosundua","language_english":"Mixteco de Santiago Yosundua","language_iso":"mpm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yosond\u00faa Mixtec","language_family_code":"MPM","language_family_name":"Mixteco de Santiago Yosundua","language_family_english":"Mixteco de Santiago Yosundua","language_family_iso":"mpm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-11-12 19:13:07","created_on":"2014-10-24 16:01:15","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MPMTBLN2DA\/MPMTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MPMTBLN2ET","fcbh_id":"MPMTBLN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MPM","language_name":"Mixteco de Santiago Yosundua","language_english":"Mixteco de Santiago Yosundua","language_iso":"mpm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yosond\u00faa Mixtec","language_family_code":"MPM","language_family_name":"Mixteco de Santiago Yosundua","language_family_english":"Mixteco de Santiago Yosundua","language_family_iso":"mpm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:24","created_on":"2014-02-24 16:54:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MPMTBLN2ET\/MPMTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MPSWBTN2ET","fcbh_id":"MPSWBTN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MPS","language_name":"Dadibi","language_english":"Dadibi","language_iso":"mps","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dadibi","language_family_code":"MPS","language_family_name":"Dadibi","language_family_english":"Dadibi","language_family_iso":"mps","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-19 15:57:00","created_on":"2014-05-22 16:29:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MPSWBTN2ET\/MPSWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MPSWBTO2ET","fcbh_id":"MPSWBTO2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MPS","language_name":"Dadibi","language_english":"Dadibi","language_iso":"mps","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dadibi","language_family_code":"MPS","language_family_name":"Dadibi","language_family_english":"Dadibi","language_family_iso":"mps","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-10-19 16:09:27","created_on":"2014-05-22 16:31:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MPSWBTO2ET\/MPSWBTO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MPTWBTN2ET","fcbh_id":"MPTWBTN2ET","volume_name":"1986 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MPT","language_name":"Mian","language_english":"Mian","language_iso":"mpt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mian","language_family_code":"MPT","language_family_name":"Mian","language_family_english":"Mian","language_family_iso":"mpt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 19:55:36","created_on":"2014-05-12 23:19:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MPTWBTN2ET\/MPTWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MQBWBTN2DA","fcbh_id":"MQBWBTN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MQB","language_name":"Mbuko","language_english":"Mbuko","language_iso":"mqb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mbuko","language_family_code":"MQB","language_family_name":"Mbuko","language_family_english":"Mbuko","language_family_iso":"mqb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:44","created_on":"2012-02-20 16:44:08","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MQBWBTN2DA\/MQBWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MQBWBTN2ET","fcbh_id":"MQBWBTN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MQB","language_name":"Mbuko","language_english":"Mbuko","language_iso":"mqb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mbuko","language_family_code":"MQB","language_family_name":"Mbuko","language_family_english":"Mbuko","language_family_iso":"mqb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:37","created_on":"2011-05-30 17:14:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MQBWBTN2ET\/MQBWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MQJLAIN1DA","fcbh_id":"MQJLAIN1DA","volume_name":"2011 Editon","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MQJ","language_name":"Mamasa","language_english":"Mamasa","language_iso":"mqj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mamasa","language_family_code":"MQJ","language_family_name":"Mamasa","language_family_english":"Mamasa","language_family_iso":"mqj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-02 15:07:48","created_on":"2016-03-01 19:35:05","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MQJLAIN1DA\/MQJLAIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MQJLAIN1ET","fcbh_id":"MQJLAIN1ET","volume_name":"2011 Editon","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MQJ","language_name":"Mamasa","language_english":"Mamasa","language_iso":"mqj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mamasa","language_family_code":"MQJ","language_family_name":"Mamasa","language_family_english":"Mamasa","language_family_iso":"mqj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-19 16:05:56","created_on":"2016-03-01 19:19:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MQJLAIN1ET\/MQJLAIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MQJLAIN2DA","fcbh_id":"MQJLAIN2DA","volume_name":"2011 Editon","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MQJ","language_name":"Mamasa","language_english":"Mamasa","language_iso":"mqj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mamasa","language_family_code":"MQJ","language_family_name":"Mamasa","language_family_english":"Mamasa","language_family_iso":"mqj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-02 15:30:11","created_on":"2016-03-01 19:23:44","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MQJLAIN2DA\/MQJLAIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MQJLAIN2ET","fcbh_id":"MQJLAIN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MQJ","language_name":"Mamasa","language_english":"Mamasa","language_iso":"mqj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mamasa","language_family_code":"MQJ","language_family_name":"Mamasa","language_family_english":"Mamasa","language_family_iso":"mqj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-19 16:06:31","created_on":"2014-06-04 17:57:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MQJLAIN2ET\/MQJLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MRTBSNN2DA","fcbh_id":"MRTBSNN2DA","volume_name":"1985 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MRT","language_name":"Margi","language_english":"Margi","language_iso":"mrt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Marghi Central","language_family_code":"MRT","language_family_name":"Margi","language_family_english":"Margi","language_family_iso":"mrt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:56","created_on":"2010-09-14 17:01:00","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2MRTBSN","audio_zip_path":"MRTBSNN2DA\/MRTBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MRWNVSN2DA","fcbh_id":"MRWNVSN2DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MRW","language_name":"Maranao","language_english":"Maranao","language_iso":"mrw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Maranao","language_family_code":"MRW","language_family_name":"Maranao","language_family_english":"Maranao","language_family_iso":"mrw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:44","created_on":"2013-03-22 21:02:03","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MRWNVSN2DA\/MRWNVSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MRWNVSN2ET","fcbh_id":"MRWNVSN2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MRW","language_name":"Maranao","language_english":"Maranao","language_iso":"mrw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Maranao","language_family_code":"MRW","language_family_name":"Maranao","language_family_english":"Maranao","language_family_iso":"mrw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-15 17:00:39","created_on":"2013-06-21 21:36:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MRWNVSN2ET\/MRWNVSN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MRWNVSO2ET","fcbh_id":"MRWNVSO2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MRW","language_name":"Maranao","language_english":"Maranao","language_iso":"mrw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Maranao","language_family_code":"MRW","language_family_name":"Maranao","language_family_english":"Maranao","language_family_iso":"mrw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-10-15 17:37:19","created_on":"2013-06-21 21:38:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MRWNVSO2ET\/MRWNVSO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MSMWPSN2ET","fcbh_id":"MSMWPSN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MSM","language_name":"Manobo, Agusan","language_english":"Manobo, Agusan","language_iso":"msm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Agusan Manobo","language_family_code":"MSM","language_family_name":"Manobo, Agusan","language_family_english":"Manobo, Agusan","language_family_iso":"msm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WPS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:07","created_on":"2012-06-22 17:23:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MSMWPSN2ET\/MSMWPSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MSYPNGN2DA","fcbh_id":"MSYPNGN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MSY","language_name":"Aruamu","language_english":"Aruamu","language_iso":"msy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Aruamu","language_family_code":"MSY","language_family_name":"Aruamu","language_family_english":"Aruamu","language_family_iso":"msy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:03:53","created_on":"2012-11-27 22:35:53","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MSYPNGN2DA\/MSYPNGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MSYPNGN2ET","fcbh_id":"MSYPNGN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MSY","language_name":"Aruamu","language_english":"Aruamu","language_iso":"msy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Aruamu","language_family_code":"MSY","language_family_name":"Aruamu","language_family_english":"Aruamu","language_family_iso":"msy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:35:09","created_on":"2011-08-03 18:21:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MSYPNGN2ET\/MSYPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MTATBLN2ET","fcbh_id":"MTATBLN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MTA","language_name":"Manobo, Cotabato","language_english":"Manobo, Cotabato","language_iso":"mta","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cotabato Manobo","language_family_code":"MTA","language_family_name":"Manobo, Cotabato","language_family_english":"Manobo, Cotabato","language_family_iso":"mta","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-02 13:53:25","created_on":"2011-10-10 19:28:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MTATBLN2ET\/MTATBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MTIWBTN2ET","fcbh_id":"MTIWBTN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MTI","language_name":"Oren Maiwa (Papua New Guinea)","language_english":"Oren Maiwa (Papua New Guinea)","language_iso":"mti","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Maiwa (Papua New Guinea)","language_family_code":"MTI","language_family_name":"Oren Maiwa (Papua New Guinea)","language_family_english":"Oren Maiwa (Papua New Guinea)","language_family_iso":"mti","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 20:36:36","created_on":"2014-06-05 15:37:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MTIWBTN2ET\/MTIWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MTJTBLN1DA","fcbh_id":"MTJTBLN1DA","volume_name":"2001 Yayasan Sumber Sejahtera","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MTJ","language_name":"Moskona","language_english":"Moskona","language_iso":"mtj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Moskona","language_family_code":"MTJ","language_family_name":"Moskona","language_family_english":"Moskona","language_family_iso":"mtj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-30 21:28:45","created_on":"2016-12-16 17:41:50","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MTJTBLN1DA\/MTJTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MTJTBLN1ET","fcbh_id":"MTJTBLN1ET","volume_name":"2001 Yayasan Sumber Sejahtera","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MTJ","language_name":"Moskona","language_english":"Moskona","language_iso":"mtj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Moskona","language_family_code":"MTJ","language_family_name":"Moskona","language_family_english":"Moskona","language_family_iso":"mtj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-30 21:29:19","created_on":"2016-12-16 17:31:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MTJTBLN1ET\/MTJTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MTJTBLN2DA","fcbh_id":"MTJTBLN2DA","volume_name":"2001 Yayasan Sumber Sejahtera","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MTJ","language_name":"Moskona","language_english":"Moskona","language_iso":"mtj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Moskona","language_family_code":"MTJ","language_family_name":"Moskona","language_family_english":"Moskona","language_family_iso":"mtj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-16 18:19:53","created_on":"2016-12-16 17:55:08","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MTJTBLN2DA\/MTJTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MTJTBLN2ET","fcbh_id":"MTJTBLN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MTJ","language_name":"Moskona","language_english":"Moskona","language_iso":"mtj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Moskona","language_family_code":"MTJ","language_family_name":"Moskona","language_family_english":"Moskona","language_family_iso":"mtj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-30 21:30:55","created_on":"2012-05-09 21:42:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MTJTBLN2ET\/MTJTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MTOTBLN1DA","fcbh_id":"MTOTBLN1DA","volume_name":"1990 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MTO","language_name":"Mixe Totontepec","language_english":"Mixe Totontepec","language_iso":"mto","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Totontepec Mixe","language_family_code":"MTO","language_family_name":"Mixe Totontepec","language_family_english":"Mixe Totontepec","language_family_iso":"mto","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-26 21:39:52","created_on":"2018-10-26 20:14:40","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MTOTBLN1DA\/MTOTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download"],"resolution":[]},{"dam_id":"MTOTBLN1ET","fcbh_id":"MTOTBLN1ET","volume_name":"1990 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MTO","language_name":"Mixe Totontepec","language_english":"Mixe Totontepec","language_iso":"mto","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Totontepec Mixe","language_family_code":"MTO","language_family_name":"Mixe Totontepec","language_family_english":"Mixe Totontepec","language_family_iso":"mto","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-26 21:40:05","created_on":"2018-10-26 21:23:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MTOTBLN1ET\/MTOTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MTOTBLN2DA","fcbh_id":"MTOTBLN2DA","volume_name":"1990 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MTO","language_name":"Mixe Totontepec","language_english":"Mixe Totontepec","language_iso":"mto","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Totontepec Mixe","language_family_code":"MTO","language_family_name":"Mixe Totontepec","language_family_english":"Mixe Totontepec","language_family_iso":"mto","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-26 21:40:27","created_on":"2018-10-26 20:02:48","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MTOTBLN2DA\/MTOTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download"],"resolution":[]},{"dam_id":"MTOTBLN2ET","fcbh_id":"MTOTBLN2ET","volume_name":"1990 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MTO","language_name":"Mixe Totontepec","language_english":"Mixe Totontepec","language_iso":"mto","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Totontepec Mixe","language_family_code":"MTO","language_family_name":"Mixe Totontepec","language_family_english":"Mixe Totontepec","language_family_iso":"mto","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 21:14:40","created_on":"2016-02-12 14:36:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MTOTBLN2ET\/MTOTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MTPKCVN2DA","fcbh_id":"MTPKCVN2DA","volume_name":"Kenneth Claesson Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MTP","language_name":"Weenhayek","language_english":"Weenhayek","language_iso":"mtp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wich\u00ed Lhamt\u00e9s Nocten","language_family_code":"MTP","language_family_name":"Weenhayek","language_family_english":"Weenhayek","language_family_iso":"mtp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"KCV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:47","created_on":"2010-09-14 17:01:29","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2MTPKCV","audio_zip_path":"MTPKCVN2DA\/MTPKCVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MTPKCVN2ET","fcbh_id":"MTPKCVN2ET","volume_name":"Kenneth Claesson Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MTP","language_name":"Weenhayek","language_english":"Weenhayek","language_iso":"mtp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wich\u00ed Lhamt\u00e9s Nocten","language_family_code":"MTP","language_family_name":"Weenhayek","language_family_english":"Weenhayek","language_family_iso":"mtp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"KCV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:19","created_on":"2014-11-10 17:34:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MTPKCVN2ET\/MTPKCVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MUAABCN2DA","fcbh_id":"MUAABCN2DA","volume_name":"Bible Society Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MUA","language_name":"Moundang","language_english":"Moundang","language_iso":"mua","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mundang","language_family_code":"MUA","language_family_name":"Moundang","language_family_english":"Moundang","language_family_iso":"mua","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:53","created_on":"2010-09-14 17:01:16","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2MUAABC","audio_zip_path":"MUAABCN2DA\/MUAABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MUGABCN2DA","fcbh_id":"MUGABCN2DA","volume_name":"1964 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MUG","language_name":"Mousgoum","language_english":"Mousgoum","language_iso":"mug","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Musgu","language_family_code":"MUG","language_family_name":"Mousgoum","language_family_english":"Mousgoum","language_family_iso":"mug","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:06","created_on":"2011-10-11 19:19:29","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MUGABCN2DA\/MUGABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MUHWBTN2DA","fcbh_id":"MUHWBTN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MUH","language_name":"Mundu","language_english":"Mundu","language_iso":"muh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"M\u00fcnd\u00fc","language_family_code":"MUH","language_family_name":"Mundu","language_family_english":"Mundu","language_family_iso":"muh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:49","created_on":"2011-06-01 14:58:25","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MUHWBTN2DA\/MUHWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MUHWBTN2ET","fcbh_id":"MUHWBTN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MUH","language_name":"Mundu","language_english":"Mundu","language_iso":"muh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"M\u00fcnd\u00fc","language_family_code":"MUH","language_family_name":"Mundu","language_family_english":"Mundu","language_family_iso":"muh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:37","created_on":"2011-06-10 18:55:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MUHWBTN2ET\/MUHWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MUPNLLN1DA","fcbh_id":"MUPNLLN1DA","volume_name":"2012 Malvoday and New Life Literature","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MUP","language_name":"Malvi","language_english":"Malvi","language_iso":"mup","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Malvi","language_family_code":"MUP","language_family_name":"Malvi","language_family_english":"Malvi","language_family_iso":"mup","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NLL","version_name":"New Life Literature","version_english":"New Life Literature","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-03 21:28:05","created_on":"2017-05-03 20:55:15","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MUPNLLN1DA\/MUPNLLN1DA.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MUPNLLN1ET","fcbh_id":"MUPNLLN1ET","volume_name":"2012 Malvoday and New Life Literature","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MUP","language_name":"Malvi","language_english":"Malvi","language_iso":"mup","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Malvi","language_family_code":"MUP","language_family_name":"Malvi","language_family_english":"Malvi","language_family_iso":"mup","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NLL","version_name":"New Life Literature","version_english":"New Life Literature","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-15 17:32:15","created_on":"2017-05-03 20:45:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MUPNLLN1ET\/MUPNLLN1ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MUPNLLN2DA","fcbh_id":"MUPNLLN2DA","volume_name":"2012 Malvoday and New Life Literature","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MUP","language_name":"Malvi","language_english":"Malvi","language_iso":"mup","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Malvi","language_family_code":"MUP","language_family_name":"Malvi","language_family_english":"Malvi","language_family_iso":"mup","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NLL","version_name":"New Life Literature","version_english":"New Life Literature","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-03 20:54:19","created_on":"2014-10-24 15:58:29","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MUPNLLN2DA\/MUPNLLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MUPNLLN2ET","fcbh_id":"MUPNLLN2ET","volume_name":"2012 Malvoday and New Life Literature","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MUP","language_name":"Malvi","language_english":"Malvi","language_iso":"mup","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Malvi","language_family_code":"MUP","language_family_name":"Malvi","language_family_english":"Malvi","language_family_iso":"mup","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NLL","version_name":"New Life Literature","version_english":"New Life Literature","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-18 18:51:36","created_on":"2014-04-07 17:50:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MUPNLLN2ET\/MUPNLLN2ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MURTBLN2DA","fcbh_id":"MURTBLN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MUR","language_name":"Murle","language_english":"Murle","language_iso":"mur","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Murle","language_family_code":"MUR","language_family_name":"Murle","language_family_english":"Murle","language_family_iso":"mur","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-24 22:32:03","created_on":"2011-08-01 15:45:16","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MURTBLN2DA\/MURTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MURTBLN2ET","fcbh_id":"MURTBLN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MUR","language_name":"Murle","language_english":"Murle","language_iso":"mur","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Murle","language_family_code":"MUR","language_family_name":"Murle","language_family_english":"Murle","language_family_iso":"mur","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:12","created_on":"2011-06-07 22:41:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MURTBLN2ET\/MURTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MUXWBTN2ET","fcbh_id":"MUXWBTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MUX","language_name":"Bo-Ung","language_english":"Bo-Ung","language_iso":"mux","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bo-Ung","language_family_code":"MUX","language_family_name":"Bo-Ung","language_family_english":"Bo-Ung","language_family_iso":"mux","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-11 22:24:25","created_on":"2014-05-07 19:24:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MUXWBTN2ET\/MUXWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MUYWBTN1DA","fcbh_id":"MUYWBTN1DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MUY","language_name":"Muyang","language_english":"Muyang","language_iso":"muy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Muyang","language_family_code":"MUY","language_family_name":"Muyang","language_family_english":"Muyang","language_family_iso":"muy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-05 22:34:36","created_on":"2017-05-05 21:43:51","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MUYWBTN1DA\/MUYWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MUYWBTN1ET","fcbh_id":"MUYWBTN1ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MUY","language_name":"Muyang","language_english":"Muyang","language_iso":"muy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Muyang","language_family_code":"MUY","language_family_name":"Muyang","language_family_english":"Muyang","language_family_iso":"muy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-03 18:19:33","created_on":"2017-05-05 21:39:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MUYWBTN1ET\/MUYWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MUYWBTN2DA","fcbh_id":"MUYWBTN2DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MUY","language_name":"Muyang","language_english":"Muyang","language_iso":"muy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Muyang","language_family_code":"MUY","language_family_name":"Muyang","language_family_english":"Muyang","language_family_iso":"muy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-11-10 21:17:31","created_on":"2014-11-07 20:17:38","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MUYWBTN2DA\/MUYWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MUYWBTN2ET","fcbh_id":"MUYWBTN2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MUY","language_name":"Muyang","language_english":"Muyang","language_iso":"muy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Muyang","language_family_code":"MUY","language_family_name":"Muyang","language_family_english":"Muyang","language_family_iso":"muy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-03 18:18:46","created_on":"2014-02-24 17:03:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MUYWBTN2ET\/MUYWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MVABTAN2ET","fcbh_id":"MVABTAN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MVA","language_name":"Manam","language_english":"Manam","language_iso":"mva","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Manam","language_family_code":"MVA","language_family_name":"Manam","language_family_english":"Manam","language_family_iso":"mva","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTA","version_name":"Bible Translation Association","version_english":"Bible Translation Association","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:23:04","created_on":"2014-05-08 18:22:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MVABTAN2ET\/MVABTAN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MVCNVSN2DA","fcbh_id":"MVCNVSN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MVC","language_name":"Mam, Central","language_english":"Mam, Central","language_iso":"mvc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mam Central","language_family_code":"MVC","language_family_name":"Mam, Central","language_family_english":"Mam, Central","language_family_iso":"mvc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-23 18:13:51","created_on":"2010-09-14 17:00:32","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2MVCNVS","audio_zip_path":"MVCNVSN2DA\/MVCNVSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MVCNVSN2ET","fcbh_id":"MVCNVSN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MVC","language_name":"Mam, Central","language_english":"Mam, Central","language_iso":"mvc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mam Central","language_family_code":"MVC","language_family_name":"Mam, Central","language_family_english":"Mam, Central","language_family_iso":"mvc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:18","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2MVCNVS","audio_zip_path":"MVCNVSN2ET\/MVCNVSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MVJWBTN2DA","fcbh_id":"MVJWBTN2DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MVJ","language_name":"Mam, Todos Santos","language_english":"Mam, Todos Santos","language_iso":"mam","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mam","language_family_code":"MVJ","language_family_name":"Mam, Todos Santos","language_family_english":"Mam, Todos Santos","language_family_iso":"mam","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-05 16:45:19","created_on":"2010-09-14 17:00:32","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2MVJWBT","audio_zip_path":"MVJWBTN2DA\/MVJWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MVJWBTN2ET","fcbh_id":"MVJWBTN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MVJ","language_name":"Mam, Todos Santos","language_english":"Mam, Todos Santos","language_iso":"mam","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mam","language_family_code":"MVJ","language_family_name":"Mam, Todos Santos","language_family_english":"Mam, Todos Santos","language_family_iso":"mam","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:02","created_on":"2010-11-25 20:49:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2MVJWBT","audio_zip_path":"MVJWBTN2ET\/MVJWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MVPLAIN2DA","fcbh_id":"MVPLAIN2DA","volume_name":"Today's Duri Version, 2005","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MVP","language_name":"Duri","language_english":"Duri","language_iso":"mvp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Duri","language_family_code":"MVP","language_family_name":"Duri","language_family_english":"Duri","language_family_iso":"mvp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:51","created_on":"2013-08-15 17:24:41","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MVPLAIN2DA\/MVPLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MVPLAIN2ET","fcbh_id":"MVPLAIN2ET","volume_name":"Today's Duri Version, 2005","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MVP","language_name":"Duri","language_english":"Duri","language_iso":"mvp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Duri","language_family_code":"MVP","language_family_name":"Duri","language_family_english":"Duri","language_family_iso":"mvp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:17","created_on":"2011-08-08 18:53:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MVPLAIN2ET\/MVPLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MWMABTN2DA","fcbh_id":"MWMABTN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MWM","language_name":"Sar","language_english":"Sar","language_iso":"mwm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sar","language_family_code":"MWM","language_family_name":"Sar","language_family_english":"Sar","language_family_iso":"mwm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:54","created_on":"2010-09-14 17:00:32","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2MWMABT","audio_zip_path":"MWMABTN2DA\/MWMABTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MWQBSMN2DA","fcbh_id":"MWQBSMN2DA","volume_name":"Common Language Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MWQ","language_name":"Chin, Cho","language_english":"Chin, Cho","language_iso":"mwq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chin, Cho","language_family_code":"MWQ","language_family_name":"Chin, Cho","language_family_english":"Chin, Cho","language_family_iso":"mwq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-15 15:49:52","created_on":"2010-09-14 17:01:01","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2MWQBSM","audio_zip_path":"MWQBSMN2DA\/MWQBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MWQBSMN2ET","fcbh_id":"MWQBSMN2ET","volume_name":"Common Language Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MWQ","language_name":"Chin, Cho","language_english":"Chin, Cho","language_iso":"mwq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chin, Cho","language_family_code":"MWQ","language_family_name":"Chin, Cho","language_family_english":"Chin, Cho","language_family_iso":"mwq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-15 15:49:51","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2MWQBSM","audio_zip_path":"MWQBSMN2ET\/MWQBSMN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MWVLAIN2DA","fcbh_id":"MWVLAIN2DA","volume_name":"Today's Mentawai Version, 1993","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MWV","language_name":"Mentawai","language_english":"Mentawai","language_iso":"mwv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mentawai","language_family_code":"MWV","language_family_name":"Mentawai","language_family_english":"Mentawai","language_family_iso":"mwv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:52","created_on":"2012-08-20 16:05:51","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MWVLAIN2DA\/MWVLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MWVLAIN2ET","fcbh_id":"MWVLAIN2ET","volume_name":"Today's Mentawai Version, 1993","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MWV","language_name":"Mentawai","language_english":"Mentawai","language_iso":"mwv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mentawai","language_family_code":"MWV","language_family_name":"Mentawai","language_family_english":"Mentawai","language_family_iso":"mwv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-03 18:00:55","created_on":"2011-07-08 17:58:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MWVLAIN2ET\/MWVLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MWWHDVN2DA","fcbh_id":"MWWHDVN2DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MWW","language_name":"Hmong Daw","language_english":"Hmong Daw","language_iso":"mww","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hmong Daw","language_family_code":"MWW","language_family_name":"Hmong Daw","language_family_english":"Hmong Daw","language_family_iso":"mww","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"HDV","version_name":"Hmong Daw Version","version_english":"Hmong Daw Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-26 14:57:16","created_on":"2012-01-12 15:38:37","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MWWHDVN2DA\/MWWHDVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MWWHDVN2ET","fcbh_id":"MWWHDVN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MWW","language_name":"Hmong Daw","language_english":"Hmong Daw","language_iso":"mww","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hmong Daw","language_family_code":"MWW","language_family_name":"Hmong Daw","language_family_english":"Hmong Daw","language_family_iso":"mww","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"HDV","version_name":"Hmong Daw Version","version_english":"Hmong Daw Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-03 17:52:43","created_on":"2013-01-15 20:13:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MWWHDVN2ET\/MWWHDVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MWWHDVO2DA","fcbh_id":"MWWHDVO2DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MWW","language_name":"Hmong Daw","language_english":"Hmong Daw","language_iso":"mww","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hmong Daw","language_family_code":"MWW","language_family_name":"Hmong Daw","language_family_english":"Hmong Daw","language_family_iso":"mww","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"HDV","version_name":"Hmong Daw Version","version_english":"Hmong Daw Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-09-11 18:05:42","created_on":"2016-01-25 21:30:32","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MWWHDVO2DA\/MWWHDVO2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","streaming_url","digital_download"],"resolution":[]},{"dam_id":"MXBMVRN1DA","fcbh_id":"MXBMVRN1DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MXB","language_name":"Mixteco de Tezoatlan","language_english":"Mixteco de Tezoatlan","language_iso":"mxb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tezoatl\u00e1n Mixtec","language_family_code":"MXB","language_family_name":"Mixteco de Tezoatlan","language_family_english":"Mixteco de Tezoatlan","language_family_iso":"mxb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MVR","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:53","created_on":"2010-09-14 17:00:58","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1MXBMVR","audio_zip_path":"MXBMVRN1DA\/MXBMVRN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MXBMVRN1ET","fcbh_id":"MXBMVRN1ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MXB","language_name":"Mixteco de Tezoatlan","language_english":"Mixteco de Tezoatlan","language_iso":"mxb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tezoatl\u00e1n Mixtec","language_family_code":"MXB","language_family_name":"Mixteco de Tezoatlan","language_family_english":"Mixteco de Tezoatlan","language_family_iso":"mxb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MVR","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:22","created_on":"2013-04-16 21:14:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MXBMVRN1ET\/MXBMVRN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MXBMVRN2DA","fcbh_id":"MXBMVRN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MXB","language_name":"Mixteco de Tezoatlan","language_english":"Mixteco de Tezoatlan","language_iso":"mxb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tezoatl\u00e1n Mixtec","language_family_code":"MXB","language_family_name":"Mixteco de Tezoatlan","language_family_english":"Mixteco de Tezoatlan","language_family_iso":"mxb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MVR","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:54","created_on":"2010-10-05 19:34:21","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2MXBMVR","audio_zip_path":"MXBMVRN2DA\/MXBMVRN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MXBMVRN2ET","fcbh_id":"MXBMVRN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MXB","language_name":"Mixteco de Tezoatlan","language_english":"Mixteco de Tezoatlan","language_iso":"mxb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tezoatl\u00e1n Mixtec","language_family_code":"MXB","language_family_name":"Mixteco de Tezoatlan","language_family_english":"Mixteco de Tezoatlan","language_family_iso":"mxb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MVR","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:18","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2MXBMVR","audio_zip_path":"MXBMVRN2ET\/MXBMVRN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MXQTBLN1DA","fcbh_id":"MXQTBLN1DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MXQ","language_name":"Mixe de San Juan Juquila","language_english":"Mixe de San Juan Juquila","language_iso":"mxq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Juquila Mixe","language_family_code":"MXQ","language_family_name":"Mixe de San Juan Juquila","language_family_english":"Mixe de San Juan Juquila","language_family_iso":"mxq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-12 19:00:59","created_on":"2010-09-14 17:01:21","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1MXQTBL","audio_zip_path":"MXQTBLN1DA\/MXQTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MXQTBLN1ET","fcbh_id":"MXQTBLN1ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MXQ","language_name":"Mixe de San Juan Juquila","language_english":"Mixe de San Juan Juquila","language_iso":"mxq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Juquila Mixe","language_family_code":"MXQ","language_family_name":"Mixe de San Juan Juquila","language_family_english":"Mixe de San Juan Juquila","language_family_iso":"mxq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:48","created_on":"2011-10-10 18:19:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MXQTBLN1ET\/MXQTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MXTTBLN1DA","fcbh_id":"MXTTBLN1DA","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MXT","language_name":"Mixteco de Jamiltepec","language_english":"Mixteco de Jamiltepec","language_iso":"mxt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Jamiltepec Mixtec","language_family_code":"MXT","language_family_name":"Mixteco de Jamiltepec","language_family_english":"Mixteco de Jamiltepec","language_family_iso":"mxt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:55","created_on":"2011-09-21 16:31:49","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MXTTBLN1DA\/MXTTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MXTTBLN1ET","fcbh_id":"MXTTBLN1ET","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MXT","language_name":"Mixteco de Jamiltepec","language_english":"Mixteco de Jamiltepec","language_iso":"mxt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Jamiltepec Mixtec","language_family_code":"MXT","language_family_name":"Mixteco de Jamiltepec","language_family_english":"Mixteco de Jamiltepec","language_family_iso":"mxt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:49","created_on":"2010-09-14 17:01:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1MXTTBL","audio_zip_path":"MXTTBLN1ET\/MXTTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MXTTBLN2DA","fcbh_id":"MXTTBLN2DA","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MXT","language_name":"Mixteco de Jamiltepec","language_english":"Mixteco de Jamiltepec","language_iso":"mxt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Jamiltepec Mixtec","language_family_code":"MXT","language_family_name":"Mixteco de Jamiltepec","language_family_english":"Mixteco de Jamiltepec","language_family_iso":"mxt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:55","created_on":"2010-09-14 17:01:20","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MXTTBLN2DA\/MXTTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MXTTBLN2ET","fcbh_id":"MXTTBLN2ET","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MXT","language_name":"Mixteco de Jamiltepec","language_english":"Mixteco de Jamiltepec","language_iso":"mxt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Jamiltepec Mixtec","language_family_code":"MXT","language_family_name":"Mixteco de Jamiltepec","language_family_english":"Mixteco de Jamiltepec","language_family_iso":"mxt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:49","created_on":"2011-06-08 17:16:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MXTTBLN2ET\/MXTTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MXVWBTN1ET","fcbh_id":"MXVWBTN1ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MXV","language_name":"Mixtec, Metlat\u00f3noc","language_english":"Metlatonoc Mixtec","language_iso":"mxv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Metlat\u00f3noc Mixtec","language_family_code":"MXV","language_family_name":"Mixtec, Metlat\u00f3noc","language_family_english":"Metlatonoc Mixtec","language_family_iso":"mxv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-12 19:37:22","created_on":"2018-11-12 19:32:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MXVWBTN1ET\/MXVWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MYAOJVN2DA","fcbh_id":"MYAOJVN2DA","volume_name":"Old Judson Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MYA","language_name":"Burmese","language_english":"Burmese","language_iso":"mya","language_iso_2B":"bur","language_iso_2T":"mya","language_iso_1":"my","language_iso_name":"Burmese","language_family_code":"MYA","language_family_name":"Burmese","language_family_english":"Burmese","language_family_iso":"mya","language_family_iso_2B":"bur","language_family_iso_2T":"mya","language_family_iso_1":"my","version_code":"OJV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-08-21 22:47:39","created_on":"2010-09-14 17:00:32","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2MYAOJV","audio_zip_path":"MYAOJVN2DA\/MYAOJVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MYAOJVN2ET","fcbh_id":"MYAOJVN2ET","volume_name":"Old Judson Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MYA","language_name":"Burmese","language_english":"Burmese","language_iso":"mya","language_iso_2B":"bur","language_iso_2T":"mya","language_iso_1":"my","language_iso_name":"Burmese","language_family_code":"MYA","language_family_name":"Burmese","language_family_english":"Burmese","language_family_iso":"mya","language_family_iso_2B":"bur","language_family_iso_2T":"mya","language_family_iso_1":"my","version_code":"OJV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-16 15:31:37","created_on":"2011-07-08 17:01:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MYAOJVN2ET\/MYAOJVN2ET.zip","font":{"id":"28","name":"Padauk OT","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/PadaukOT","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&amp;amp;copy; SIL International, 2003. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MYAOJVO2ET","fcbh_id":"MYAOJVO2ET","volume_name":"Old Judson Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MYA","language_name":"Burmese","language_english":"Burmese","language_iso":"mya","language_iso_2B":"bur","language_iso_2T":"mya","language_iso_1":"my","language_iso_name":"Burmese","language_family_code":"MYA","language_family_name":"Burmese","language_family_english":"Burmese","language_family_iso":"mya","language_family_iso_2B":"bur","language_family_iso_2T":"mya","language_family_iso_1":"my","version_code":"OJV","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2015-10-16 15:31:37","created_on":"2011-07-08 17:04:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MYAOJVO2ET\/MYAOJVO2ET.zip","font":{"id":"28","name":"Padauk OT","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/PadaukOT","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&amp;amp;copy; SIL International, 2003. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MYBABTN2DA","fcbh_id":"MYBABTN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MYB","language_name":"Mbay ","language_english":"Mbay ","language_iso":"myb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mbay","language_family_code":"MYB","language_family_name":"Mbay","language_family_english":"Mbay","language_family_iso":"myb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-12-29 22:42:18","created_on":"2010-12-07 15:00:33","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2MYBABT","audio_zip_path":"MYBABTN2DA\/MYBABTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MYBABTN2ET","fcbh_id":"MYBABTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MYB","language_name":"Mbay ","language_english":"Mbay ","language_iso":"myb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mbay","language_family_code":"MYB","language_family_name":"Mbay","language_family_english":"Mbay","language_family_iso":"myb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-05 19:22:12","created_on":"2015-12-29 22:37:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MYBABTN2ET\/MYBABTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MYKWBTN2DA","fcbh_id":"MYKWBTN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MYK","language_name":"Miniyanka","language_english":"Miniyanka","language_iso":"myk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mamara Senoufo","language_family_code":"MYK","language_family_name":"Miniyanka","language_family_english":"Miniyanka","language_family_iso":"myk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-04-02 21:17:03","created_on":"2010-09-14 17:00:32","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2MYKWBT","audio_zip_path":"MYKWBTN2DA\/MYKWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MYKWBTN2ET","fcbh_id":"MYKWBTN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MYK","language_name":"Miniyanka","language_english":"Miniyanka","language_iso":"myk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mamara Senoufo","language_family_code":"MYK","language_family_name":"Miniyanka","language_family_english":"Miniyanka","language_family_iso":"myk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:20","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2MYKWBT","audio_zip_path":"MYKWBTN2ET\/MYKWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MYVIBTN1DA","fcbh_id":"MYVIBTN1DA","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MYV","language_name":"Mordvin-Erzya","language_english":"Mordvin-Erzya","language_iso":"myv","language_iso_2B":"myv","language_iso_2T":"myv","language_iso_1":"","language_iso_name":"Erzya","language_family_code":"MYV","language_family_name":"Mordvin-Erzya","language_family_english":"Mordvin-Erzya","language_family_iso":"myv","language_family_iso_2B":"myv","language_family_iso_2T":"myv","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-10 20:20:12","created_on":"2018-08-10 18:33:41","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MYVIBTN1DA\/MYVIBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"MYVIBTN1ET","fcbh_id":"MYVIBTN1ET","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MYV","language_name":"Mordvin-Erzya","language_english":"Mordvin-Erzya","language_iso":"myv","language_iso_2B":"myv","language_iso_2T":"myv","language_iso_1":"","language_iso_name":"Erzya","language_family_code":"MYV","language_family_name":"Mordvin-Erzya","language_family_english":"Mordvin-Erzya","language_family_iso":"myv","language_family_iso_2B":"myv","language_family_iso_2T":"myv","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-10 20:20:52","created_on":"2018-08-08 17:30:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MYVIBTN1ET\/MYVIBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MYVIBTN2DA","fcbh_id":"MYVIBTN2DA","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MYV","language_name":"Mordvin-Erzya","language_english":"Mordvin-Erzya","language_iso":"myv","language_iso_2B":"myv","language_iso_2T":"myv","language_iso_1":"","language_iso_name":"Erzya","language_family_code":"MYV","language_family_name":"Mordvin-Erzya","language_family_english":"Mordvin-Erzya","language_family_iso":"myv","language_family_iso_2B":"myv","language_family_iso_2T":"myv","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-10 21:36:52","created_on":"2018-08-10 15:45:23","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MYVIBTN2DA\/MYVIBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"MYVIBTN2ET","fcbh_id":"MYVIBTN2ET","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MYV","language_name":"Mordvin-Erzya","language_english":"Mordvin-Erzya","language_iso":"myv","language_iso_2B":"myv","language_iso_2T":"myv","language_iso_1":"","language_iso_name":"Erzya","language_family_code":"MYV","language_family_name":"Mordvin-Erzya","language_family_english":"Mordvin-Erzya","language_family_iso":"myv","language_family_iso_2B":"myv","language_family_iso_2T":"myv","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-08 18:20:14","created_on":"2012-05-09 21:38:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MYVIBTN2ET\/MYVIBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MYWPNGN2ET","fcbh_id":"MYWPNGN2ET","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MYW","language_name":"Muyuw","language_english":"Muyuw","language_iso":"myw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Muyuw","language_family_code":"MYW","language_family_name":"Muyuw","language_family_english":"Muyuw","language_family_iso":"myw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 20:07:32","created_on":"2014-06-05 16:12:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MYWPNGN2ET\/MYWPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MYXBSUN2DA","fcbh_id":"MYXBSUN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MYX","language_name":"Lumasaaba","language_english":"Lumasaaba","language_iso":"myx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Masaaba","language_family_code":"MYX","language_family_name":"Lumasaaba","language_family_english":"Lumasaaba","language_family_iso":"myx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-04-29 16:49:56","created_on":"2014-02-11 20:33:35","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MYXBSUN2DA\/MYXBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MYXBSUN2ET","fcbh_id":"MYXBSUN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MYX","language_name":"Lumasaaba","language_english":"Lumasaaba","language_iso":"myx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Masaaba","language_family_code":"MYX","language_family_name":"Lumasaaba","language_family_english":"Lumasaaba","language_family_iso":"myx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:09","created_on":"2013-06-19 15:39:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MYXBSUN2ET\/MYXBSUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MYYWBTN1DA","fcbh_id":"MYYWBTN1DA","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MYY","language_name":"Macuna","language_english":"Macuna","language_iso":"myy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Macuna","language_family_code":"MYY","language_family_name":"Macuna","language_family_english":"Macuna","language_family_iso":"myy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-16 16:10:53","created_on":"2018-03-16 15:39:42","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"MYYWBTN1DA\/MYYWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MYYWBTN1ET","fcbh_id":"MYYWBTN1ET","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MYY","language_name":"Macuna","language_english":"Macuna","language_iso":"myy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Macuna","language_family_code":"MYY","language_family_name":"Macuna","language_family_english":"Macuna","language_family_iso":"myy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-16 16:11:13","created_on":"2018-03-16 15:35:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MYYWBTN1ET\/MYYWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MYYWBTN2DA","fcbh_id":"MYYWBTN2DA","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MYY","language_name":"Macuna","language_english":"Macuna","language_iso":"myy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Macuna","language_family_code":"MYY","language_family_name":"Macuna","language_family_english":"Macuna","language_family_iso":"myy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-05-09 22:24:26","created_on":"2014-05-09 19:34:48","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MYYWBTN2DA\/MYYWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MYYWBTN2ET","fcbh_id":"MYYWBTN2ET","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MYY","language_name":"Macuna","language_english":"Macuna","language_iso":"myy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Macuna","language_family_code":"MYY","language_family_name":"Macuna","language_family_english":"Macuna","language_family_iso":"myy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:36","created_on":"2012-03-23 17:47:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MYYWBTN2ET\/MYYWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MZAWBTN2DA","fcbh_id":"MZAWBTN2DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MZA","language_name":"Mixtec, Zacatepec","language_english":"Mixtec Zacatepec","language_iso":"mza","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Santa Mar\u00eda Zacatepec Mixtec","language_family_code":"MZA","language_family_name":"Mixtec, Zacatepec","language_family_english":"Mixtec Zacatepec","language_family_iso":"mza","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-21 17:22:27","created_on":"2014-01-13 18:32:42","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"MZAWBTN2DA\/MZAWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MZAWBTN2ET","fcbh_id":"MZAWBTN2ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MZA","language_name":"Mixtec, Zacatepec","language_english":"Mixtec Zacatepec","language_iso":"mza","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Santa Mar\u00eda Zacatepec Mixtec","language_family_code":"MZA","language_family_name":"Mixtec, Zacatepec","language_family_english":"Mixtec Zacatepec","language_family_iso":"mza","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:22","created_on":"2015-05-07 16:32:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MZAWBTN2ET\/MZAWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MZKTBLN2DA","fcbh_id":"MZKTBLN2DA","volume_name":"1977 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MZK","language_name":"Mambila for Nigeria","language_english":"Mambila for Nigeria","language_iso":"mzk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nigeria Mambila","language_family_code":"MZK","language_family_name":"Mambila for Nigeria","language_family_english":"Mambila for Nigeria","language_family_iso":"mzk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:58:57","created_on":"2011-05-25 14:55:27","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MZKTBLN2DA\/MZKTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MZKTBLN2ET","fcbh_id":"MZKTBLN2ET","volume_name":"1977 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MZK","language_name":"Mambila for Nigeria","language_english":"Mambila for Nigeria","language_iso":"mzk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nigeria Mambila","language_family_code":"MZK","language_family_name":"Mambila for Nigeria","language_family_english":"Mambila for Nigeria","language_family_iso":"mzk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:17","created_on":"2011-06-07 23:58:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"MZKTBLN2ET\/MZKTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"MZLMSVN2DA","fcbh_id":"MZLMSVN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"MZL","language_name":"Mixe de Mazatl\u00e1n Tutla","language_english":"Mixe de Mazatlan Tutla","language_iso":"mzl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mazatl\u00e1n Mixe","language_family_code":"MZL","language_family_name":"Mixe de Mazatl\u00e1n Tutla","language_family_english":"Mixe de Mazatlan Tutla","language_family_iso":"mzl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MSV","version_name":"Mitla Studios Version","version_english":"Mitla Studios Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:44","created_on":"2012-09-25 18:20:13","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"MZLMSVN2DA\/MZLMSVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"MZMWBTN2DA","fcbh_id":"MZMWBTN2DA","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MZM","language_name":"Mumuye","language_english":"Mumuye","language_iso":"mzm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mumuye","language_family_code":"MZM","language_family_name":"Mumuye","language_family_english":"Mumuye","language_family_iso":"mzm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-15 17:20:55","created_on":"2010-09-14 17:01:11","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2MZMWBT","audio_zip_path":"MZMWBTN2DA\/MZMWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MZMWBTN2ET","fcbh_id":"MZMWBTN2ET","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MZM","language_name":"Mumuye","language_english":"Mumuye","language_iso":"mzm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mumuye","language_family_code":"MZM","language_family_name":"Mumuye","language_family_english":"Mumuye","language_family_iso":"mzm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-25 20:46:10","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2MZMWBT","audio_zip_path":"MZMWBTN2ET\/MZMWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"MZWNVSN1DA","fcbh_id":"MZWNVSN1DA","volume_name":"1990 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MZW","language_name":"Deg","language_english":"Deg","language_iso":"mzw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Deg","language_family_code":"MZW","language_family_name":"Deg","language_family_english":"Deg","language_family_iso":"mzw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-25 19:16:18","created_on":"2010-09-14 16:59:47","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1MZWNVS","audio_zip_path":"MZWNVSN1DA\/MZWNVSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"MZWNVSN1ET","fcbh_id":"MZWNVSN1ET","volume_name":"1990 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"MZW","language_name":"Deg","language_english":"Deg","language_iso":"mzw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Deg","language_family_code":"MZW","language_family_name":"Deg","language_family_english":"Deg","language_family_iso":"mzw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:24","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1MZWNVS","audio_zip_path":"MZWNVSN1ET\/MZWNVSN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NAFWBTN2ET","fcbh_id":"NAFWBTN2ET","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NAF","language_name":"Nabak","language_english":"Nabak","language_iso":"naf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nabak","language_family_code":"NAF","language_family_name":"Nabak","language_family_english":"Nabak","language_family_iso":"naf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:23","created_on":"2014-06-05 16:18:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NAFWBTN2ET\/NAFWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NAIBTTN1DA","fcbh_id":"NAIBTTN1DA","volume_name":"1985 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NAI","language_name":"Nahuatl Huasteca, Eastern","language_english":"Nahuatl Huasteca, Eastern","language_iso":"nhe","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Huasteca Nahuatl","language_family_code":"NHE","language_family_name":"Nahuatl Huasteca, Eastern","language_family_english":"Nahuatl Huasteca, Eastern","language_family_iso":"nhe","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-06 16:52:53","created_on":"2010-09-14 16:59:47","right_to_left":"false","num_art":"4","num_sample_audio":"2","sku":"N1NAIBTT","audio_zip_path":"NAIBTTN1DA\/NAIBTTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"NAKTBLN2ET","fcbh_id":"NAKTBLN2ET","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NAK","language_name":"Nakanai","language_english":"Nakanai","language_iso":"nak","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nakanai","language_family_code":"NAK","language_family_name":"Nakanai","language_family_english":"Nakanai","language_family_iso":"nak","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 20:10:25","created_on":"2014-06-05 16:28:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NAKTBLN2ET\/NAKTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NANTTVN2DA","fcbh_id":"NANTTVN2DA","volume_name":"Today's Taiwanese Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NAN","language_name":"Hokkien","language_english":"Taiwanese","language_iso":"nan","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Min Nan Chinese","language_family_code":"NAN","language_family_name":"Hokkien","language_family_english":"Taiwanese","language_family_iso":"nan","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TTV","version_name":"Today\\'s Taiwanese Version","version_english":"Todays Taiwanese Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-10 19:33:39","created_on":"2012-05-02 16:14:26","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"NANTTVN2DA\/NANTTVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NANTTVN2ET","fcbh_id":"NANTTVN2ET","volume_name":"Today's Taiwanese Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NAN","language_name":"Hokkien","language_english":"Taiwanese","language_iso":"nan","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Min Nan Chinese","language_family_code":"NAN","language_family_name":"Hokkien","language_family_english":"Taiwanese","language_family_iso":"nan","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TTV","version_name":"Today\\'s Taiwanese Version","version_english":"Todays Taiwanese Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:11","created_on":"2011-08-15 22:46:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NANTTVN2ET\/NANTTVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NAVABSN1DA","fcbh_id":"NAVABSN1DA","volume_name":"1985 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NAV","language_name":"Navajo","language_english":"Navajo","language_iso":"nav","language_iso_2B":"nav","language_iso_2T":"nav","language_iso_1":"nv","language_iso_name":"Navajo","language_family_code":"NAV","language_family_name":"Navajo","language_family_english":"Navajo","language_family_iso":"nav","language_family_iso_2B":"nav","language_family_iso_2T":"nav","language_family_iso_1":"nv","version_code":"ABS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:26","created_on":"2010-09-14 16:59:48","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1NAVABS","audio_zip_path":"NAVABSN1DA\/NAVABSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NAWWBTN1DA","fcbh_id":"NAWWBTN1DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NAW","language_name":"Nawuri","language_english":"Nawuri","language_iso":"naw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nawuri","language_family_code":"NAW","language_family_name":"Nawuri","language_family_english":"Nawuri","language_family_iso":"naw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 18:04:46","created_on":"2018-03-13 16:23:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NAWWBTN1DA\/NAWWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NAWWBTN1ET","fcbh_id":"NAWWBTN1ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NAW","language_name":"Nawuri","language_english":"Nawuri","language_iso":"naw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nawuri","language_family_code":"NAW","language_family_name":"Nawuri","language_family_english":"Nawuri","language_family_iso":"naw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-11 17:46:18","created_on":"2018-06-11 17:36:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NAWWBTN1ET\/NAWWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NAWWBTN2DA","fcbh_id":"NAWWBTN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NAW","language_name":"Nawuri","language_english":"Nawuri","language_iso":"naw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nawuri","language_family_code":"NAW","language_family_name":"Nawuri","language_family_english":"Nawuri","language_family_iso":"naw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 16:23:07","created_on":"2018-03-09 21:56:22","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NAWWBTN2DA\/NAWWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NAWWBTN2ET","fcbh_id":"NAWWBTN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NAW","language_name":"Nawuri","language_english":"Nawuri","language_iso":"naw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nawuri","language_family_code":"NAW","language_family_name":"Nawuri","language_family_english":"Nawuri","language_family_iso":"naw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-11 17:39:29","created_on":"2018-06-11 17:17:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NAWWBTN2ET\/NAWWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NCAWBTN2ET","fcbh_id":"NCAWBTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NCA","language_name":"Iyo","language_english":"Iyo","language_iso":"nca","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Iyo","language_family_code":"NCA","language_family_name":"Iyo","language_family_english":"Iyo","language_family_iso":"nca","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-21 19:53:02","created_on":"2016-05-09 17:08:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NCAWBTN2ET\/NCAWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NCHTBLN2DA","fcbh_id":"NCHTBLN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NCH","language_name":"Nahuatl Huasteca, Central","language_english":"Nahuatl Huasteca, Central","language_iso":"nch","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Huasteca Nahuatl","language_family_code":"NCH","language_family_name":"Nahuatl Huasteca, Central","language_family_english":"Nahuatl Huasteca, Central","language_family_iso":"nch","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-12 17:01:04","created_on":"2010-09-14 17:01:00","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2NCHTBL","audio_zip_path":"NCHTBLN2DA\/NCHTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NCHTBLN2ET","fcbh_id":"NCHTBLN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NCH","language_name":"Nahuatl Huasteca, Central","language_english":"Nahuatl Huasteca, Central","language_iso":"nch","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Huasteca Nahuatl","language_family_code":"NCH","language_family_name":"Nahuatl Huasteca, Central","language_family_english":"Nahuatl Huasteca, Central","language_family_iso":"nch","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:20","created_on":"2010-11-25 20:49:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2NCHTBL","audio_zip_path":"NCHTBLN2ET\/NCHTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NCJTBLN2DA","fcbh_id":"NCJTBLN2DA","volume_name":"1979 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NCJ","language_name":"Nahuatl Norte Puebla","language_english":"Nahuatl Norte Puebla","language_iso":"ncj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Puebla Nahuatl","language_family_code":"NCJ","language_family_name":"Nahuatl Norte Puebla","language_family_english":"Nahuatl Norte Puebla","language_family_iso":"ncj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:00","created_on":"2013-05-13 17:16:19","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"NCJTBLN2DA\/NCJTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NCJTBLN2ET","fcbh_id":"NCJTBLN2ET","volume_name":"1979 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NCJ","language_name":"Nahuatl Norte Puebla","language_english":"Nahuatl Norte Puebla","language_iso":"ncj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Puebla Nahuatl","language_family_code":"NCJ","language_family_name":"Nahuatl Norte Puebla","language_family_english":"Nahuatl Norte Puebla","language_family_iso":"ncj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:47","created_on":"2013-06-18 21:39:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NCJTBLN2ET\/NCJTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NCUWBTN2DA","fcbh_id":"NCUWBTN2DA","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NCU","language_name":"Chumburung","language_english":"Chumburung","language_iso":"ncu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chumburung","language_family_code":"NCU","language_family_name":"Chumburung","language_family_english":"Chumburung","language_family_iso":"ncu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-22 15:25:24","created_on":"2010-09-14 17:00:33","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2NCUWBT","audio_zip_path":"NCUWBTN2DA\/NCUWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NCUWBTN2ET","fcbh_id":"NCUWBTN2ET","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NCU","language_name":"Chumburung","language_english":"Chumburung","language_iso":"ncu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chumburung","language_family_code":"NCU","language_family_name":"Chumburung","language_family_english":"Chumburung","language_family_iso":"ncu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:23","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2NCUWBT","audio_zip_path":"NCUWBTN2ET\/NCUWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NDCBSZN2DA","fcbh_id":"NDCBSZN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NDC","language_name":"Ndau","language_english":"Ndau","language_iso":"ndc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ndau","language_family_code":"NDC","language_family_name":"Ndau","language_family_english":"Ndau","language_family_iso":"ndc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSZ","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:57","created_on":"2010-09-14 17:01:00","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2NDCBSZ","audio_zip_path":"NDCBSZN2DA\/NDCBSZN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NDEBSZN2DA","fcbh_id":"NDEBSZN2DA","volume_name":"1978 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NDE","language_name":"Ndebele for Zimbabwe","language_english":"Ndebele for Zimbabwe","language_iso":"nde","language_iso_2B":"nde","language_iso_2T":"nde","language_iso_1":"nd","language_iso_name":"North Ndebele","language_family_code":"NDE","language_family_name":"Ndebele for Zimbabwe","language_family_english":"Ndebele for Zimbabwe","language_family_iso":"nde","language_family_iso_2B":"nde","language_family_iso_2T":"nde","language_family_iso_1":"nd","version_code":"BSZ","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:08","created_on":"2011-06-01 15:38:38","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"NDEBSZN2DA\/NDEBSZN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NDIABCN2DA","fcbh_id":"NDIABCN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NDI","language_name":"Samba Leko","language_english":"Samba Leko","language_iso":"ndi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Samba Leko","language_family_code":"NDI","language_family_name":"Samba Leko","language_family_english":"Samba Leko","language_family_iso":"ndi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:07","created_on":"2011-10-11 19:50:15","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"NDIABCN2DA\/NDIABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NDJPBTN1ET","fcbh_id":"NDJPBTN1ET","volume_name":"PBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NDJ","language_name":"Ndamba","language_english":"Ndamba","language_iso":"ndj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ndamba","language_family_code":"NDJ","language_family_name":"Ndamba","language_family_english":"Ndamba","language_family_iso":"ndj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-19 18:12:02","created_on":"2018-03-21 17:06:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NDJPBTN1ET\/NDJPBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NDYBIVN2ET","fcbh_id":"NDYBIVN2ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NDY","language_name":"Rito","language_english":"Lutos","language_iso":"ndy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lutos","language_family_code":"NDY","language_family_name":"Rito","language_family_english":"Lutos","language_family_iso":"ndy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-05 19:44:29","created_on":"2015-12-29 22:45:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NDYBIVN2ET\/NDYBIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NDZWBTN2DA","fcbh_id":"NDZWBTN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NDZ","language_name":"Ndogo","language_english":"Ndogo","language_iso":"ndz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ndogo","language_family_code":"NDZ","language_family_name":"Ndogo","language_family_english":"Ndogo","language_family_iso":"ndz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:02","created_on":"2011-05-30 19:56:59","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"NDZWBTN2DA\/NDZWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NDZWBTN2ET","fcbh_id":"NDZWBTN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NDZ","language_name":"Ndogo","language_english":"Ndogo","language_iso":"ndz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ndogo","language_family_code":"NDZ","language_family_name":"Ndogo","language_family_english":"Ndogo","language_family_iso":"ndz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:36","created_on":"2011-07-22 15:36:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NDZWBTN2ET\/NDZWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NEBWYIN2DA","fcbh_id":"NEBWYIN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NEB","language_name":"Toura","language_english":"Toura","language_iso":"neb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Toura (C\u00f4te d'Ivoire)","language_family_code":"NEB","language_family_name":"Toura","language_family_english":"Toura","language_family_iso":"neb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:03","created_on":"2013-07-02 17:22:31","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"NEBWYIN2DA\/NEBWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NEBWYIN2ET","fcbh_id":"NEBWYIN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NEB","language_name":"Toura","language_english":"Toura","language_iso":"neb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Toura (C\u00f4te d'Ivoire)","language_family_code":"NEB","language_family_name":"Toura","language_family_english":"Toura","language_family_iso":"neb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:38","created_on":"2012-01-13 22:33:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NEBWYIN2ET\/NEBWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NEPNRVN2DA","fcbh_id":"NEPNRVN2DA","volume_name":"New Revised Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NEP","language_name":"Nepali","language_english":"Nepali","language_iso":"nep","language_iso_2B":"nep","language_iso_2T":"nep","language_iso_1":"ne","language_iso_name":"Nepali","language_family_code":"NEP","language_family_name":"Nepali","language_family_english":"Nepali","language_family_iso":"nep","language_family_iso_2B":"nep","language_family_iso_2T":"nep","language_family_iso_1":"ne","version_code":"NRV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:37","created_on":"2010-09-14 17:00:33","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2NEPNRV","audio_zip_path":"NEPNRVN2DA\/NEPNRVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NEQMVRN1DA","fcbh_id":"NEQMVRN1DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NEQ","language_name":"Mixe de Atitlan","language_english":"Mixe de Atitlan","language_iso":"neq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"North Central Mixe","language_family_code":"NEQ","language_family_name":"Mixe de Atitlan","language_family_english":"Mixe de Atitlan","language_family_iso":"neq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MVR","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:01","created_on":"2010-09-14 17:01:12","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1NEQMVR","audio_zip_path":"NEQMVRN1DA\/NEQMVRN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NEQMVRN2DA","fcbh_id":"NEQMVRN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NEQ","language_name":"Mixe de Atitlan","language_english":"Mixe de Atitlan","language_iso":"neq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"North Central Mixe","language_family_code":"NEQ","language_family_name":"Mixe de Atitlan","language_family_english":"Mixe de Atitlan","language_family_iso":"neq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MVR","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:01","created_on":"2010-09-14 17:01:25","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2NEQMVR","audio_zip_path":"NEQMVRN2DA\/NEQMVRN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NEWNBSN2DA","fcbh_id":"NEWNBSN2DA","volume_name":"1986 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NEW","language_name":"Newar","language_english":"Newar","language_iso":"new","language_iso_2B":"new","language_iso_2T":"new","language_iso_1":"","language_iso_name":"Newari","language_family_code":"NEW","language_family_name":"Newar","language_family_english":"Newar","language_family_iso":"new","language_family_iso_2B":"new","language_family_iso_2T":"new","language_family_iso_1":"","version_code":"NBS","version_name":"1930 Det Norsk Bibelselskap","version_english":"1930 Det Norsk Bibelselskap","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-07 17:52:04","created_on":"2010-09-14 17:01:05","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2NEWNBS","audio_zip_path":"NEWNBSN2DA\/NEWNBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NFRIBSN2DA","fcbh_id":"NFRIBSN2DA","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NFR","language_name":"Nafaanra","language_english":"Nafaanra","language_iso":"nfr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nafaanra","language_family_code":"NFR","language_family_name":"Nafaanra","language_family_english":"Nafaanra","language_family_iso":"nfr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-12 21:08:06","created_on":"2010-09-14 17:00:34","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2NFRIBS","audio_zip_path":"NFRIBSN2DA\/NFRIBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NFRIBSN2ET","fcbh_id":"NFRIBSN2ET","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NFR","language_name":"Nafaanra","language_english":"Nafaanra","language_iso":"nfr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nafaanra","language_family_code":"NFR","language_family_name":"Nafaanra","language_family_english":"Nafaanra","language_family_iso":"nfr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:49","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2NFRIBS","audio_zip_path":"NFRIBSN2ET\/NFRIBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NGBDRCN2DA","fcbh_id":"NGBDRCN2DA","volume_name":"1987 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NGB","language_name":"Ngbandi, Northern","language_english":"Ngbanbi, Northern","language_iso":"ngb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Ngbandi","language_family_code":"NGB","language_family_name":"Ngbandi, Northern","language_family_english":"Ngbanbi, Northern","language_family_iso":"ngb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"DRC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-07 16:34:43","created_on":"2010-11-25 20:50:16","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2NGBDRC","audio_zip_path":"NGBDRCN2DA\/NGBDRCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NGLBSSN2DA","fcbh_id":"NGLBSSN2DA","volume_name":"1930 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NGL","language_name":"Lomwe","language_english":"Lomwe","language_iso":"ngl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lomwe","language_family_code":"NGL","language_family_name":"Lomwe","language_family_english":"Lomwe","language_family_iso":"ngl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:34","created_on":"2010-09-14 17:00:34","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2NGLBSS","audio_zip_path":"NGLBSSN2DA\/NGLBSSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NGLRLVN1DA","fcbh_id":"NGLRLVN1DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NGL","language_name":"Lomwe","language_english":"Lomwe","language_iso":"ngl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lomwe","language_family_code":"NGL","language_family_name":"Lomwe","language_family_english":"Lomwe","language_family_iso":"ngl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RLV","version_name":"RLV","version_english":"RLV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 15:56:34","created_on":"2018-10-17 15:36:10","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NGLRLVN1DA\/NGLRLVN1DA.zip","font":{"id":"36","name":"Times New Roman","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Times_New_Roman","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"NGLRLVN2DA","fcbh_id":"NGLRLVN2DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NGL","language_name":"Lomwe","language_english":"Lomwe","language_iso":"ngl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lomwe","language_family_code":"NGL","language_family_name":"Lomwe","language_family_english":"Lomwe","language_family_iso":"ngl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RLV","version_name":"RLV","version_english":"RLV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 16:00:17","created_on":"2018-10-17 15:35:38","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NGLRLVN2DA\/NGLRLVN2DA.zip","font":{"id":"36","name":"Times New Roman","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Times_New_Roman","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"NGPPBTN1ET","fcbh_id":"NGPPBTN1ET","volume_name":"PBT Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NGP","language_name":"Nguu","language_english":"Ngulu","language_iso":"ngp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ngulu","language_family_code":"NGP","language_family_name":"Nguu","language_family_english":"Ngulu","language_family_iso":"ngp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-19 18:13:26","created_on":"2018-04-19 16:29:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NGPPBTN1ET\/NGPPBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NGUTBLN2DA","fcbh_id":"NGUTBLN2DA","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NGU","language_name":"Nahuatl, Guerrero","language_english":"Nahuatl, Guerrero","language_iso":"ngu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guerrero Nahuatl","language_family_code":"NGU","language_family_name":"Nahuatl, Guerrero","language_family_english":"Nahuatl, Guerrero","language_family_iso":"ngu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:10","created_on":"2013-10-08 19:07:14","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"NGUTBLN2DA\/NGUTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NGUTBLN2ET","fcbh_id":"NGUTBLN2ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NGU","language_name":"Nahuatl, Guerrero","language_english":"Nahuatl, Guerrero","language_iso":"ngu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Guerrero Nahuatl","language_family_code":"NGU","language_family_name":"Nahuatl, Guerrero","language_family_english":"Nahuatl, Guerrero","language_family_iso":"ngu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-12 19:26:12","created_on":"2018-11-12 19:21:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NGUTBLN2ET\/NGUTBLN2ET.zip","font":{"id":"7","name":"Arial","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Arial","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NH1NMVN1DA","fcbh_id":"NH1NMVN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NH1","language_name":"Nahuatl, Mecayapan","language_english":"Nahuatl, Mecayapan","language_iso":"nhx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Isthmus-Mecayapan Nahuatl","language_family_code":"NH1","language_family_name":"Nahuatl, Mecayapan","language_family_english":"Nahuatl, Mecayapan","language_family_iso":"nhx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NMV","version_name":"NMV","version_english":"NMV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-11 18:46:04","created_on":"2016-03-01 17:40:44","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NH1NMVN1DA\/NH1NMVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NH1NMVN1ET","fcbh_id":"NH1NMVN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NH1","language_name":"Nahuatl, Mecayapan","language_english":"Nahuatl, Mecayapan","language_iso":"nhx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Isthmus-Mecayapan Nahuatl","language_family_code":"NH1","language_family_name":"Nahuatl, Mecayapan","language_family_english":"Nahuatl, Mecayapan","language_family_iso":"nhx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NMV","version_name":"NMV","version_english":"NMV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-17 17:35:20","created_on":"2017-04-17 17:31:37","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NH1NMVN1ET\/NH1NMVN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NH1NMVN2DA","fcbh_id":"NH1NMVN2DA","volume_name":"WBT Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NH1","language_name":"Nahuatl, Mecayapan","language_english":"Nahuatl, Mecayapan","language_iso":"nhx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Isthmus-Mecayapan Nahuatl","language_family_code":"NH1","language_family_name":"Nahuatl, Mecayapan","language_family_english":"Nahuatl, Mecayapan","language_family_iso":"nhx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NMV","version_name":"NMV","version_english":"NMV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-11 18:46:04","created_on":"2016-03-01 17:37:35","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NH1NMVN2DA\/NH1NMVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NH1NMVN2ET","fcbh_id":"NH1NMVN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NH1","language_name":"Nahuatl, Mecayapan","language_english":"Nahuatl, Mecayapan","language_iso":"nhx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Isthmus-Mecayapan Nahuatl","language_family_code":"NH1","language_family_name":"Nahuatl, Mecayapan","language_family_english":"Nahuatl, Mecayapan","language_family_iso":"nhx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NMV","version_name":"NMV","version_english":"NMV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-17 17:34:20","created_on":"2017-04-17 17:30:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NH1NMVN2ET\/NH1NMVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NH1NMVS1DA","fcbh_id":"NH1NMVS1DA","volume_name":"Resumen del Antiguo Testamento","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NH1","language_name":"Nahuatl, Mecayapan","language_english":"Nahuatl, Mecayapan","language_iso":"nhx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Isthmus-Mecayapan Nahuatl","language_family_code":"NH1","language_family_name":"Nahuatl, Mecayapan","language_family_english":"Nahuatl, Mecayapan","language_family_iso":"nhx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NMV","version_name":"NMV","version_english":"NMV","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2016-06-15 17:23:03","created_on":"2016-03-02 15:43:55","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NH1NMVS1DA\/NH1NMVS1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NHETBLN2DA","fcbh_id":"NHETBLN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NHE","language_name":"Nahuatl Huasteca, Eastern","language_english":"Nahuatl Huasteca, Eastern","language_iso":"nhe","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Huasteca Nahuatl","language_family_code":"NHE","language_family_name":"Nahuatl Huasteca, Eastern","language_family_english":"Nahuatl Huasteca, Eastern","language_family_iso":"nhe","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-12 21:16:47","created_on":"2010-10-05 19:34:18","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2NHETBL","audio_zip_path":"NHETBLN2DA\/NHETBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NHETBLN2ET","fcbh_id":"NHETBLN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NHE","language_name":"Nahuatl Huasteca, Eastern","language_english":"Nahuatl Huasteca, Eastern","language_iso":"nhe","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Huasteca Nahuatl","language_family_code":"NHE","language_family_name":"Nahuatl Huasteca, Eastern","language_family_english":"Nahuatl Huasteca, Eastern","language_family_iso":"nhe","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:17","created_on":"2010-11-25 20:50:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2NHETBL","audio_zip_path":"NHETBLN2ET\/NHETBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NHIWBTN2DA","fcbh_id":"NHIWBTN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NHI","language_name":"Nahuatl, Tenango","language_english":"Nahuatl, Tenango","language_iso":"nhi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zacatl\u00e1n-Ahuacatl\u00e1n-Tepetzintla Nahuatl","language_family_code":"NHI","language_family_name":"Nahuatl, Tenango","language_family_english":"Nahuatl, Tenango","language_family_iso":"nhi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:07","created_on":"2011-10-06 18:08:46","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"NHIWBTN2DA\/NHIWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NHIWBTN2ET","fcbh_id":"NHIWBTN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NHI","language_name":"Nahuatl, Tenango","language_english":"Nahuatl, Tenango","language_iso":"nhi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zacatl\u00e1n-Ahuacatl\u00e1n-Tepetzintla Nahuatl","language_family_code":"NHI","language_family_name":"Nahuatl, Tenango","language_family_english":"Nahuatl, Tenango","language_family_iso":"nhi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:38","created_on":"2011-05-30 19:43:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NHIWBTN2ET\/NHIWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NHOTCTN2ET","fcbh_id":"NHOTCTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NHO","language_name":"Takuu","language_english":"Takuu","language_iso":"nho","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Takuu","language_family_code":"NHO","language_family_name":"Takuu","language_family_english":"Takuu","language_family_iso":"nho","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TCT","version_name":"TCT","version_english":"TCT","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-17 19:50:07","created_on":"2017-04-17 19:18:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NHOTCTN2ET\/NHOTCTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NHUWBTN2DA","fcbh_id":"NHUWBTN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NHU","language_name":"Nooni","language_english":"Nooni","language_iso":"nhu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Noone","language_family_code":"NHU","language_family_name":"Nooni","language_family_english":"Nooni","language_family_iso":"nhu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:07","created_on":"2012-03-12 16:11:08","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"NHUWBTN2DA\/NHUWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NHUWBTN2ET","fcbh_id":"NHUWBTN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NHU","language_name":"Nooni","language_english":"Nooni","language_iso":"nhu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Noone","language_family_code":"NHU","language_family_name":"Nooni","language_family_english":"Nooni","language_family_iso":"nhu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:12","created_on":"2011-08-30 21:36:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NHUWBTN2ET\/NHUWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NHWTBLN2DA","fcbh_id":"NHWTBLN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NHW","language_name":"Nahuatl Huasteca, Western","language_english":"Nahuatl Huasteca, Western","language_iso":"nhw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Huasteca Nahuatl","language_family_code":"NHW","language_family_name":"Nahuatl Huasteca, Western","language_family_english":"Nahuatl Huasteca, Western","language_family_iso":"nhw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-12 16:59:14","created_on":"2010-10-05 19:34:23","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2NHWTBL","audio_zip_path":"NHWTBLN2DA\/NHWTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NHWTBLN2ET","fcbh_id":"NHWTBLN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NHW","language_name":"Nahuatl Huasteca, Western","language_english":"Nahuatl Huasteca, Western","language_iso":"nhw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Huasteca Nahuatl","language_family_code":"NHW","language_family_name":"Nahuatl Huasteca, Western","language_family_english":"Nahuatl Huasteca, Western","language_family_iso":"nhw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:20","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2NHWTBL","audio_zip_path":"NHWTBLN2ET\/NHWTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NHXNTVN1DA","fcbh_id":"NHXNTVN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NHX","language_name":"Nahuatl, Tatahuicapan","language_english":"Nahuatl, Tatahuicapan","language_iso":"nhx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Isthmus-Mecayapan Nahuatl","language_family_code":"NHX","language_family_name":"Nahuatl, Tatahuicapan","language_family_english":"Nahuatl, Tatahuicapan","language_family_iso":"nhx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTV","version_name":"1974 New Translation Version","version_english":"1974 New Translation Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-11 18:47:18","created_on":"2015-11-30 17:50:27","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"NHXNTVN1DA\/NHXNTVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NHXNTVN1ET","fcbh_id":"NHXNTVN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NHX","language_name":"Nahuatl, Tatahuicapan","language_english":"Nahuatl, Tatahuicapan","language_iso":"nhx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Isthmus-Mecayapan Nahuatl","language_family_code":"NHX","language_family_name":"Nahuatl, Tatahuicapan","language_family_english":"Nahuatl, Tatahuicapan","language_family_iso":"nhx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTV","version_name":"1974 New Translation Version","version_english":"1974 New Translation Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-17 17:34:37","created_on":"2017-04-17 17:16:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NHXNTVN1ET\/NHXNTVN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NHXNTVN2DA","fcbh_id":"NHXNTVN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NHX","language_name":"Nahuatl, Tatahuicapan","language_english":"Nahuatl, Tatahuicapan","language_iso":"nhx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Isthmus-Mecayapan Nahuatl","language_family_code":"NHX","language_family_name":"Nahuatl, Tatahuicapan","language_family_english":"Nahuatl, Tatahuicapan","language_family_iso":"nhx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTV","version_name":"1974 New Translation Version","version_english":"1974 New Translation Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-11 18:47:18","created_on":"2015-11-23 16:54:06","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NHXNTVN2DA\/NHXNTVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NHXNTVN2ET","fcbh_id":"NHXNTVN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NHX","language_name":"Nahuatl, Tatahuicapan","language_english":"Nahuatl, Tatahuicapan","language_iso":"nhx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Isthmus-Mecayapan Nahuatl","language_family_code":"NHX","language_family_name":"Nahuatl, Tatahuicapan","language_family_english":"Nahuatl, Tatahuicapan","language_family_iso":"nhx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTV","version_name":"1974 New Translation Version","version_english":"1974 New Translation Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-17 17:34:37","created_on":"2017-04-17 17:27:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NHXNTVN2ET\/NHXNTVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NHXNTVS1DA","fcbh_id":"NHXNTVS1DA","volume_name":"Resumen del Antiguo Testamento","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NHX","language_name":"Nahuatl, Tatahuicapan","language_english":"Nahuatl, Tatahuicapan","language_iso":"nhx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Isthmus-Mecayapan Nahuatl","language_family_code":"NHX","language_family_name":"Nahuatl, Tatahuicapan","language_family_english":"Nahuatl, Tatahuicapan","language_family_iso":"nhx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTV","version_name":"1974 New Translation Version","version_english":"1974 New Translation Version","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:14","created_on":"2016-02-18 16:31:37","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NHXNTVS1DA\/NHXNTVS1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NHYTBLN1DA","fcbh_id":"NHYTBLN1DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NHY","language_name":"Nahuatl, Norte de Oaxaca","language_english":"Nahuatl, Norte de Oaxaca","language_iso":"nhy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Oaxaca Nahuatl","language_family_code":"NHY","language_family_name":"Nahuatl, Norte de Oaxaca","language_family_english":"Nahuatl, Norte de Oaxaca","language_family_iso":"nhy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:08","created_on":"2010-09-14 17:01:36","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1NHYTBL","audio_zip_path":"NHYTBLN1DA\/NHYTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NHYTBLN1ET","fcbh_id":"NHYTBLN1ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NHY","language_name":"Nahuatl, Norte de Oaxaca","language_english":"Nahuatl, Norte de Oaxaca","language_iso":"nhy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Oaxaca Nahuatl","language_family_code":"NHY","language_family_name":"Nahuatl, Norte de Oaxaca","language_family_english":"Nahuatl, Norte de Oaxaca","language_family_iso":"nhy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:19","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1NHYTBL","audio_zip_path":"NHYTBLN1ET\/NHYTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NHYTBLN2DA","fcbh_id":"NHYTBLN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NHY","language_name":"Nahuatl, Norte de Oaxaca","language_english":"Nahuatl, Norte de Oaxaca","language_iso":"nhy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Oaxaca Nahuatl","language_family_code":"NHY","language_family_name":"Nahuatl, Norte de Oaxaca","language_family_english":"Nahuatl, Norte de Oaxaca","language_family_iso":"nhy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:08","created_on":"2012-04-16 20:49:45","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"NHYTBLN2DA\/NHYTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NHYTBLN2ET","fcbh_id":"NHYTBLN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NHY","language_name":"Nahuatl, Norte de Oaxaca","language_english":"Nahuatl, Norte de Oaxaca","language_iso":"nhy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Oaxaca Nahuatl","language_family_code":"NHY","language_family_name":"Nahuatl, Norte de Oaxaca","language_family_english":"Nahuatl, Norte de Oaxaca","language_family_iso":"nhy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:19","created_on":"2012-05-14 21:55:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NHYTBLN2ET\/NHYTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NIAIBSN2DA","fcbh_id":"NIAIBSN2DA","volume_name":"Today's Nias Version, 2006","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NIA","language_name":"Nias","language_english":"Nias","language_iso":"nia","language_iso_2B":"nia","language_iso_2T":"nia","language_iso_1":"","language_iso_name":"Nias","language_family_code":"NIA","language_family_name":"Nias","language_family_english":"Nias","language_family_iso":"nia","language_family_iso_2B":"nia","language_family_iso_2T":"nia","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-12 22:46:27","created_on":"2010-09-14 17:00:34","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2NIAIBS","audio_zip_path":"NIAIBSN2DA\/NIAIBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NIAIBSN2ET","fcbh_id":"NIAIBSN2ET","volume_name":"Today's Nias Version, 2006","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NIA","language_name":"Nias","language_english":"Nias","language_iso":"nia","language_iso_2B":"nia","language_iso_2T":"nia","language_iso_1":"","language_iso_name":"Nias","language_family_code":"NIA","language_family_name":"Nias","language_family_english":"Nias","language_family_iso":"nia","language_family_iso_2B":"nia","language_family_iso_2T":"nia","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:19","created_on":"2011-07-08 17:14:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NIAIBSN2ET\/NIAIBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NIIWBTN2ET","fcbh_id":"NIIWBTN2ET","volume_name":"1980 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NII","language_name":"Nii","language_english":"Nii","language_iso":"nii","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nii","language_family_code":"NII","language_family_name":"Nii","language_family_english":"Nii","language_family_iso":"nii","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 20:26:37","created_on":"2014-06-05 16:44:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NIIWBTN2ET\/NIIWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NIJLAIN2DA","fcbh_id":"NIJLAIN2DA","volume_name":"Today's Dayak Ngaju Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NIJ","language_name":"Ngaju","language_english":"Ngaju","language_iso":"nij","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ngaju","language_family_code":"NIJ","language_family_name":"Ngaju","language_family_english":"Ngaju","language_family_iso":"nij","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-16 16:58:22","created_on":"2013-09-24 20:42:01","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"NIJLAIN2DA\/NIJLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NIJLAIN2ET","fcbh_id":"NIJLAIN2ET","volume_name":"Today's Dayak Ngaju Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NIJ","language_name":"Ngaju","language_english":"Ngaju","language_iso":"nij","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ngaju","language_family_code":"NIJ","language_family_name":"Ngaju","language_family_english":"Ngaju","language_family_iso":"nij","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-16 16:59:21","created_on":"2011-08-15 19:32:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NIJLAIN2ET\/NIJLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NIMBSTN2DA","fcbh_id":"NIMBSTN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NIM","language_name":"Kinyiramba","language_english":"Kinyiramba","language_iso":"nim","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nilamba","language_family_code":"NIM","language_family_name":"Kinyiramba","language_family_english":"Kinyiramba","language_family_iso":"nim","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-29 16:26:47","created_on":"2011-05-24 22:12:47","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"NIMBSTN2DA\/NIMBSTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NIMBSTN2ET","fcbh_id":"NIMBSTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NIM","language_name":"Kinyiramba","language_english":"Kinyiramba","language_iso":"nim","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nilamba","language_family_code":"NIM","language_family_name":"Kinyiramba","language_family_english":"Kinyiramba","language_family_iso":"nim","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:20","created_on":"2011-05-24 22:46:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NIMBSTN2ET\/NIMBSTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NINWYIN1DA","fcbh_id":"NINWYIN1DA","volume_name":"WBT & NTT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NIN","language_name":"Ninzo","language_english":"Ninzo","language_iso":"nin","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ninzo","language_family_code":"NIN","language_family_name":"Ninzo","language_family_english":"Ninzo","language_family_iso":"nin","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-30 14:26:59","created_on":"2016-03-30 14:14:46","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NINWYIN1DA\/NINWYIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NINWYIN1ET","fcbh_id":"NINWYIN1ET","volume_name":"WBT & NTT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NIN","language_name":"Ninzo","language_english":"Ninzo","language_iso":"nin","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ninzo","language_family_code":"NIN","language_family_name":"Ninzo","language_family_english":"Ninzo","language_family_iso":"nin","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-30 14:26:10","created_on":"2016-03-30 13:55:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NINWYIN1ET\/NINWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NINWYIN2DA","fcbh_id":"NINWYIN2DA","volume_name":"WBT & NTT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NIN","language_name":"Ninzo","language_english":"Ninzo","language_iso":"nin","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ninzo","language_family_code":"NIN","language_family_name":"Ninzo","language_family_english":"Ninzo","language_family_iso":"nin","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-30 14:26:35","created_on":"2016-03-30 14:06:25","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NINWYIN2DA\/NINWYIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NINWYIN2ET","fcbh_id":"NINWYIN2ET","volume_name":"WBT & NBTT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NIN","language_name":"Ninzo","language_english":"Ninzo","language_iso":"nin","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ninzo","language_family_code":"NIN","language_family_name":"Ninzo","language_family_english":"Ninzo","language_family_iso":"nin","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-26 17:15:27","created_on":"2014-10-21 17:50:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NINWYIN2ET\/NINWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NIYWYIN1DA","fcbh_id":"NIYWYIN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NIY","language_name":"Ndruna","language_english":"Ngiti","language_iso":"niy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ngiti","language_family_code":"NIY","language_family_name":"Ndruna","language_family_english":"Ngiti","language_family_iso":"niy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 15:59:06","created_on":"2018-02-05 21:30:47","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NIYWYIN1DA\/NIYWYIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NIYWYIN2DA","fcbh_id":"NIYWYIN2DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NIY","language_name":"Ndruna","language_english":"Ngiti","language_iso":"niy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ngiti","language_family_code":"NIY","language_family_name":"Ndruna","language_family_english":"Ngiti","language_family_iso":"niy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 15:59:05","created_on":"2018-01-31 22:41:31","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NIYWYIN2DA\/NIYWYIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NKFBIVN2ET","fcbh_id":"NKFBIVN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NKF","language_name":"Naga, Inpui","language_english":"Naga, Inpui","language_iso":"nkf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Inpui Naga","language_family_code":"NKF","language_family_name":"Naga, Inpui","language_family_english":"Naga, Inpui","language_family_iso":"nkf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:13","created_on":"2014-10-31 19:43:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NKFBIVN2ET\/NKFBIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NLCLAIN1DA","fcbh_id":"NLCLAIN1DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NLC","language_name":"Nalca","language_english":"Nalca","language_iso":"nlc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nalca","language_family_code":"NLC","language_family_name":"Nalca","language_family_english":"Nalca","language_family_iso":"nlc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-07 19:09:04","created_on":"2017-04-07 18:52:33","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NLCLAIN1DA\/NLCLAIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NLCLAIN1ET","fcbh_id":"NLCLAIN1ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NLC","language_name":"Nalca","language_english":"Nalca","language_iso":"nlc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nalca","language_family_code":"NLC","language_family_name":"Nalca","language_family_english":"Nalca","language_family_iso":"nlc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-07 19:09:04","created_on":"2017-04-06 20:25:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NLCLAIN1ET\/NLCLAIN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NLCLAIN2DA","fcbh_id":"NLCLAIN2DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NLC","language_name":"Nalca","language_english":"Nalca","language_iso":"nlc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nalca","language_family_code":"NLC","language_family_name":"Nalca","language_family_english":"Nalca","language_family_iso":"nlc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-07 18:51:46","created_on":"2017-04-06 20:33:18","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NLCLAIN2DA\/NLCLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NLCLAIN2ET","fcbh_id":"NLCLAIN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NLC","language_name":"Nalca","language_english":"Nalca","language_iso":"nlc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nalca","language_family_code":"NLC","language_family_name":"Nalca","language_family_english":"Nalca","language_family_iso":"nlc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-10 17:04:24","created_on":"2016-05-10 16:52:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NLCLAIN2ET\/NLCLAIN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NLDDSVN2ET","fcbh_id":"NLDDSVN2ET","volume_name":"1750 Dutch Staten Vertaling Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NLD","language_name":"Nederlands","language_english":"Dutch","language_iso":"nld","language_iso_2B":"dut","language_iso_2T":"nld","language_iso_1":"nl","language_iso_name":"Dutch","language_family_code":"NLD","language_family_name":"Nederlands","language_family_english":"Dutch","language_family_iso":"nld","language_family_iso_2B":"dut","language_family_iso_2T":"nld","language_family_iso_1":"nl","version_code":"DSV","version_name":"Dutch Staten Vertaling 1750","version_english":"Dutch Staten Vertaling 1750","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-16 15:31:48","created_on":"2010-09-14 17:01:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NLDDSVN2ET\/NLDDSVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NLDDSVO2ET","fcbh_id":"NLDDSVO2ET","volume_name":"1750 Dutch Staten Vertaling Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NLD","language_name":"Nederlands","language_english":"Dutch","language_iso":"nld","language_iso_2B":"dut","language_iso_2T":"nld","language_iso_1":"nl","language_iso_name":"Dutch","language_family_code":"NLD","language_family_name":"Nederlands","language_family_english":"Dutch","language_family_iso":"nld","language_family_iso_2B":"dut","language_family_iso_2T":"nld","language_family_iso_1":"nl","version_code":"DSV","version_name":"Dutch Staten Vertaling 1750","version_english":"Dutch Staten Vertaling 1750","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2015-10-16 15:31:48","created_on":"2010-09-14 17:01:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NLDDSVO2ET\/NLDDSVO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NLDNBVN2DA","fcbh_id":"NLDNBVN2DA","volume_name":"New Dutch Translation","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NLD","language_name":"Nederlands","language_english":"Dutch","language_iso":"nld","language_iso_2B":"dut","language_iso_2T":"nld","language_iso_1":"nl","language_iso_name":"Dutch","language_family_code":"NLD","language_family_name":"Nederlands","language_family_english":"Dutch","language_family_iso":"nld","language_family_iso_2B":"dut","language_family_iso_2T":"nld","language_family_iso_1":"nl","version_code":"NBV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:59","created_on":"2011-01-13 19:29:44","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2NLDNBV","audio_zip_path":"NLDNBVN2DA\/NLDNBVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NMZWSBN1DA","fcbh_id":"NMZWSBN1DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NMZ","language_name":"Nawdm","language_english":"Nawdm","language_iso":"nmz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nawdm","language_family_code":"NMZ","language_family_name":"Nawdm","language_family_english":"Nawdm","language_family_iso":"nmz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WSB","version_name":"Wycliffe Suisse, Bienne","version_english":"Wycliffe Suisse, Bienne","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-01 18:50:34","created_on":"2016-03-01 18:38:52","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NMZWSBN1DA\/NMZWSBN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NMZWSBN1ET","fcbh_id":"NMZWSBN1ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NMZ","language_name":"Nawdm","language_english":"Nawdm","language_iso":"nmz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nawdm","language_family_code":"NMZ","language_family_name":"Nawdm","language_family_english":"Nawdm","language_family_iso":"nmz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WSB","version_name":"Wycliffe Suisse, Bienne","version_english":"Wycliffe Suisse, Bienne","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-01 19:02:22","created_on":"2016-03-01 18:40:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NMZWSBN1ET\/NMZWSBN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NMZWSBN2DA","fcbh_id":"NMZWSBN2DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NMZ","language_name":"Nawdm","language_english":"Nawdm","language_iso":"nmz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nawdm","language_family_code":"NMZ","language_family_name":"Nawdm","language_family_english":"Nawdm","language_family_iso":"nmz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WSB","version_name":"Wycliffe Suisse, Bienne","version_english":"Wycliffe Suisse, Bienne","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-01 18:47:15","created_on":"2016-03-01 18:30:01","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NMZWSBN2DA\/NMZWSBN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NMZWSBN2ET","fcbh_id":"NMZWSBN2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NMZ","language_name":"Nawdm","language_english":"Nawdm","language_iso":"nmz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nawdm","language_family_code":"NMZ","language_family_name":"Nawdm","language_family_english":"Nawdm","language_family_iso":"nmz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WSB","version_name":"Wycliffe Suisse, Bienne","version_english":"Wycliffe Suisse, Bienne","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-03-01 18:28:00","created_on":"2014-03-19 20:08:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NMZWSBN2ET\/NMZWSBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NNBBSUN2DA","fcbh_id":"NNBBSUN2DA","volume_name":"1980 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NNB","language_name":"Kinandi","language_english":"Kinandi","language_iso":"nnb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nande","language_family_code":"NNB","language_family_name":"Kinandi","language_family_english":"Kinandi","language_family_iso":"nnb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 18:39:22","created_on":"2012-11-01 20:21:27","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"NNBBSUN2DA\/NNBBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NNBBSUN2ET","fcbh_id":"NNBBSUN2ET","volume_name":"1980 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NNB","language_name":"Kinandi","language_english":"Kinandi","language_iso":"nnb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nande","language_family_code":"NNB","language_family_name":"Kinandi","language_family_english":"Kinandi","language_family_iso":"nnb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:07","created_on":"2014-03-11 19:59:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NNBBSUN2ET\/NNBBSUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NNCABTN2DA","fcbh_id":"NNCABTN2DA","volume_name":"1986 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NNC","language_name":"Nangjere","language_english":"Nangjere","language_iso":"nnc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nancere","language_family_code":"NNC","language_family_name":"Nangjere","language_family_english":"Nangjere","language_family_iso":"nnc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:54","created_on":"2010-09-14 17:00:34","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2NNCABT","audio_zip_path":"NNCABTN2DA\/NNCABTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NNHABCN2DA","fcbh_id":"NNHABCN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NNH","language_name":"Ngiemboon","language_english":"Ngiemboon","language_iso":"nnh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ngiemboon","language_family_code":"NNH","language_family_name":"Ngiemboon","language_family_english":"Ngiemboon","language_family_iso":"nnh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:47","created_on":"2010-09-14 17:00:35","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2NNHABC","audio_zip_path":"NNHABCN2DA\/NNHABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NNQPBTN1ET","fcbh_id":"NNQPBTN1ET","volume_name":"Lilagano Liyono ku Bandu Boa","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NNQ","language_name":"Ngindo","language_english":"Ngindo","language_iso":"nnq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ngindo","language_family_code":"NNQ","language_family_name":"Ngindo","language_family_english":"Ngindo","language_family_iso":"nnq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-08 16:26:37","created_on":"2018-06-07 16:10:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NNQPBTN1ET\/NNQPBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NNWWBTN2DA","fcbh_id":"NNWWBTN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NNW","language_name":"Nuni, Southern","language_english":"Nuni, Southern","language_iso":"nnw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Nuni","language_family_code":"NNW","language_family_name":"Nuni, Southern","language_family_english":"Nuni, Southern","language_family_iso":"nnw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-13 20:51:06","created_on":"2010-09-14 17:00:35","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2NNWWBT","audio_zip_path":"NNWWBTN2DA\/NNWWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NNWWBTN2ET","fcbh_id":"NNWWBTN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NNW","language_name":"Nuni, Southern","language_english":"Nuni, Southern","language_iso":"nnw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Nuni","language_family_code":"NNW","language_family_name":"Nuni, Southern","language_family_english":"Nuni, Southern","language_family_iso":"nnw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:03","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2NNWWBT","audio_zip_path":"NNWWBTN2ET\/NNWWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NOAWBTN2DA","fcbh_id":"NOAWBTN2DA","volume_name":"2005 Edition (Reprint)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NOA","language_name":"Wounaan","language_english":"Wounaan","language_iso":"noa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Woun Meu","language_family_code":"NOA","language_family_name":"Wounaan","language_family_english":"Wounaan","language_family_iso":"noa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 20:59:24","created_on":"2010-09-14 17:00:35","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2NOAWBT","audio_zip_path":"NOAWBTN2DA\/NOAWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NOAWBTN2ET","fcbh_id":"NOAWBTN2ET","volume_name":"2005 Edition (Reprint)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NOA","language_name":"Wounaan","language_english":"Wounaan","language_iso":"noa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Woun Meu","language_family_code":"NOA","language_family_name":"Wounaan","language_family_english":"Wounaan","language_family_iso":"noa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:18","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2NOAWBT","audio_zip_path":"NOAWBTN2ET\/NOAWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NODWBTN1DA","fcbh_id":"NODWBTN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NOD","language_name":"\u0e01\u0e33\u0e40\u0e21\u0e37\u0e2d\u0e07","language_english":"Northern Thai","language_iso":"nod","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Thai","language_family_code":"NOD","language_family_name":"\u0e01\u0e33\u0e40\u0e21\u0e37\u0e2d\u0e07","language_family_english":"Northern Thai","language_family_iso":"nod","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-13 20:45:27","created_on":"2017-01-09 18:50:01","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NODWBTN1DA\/NODWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NODWBTN1ET","fcbh_id":"NODWBTN1ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NOD","language_name":"\u0e01\u0e33\u0e40\u0e21\u0e37\u0e2d\u0e07","language_english":"Northern Thai","language_iso":"nod","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Thai","language_family_code":"NOD","language_family_name":"\u0e01\u0e33\u0e40\u0e21\u0e37\u0e2d\u0e07","language_family_english":"Northern Thai","language_family_iso":"nod","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-20 19:39:41","created_on":"2017-07-19 18:44:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NODWBTN1ET\/NODWBTN1ET.zip","font":{"id":"4","name":"Angsana New","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Angsana_New","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NOGIBTN1DA","fcbh_id":"NOGIBTN1DA","volume_name":"2011 Editon","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NOG","language_name":"Nogai","language_english":"\u041d\u043e\u0433\u0430\u0439","language_iso":"nog","language_iso_2B":"nog","language_iso_2T":"nog","language_iso_1":"","language_iso_name":"Nogai","language_family_code":"NOG","language_family_name":"Nogai","language_family_english":"\u041d\u043e\u0433\u0430\u0439","language_family_iso":"nog","language_family_iso_2B":"nog","language_family_iso_2T":"nog","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-22 17:53:08","created_on":"2015-11-25 00:11:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NOGIBTN1DA\/NOGIBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NOGIBTN1ET","fcbh_id":"NOGIBTN1ET","volume_name":"2011 Editon","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NOG","language_name":"Nogai","language_english":"\u041d\u043e\u0433\u0430\u0439","language_iso":"nog","language_iso_2B":"nog","language_iso_2T":"nog","language_iso_1":"","language_iso_name":"Nogai","language_family_code":"NOG","language_family_name":"Nogai","language_family_english":"\u041d\u043e\u0433\u0430\u0439","language_family_iso":"nog","language_family_iso_2B":"nog","language_family_iso_2T":"nog","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-30 17:31:27","created_on":"2015-11-24 20:18:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NOGIBTN1ET\/NOGIBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NOGIBTN2DA","fcbh_id":"NOGIBTN2DA","volume_name":"2011 Editon","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NOG","language_name":"Nogai","language_english":"\u041d\u043e\u0433\u0430\u0439","language_iso":"nog","language_iso_2B":"nog","language_iso_2T":"nog","language_iso_1":"","language_iso_name":"Nogai","language_family_code":"NOG","language_family_name":"Nogai","language_family_english":"\u041d\u043e\u0433\u0430\u0439","language_family_iso":"nog","language_family_iso_2B":"nog","language_family_iso_2T":"nog","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-30 17:43:55","created_on":"2015-11-25 00:09:50","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NOGIBTN2DA\/NOGIBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NOGIBTN2ET","fcbh_id":"NOGIBTN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NOG","language_name":"Nogai","language_english":"\u041d\u043e\u0433\u0430\u0439","language_iso":"nog","language_iso_2B":"nog","language_iso_2T":"nog","language_iso_1":"","language_iso_name":"Nogai","language_family_code":"NOG","language_family_name":"Nogai","language_family_english":"\u041d\u043e\u0433\u0430\u0439","language_family_iso":"nog","language_family_iso_2B":"nog","language_family_iso_2T":"nog","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:13","created_on":"2015-05-21 22:32:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NOGIBTN2ET\/NOGIBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NOLSSRN1DA","fcbh_id":"NOLSSRN1DA","volume_name":"1973 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NOL","language_name":"\u0ea5\u0eb2\u0ea7","language_english":"Lao","language_iso":"lao","language_iso_2B":"lao","language_iso_2T":"lao","language_iso_1":"lo","language_iso_name":"Lao","language_family_code":"LAO","language_family_name":"\u0ea5\u0eb2\u0ea7","language_family_english":"Lao","language_family_iso":"lao","language_family_iso_2B":"lao","language_family_iso_2T":"lao","language_family_iso_1":"lo","version_code":"SSR","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:29","created_on":"2010-09-14 16:59:48","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1NOLSSR","audio_zip_path":"NOLSSRN1DA\/NOLSSRN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NORNBSN2ET","fcbh_id":"NORNBSN2ET","volume_name":"1930 Det Norsk Bibelselskap","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NOR","language_name":"Norsk","language_english":"Norwegian","language_iso":"nor","language_iso_2B":"nor","language_iso_2T":"nor","language_iso_1":"no","language_iso_name":"Norwegian","language_family_code":"NOR","language_family_name":"Norsk","language_family_english":"Norwegian","language_family_iso":"nor","language_family_iso_2B":"nor","language_family_iso_2T":"nor","language_family_iso_1":"no","version_code":"NBS","version_name":"1930 Det Norsk Bibelselskap","version_english":"1930 Det Norsk Bibelselskap","collection_code":"NT","rich":"0","collection_name":"Det Nye Testamente","updated_on":"2016-11-22 17:14:08","created_on":"2010-09-14 17:01:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NORNBSN2ET\/NORNBSN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NORNBSO2ET","fcbh_id":"NORNBSO2ET","volume_name":"1930 Det Norsk Bibelselskap","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NOR","language_name":"Norsk","language_english":"Norwegian","language_iso":"nor","language_iso_2B":"nor","language_iso_2T":"nor","language_iso_1":"no","language_iso_name":"Norwegian","language_family_code":"NOR","language_family_name":"Norsk","language_family_english":"Norwegian","language_family_iso":"nor","language_family_iso_2B":"nor","language_family_iso_2T":"nor","language_family_iso_1":"no","version_code":"NBS","version_name":"1930 Det Norsk Bibelselskap","version_english":"1930 Det Norsk Bibelselskap","collection_code":"OT","rich":"0","collection_name":"Det Gamle Testamente","updated_on":"2016-11-22 17:21:43","created_on":"2010-09-14 17:01:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NORNBSO2ET\/NORNBSO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NORNBVN2ET","fcbh_id":"NORNBVN2ET","volume_name":"Norsk Bibel AS 2016","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NOR","language_name":"Norsk","language_english":"Norwegian","language_iso":"nor","language_iso_2B":"nor","language_iso_2T":"nor","language_iso_1":"no","language_iso_name":"Norwegian","language_family_code":"NOR","language_family_name":"Norsk","language_family_english":"Norwegian","language_family_iso":"nor","language_family_iso_2B":"nor","language_family_iso_2T":"nor","language_family_iso_1":"no","version_code":"NBV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"Det Nye Testamente","updated_on":"2017-07-19 19:15:01","created_on":"2017-07-19 19:09:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NORNBVN2ET\/NORNBVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NORNBVO2ET","fcbh_id":"NORNBVO2ET","volume_name":"Norsk Bibel AS 2016","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NOR","language_name":"Norsk","language_english":"Norwegian","language_iso":"nor","language_iso_2B":"nor","language_iso_2T":"nor","language_iso_1":"no","language_iso_name":"Norwegian","language_family_code":"NOR","language_family_name":"Norsk","language_family_english":"Norwegian","language_family_iso":"nor","language_family_iso_2B":"nor","language_family_iso_2T":"nor","language_family_iso_1":"no","version_code":"NBV","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"Det Gamle Testamente","updated_on":"2017-07-19 19:23:54","created_on":"2017-07-19 19:11:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NORNBVO2ET\/NORNBVO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NOTTBLN1DA","fcbh_id":"NOTTBLN1DA","volume_name":"2004 Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NOT","language_name":"Nomatsiguenga","language_english":"Nomatsigenga","language_iso":"not","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nomatsiguenga","language_family_code":"NOT","language_family_name":"Nomatsiguenga","language_family_english":"Nomatsigenga","language_family_iso":"not","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-23 16:31:56","created_on":"2016-08-16 17:46:20","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NOTTBLN1DA\/NOTTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NOTTBLN1ET","fcbh_id":"NOTTBLN1ET","volume_name":"2004 Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NOT","language_name":"Nomatsiguenga","language_english":"Nomatsigenga","language_iso":"not","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nomatsiguenga","language_family_code":"NOT","language_family_name":"Nomatsiguenga","language_family_english":"Nomatsigenga","language_family_iso":"not","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:03:47","created_on":"2016-08-16 17:35:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NOTTBLN1ET\/NOTTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NOTTBLN2DA","fcbh_id":"NOTTBLN2DA","volume_name":"2004 Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NOT","language_name":"Nomatsiguenga","language_english":"Nomatsigenga","language_iso":"not","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nomatsiguenga","language_family_code":"NOT","language_family_name":"Nomatsiguenga","language_family_english":"Nomatsigenga","language_family_iso":"not","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-23 16:32:17","created_on":"2016-08-16 17:47:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NOTTBLN2DA\/NOTTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NOTTBLN2ET","fcbh_id":"NOTTBLN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NOT","language_name":"Nomatsiguenga","language_english":"Nomatsigenga","language_iso":"not","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nomatsiguenga","language_family_code":"NOT","language_family_name":"Nomatsiguenga","language_family_english":"Nomatsigenga","language_family_iso":"not","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-31 21:45:13","created_on":"2015-05-22 14:16:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NOTTBLN2ET\/NOTTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NOUWBTN2ET","fcbh_id":"NOUWBTN2ET","volume_name":"1987 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NOU","language_name":"Ewage-Notu","language_english":"Ewage-Notu","language_iso":"nou","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ewage-Notu","language_family_code":"NOU","language_family_name":"Ewage-Notu","language_family_english":"Ewage-Notu","language_family_iso":"nou","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-18 21:35:45","created_on":"2014-06-04 18:04:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NOUWBTN2ET\/NOUWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NPLWYIN2DA","fcbh_id":"NPLWYIN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NPL","language_name":"Nahuatl, Southeastern Puebla","language_english":"Nahuatl, Southeastern Puebla","language_iso":"npl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southeastern Puebla Nahuatl","language_family_code":"NPL","language_family_name":"Nahuatl, Southeastern Puebla","language_family_english":"Nahuatl, Southeastern Puebla","language_family_iso":"npl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-12 22:00:31","created_on":"2011-01-13 19:22:05","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2NPLWYI","audio_zip_path":"NPLWYIN2DA\/NPLWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NPLWYIN2ET","fcbh_id":"NPLWYIN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NPL","language_name":"Nahuatl, Southeastern Puebla","language_english":"Nahuatl, Southeastern Puebla","language_iso":"npl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southeastern Puebla Nahuatl","language_family_code":"NPL","language_family_name":"Nahuatl, Southeastern Puebla","language_family_english":"Nahuatl, Southeastern Puebla","language_family_iso":"npl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-12 22:00:13","created_on":"2011-07-01 17:58:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NPLWYIN2ET\/NPLWYIN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NPYLAIN2DA","fcbh_id":"NPYLAIN2DA","volume_name":"Today's Napu Version, 2000","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NPY","language_name":"Napu","language_english":"Napu","language_iso":"npy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Napu","language_family_code":"NPY","language_family_name":"Napu","language_family_english":"Napu","language_family_iso":"npy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:13","created_on":"2012-05-02 20:56:25","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"NPYLAIN2DA\/NPYLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NPYLAIN2ET","fcbh_id":"NPYLAIN2ET","volume_name":"Today's Napu Version, 2000","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NPY","language_name":"Napu","language_english":"Napu","language_iso":"npy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Napu","language_family_code":"NPY","language_family_name":"Napu","language_family_english":"Napu","language_family_iso":"npy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:17","created_on":"2011-05-30 17:19:35","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NPYLAIN2ET\/NPYLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NSNWBTN2ET","fcbh_id":"NSNWBTN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NSN","language_name":"Nehan","language_english":"Nehan","language_iso":"nsn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nehan","language_family_code":"NSN","language_family_name":"Nehan","language_family_english":"Nehan","language_family_iso":"nsn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 20:24:16","created_on":"2014-06-05 16:42:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NSNWBTN2ET\/NSNWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NSUWBTN1DA","fcbh_id":"NSUWBTN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NSU","language_name":"Nahuatl, Sierra Negra","language_english":"Nahuatl, Sierra Negra","language_iso":"nsu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sierra Negra Nahuatl","language_family_code":"NSU","language_family_name":"Nahuatl, Sierra Negra","language_family_english":"Nahuatl, Sierra Negra","language_family_iso":"nsu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:10","created_on":"2016-09-12 16:12:22","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NSUWBTN1DA\/NSUWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NSUWBTN1ET","fcbh_id":"NSUWBTN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NSU","language_name":"Nahuatl, Sierra Negra","language_english":"Nahuatl, Sierra Negra","language_iso":"nsu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sierra Negra Nahuatl","language_family_code":"NSU","language_family_name":"Nahuatl, Sierra Negra","language_family_english":"Nahuatl, Sierra Negra","language_family_iso":"nsu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-01 19:46:06","created_on":"2017-08-01 19:38:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NSUWBTN1ET\/NSUWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NSUWBTN2DA","fcbh_id":"NSUWBTN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NSU","language_name":"Nahuatl, Sierra Negra","language_english":"Nahuatl, Sierra Negra","language_iso":"nsu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sierra Negra Nahuatl","language_family_code":"NSU","language_family_name":"Nahuatl, Sierra Negra","language_family_english":"Nahuatl, Sierra Negra","language_family_iso":"nsu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:10","created_on":"2016-09-12 16:15:35","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NSUWBTN2DA\/NSUWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NSUWBTN2ET","fcbh_id":"NSUWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NSU","language_name":"Nahuatl, Sierra Negra","language_english":"Nahuatl, Sierra Negra","language_iso":"nsu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sierra Negra Nahuatl","language_family_code":"NSU","language_family_name":"Nahuatl, Sierra Negra","language_family_english":"Nahuatl, Sierra Negra","language_family_iso":"nsu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-01 19:57:05","created_on":"2017-08-01 19:36:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NSUWBTN2ET\/NSUWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NTPTBLN2ET","fcbh_id":"NTPTBLN2ET","volume_name":"1981 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NTP","language_name":"Tepehu\u00e1n del Norte","language_english":"Tepehuan del Norte","language_iso":"ntp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Tepehuan","language_family_code":"NTP","language_family_name":"Tepehu\u00e1n del Norte","language_family_english":"Tepehuan del Norte","language_family_iso":"ntp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:48","created_on":"2012-02-23 17:21:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NTPTBLN2ET\/NTPTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NTRWBTN2DA","fcbh_id":"NTRWBTN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NTR","language_name":"Ntrubo","language_english":"Ntrubo","language_iso":"ntr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Delo","language_family_code":"NTR","language_family_name":"Ntrubo","language_family_english":"Ntrubo","language_family_iso":"ntr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:14","created_on":"2010-09-14 17:01:23","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2NTRWBT","audio_zip_path":"NTRWBTN2DA\/NTRWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NTRWBTN2ET","fcbh_id":"NTRWBTN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NTR","language_name":"Ntrubo","language_english":"Ntrubo","language_iso":"ntr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Delo","language_family_code":"NTR","language_family_name":"Ntrubo","language_family_english":"Ntrubo","language_family_iso":"ntr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:37","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2NTRWBT","audio_zip_path":"NTRWBTN2ET\/NTRWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NUJWBTN1DA","fcbh_id":"NUJWBTN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NUJ","language_name":"Lunyole","language_english":"Nyole","language_iso":"nuj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nyole","language_family_code":"NUJ","language_family_name":"Lunyole","language_family_english":"Nyole","language_family_iso":"nuj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-09-20 16:34:00","created_on":"2016-09-20 15:35:48","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NUJWBTN1DA\/NUJWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NUJWBTN1ET","fcbh_id":"NUJWBTN1ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NUJ","language_name":"Lunyole","language_english":"Nyole","language_iso":"nuj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nyole","language_family_code":"NUJ","language_family_name":"Lunyole","language_family_english":"Nyole","language_family_iso":"nuj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-29 18:45:09","created_on":"2016-09-20 14:48:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NUJWBTN1ET\/NUJWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NUJWBTN2DA","fcbh_id":"NUJWBTN2DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NUJ","language_name":"Lunyole","language_english":"Nyole","language_iso":"nuj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nyole","language_family_code":"NUJ","language_family_name":"Lunyole","language_family_english":"Nyole","language_family_iso":"nuj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-09-20 17:35:35","created_on":"2016-09-20 15:36:35","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NUJWBTN2DA\/NUJWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NUJWBTN2ET","fcbh_id":"NUJWBTN2ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NUJ","language_name":"Lunyole","language_english":"Nyole","language_iso":"nuj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nyole","language_family_code":"NUJ","language_family_name":"Lunyole","language_family_english":"Nyole","language_family_iso":"nuj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-04-05 15:43:38","created_on":"2016-04-05 15:33:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NUJWBTN2ET\/NUJWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NUPBSNN2DA","fcbh_id":"NUPBSNN2DA","volume_name":"1989 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NUP","language_name":"Nupe","language_english":"Nupe","language_iso":"nup","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nupe-Nupe-Tako","language_family_code":"NUP","language_family_name":"Nupe","language_family_english":"Nupe","language_family_iso":"nup","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:38","created_on":"2010-09-14 17:00:35","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2NUPBSN","audio_zip_path":"NUPBSNN2DA\/NUPBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NUSBSSN2DA","fcbh_id":"NUSBSSN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NUS","language_name":"Nuer","language_english":"Nuer","language_iso":"nus","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nuer","language_family_code":"NUS","language_family_name":"Nuer","language_family_english":"Nuer","language_family_iso":"nus","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-05-22 16:14:58","created_on":"2014-01-28 21:24:05","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"NUSBSSN2DA\/NUSBSSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NUZTBLP1ET","fcbh_id":"NUZTBLP1ET","volume_name":"2004 Edition Portion","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NUZ","language_name":"Nahuatl Tlamacazapa","language_english":"Nahuatl Tlamacazapa","language_iso":"nuz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tlamacazapa Nahuatl","language_family_code":"NUZ","language_family_name":"Nahuatl Tlamacazapa","language_family_english":"Nahuatl Tlamacazapa","language_family_iso":"nuz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2017-08-01 21:08:20","created_on":"2017-08-01 21:03:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NUZTBLP1ET\/NUZTBLP1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile"],"resolution":[]},{"dam_id":"NVMWBTN2ET","fcbh_id":"NVMWBTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NVM","language_name":"Namiae","language_english":"Namiae","language_iso":"nvm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Namiae","language_family_code":"NVM","language_family_name":"Namiae","language_family_english":"Namiae","language_family_iso":"nvm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 20:21:23","created_on":"2014-06-05 16:40:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NVMWBTN2ET\/NVMWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NWBWBTN2DA","fcbh_id":"NWBWBTN2DA","volume_name":"1991 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NWB","language_name":"Nyaboa","language_english":"Nyaboa","language_iso":"nwb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nyabwa","language_family_code":"NWB","language_family_name":"Nyaboa","language_family_english":"Nyaboa","language_family_iso":"nwb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:34","created_on":"2013-09-25 17:39:11","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"NWBWBTN2DA\/NWBWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NWBWBTN2ET","fcbh_id":"NWBWBTN2ET","volume_name":"1991 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NWB","language_name":"Nyaboa","language_english":"Nyaboa","language_iso":"nwb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nyabwa","language_family_code":"NWB","language_family_name":"Nyaboa","language_family_english":"Nyaboa","language_family_iso":"nwb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:34","created_on":"2013-12-19 23:04:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NWBWBTN2ET\/NWBWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NWIWBTN2ET","fcbh_id":"NWIWBTN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NWI","language_name":"Nevhaar","language_english":"Southwest Tanna","language_iso":"nwi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southwest Tanna","language_family_code":"NWI","language_family_name":"Nevhaar","language_family_english":"Southwest Tanna","language_family_iso":"nwi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:25","created_on":"2014-09-17 19:30:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NWIWBTN2ET\/NWIWBTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NYADPIN1DA","fcbh_id":"NYADPIN1DA","volume_name":"DPI Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NYA","language_name":"Nyanja","language_english":"Nyanja","language_iso":"nya","language_iso_2B":"nya","language_iso_2T":"nya","language_iso_1":"ny","language_iso_name":"Nyanja","language_family_code":"NYA","language_family_name":"Nyanja","language_family_english":"Nyanja","language_family_iso":"nya","language_family_iso_2B":"nya","language_family_iso_2T":"nya","language_family_iso_1":"ny","version_code":"DPI","version_name":"Davar Partners International","version_english":"Davar Partners International","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-29 19:10:40","created_on":"2018-03-29 15:24:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NYADPIN1DA\/NYADPIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url"],"resolution":[]},{"dam_id":"NYFBTLN2DA","fcbh_id":"NYFBTLN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NYF","language_name":"Giryama","language_english":"Giryama","language_iso":"nyf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Giryama","language_family_code":"NYF","language_family_name":"Giryama","language_family_english":"Giryama","language_family_iso":"nyf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-09 14:58:04","created_on":"2014-01-15 21:30:03","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"NYFBTLN2DA\/NYFBTLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NYFBTLN2ET","fcbh_id":"NYFBTLN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NYF","language_name":"Giryama","language_english":"Giryama","language_iso":"nyf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Giryama","language_family_code":"NYF","language_family_name":"Giryama","language_family_english":"Giryama","language_family_iso":"nyf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:15","created_on":"2011-10-07 21:16:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NYFBTLN2ET\/NYFBTLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NYJBLVN1DA","fcbh_id":"NYJBLVN1DA","volume_name":"1997 Buku Loyera Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NYJ","language_name":"Chichewa","language_english":"Chichewa","language_iso":"nyj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nyanga","language_family_code":"NYJ","language_family_name":"Chichewa","language_family_english":"Chichewa","language_family_iso":"nyj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BLV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:32","created_on":"2010-09-14 16:59:48","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1NYJBLV","audio_zip_path":"NYJBLVN1DA\/NYJBLVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NYJBLVN2DA","fcbh_id":"NYJBLVN2DA","volume_name":"1997 Buku Loyera Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NYJ","language_name":"Chichewa","language_english":"Chichewa","language_iso":"nyj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nyanga","language_family_code":"NYJ","language_family_name":"Chichewa","language_family_english":"Chichewa","language_family_iso":"nyj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BLV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:44","created_on":"2010-09-14 17:00:36","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2NYJBLV","audio_zip_path":"NYJBLVN2DA\/NYJBLVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NYMBSTN1DA","fcbh_id":"NYMBSTN1DA","volume_name":"1951 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NYM","language_name":"Kinyamwezi","language_english":"Kinyamwezi","language_iso":"nym","language_iso_2B":"nym","language_iso_2T":"nym","language_iso_1":"","language_iso_name":"Nyamwezi","language_family_code":"NYM","language_family_name":"Kinyamwezi","language_family_english":"Kinyamwezi","language_family_iso":"nym","language_family_iso_2B":"nym","language_family_iso_2T":"nym","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 18:28:58","created_on":"2017-10-06 18:58:03","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NYMBSTN1DA\/NYMBSTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NYMBSTN2DA","fcbh_id":"NYMBSTN2DA","volume_name":"1951 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NYM","language_name":"Kinyamwezi","language_english":"Kinyamwezi","language_iso":"nym","language_iso_2B":"nym","language_iso_2T":"nym","language_iso_1":"","language_iso_name":"Nyamwezi","language_family_code":"NYM","language_family_name":"Kinyamwezi","language_family_english":"Kinyamwezi","language_family_iso":"nym","language_family_iso_2B":"nym","language_family_iso_2T":"nym","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 18:29:17","created_on":"2017-10-05 22:27:42","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NYMBSTN2DA\/NYMBSTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NYNBSUN2DA","fcbh_id":"NYNBSUN2DA","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NYN","language_name":"Runyankore-Rukiga","language_english":"Runyankore-Rukiga","language_iso":"nyn","language_iso_2B":"nyn","language_iso_2T":"nyn","language_iso_1":"","language_iso_name":"Nyankole","language_family_code":"NYN","language_family_name":"Runyankore-Rukiga","language_family_english":"Runyankore-Rukiga","language_family_iso":"nyn","language_family_iso_2B":"nyn","language_family_iso_2T":"nyn","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 21:25:15","created_on":"2010-12-07 15:00:35","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2NYNBSU","audio_zip_path":"NYNBSUN2DA\/NYNBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NYNBSUN2ET","fcbh_id":"NYNBSUN2ET","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NYN","language_name":"Runyankore-Rukiga","language_english":"Runyankore-Rukiga","language_iso":"nyn","language_iso_2B":"nyn","language_iso_2T":"nyn","language_iso_1":"","language_iso_name":"Nyankole","language_family_code":"NYN","language_family_name":"Runyankore-Rukiga","language_family_english":"Runyankore-Rukiga","language_family_iso":"nyn","language_family_iso_2B":"nyn","language_family_iso_2T":"nyn","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:07","created_on":"2013-05-17 17:07:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NYNBSUN2ET\/NYNBSUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NYOBSUN2DA","fcbh_id":"NYOBSUN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NYO","language_name":"Runyoro-Rutoro","language_english":"Runyoro-Rutoro","language_iso":"nyo","language_iso_2B":"nyo","language_iso_2T":"nyo","language_iso_1":"","language_iso_name":"Nyoro","language_family_code":"NYO","language_family_name":"Runyoro-Rutoro","language_family_english":"Runyoro-Rutoro","language_family_iso":"nyo","language_family_iso_2B":"nyo","language_family_iso_2T":"nyo","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:15","created_on":"2011-05-27 19:01:27","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"NYOBSUN2DA\/NYOBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NYOBSUN2ET","fcbh_id":"NYOBSUN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NYO","language_name":"Runyoro-Rutoro","language_english":"Runyoro-Rutoro","language_iso":"nyo","language_iso_2B":"nyo","language_iso_2T":"nyo","language_iso_1":"","language_iso_name":"Nyoro","language_family_code":"NYO","language_family_name":"Runyoro-Rutoro","language_family_english":"Runyoro-Rutoro","language_family_iso":"nyo","language_family_iso_2B":"nyo","language_family_iso_2T":"nyo","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:09","created_on":"2013-06-19 17:20:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NYOBSUN2ET\/NYOBSUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NYYBSTN2DA","fcbh_id":"NYYBSTN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NYY","language_name":"Kinyakyusa","language_english":"Kinyakyusa","language_iso":"nyy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nyakyusa-Ngonde","language_family_code":"NYY","language_family_name":"Kinyakyusa","language_family_english":"Kinyakyusa","language_family_iso":"nyy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-29 16:26:47","created_on":"2010-09-14 17:01:05","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2NYYBST","audio_zip_path":"NYYBSTN2DA\/NYYBSTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"NYYBSTN2ET","fcbh_id":"NYYBSTN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NYY","language_name":"Kinyakyusa","language_english":"Kinyakyusa","language_iso":"nyy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nyakyusa-Ngonde","language_family_code":"NYY","language_family_name":"Kinyakyusa","language_family_english":"Kinyakyusa","language_family_iso":"nyy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:10","created_on":"2010-09-14 17:01:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2NYYBST","audio_zip_path":"NYYBSTN2ET\/NYYBSTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"NZBUBSN2DA","fcbh_id":"NZBUBSN2DA","volume_name":"1978 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NZB","language_name":"Nzebi","language_english":"Nzebi","language_iso":"nzb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Njebi","language_family_code":"NZB","language_family_name":"Nzebi","language_family_english":"Nzebi","language_family_iso":"nzb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:05","created_on":"2010-09-14 17:01:53","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2NZBUBS","audio_zip_path":"NZBUBSN2DA\/NZBUBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NZEUBSN1DA","fcbh_id":"NZEUBSN1DA","volume_name":"1985 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"NZE","language_name":"Nzema","language_english":"Nzema","language_iso":"mzi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ixcatl\u00e1n Mazatec","language_family_code":"NZE","language_family_name":"Nzema","language_family_english":"Nzema","language_family_iso":"mzi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:31","created_on":"2010-09-14 16:59:49","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1NZEUBS","audio_zip_path":"NZEUBSN1DA\/NZEUBSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NZIBSGN1DA","fcbh_id":"NZIBSGN1DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NZI","language_name":"Nzima","language_english":"Nzima","language_iso":"nzi","language_iso_2B":"nzi","language_iso_2T":"nzi","language_iso_1":"","language_iso_name":"Nzima","language_family_code":"NZI","language_family_name":"Nzima","language_family_english":"Nzima","language_family_iso":"nzi","language_family_iso_2B":"nzi","language_family_iso_2T":"nzi","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-10 18:25:39","created_on":"2017-01-10 17:47:50","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NZIBSGN1DA\/NZIBSGN1DA.zip","font":{"id":"45","name":"Doulos SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NZIBSGN1ET","fcbh_id":"NZIBSGN1ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NZI","language_name":"Nzima","language_english":"Nzima","language_iso":"nzi","language_iso_2B":"nzi","language_iso_2T":"nzi","language_iso_1":"","language_iso_name":"Nzima","language_family_code":"NZI","language_family_name":"Nzima","language_family_english":"Nzima","language_family_iso":"nzi","language_family_iso_2B":"nzi","language_family_iso_2T":"nzi","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-10 17:44:41","created_on":"2017-01-10 17:29:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NZIBSGN1ET\/NZIBSGN1ET.zip","font":{"id":"45","name":"Doulos SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"NZIBSGN2DA","fcbh_id":"NZIBSGN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NZI","language_name":"Nzima","language_english":"Nzima","language_iso":"nzi","language_iso_2B":"nzi","language_iso_2T":"nzi","language_iso_1":"","language_iso_name":"Nzima","language_family_code":"NZI","language_family_name":"Nzima","language_family_english":"Nzima","language_family_iso":"nzi","language_family_iso_2B":"nzi","language_family_iso_2T":"nzi","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-12 19:27:40","created_on":"2017-01-10 17:48:51","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"NZIBSGN2DA\/NZIBSGN2DA.zip","font":{"id":"45","name":"Doulos SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"NZIBSGN2ET","fcbh_id":"NZIBSGN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"NZI","language_name":"Nzima","language_english":"Nzima","language_iso":"nzi","language_iso_2B":"nzi","language_iso_2T":"nzi","language_iso_1":"","language_iso_name":"Nzima","language_family_code":"NZI","language_family_name":"Nzima","language_family_english":"Nzima","language_family_iso":"nzi","language_family_iso_2B":"nzi","language_family_iso_2T":"nzi","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-10 17:27:51","created_on":"2015-09-21 23:03:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"NZIBSGN2ET\/NZIBSGN2ET.zip","font":{"id":"45","name":"Doulos SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"OBOWBTN1DA","fcbh_id":"OBOWBTN1DA","volume_name":"2011 Editon","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OBO","language_name":"Minonuvu","language_english":"Manobo","language_iso":"obo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Obo Manobo","language_family_code":"OBO","language_family_name":"Minonuvu","language_family_english":"Manobo","language_family_iso":"obo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-25 20:10:29","created_on":"2016-01-20 00:04:23","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"OBOWBTN1DA\/OBOWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"OBOWBTN1ET","fcbh_id":"OBOWBTN1ET","volume_name":"2011 Editon","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OBO","language_name":"Minonuvu","language_english":"Manobo","language_iso":"obo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Obo Manobo","language_family_code":"OBO","language_family_name":"Minonuvu","language_family_english":"Manobo","language_family_iso":"obo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-25 20:11:13","created_on":"2016-01-20 00:00:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"OBOWBTN1ET\/OBOWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"OBOWBTN2DA","fcbh_id":"OBOWBTN2DA","volume_name":"2011 Editon","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OBO","language_name":"Minonuvu","language_english":"Manobo","language_iso":"obo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Obo Manobo","language_family_code":"OBO","language_family_name":"Minonuvu","language_family_english":"Manobo","language_family_iso":"obo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-25 20:23:43","created_on":"2016-01-20 00:03:07","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"OBOWBTN2DA\/OBOWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"OBOWBTN2ET","fcbh_id":"OBOWBTN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OBO","language_name":"Minonuvu","language_english":"Manobo","language_iso":"obo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Obo Manobo","language_family_code":"OBO","language_family_name":"Minonuvu","language_family_english":"Manobo","language_family_iso":"obo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:12","created_on":"2014-10-29 22:10:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"OBOWBTN2ET\/OBOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"OGOBSNN2DA","fcbh_id":"OGOBSNN2DA","volume_name":"1968 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"OGO","language_name":"Khana","language_english":"Khana","language_iso":"ogo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Khana","language_family_code":"OGO","language_family_name":"Khana","language_family_english":"Khana","language_family_iso":"ogo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:47","created_on":"2010-09-14 17:01:15","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2OGOBSN","audio_zip_path":"OGOBSNN2DA\/OGOBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"OJ1CBSN2DA","fcbh_id":"OJ1CBSN2DA","volume_name":"2008 Edition (Latin)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OJ1","language_name":"Ojibwe","language_english":"Ojibwe","language_iso":"ojs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Severn Ojibwa","language_family_code":"OJB","language_family_name":"Ojibwe","language_family_english":"Ojibwe","language_family_iso":"ojb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-02-09 22:46:35","created_on":"2012-09-06 18:40:30","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"OJ1CBSN2DA\/OJ1CBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"OJ1CBSN2ET","fcbh_id":"OJ1CBSN2ET","volume_name":"2008 Edition (Latin)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OJ1","language_name":"Ojibwe","language_english":"Ojibwe","language_iso":"ojs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Severn Ojibwa","language_family_code":"OJB","language_family_name":"Ojibwe","language_family_english":"Ojibwe","language_family_iso":"ojb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:19","created_on":"2012-09-06 18:38:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"OJ1CBSN2ET\/OJ1CBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"OJBCBSN2DA","fcbh_id":"OJBCBSN2DA","volume_name":"2008 Edition (Syllabic)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OJB","language_name":"Ojibwe","language_english":"Ojibwe","language_iso":"ojb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northwestern Ojibwa","language_family_code":"OJB","language_family_name":"Ojibwe","language_family_english":"Ojibwe","language_family_iso":"ojb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-02-09 22:44:43","created_on":"2015-02-09 21:32:00","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"OJBCBSN2DA\/OJBCBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"OJBCBSN2ET","fcbh_id":"OJBCBSN2ET","volume_name":"2008 Edition (Syllabic)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OJB","language_name":"Ojibwe","language_english":"Ojibwe","language_iso":"ojb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northwestern Ojibwa","language_family_code":"OJB","language_family_name":"Ojibwe","language_family_english":"Ojibwe","language_family_iso":"ojb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:19","created_on":"2015-02-09 22:36:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"OJBCBSN2ET\/OJBCBSN2ET.zip","font":{"id":"11","name":"CBSUCAS","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/CBSUCAS","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© Canadian Bible Society, Translation-CAP Department, 2004. All rights reserved.","url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"OKRBSNN2DA","fcbh_id":"OKRBSNN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"OKR","language_name":"Okrika","language_english":"Okrika","language_iso":"okr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kirike","language_family_code":"OKR","language_family_name":"Okrika","language_family_english":"Okrika","language_family_iso":"okr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:47","created_on":"2010-09-14 17:00:36","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2OKRBSN","audio_zip_path":"OKRBSNN2DA\/OKRBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"OKUWYIN2ET","fcbh_id":"OKUWYIN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OKU","language_name":"Oku","language_english":"Oku","language_iso":"oku","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Oku","language_family_code":"OKU","language_family_name":"Oku","language_family_english":"Oku","language_family_iso":"oku","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:35","created_on":"2014-10-21 18:02:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"OKUWYIN2ET\/OKUWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","mp3_cd"],"resolution":[]},{"dam_id":"OKVWBTN2ET","fcbh_id":"OKVWBTN2ET","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OKV","language_name":"Orokaiva","language_english":"Orokaiva","language_iso":"okv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Orokaiva","language_family_code":"OKV","language_family_name":"Orokaiva","language_family_english":"Orokaiva","language_family_iso":"okv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 20:37:29","created_on":"2014-06-05 15:40:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"OKVWBTN2ET\/OKVWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"OLDBSTN2DA","fcbh_id":"OLDBSTN2DA","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OLD","language_name":"Kimochi","language_english":"Kimochi","language_iso":"old","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mochi","language_family_code":"OLD","language_family_name":"Kimochi","language_family_english":"Kimochi","language_family_iso":"old","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-29 16:26:47","created_on":"2010-09-14 17:01:00","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2OLDBST","audio_zip_path":"OLDBSTN2DA\/OLDBSTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"OLDBSTN2ET","fcbh_id":"OLDBSTN2ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OLD","language_name":"Kimochi","language_english":"Kimochi","language_iso":"old","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mochi","language_family_code":"OLD","language_family_name":"Kimochi","language_family_english":"Kimochi","language_family_iso":"old","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:10","created_on":"2010-09-14 17:01:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2OLDBST","audio_zip_path":"OLDBSTN2ET\/OLDBSTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"OM1TBLN1DA","fcbh_id":"OM1TBLN1DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OM1","language_name":"Omwunra Toqura","language_english":"Omwunra Toqura","language_iso":"omw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"South Tairora","language_family_code":"OMW","language_family_name":"Omwunra Toqura","language_family_english":"Omwunra Toqura","language_family_iso":"omw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-05 21:51:52","created_on":"2017-01-03 18:55:04","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"OM1TBLN1DA\/OM1TBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"OM1TBLN1ET","fcbh_id":"OM1TBLN1ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OM1","language_name":"Omwunra Toqura","language_english":"Omwunra Toqura","language_iso":"omw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"South Tairora","language_family_code":"OMW","language_family_name":"Omwunra Toqura","language_family_english":"Omwunra Toqura","language_family_iso":"omw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-30 22:10:42","created_on":"2017-01-03 18:52:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"OM1TBLN1ET\/OM1TBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"OM1TBLN2DA","fcbh_id":"OM1TBLN2DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OM1","language_name":"Omwunra Toqura","language_english":"Omwunra Toqura","language_iso":"omw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"South Tairora","language_family_code":"OMW","language_family_name":"Omwunra Toqura","language_family_english":"Omwunra Toqura","language_family_iso":"omw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-06 17:05:45","created_on":"2017-01-03 18:57:23","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"OM1TBLN2DA\/OM1TBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"OM1TBLN2ET","fcbh_id":"OM1TBLN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OM1","language_name":"Omwunra Toqura","language_english":"Omwunra Toqura","language_iso":"omw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"South Tairora","language_family_code":"OMW","language_family_name":"Omwunra Toqura","language_family_english":"Omwunra Toqura","language_family_iso":"omw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-03 18:51:13","created_on":"2014-09-19 20:35:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"OM1TBLN2ET\/OM1TBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ONGWBTN2ET","fcbh_id":"ONGWBTN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ONG","language_name":"Olo","language_english":"Olo","language_iso":"ong","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Olo","language_family_code":"ONG","language_family_name":"Olo","language_family_english":"Olo","language_family_iso":"ong","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 20:34:55","created_on":"2014-06-04 21:57:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ONGWBTN2ET\/ONGWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"OPMTBLN2ET","fcbh_id":"OPMTBLN2ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OPM","language_name":"Oksapmin","language_english":"Oksapmin","language_iso":"opm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Oksapmin","language_family_code":"OPM","language_family_name":"Oksapmin","language_family_english":"Oksapmin","language_family_iso":"opm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 16:51:48","created_on":"2011-10-10 15:59:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"OPMTBLN2ET\/OPMTBLN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"OREWBTS1DA","fcbh_id":"OREWBTS1DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ORE","language_name":"Maijuna","language_english":"Orej\u00f3n","language_iso":"ore","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Orej\u00f3n","language_family_code":"ORE","language_family_name":"Maijuna","language_family_english":"Orejón","language_family_iso":"ore","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-01-22 19:56:19","created_on":"2017-04-05 15:19:12","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"OREWBTS1DA\/OREWBTS1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["digital_download"],"resolution":[]},{"dam_id":"ORYWTCN1DA","fcbh_id":"ORYWTCN1DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ORY","language_name":"Oriya","language_english":"Oriya","language_iso":"ori","language_iso_2B":"ori","language_iso_2T":"ori","language_iso_1":"or","language_iso_name":"Oriya","language_family_code":"ORY","language_family_name":"Oriya","language_family_english":"Oriya","language_family_iso":"ori","language_family_iso_2B":"ori","language_family_iso_2T":"ori","language_family_iso_1":"or","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-06-09 16:46:26","created_on":"2015-04-21 17:34:05","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"ORYWTCN1DA\/ORYWTCN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ORYWTCN1ET","fcbh_id":"ORYWTCN1ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ORY","language_name":"Oriya","language_english":"Oriya","language_iso":"ori","language_iso_2B":"ori","language_iso_2T":"ori","language_iso_1":"or","language_iso_name":"Oriya","language_family_code":"ORY","language_family_name":"Oriya","language_family_english":"Oriya","language_family_iso":"ori","language_family_iso_2B":"ori","language_family_iso_2T":"ori","language_family_iso_1":"or","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-21 19:36:23","created_on":"2015-06-04 17:36:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ORYWTCN1ET\/ORYWTCN1ET.zip","font":{"id":"70","name":"Lohit-Oriya","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Oriya","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2011-12 Lohit Fonts Project contributors","url":"http:\/\/bit.ly\/1y7P7iU"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ORYWTCN2DA","fcbh_id":"ORYWTCN2DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ORY","language_name":"Oriya","language_english":"Oriya","language_iso":"ori","language_iso_2B":"ori","language_iso_2T":"ori","language_iso_1":"or","language_iso_name":"Oriya","language_family_code":"ORY","language_family_name":"Oriya","language_family_english":"Oriya","language_family_iso":"ori","language_family_iso_2B":"ori","language_family_iso_2T":"ori","language_family_iso_1":"or","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-06-09 16:47:41","created_on":"2015-04-21 18:05:46","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"ORYWTCN2DA\/ORYWTCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ORYWTCN2ET","fcbh_id":"ORYWTCN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ORY","language_name":"Oriya","language_english":"Oriya","language_iso":"ori","language_iso_2B":"ori","language_iso_2T":"ori","language_iso_1":"or","language_iso_name":"Oriya","language_family_code":"ORY","language_family_name":"Oriya","language_family_english":"Oriya","language_family_iso":"ori","language_family_iso_2B":"ori","language_family_iso_2T":"ori","language_family_iso_1":"or","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-21 19:36:23","created_on":"2012-05-09 21:57:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ORYWTCN2ET\/ORYWTCN2ET.zip","font":{"id":"70","name":"Lohit-Oriya","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Oriya","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2011-12 Lohit Fonts Project contributors","url":"http:\/\/bit.ly\/1y7P7iU"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"OSSIBTN2DA","fcbh_id":"OSSIBTN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OSS","language_name":"Ossetic","language_english":"Osetin","language_iso":"oss","language_iso_2B":"oss","language_iso_2T":"oss","language_iso_1":"os","language_iso_name":"Ossetian","language_family_code":"OSS","language_family_name":"Ossetic","language_family_english":"Osetin","language_family_iso":"oss","language_family_iso_2B":"oss","language_family_iso_2T":"oss","language_family_iso_1":"os","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-03-29 18:54:59","created_on":"2010-10-18 01:37:34","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2OSSIBT","audio_zip_path":"OSSIBTN2DA\/OSSIBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"OSSIBTN2ET","fcbh_id":"OSSIBTN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OSS","language_name":"Ossetic","language_english":"Osetin","language_iso":"oss","language_iso_2B":"oss","language_iso_2T":"oss","language_iso_1":"os","language_iso_name":"Ossetian","language_family_code":"OSS","language_family_name":"Ossetic","language_family_english":"Osetin","language_family_iso":"oss","language_family_iso_2B":"oss","language_family_iso_2T":"oss","language_family_iso_1":"os","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:16","created_on":"2011-06-28 19:20:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"OSSIBTN2ET\/OSSIBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"OTDLAIN2ET","fcbh_id":"OTDLAIN2ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OTD","language_name":"Dayak Ot Danum","language_english":"Dayak Ot Danum","language_iso":"otd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ot Danum","language_family_code":"OTD","language_family_name":"Dayak Ot Danum","language_family_english":"Dayak Ot Danum","language_family_iso":"otd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-18 01:42:46","created_on":"2014-03-31 16:44:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"OTDLAIN2ET\/OTDLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"OTETBLN2DA","fcbh_id":"OTETBLN2DA","volume_name":"1990 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OTE","language_name":"Nahnu Otomi Mezquital","language_english":"Nahnu Otomi Mezquital","language_iso":"ote","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mezquital Otomi","language_family_code":"OTE","language_family_name":"Nahnu Otomi Mezquital","language_family_english":"Nahnu Otomi Mezquital","language_family_iso":"ote","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-11 23:21:44","created_on":"2010-09-14 17:00:36","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2OTETBL","audio_zip_path":"OTETBLN2DA\/OTETBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"OTETBLN2ET","fcbh_id":"OTETBLN2ET","volume_name":"1990 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OTE","language_name":"Nahnu Otomi Mezquital","language_english":"Nahnu Otomi Mezquital","language_iso":"ote","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mezquital Otomi","language_family_code":"OTE","language_family_name":"Nahnu Otomi Mezquital","language_family_english":"Nahnu Otomi Mezquital","language_family_iso":"ote","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:12","created_on":"2010-11-25 20:49:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2OTETBL","audio_zip_path":"OTETBLN2ET\/OTETBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"OTQTBLN1DA","fcbh_id":"OTQTBLN1DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OTQ","language_name":"Otom\u00ed de Quer\u00e9taro","language_english":"Otom\u00ed de Quer\u00e9taro","language_iso":"otq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Quer\u00e9taro Otomi","language_family_code":"OTQ","language_family_name":"Otom\u00ed de Quer\u00e9taro","language_family_english":"Otom\u00ed de Quer\u00e9taro","language_family_iso":"otq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:19","created_on":"2010-09-14 17:01:21","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1OTQTBL","audio_zip_path":"OTQTBLN1DA\/OTQTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"OTQTBLN1ET","fcbh_id":"OTQTBLN1ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OTQ","language_name":"Otom\u00ed de Quer\u00e9taro","language_english":"Otom\u00ed de Quer\u00e9taro","language_iso":"otq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Quer\u00e9taro Otomi","language_family_code":"OTQ","language_family_name":"Otom\u00ed de Quer\u00e9taro","language_family_english":"Otom\u00ed de Quer\u00e9taro","language_family_iso":"otq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:00:58","created_on":"2011-07-22 15:49:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"OTQTBLN1ET\/OTQTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"OZMTBLN2DA","fcbh_id":"OZMTBLN2DA","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OZM","language_name":"Koonzime","language_english":"Koonzime","language_iso":"ozm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Koonzime","language_family_code":"OZM","language_family_name":"Koonzime","language_family_english":"Koonzime","language_family_iso":"ozm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 20:39:55","created_on":"2010-09-14 17:00:37","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2OZMTBL","audio_zip_path":"OZMTBLN2DA\/OZMTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"OZMTBLN2ET","fcbh_id":"OZMTBLN2ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"OZM","language_name":"Koonzime","language_english":"Koonzime","language_iso":"ozm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Koonzime","language_family_code":"OZM","language_family_name":"Koonzime","language_family_english":"Koonzime","language_family_iso":"ozm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:23:03","created_on":"2010-11-25 20:49:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2OZMTBL","audio_zip_path":"OZMTBLN2ET\/OZMTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PABTBLN2DA","fcbh_id":"PABTBLN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PAB","language_name":"Parecis","language_english":"Parecis","language_iso":"pab","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Parec\u00eds","language_family_code":"PAB","language_family_name":"Parecis","language_family_english":"Parecis","language_family_iso":"pab","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:20","created_on":"2011-05-26 20:55:29","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"PABTBLN2DA\/PABTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PABTBLN2ET","fcbh_id":"PABTBLN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PAB","language_name":"Parecis","language_english":"Parecis","language_iso":"pab","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Parec\u00eds","language_family_code":"PAB","language_family_name":"Parecis","language_family_english":"Parecis","language_family_iso":"pab","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:12","created_on":"2011-10-12 18:04:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PABTBLN2ET\/PABTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PADTBLN2DA","fcbh_id":"PADTBLN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PAD","language_name":"Paumari","language_english":"Paumari","language_iso":"pad","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Paumar\u00ed","language_family_code":"PAD","language_family_name":"Paumari","language_family_english":"Paumari","language_family_iso":"pad","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-02 18:51:34","created_on":"2014-01-02 18:11:09","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"PADTBLN2DA\/PADTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PADTBLN2ET","fcbh_id":"PADTBLN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PAD","language_name":"Paumari","language_english":"Paumari","language_iso":"pad","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Paumar\u00ed","language_family_code":"PAD","language_family_name":"Paumari","language_family_english":"Paumari","language_family_iso":"pad","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:53","created_on":"2011-08-30 21:41:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PADTBLN2ET\/PADTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PAGPBSN2DA","fcbh_id":"PAGPBSN2DA","volume_name":"1983 Popular Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PAG","language_name":"Pangasinan","language_english":"Pangasinan","language_iso":"pag","language_iso_2B":"pag","language_iso_2T":"pag","language_iso_1":"","language_iso_name":"Pangasinan","language_family_code":"PAG","language_family_name":"Pangasinan","language_family_english":"Pangasinan","language_family_iso":"pag","language_family_iso_2B":"pag","language_family_iso_2T":"pag","language_family_iso_1":"","version_code":"PBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 17:17:42","created_on":"2010-12-07 15:00:32","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2PAGPBS","audio_zip_path":"PAGPBSN2DA\/PAGPBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PAGPBSN2ET","fcbh_id":"PAGPBSN2ET","volume_name":"1983 Popular Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PAG","language_name":"Pangasinan","language_english":"Pangasinan","language_iso":"pag","language_iso_2B":"pag","language_iso_2T":"pag","language_iso_1":"","language_iso_name":"Pangasinan","language_family_code":"PAG","language_family_name":"Pangasinan","language_family_english":"Pangasinan","language_family_iso":"pag","language_family_iso_2B":"pag","language_family_iso_2T":"pag","language_family_iso_1":"","version_code":"PBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 17:17:27","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2PAGPBS","audio_zip_path":"PAGPBSN2ET\/PAGPBSN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PAHTBLN2ET","fcbh_id":"PAHTBLN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PAH","language_name":"Tenharim","language_english":"Tenharim","language_iso":"pah","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tenharim","language_family_code":"PAH","language_family_name":"Tenharim","language_family_english":"Tenharim","language_family_iso":"pah","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:23:04","created_on":"2012-02-23 00:17:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PAHTBLN2ET\/PAHTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PAMPBSN2DA","fcbh_id":"PAMPBSN2DA","volume_name":"1994 Popular Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PAM","language_name":"Pampangan","language_english":"Pampangan","language_iso":"pam","language_iso_2B":"pam","language_iso_2T":"pam","language_iso_1":"","language_iso_name":"Pampanga","language_family_code":"PAM","language_family_name":"Pampangan","language_family_english":"Pampangan","language_family_iso":"pam","language_family_iso_2B":"pam","language_family_iso_2T":"pam","language_family_iso_1":"","version_code":"PBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 17:12:21","created_on":"2010-11-25 20:50:15","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2PAMPBS","audio_zip_path":"PAMPBSN2DA\/PAMPBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PAMPBSN2ET","fcbh_id":"PAMPBSN2ET","volume_name":"1994 Popular Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PAM","language_name":"Pampangan","language_english":"Pampangan","language_iso":"pam","language_iso_2B":"pam","language_iso_2T":"pam","language_iso_1":"","language_iso_name":"Pampanga","language_family_code":"PAM","language_family_name":"Pampangan","language_family_english":"Pampangan","language_family_iso":"pam","language_family_iso_2B":"pam","language_family_iso_2T":"pam","language_family_iso_1":"","version_code":"PBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 17:12:05","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2PAMPBS","audio_zip_path":"PAMPBSN2ET\/PAMPBSN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PANWTCN2ET","fcbh_id":"PANWTCN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PAN","language_name":"Punjabi","language_english":"Punjabi","language_iso":"pan","language_iso_2B":"pan","language_iso_2T":"pan","language_iso_1":"pa","language_iso_name":"Panjabi","language_family_code":"PAN","language_family_name":"Punjabi","language_family_english":"Punjabi","language_family_iso":"pan","language_family_iso_2B":"pan","language_family_iso_2T":"pan","language_family_iso_1":"pa","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-06 14:15:17","created_on":"2012-05-09 22:07:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PANWTCN2ET\/PANWTCN2ET.zip","font":{"id":"68","name":"Lohit-Punjabi","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Punjabi","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2011-12 Lohit Fonts Project contributors","url":"http:\/\/bit.ly\/1y7P7iU"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PAONABN1DA","fcbh_id":"PAONABN1DA","volume_name":"1985 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PAO","language_name":"Paiute, Northern","language_english":"Paiute, Northern","language_iso":"pao","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Paiute","language_family_code":"PAO","language_family_name":"Paiute, Northern","language_family_english":"Paiute, Northern","language_family_iso":"pao","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NAB","version_name":"New American Catholic ","version_english":"New American Catholic ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:21","created_on":"2010-09-14 16:59:49","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1PAONAB","audio_zip_path":"PAONABN1DA\/PAONABN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PAONABN1ET","fcbh_id":"PAONABN1ET","volume_name":"1985 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PAO","language_name":"Paiute, Northern","language_english":"Paiute, Northern","language_iso":"pao","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Paiute","language_family_code":"PAO","language_family_name":"Paiute, Northern","language_family_english":"Paiute, Northern","language_family_iso":"pao","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NAB","version_name":"New American Catholic ","version_english":"New American Catholic ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:08","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1PAONAB","audio_zip_path":"PAONABN1ET\/PAONABN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PAPTBLN1DA","fcbh_id":"PAPTBLN1DA","volume_name":"1975 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PAP","language_name":"O'othham","language_english":"Tohono O'odham","language_iso":"ood","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tohono O'odham","language_family_code":"PAP","language_family_name":"O'othham","language_family_english":"Tohono O'odham","language_family_iso":"ood","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-20 16:56:22","created_on":"2010-09-14 16:59:49","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1PAPTBL","audio_zip_path":"PAPTBLN1DA\/PAPTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PAPTBLN1ET","fcbh_id":"PAPTBLN1ET","volume_name":"1975 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PAP","language_name":"O'othham","language_english":"Tohono O'odham","language_iso":"ood","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tohono O'odham","language_family_code":"PAP","language_family_name":"O'othham","language_family_english":"Tohono O'odham","language_family_iso":"ood","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:17","created_on":"2011-06-10 19:00:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PAPTBLN1ET\/PAPTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PAUUBSN2DA","fcbh_id":"PAUUBSN2DA","volume_name":"UBS Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PAU","language_name":"Palauan","language_english":"Palauan","language_iso":"pau","language_iso_2B":"pau","language_iso_2T":"pau","language_iso_1":"","language_iso_name":"Palauan","language_family_code":"PAU","language_family_name":"Palauan","language_family_english":"Palauan","language_family_iso":"pau","language_family_iso_2B":"pau","language_family_iso_2T":"pau","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 17:11:19","created_on":"2011-11-21 18:26:57","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"PAUUBSN2DA\/PAUUBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"PAUUBSN2ET","fcbh_id":"PAUUBSN2ET","volume_name":"UBS Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PAU","language_name":"Palauan","language_english":"Palauan","language_iso":"pau","language_iso_2B":"pau","language_iso_2T":"pau","language_iso_1":"","language_iso_name":"Palauan","language_family_code":"PAU","language_family_name":"Palauan","language_family_english":"Palauan","language_family_iso":"pau","language_family_iso_2B":"pau","language_family_iso_2T":"pau","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:08","created_on":"2014-05-08 18:37:44","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PAUUBSN2ET\/PAUUBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PBBWBTN2DA","fcbh_id":"PBBWBTN2DA","volume_name":"1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PBB","language_name":"Nasa Yuwe","language_english":"Nasa Yuwe","language_iso":"pbb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"P\u00e1ez","language_family_code":"PBB","language_family_name":"Nasa Yuwe","language_family_english":"Nasa Yuwe","language_family_iso":"pbb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:22","created_on":"2010-09-14 17:01:06","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2PBBWBT","audio_zip_path":"PBBWBTN2DA\/PBBWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PBBWBTN2ET","fcbh_id":"PBBWBTN2ET","volume_name":"1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PBB","language_name":"Nasa Yuwe","language_english":"Nasa Yuwe","language_iso":"pbb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"P\u00e1ez","language_family_code":"PBB","language_family_name":"Nasa Yuwe","language_family_english":"Nasa Yuwe","language_family_iso":"pbb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:36","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2PBBWBT","audio_zip_path":"PBBWBTN2ET\/PBBWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PBCBSSN2DA","fcbh_id":"PBCBSSN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PBC","language_name":"Patamona","language_english":"Patamona","language_iso":"pbc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Patamona","language_family_code":"PBC","language_family_name":"Patamona","language_family_english":"Patamona","language_family_iso":"pbc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-05-22 16:14:58","created_on":"2013-02-15 22:03:28","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"PBCBSSN2DA\/PBCBSSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PBCBSSN2ET","fcbh_id":"PBCBSSN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PBC","language_name":"Patamona","language_english":"Patamona","language_iso":"pbc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Patamona","language_family_code":"PBC","language_family_name":"Patamona","language_family_english":"Patamona","language_family_iso":"pbc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:13","created_on":"2012-01-04 20:18:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PBCBSSN2ET\/PBCBSSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PBIWYIN2DA","fcbh_id":"PBIWYIN2DA","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PBI","language_name":"Podoko","language_english":"Podoko","language_iso":"pbi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Parkwa","language_family_code":"PBI","language_family_name":"Podoko","language_family_english":"Podoko","language_family_iso":"pbi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:23","created_on":"2011-09-23 15:33:20","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"PBIWYIN2DA\/PBIWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PBIWYIN2ET","fcbh_id":"PBIWYIN2ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PBI","language_name":"Podoko","language_english":"Podoko","language_iso":"pbi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Parkwa","language_family_code":"PBI","language_family_name":"Podoko","language_family_english":"Podoko","language_family_iso":"pbi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:06","created_on":"2011-05-30 17:25:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PBIWYIN2ET\/PBIWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PCEHMJN2DA","fcbh_id":"PCEHMJN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"PCE","language_name":"Ruching Palaung","language_english":"Ruching Palaung","language_iso":"pce","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ruching Palaung","language_family_code":"PCE","language_family_name":"Ruching Palaung","language_family_english":"Ruching Palaung","language_family_iso":"pce","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"HMJ","version_name":"Herman Margarete Janzen","version_english":"Herman Margarete Janzen","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:09","created_on":"2012-08-06 17:12:26","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"PCEHMJN2DA\/PCEHMJN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"PCKBIVN2ET","fcbh_id":"PCKBIVN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PCK","language_name":"Chin, Paite","language_english":"Chin, Paite","language_iso":"pck","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Paite Chin","language_family_code":"PCK","language_family_name":"Chin, Paite","language_family_english":"Chin, Paite","language_family_iso":"pck","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-14 20:12:29","created_on":"2015-10-07 20:41:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PCKBIVN2ET\/PCKBIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PCKBIVO2ET","fcbh_id":"PCKBIVO2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PCK","language_name":"Chin, Paite","language_english":"Chin, Paite","language_iso":"pck","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Paite Chin","language_family_code":"PCK","language_family_name":"Chin, Paite","language_family_english":"Chin, Paite","language_family_iso":"pck","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2015-10-14 20:12:57","created_on":"2015-10-07 20:43:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PCKBIVO2ET\/PCKBIVO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PCMTSCN2DA","fcbh_id":"PCMTSCN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PCM","language_name":"Nigerian Pidgin","language_english":"Nigerian Pidgin","language_iso":"pcm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nigerian Pidgin","language_family_code":"PCM","language_family_name":"Nigerian Pidgin","language_family_english":"Nigerian Pidgin","language_family_iso":"pcm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TSC","version_name":"The Seed Company","version_english":"The Seed Company","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:23","created_on":"2012-10-01 16:49:20","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"PCMTSCN2DA\/PCMTSCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PCMTSCN2ET","fcbh_id":"PCMTSCN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PCM","language_name":"Nigerian Pidgin","language_english":"Nigerian Pidgin","language_iso":"pcm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nigerian Pidgin","language_family_code":"PCM","language_family_name":"Nigerian Pidgin","language_family_english":"Nigerian Pidgin","language_family_iso":"pcm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TSC","version_name":"The Seed Company","version_english":"The Seed Company","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:09","created_on":"2013-07-11 21:20:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PCMTSCN2ET\/PCMTSCN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PESEMVN2ET","fcbh_id":"PESEMVN2ET","volume_name":"2014 New Millenium Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PES","language_name":"\u0641\u0627\u0631\u0633\u06cc","language_english":"Farsi, Western","language_iso":"fas","language_iso_2B":"per","language_iso_2T":"fas","language_iso_1":"fa","language_iso_name":"Persian","language_family_code":"PES","language_family_name":"\u0641\u0627\u0631\u0633\u06cc","language_family_english":"Farsi, Western","language_family_iso":"fas","language_family_iso_2B":"per","language_family_iso_2T":"fas","language_family_iso_1":"fa","version_code":"EMV","version_name":"NEW MILLENIUM VERSION","version_english":"NEW MILLENIUM VERSION","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-03-10 20:11:27","created_on":"2016-05-31 17:48:51","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PESEMVN2ET\/PESEMVN2ET.zip","font":{"id":"22","name":"Lateef","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lateef","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PESEMVO2ET","fcbh_id":"PESEMVO2ET","volume_name":"2014 New Millenium Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PES","language_name":"\u0641\u0627\u0631\u0633\u06cc","language_english":"Farsi, Western","language_iso":"fas","language_iso_2B":"per","language_iso_2T":"fas","language_iso_1":"fa","language_iso_name":"Persian","language_family_code":"PES","language_family_name":"\u0641\u0627\u0631\u0633\u06cc","language_family_english":"Farsi, Western","language_family_iso":"fas","language_family_iso_2B":"per","language_family_iso_2T":"fas","language_family_iso_1":"fa","version_code":"EMV","version_name":"NEW MILLENIUM VERSION","version_english":"NEW MILLENIUM VERSION","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-03-10 20:11:27","created_on":"2016-05-31 17:55:49","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PESEMVO2ET\/PESEMVO2ET.zip","font":{"id":"22","name":"Lateef","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lateef","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PESTPVN2DA","fcbh_id":"PESTPVN2DA","volume_name":"Today's Persian Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PES","language_name":"\u0641\u0627\u0631\u0633\u06cc","language_english":"Farsi, Western","language_iso":"fas","language_iso_2B":"per","language_iso_2T":"fas","language_iso_1":"fa","language_iso_name":"Persian","language_family_code":"PES","language_family_name":"\u0641\u0627\u0631\u0633\u06cc","language_family_english":"Farsi, Western","language_family_iso":"fas","language_family_iso_2B":"per","language_family_iso_2T":"fas","language_family_iso_1":"fa","version_code":"TPV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-03-10 20:11:27","created_on":"2010-09-14 17:00:37","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2PESTPV","audio_zip_path":"PESTPVN2DA\/PESTPVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PESTPVN2ET","fcbh_id":"PESTPVN2ET","volume_name":"Today's Persian Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PES","language_name":"\u0641\u0627\u0631\u0633\u06cc","language_english":"Farsi, Western","language_iso":"fas","language_iso_2B":"per","language_iso_2T":"fas","language_iso_1":"fa","language_iso_name":"Persian","language_family_code":"PES","language_family_name":"\u0641\u0627\u0631\u0633\u06cc","language_family_english":"Farsi, Western","language_family_iso":"fas","language_family_iso_2B":"per","language_family_iso_2T":"fas","language_family_iso_1":"fa","version_code":"TPV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:48","created_on":"2011-05-17 22:17:14","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PESTPVN2ET\/PESTPVN2ET.zip","font":{"id":"30","name":"Scheherazade","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Scheherazade","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2004-2014, SIL International","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PEZBSMN2ET","fcbh_id":"PEZBSMN2ET","volume_name":"2011 Editon","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PEZ","language_name":"Penan Eastern","language_english":"Penan Eastern","language_iso":"pez","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Penan","language_family_code":"PEZ","language_family_name":"Penan Eastern","language_family_english":"Penan Eastern","language_family_iso":"pez","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-12 18:34:46","created_on":"2016-02-12 17:20:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PEZBSMN2ET\/PEZBSMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PIBWBTN1DA","fcbh_id":"PIBWBTN1DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PIB","language_name":"Yine","language_english":"Yine","language_iso":"pib","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yine","language_family_code":"PIB","language_family_name":"Yine","language_family_english":"Yine","language_family_iso":"pib","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-03-16 16:28:01","created_on":"2017-03-16 15:35:10","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"PIBWBTN1DA\/PIBWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"PIBWBTN1ET","fcbh_id":"PIBWBTN1ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PIB","language_name":"Yine","language_english":"Yine","language_iso":"pib","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yine","language_family_code":"PIB","language_family_name":"Yine","language_family_english":"Yine","language_family_iso":"pib","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-03-16 16:39:16","created_on":"2017-03-16 15:07:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PIBWBTN1ET\/PIBWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PIBWBTN2DA","fcbh_id":"PIBWBTN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PIB","language_name":"Yine","language_english":"Yine","language_iso":"pib","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yine","language_family_code":"PIB","language_family_name":"Yine","language_family_english":"Yine","language_family_iso":"pib","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-03-16 16:39:34","created_on":"2017-03-16 15:22:07","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"PIBWBTN2DA\/PIBWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"PIBWBTN2ET","fcbh_id":"PIBWBTN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PIB","language_name":"Yine","language_english":"Yine","language_iso":"pib","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yine","language_family_code":"PIB","language_family_name":"Yine","language_family_english":"Yine","language_family_iso":"pib","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-07-07 22:50:20","created_on":"2013-04-08 16:29:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PIBWBTN2ET\/PIBWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PIRWBTN2DA","fcbh_id":"PIRWBTN2DA","volume_name":"1990 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PIR","language_name":"Piratapuyo","language_english":"Piratapuyo","language_iso":"pir","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Piratapuyo","language_family_code":"PIR","language_family_name":"Piratapuyo","language_family_english":"Piratapuyo","language_family_iso":"pir","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:24","created_on":"2012-11-02 19:44:42","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"PIRWBTN2DA\/PIRWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PIRWBTN2ET","fcbh_id":"PIRWBTN2ET","volume_name":"1990 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PIR","language_name":"Piratapuyo","language_english":"Piratapuyo","language_iso":"pir","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Piratapuyo","language_family_code":"PIR","language_family_name":"Piratapuyo","language_family_english":"Piratapuyo","language_family_iso":"pir","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:25","created_on":"2013-01-15 20:15:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PIRWBTN2ET\/PIRWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PISWBTN2DA","fcbh_id":"PISWBTN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PIS","language_name":"Pijin","language_english":"Pijin","language_iso":"pis","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pijin","language_family_code":"PIS","language_family_name":"Pijin","language_family_english":"Pijin","language_family_iso":"pis","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 17:27:26","created_on":"2010-09-14 17:00:37","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2PISWBT","audio_zip_path":"PISWBTN2DA\/PISWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PISWBTN2ET","fcbh_id":"PISWBTN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PIS","language_name":"Pijin","language_english":"Pijin","language_iso":"pis","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pijin","language_family_code":"PIS","language_family_name":"Pijin","language_family_english":"Pijin","language_family_iso":"pis","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 16:51:05","created_on":"2011-05-26 18:47:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PISWBTN2ET\/PISWBTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PJTBSAN1DA","fcbh_id":"PJTBSAN1DA","volume_name":"2018 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PJT","language_name":"Pitjantjatjara","language_english":"Pitjantjatjara","language_iso":"pjt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pitjantjatjara","language_family_code":"PJT","language_family_name":"Pitjantjatjara","language_family_english":"Pitjantjatjara","language_family_iso":"pjt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSA","version_name":"BSA","version_english":"BSA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-10 16:20:48","created_on":"2018-08-07 15:06:30","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"PJTBSAN1DA\/PJTBSAN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"PJTBSAN1ET","fcbh_id":"PJTBSAN1ET","volume_name":"2018 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PJT","language_name":"Pitjantjatjara","language_english":"Pitjantjatjara","language_iso":"pjt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pitjantjatjara","language_family_code":"PJT","language_family_name":"Pitjantjatjara","language_family_english":"Pitjantjatjara","language_family_iso":"pjt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSA","version_name":"BSA","version_english":"BSA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-13 15:11:11","created_on":"2018-08-07 15:02:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PJTBSAN1ET\/PJTBSAN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PJTBSAN2DA","fcbh_id":"PJTBSAN2DA","volume_name":"2018 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PJT","language_name":"Pitjantjatjara","language_english":"Pitjantjatjara","language_iso":"pjt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pitjantjatjara","language_family_code":"PJT","language_family_name":"Pitjantjatjara","language_family_english":"Pitjantjatjara","language_family_iso":"pjt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSA","version_name":"BSA","version_english":"BSA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-10 16:23:31","created_on":"2018-08-09 22:19:08","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"PJTBSAN2DA\/PJTBSAN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"PJTBSAN2ET","fcbh_id":"PJTBSAN2ET","volume_name":"2018 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PJT","language_name":"Pitjantjatjara","language_english":"Pitjantjatjara","language_iso":"pjt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pitjantjatjara","language_family_code":"PJT","language_family_name":"Pitjantjatjara","language_family_english":"Pitjantjatjara","language_family_iso":"pjt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSA","version_name":"BSA","version_english":"BSA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-17 15:53:02","created_on":"2017-09-07 16:26:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PJTBSAN2ET\/PJTBSAN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PKBBTLN2DA","fcbh_id":"PKBBTLN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PKB","language_name":"Pokomo","language_english":"Pokomo","language_iso":"pkb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pokomo","language_family_code":"PKB","language_family_name":"Pokomo","language_family_english":"Pokomo","language_family_iso":"pkb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:25","created_on":"2012-05-30 17:02:30","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"PKBBTLN2DA\/PKBBTLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PKBBTLN2ET","fcbh_id":"PKBBTLN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PKB","language_name":"Pokomo","language_english":"Pokomo","language_iso":"pkb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pokomo","language_family_code":"PKB","language_family_name":"Pokomo","language_family_english":"Pokomo","language_family_iso":"pkb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-09 15:02:51","created_on":"2011-10-18 17:49:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PKBBTLN2ET\/PKBBTLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PKOBSKN2DA","fcbh_id":"PKOBSKN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"PKO","language_name":"Pokoot","language_english":"Pokoot","language_iso":"pko","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"P\u00f6koot","language_family_code":"PKO","language_family_name":"Pokoot","language_family_english":"Pokoot","language_family_iso":"pko","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSK","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:56","created_on":"2010-09-14 17:01:13","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2PKOBSK","audio_zip_path":"PKOBSKN2DA\/PKOBSKN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"PLSWYIN1DA","fcbh_id":"PLSWYIN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PLS","language_name":"Ngigua, San Marcos Tlacoyalco","language_english":"Ngigua, San Marcos Tlalcoyalco","language_iso":"pls","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Marcos Tlalcoyalco Popoloca","language_family_code":"PLS","language_family_name":"Ngigua, San Marcos Tlacoyalco","language_family_english":"Ngigua, San Marcos Tlalcoyalco","language_family_iso":"pls","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:15","created_on":"2015-10-26 15:08:46","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"PLSWYIN1DA\/PLSWYIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PLSWYIN1ET","fcbh_id":"PLSWYIN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"PLS","language_name":"Ngigua, San Marcos Tlacoyalco","language_english":"Ngigua, San Marcos Tlalcoyalco","language_iso":"pls","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Marcos Tlalcoyalco Popoloca","language_family_code":"PLS","language_family_name":"Ngigua, San Marcos Tlacoyalco","language_family_english":"Ngigua, San Marcos Tlalcoyalco","language_family_iso":"pls","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-20 17:30:43","created_on":"2018-11-12 19:09:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PLSWYIN1ET\/PLSWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PLSWYIN2DA","fcbh_id":"PLSWYIN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PLS","language_name":"Ngigua, San Marcos Tlacoyalco","language_english":"Ngigua, San Marcos Tlalcoyalco","language_iso":"pls","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Marcos Tlalcoyalco Popoloca","language_family_code":"PLS","language_family_name":"Ngigua, San Marcos Tlacoyalco","language_family_english":"Ngigua, San Marcos Tlalcoyalco","language_family_iso":"pls","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:15","created_on":"2015-10-26 15:16:15","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PLSWYIN2DA\/PLSWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PLSWYIN2ET","fcbh_id":"PLSWYIN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"PLS","language_name":"Ngigua, San Marcos Tlacoyalco","language_english":"Ngigua, San Marcos Tlalcoyalco","language_iso":"pls","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Marcos Tlalcoyalco Popoloca","language_family_code":"PLS","language_family_name":"Ngigua, San Marcos Tlacoyalco","language_family_english":"Ngigua, San Marcos Tlalcoyalco","language_family_iso":"pls","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-20 17:30:55","created_on":"2018-11-12 19:10:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PLSWYIN2ET\/PLSWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PLWWBTN1DA","fcbh_id":"PLWWBTN1DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PLW","language_name":"Palawano, Brooke's Point","language_english":"Palawano, Brooke's Point","language_iso":"plw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Brooke's Point Palawano","language_family_code":"PLW","language_family_name":"Palawano, Brooke's Point","language_family_english":"Palawano, Brooke's Point","language_family_iso":"plw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-08 19:50:39","created_on":"2017-02-02 19:07:00","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"PLWWBTN1DA\/PLWWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"PLWWBTN1ET","fcbh_id":"PLWWBTN1ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PLW","language_name":"Palawano, Brooke's Point","language_english":"Palawano, Brooke's Point","language_iso":"plw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Brooke's Point Palawano","language_family_code":"PLW","language_family_name":"Palawano, Brooke's Point","language_family_english":"Palawano, Brooke's Point","language_family_iso":"plw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-02 19:22:11","created_on":"2017-02-02 19:11:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PLWWBTN1ET\/PLWWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PLWWBTN2DA","fcbh_id":"PLWWBTN2DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PLW","language_name":"Palawano, Brooke's Point","language_english":"Palawano, Brooke's Point","language_iso":"plw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Brooke's Point Palawano","language_family_code":"PLW","language_family_name":"Palawano, Brooke's Point","language_family_english":"Palawano, Brooke's Point","language_family_iso":"plw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-10-01 18:03:47","created_on":"2014-08-22 20:07:16","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"PLWWBTN2DA\/PLWWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PLWWBTN2ET","fcbh_id":"PLWWBTN2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PLW","language_name":"Palawano, Brooke's Point","language_english":"Palawano, Brooke's Point","language_iso":"plw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Brooke's Point Palawano","language_family_code":"PLW","language_family_name":"Palawano, Brooke's Point","language_family_english":"Palawano, Brooke's Point","language_family_iso":"plw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:23","created_on":"2014-02-24 17:09:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PLWWBTN2ET\/PLWWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PMFNTMN2DA","fcbh_id":"PMFNTMN2DA","volume_name":"New Tribes Mission","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PMF","language_name":"Bahasa Taa","language_english":"Bahasa Taa","language_iso":"pmf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pamona","language_family_code":"PMF","language_family_name":"Bahasa Taa","language_family_english":"Bahasa Taa","language_family_iso":"pmf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:16:18","created_on":"2012-01-11 15:46:12","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"PMFNTMN2DA\/PMFNTMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PMFNTMN2ET","fcbh_id":"PMFNTMN2ET","volume_name":"New Tribes Mission","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PMF","language_name":"Bahasa Taa","language_english":"Bahasa Taa","language_iso":"pmf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pamona","language_family_code":"PMF","language_family_name":"Bahasa Taa","language_family_english":"Bahasa Taa","language_family_iso":"pmf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-06 22:38:12","created_on":"2012-02-03 18:50:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PMFNTMN2ET\/PMFNTMN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PNYCABN1DA","fcbh_id":"PNYCABN1DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PNY","language_name":"Pinyin","language_english":"Pinyin","language_iso":"pny","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pinyin","language_family_code":"PNY","language_family_name":"Pinyin","language_family_english":"Pinyin","language_family_iso":"pny","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAB","version_name":"CABTAL","version_english":"CABTAL","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-04 16:27:57","created_on":"2018-08-20 19:49:08","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"PNYCABN1DA\/PNYCABN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download"],"resolution":[]},{"dam_id":"PNYCABN1ET","fcbh_id":"PNYCABN1ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PNY","language_name":"Pinyin","language_english":"Pinyin","language_iso":"pny","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pinyin","language_family_code":"PNY","language_family_name":"Pinyin","language_family_english":"Pinyin","language_family_iso":"pny","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAB","version_name":"CABTAL","version_english":"CABTAL","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-04 16:28:12","created_on":"2018-08-17 15:43:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PNYCABN1ET\/PNYCABN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PNYCABN2DA","fcbh_id":"PNYCABN2DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PNY","language_name":"Pinyin","language_english":"Pinyin","language_iso":"pny","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pinyin","language_family_code":"PNY","language_family_name":"Pinyin","language_family_english":"Pinyin","language_family_iso":"pny","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAB","version_name":"CABTAL","version_english":"CABTAL","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-06 15:55:25","created_on":"2018-08-20 18:16:39","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"PNYCABN2DA\/PNYCABN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download"],"resolution":[]},{"dam_id":"PNYCABN2ET","fcbh_id":"PNYCABN2ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PNY","language_name":"Pinyin","language_english":"Pinyin","language_iso":"pny","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pinyin","language_family_code":"PNY","language_family_name":"Pinyin","language_family_english":"Pinyin","language_family_iso":"pny","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAB","version_name":"CABTAL","version_english":"CABTAL","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-07 15:43:28","created_on":"2017-09-01 21:27:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PNYCABN2ET\/PNYCABN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"POBWYIN2DA","fcbh_id":"POBWYIN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POB","language_name":"Poqomchi Occidental","language_english":"Poqomchi","language_iso":"poh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Poqomchi'","language_family_code":"POB","language_family_name":"Poqomchi Occidental","language_family_english":"Poqomchi","language_family_iso":"poh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-14 17:27:07","created_on":"2012-02-20 16:42:54","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"POBWYIN2DA\/POBWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"POBWYIN2ET","fcbh_id":"POBWYIN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POB","language_name":"Poqomchi Occidental","language_english":"Poqomchi","language_iso":"poh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"English","language_family_code":"POB","language_family_name":"Poqomchi Occidental","language_family_english":"Poqomchi","language_family_iso":"poh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:38","created_on":"2011-10-18 17:00:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"POBWYIN2ET\/POBWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"POHBSGN2DA","fcbh_id":"POHBSGN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POH","language_name":"Pokomchi, Eastern ","language_english":"Pokomchi, Eastern ","language_iso":"poh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Poqomchi'","language_family_code":"POH","language_family_name":"Pokomchi, Eastern","language_family_english":"Pokomchi, Eastern","language_family_iso":"poh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 18:39:50","created_on":"2010-11-25 20:50:17","right_to_left":"false","num_art":"6","num_sample_audio":"2","sku":"N2POHBSG","audio_zip_path":"POHBSGN2DA\/POHBSGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"POHBSGN2ET","fcbh_id":"POHBSGN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POH","language_name":"Pokomchi, Eastern ","language_english":"Pokomchi, Eastern ","language_iso":"poh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Poqomchi'","language_family_code":"POH","language_family_name":"Pokomchi, Eastern","language_family_english":"Pokomchi, Eastern","language_family_iso":"poh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:16","created_on":"2010-11-25 20:50:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2POHBSG","audio_zip_path":"POHBSGN2ET\/POHBSGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"POHPOCN1DA","fcbh_id":"POHPOCN1DA","volume_name":"Catholic Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POH","language_name":"Pokomchi, Eastern ","language_english":"Pokomchi, Eastern ","language_iso":"poh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Poqomchi'","language_family_code":"POH","language_family_name":"Pokomchi, Eastern","language_family_english":"Pokomchi, Eastern","language_family_iso":"poh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"POC","version_name":"POC","version_english":"POC","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:13","created_on":"2017-11-13 18:15:50","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"POHPOCN1DA\/POHPOCN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"POHPOCN2DA","fcbh_id":"POHPOCN2DA","volume_name":"Catholic Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POH","language_name":"Pokomchi, Eastern ","language_english":"Pokomchi, Eastern ","language_iso":"poh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Poqomchi'","language_family_code":"POH","language_family_name":"Pokomchi, Eastern","language_family_english":"Pokomchi, Eastern","language_family_iso":"poh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"POC","version_name":"POC","version_english":"POC","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:13","created_on":"2017-11-13 18:06:41","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"POHPOCN2DA\/POHPOCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"POITBLN1DA","fcbh_id":"POITBLN1DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POI","language_name":"Popoluca de la Sierra","language_english":"Highland Popoluca","language_iso":"poi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Highland Popoluca","language_family_code":"POI","language_family_name":"Popoluca de la Sierra","language_family_english":"Highland Popoluca","language_family_iso":"poi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-26 21:55:24","created_on":"2016-01-26 21:34:59","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"POITBLN1DA\/POITBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"POITBLN1ET","fcbh_id":"POITBLN1ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POI","language_name":"Popoluca de la Sierra","language_english":"Highland Popoluca","language_iso":"poi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Highland Popoluca","language_family_code":"POI","language_family_name":"Popoluca de la Sierra","language_family_english":"Highland Popoluca","language_family_iso":"poi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-07 20:18:09","created_on":"2016-06-07 20:08:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"POITBLN1ET\/POITBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"POITBLN2DA","fcbh_id":"POITBLN2DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"POI","language_name":"Popoluca de la Sierra","language_english":"Highland Popoluca","language_iso":"poi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Highland Popoluca","language_family_code":"POI","language_family_name":"Popoluca de la Sierra","language_family_english":"Highland Popoluca","language_family_iso":"poi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-26 22:21:16","created_on":"2016-01-26 21:45:07","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"POITBLN2DA\/POITBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"POITBLN2ET","fcbh_id":"POITBLN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POI","language_name":"Popoluca de la Sierra","language_english":"Highland Popoluca","language_iso":"poi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Highland Popoluca","language_family_code":"POI","language_family_name":"Popoluca de la Sierra","language_family_english":"Highland Popoluca","language_family_iso":"poi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:20","created_on":"2015-08-10 19:10:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"POITBLN2ET\/POITBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"POLPBGN2ET","fcbh_id":"POLPBGN2ET","volume_name":"1632 Polish Biblia Gdanska","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POL","language_name":"Polski","language_english":"Polish","language_iso":"pol","language_iso_2B":"pol","language_iso_2T":"pol","language_iso_1":"pl","language_iso_name":"Polish","language_family_code":"POL","language_family_name":"Polski","language_family_english":"Polish","language_family_iso":"pol","language_family_iso_2B":"pol","language_family_iso_2T":"pol","language_family_iso_1":"pl","version_code":"PBG","version_name":"1632 Polish Biblia Gdanska","version_english":"1632 Polish Biblia Gdanska","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 19:36:55","created_on":"2010-09-14 17:01:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"POLPBGN2ET\/POLPBGN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"POLPBGO2ET","fcbh_id":"POLPBGO2ET","volume_name":"1632 Polish Biblia Gdanska","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POL","language_name":"Polski","language_english":"Polish","language_iso":"pol","language_iso_2B":"pol","language_iso_2T":"pol","language_iso_1":"pl","language_iso_name":"Polish","language_family_code":"POL","language_family_name":"Polski","language_family_english":"Polish","language_family_iso":"pol","language_family_iso_2B":"pol","language_family_iso_2T":"pol","language_family_iso_1":"pl","version_code":"PBG","version_name":"1632 Polish Biblia Gdanska","version_english":"1632 Polish Biblia Gdanska","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2013-12-16 19:36:37","created_on":"2010-09-14 17:01:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"POLPBGO2ET\/POLPBGO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PORACFN2ET","fcbh_id":"PORACFN2ET","volume_name":"Almeida Corrigida Fiel","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POR","language_name":"Portugu\u00eas","language_english":"Portuguese","language_iso":"por","language_iso_2B":"por","language_iso_2T":"por","language_iso_1":"pt","language_iso_name":"Portuguese","language_family_code":"POR","language_family_name":"Portugu\u00eas","language_family_english":"Portuguese","language_family_iso":"por","language_family_iso_2B":"por","language_family_iso_2T":"por","language_family_iso_1":"pt","version_code":"ACF","version_name":"Almeida Corrigida Fiel","version_english":"Almeida Corrigida Fiel","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-09-13 20:59:17","created_on":"2016-09-13 20:17:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PORACFN2ET\/PORACFN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PORACFO2ET","fcbh_id":"PORACFO2ET","volume_name":"Almeida Corrigida Fiel","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POR","language_name":"Portugu\u00eas","language_english":"Portuguese","language_iso":"por","language_iso_2B":"por","language_iso_2T":"por","language_iso_1":"pt","language_iso_name":"Portuguese","language_family_code":"POR","language_family_name":"Portugu\u00eas","language_family_english":"Portuguese","language_family_iso":"por","language_family_iso_2B":"por","language_family_iso_2T":"por","language_family_iso_1":"pt","version_code":"ACF","version_name":"Almeida Corrigida Fiel","version_english":"Almeida Corrigida Fiel","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2016-09-13 21:00:03","created_on":"2016-09-13 20:29:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PORACFO2ET\/PORACFO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PORARAN2DA","fcbh_id":"PORARAN2DA","volume_name":"Almeida Revista e Atualizada (Brasil)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POR","language_name":"Portugu\u00eas","language_english":"Portuguese","language_iso":"por","language_iso_2B":"por","language_iso_2T":"por","language_iso_1":"pt","language_iso_name":"Portuguese","language_family_code":"POR","language_family_name":"Portugu\u00eas","language_family_english":"Portuguese","language_family_iso":"por","language_family_iso_2B":"por","language_family_iso_2T":"por","language_family_iso_1":"pt","version_code":"ARA","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:37:39","created_on":"2010-09-14 17:00:37","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2PORARA","audio_zip_path":"PORARAN2DA\/PORARAN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PORARCN2DA","fcbh_id":"PORARCN2DA","volume_name":"Almeida Revista e Corrigida (Brasil)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POR","language_name":"Portugu\u00eas","language_english":"Portuguese","language_iso":"por","language_iso_2B":"por","language_iso_2T":"por","language_iso_1":"pt","language_iso_name":"Portuguese","language_family_code":"POR","language_family_name":"Portugu\u00eas","language_family_english":"Portuguese","language_family_iso":"por","language_family_iso_2B":"por","language_family_iso_2T":"por","language_family_iso_1":"pt","version_code":"ARC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:37:39","created_on":"2010-09-14 17:00:38","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2PORARC","audio_zip_path":"PORARCN2DA\/PORARCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PORBSPN2DA","fcbh_id":"PORBSPN2DA","volume_name":"a B\u00cdBLIA para todos (Portugal)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POR","language_name":"Portugu\u00eas","language_english":"Portuguese","language_iso":"por","language_iso_2B":"por","language_iso_2T":"por","language_iso_1":"pt","language_iso_name":"Portuguese","language_family_code":"POR","language_family_name":"Portugu\u00eas","language_family_english":"Portuguese","language_family_iso":"por","language_family_iso_2B":"por","language_family_iso_2T":"por","language_family_iso_1":"pt","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 21:14:41","created_on":"2011-10-05 17:24:27","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"PORBSPN2DA\/PORBSPN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PORBSPN2ET","fcbh_id":"PORBSPN2ET","volume_name":"a B\u00cdBLIA para todos (Portugal)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POR","language_name":"Portugu\u00eas","language_english":"Portuguese","language_iso":"por","language_iso_2B":"por","language_iso_2T":"por","language_iso_1":"pt","language_iso_name":"Portuguese","language_family_code":"POR","language_family_name":"Portugu\u00eas","language_family_english":"Portuguese","language_family_iso":"por","language_family_iso_2B":"por","language_family_iso_2T":"por","language_family_iso_1":"pt","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 21:14:41","created_on":"2011-08-04 15:57:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PORBSPN2ET\/PORBSPN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"PORBSPO2ET","fcbh_id":"PORBSPO2ET","volume_name":"a B\u00cdBLIA para todos (Portugal)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POR","language_name":"Portugu\u00eas","language_english":"Portuguese","language_iso":"por","language_iso_2B":"por","language_iso_2T":"por","language_iso_1":"pt","language_iso_name":"Portuguese","language_family_code":"POR","language_family_name":"Portugu\u00eas","language_family_english":"Portuguese","language_family_iso":"por","language_family_iso_2B":"por","language_family_iso_2T":"por","language_family_iso_1":"pt","version_code":"BSP","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:50","created_on":"2011-09-27 22:15:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PORBSPO2ET\/PORBSPO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"PORJFAN2ET","fcbh_id":"PORJFAN2ET","volume_name":"Jo\u00e3o Ferreira de Almeida (Brazil)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POR","language_name":"Portugu\u00eas","language_english":"Portuguese","language_iso":"por","language_iso_2B":"por","language_iso_2T":"por","language_iso_1":"pt","language_iso_name":"Portuguese","language_family_code":"POR","language_family_name":"Portugu\u00eas","language_family_english":"Portuguese","language_family_iso":"por","language_family_iso_2B":"por","language_family_iso_2T":"por","language_family_iso_1":"pt","version_code":"JFA","version_name":"Tradu\u00e7\u00e3o de Jo\u00e3o Ferreira de Almeida","version_english":"Ferreira de Almeida","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:37:39","created_on":"2011-08-04 22:27:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PORJFAN2ET\/PORJFAN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PORJFAO2ET","fcbh_id":"PORJFAO2ET","volume_name":"Jo\u00e3o Ferreira de Almeida (Brazil)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POR","language_name":"Portugu\u00eas","language_english":"Portuguese","language_iso":"por","language_iso_2B":"por","language_iso_2T":"por","language_iso_1":"pt","language_iso_name":"Portuguese","language_family_code":"POR","language_family_name":"Portugu\u00eas","language_family_english":"Portuguese","language_family_iso":"por","language_family_iso_2B":"por","language_family_iso_2T":"por","language_family_iso_1":"pt","version_code":"JFA","version_name":"Tradu\u00e7\u00e3o de Jo\u00e3o Ferreira de Almeida","version_english":"Ferreira de Almeida","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:37:39","created_on":"2011-08-04 22:29:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PORJFAO2ET\/PORJFAO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PORNLHN2DA","fcbh_id":"PORNLHN2DA","volume_name":"(Brasil) Nova Traducao na Linguagem de Hoje","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"POR","language_name":"Portugu\u00eas","language_english":"Portuguese","language_iso":"por","language_iso_2B":"por","language_iso_2T":"por","language_iso_1":"pt","language_iso_name":"Portuguese","language_family_code":"POR","language_family_name":"Portugu\u00eas","language_family_english":"Portuguese","language_family_iso":"por","language_family_iso_2B":"por","language_family_iso_2T":"por","language_family_iso_1":"pt","version_code":"NLH","version_name":"Nova Traducao na Linguagem de Hoy","version_english":"Nova Traducao na Linguagem de Hoy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-19 21:07:11","created_on":"2011-05-09 22:17:23","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"PORNLHN2DA\/PORNLHN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PORWTCN2ET","fcbh_id":"PORWTCN2ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"POR","language_name":"Portugu\u00eas","language_english":"Portuguese","language_iso":"por","language_iso_2B":"por","language_iso_2T":"por","language_iso_1":"pt","language_iso_name":"Portuguese","language_family_code":"POR","language_family_name":"Portugu\u00eas","language_family_english":"Portuguese","language_family_iso":"por","language_family_iso_2B":"por","language_family_iso_2T":"por","language_family_iso_1":"pt","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-21 19:37:12","created_on":"2014-08-15 15:20:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PORWTCN2ET\/PORWTCN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"POVUBSN2DA","fcbh_id":"POVUBSN2DA","volume_name":"1989 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"POV","language_name":"Crioulo, Upper Guinea","language_english":"Crioulo, Upper Guinea","language_iso":"pov","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Upper Guinea Crioulo","language_family_code":"POV","language_family_name":"Crioulo, Upper Guinea","language_family_english":"Crioulo, Upper Guinea","language_family_iso":"pov","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:36","created_on":"2010-09-14 17:00:38","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2POVUBS","audio_zip_path":"POVUBSN2DA\/POVUBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"PPKLAIN1DA","fcbh_id":"PPKLAIN1DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"PPK","language_name":"Uma","language_english":"Uma","language_iso":"ppk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Uma","language_family_code":"PPK","language_family_name":"Uma","language_family_english":"Uma","language_family_iso":"ppk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-26 14:13:43","created_on":"2015-10-23 20:23:38","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"PPKLAIN1DA\/PPKLAIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PPKLAIN1ET","fcbh_id":"PPKLAIN1ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PPK","language_name":"Uma","language_english":"Uma","language_iso":"ppk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Uma","language_family_code":"PPK","language_family_name":"Uma","language_family_english":"Uma","language_family_iso":"ppk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-26 14:14:02","created_on":"2015-10-23 19:50:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PPKLAIN1ET\/PPKLAIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PPKLAIN2DA","fcbh_id":"PPKLAIN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PPK","language_name":"Uma","language_english":"Uma","language_iso":"ppk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Uma","language_family_code":"PPK","language_family_name":"Uma","language_family_english":"Uma","language_family_iso":"ppk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-26 14:14:22","created_on":"2015-10-23 19:51:58","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"PPKLAIN2DA\/PPKLAIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PPKLAIN2ET","fcbh_id":"PPKLAIN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PPK","language_name":"Uma","language_english":"Uma","language_iso":"ppk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Uma","language_family_code":"PPK","language_family_name":"Uma","language_family_english":"Uma","language_family_iso":"ppk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-23 19:49:15","created_on":"2014-03-19 20:14:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PPKLAIN2ET\/PPKLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PPOWBTN2ET","fcbh_id":"PPOWBTN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PPO","language_name":"Folopa","language_english":"Folopa","language_iso":"ppo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Folopa","language_family_code":"PPO","language_family_name":"Folopa","language_family_english":"Folopa","language_family_iso":"ppo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-21 17:20:38","created_on":"2014-06-06 18:39:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PPOWBTN2ET\/PPOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PPSWYIN1DA","fcbh_id":"PPSWYIN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PPS","language_name":"Ngigua, San Lu\u00eds Temalacayuca","language_english":"Popoloca, San Luis Temalacayuca","language_iso":"pps","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Lu\u00eds Temalacayuca Popoloca","language_family_code":"PPS","language_family_name":"Ngigua, San Lu\u00eds Temalacayuca","language_family_english":"Popoloca, San Luis Temalacayuca","language_family_iso":"pps","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-06 16:39:47","created_on":"2015-09-22 16:17:21","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"PPSWYIN1DA\/PPSWYIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"PPSWYIN2DA","fcbh_id":"PPSWYIN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PPS","language_name":"Ngigua, San Lu\u00eds Temalacayuca","language_english":"Popoloca, San Luis Temalacayuca","language_iso":"pps","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Lu\u00eds Temalacayuca Popoloca","language_family_code":"PPS","language_family_name":"Ngigua, San Lu\u00eds Temalacayuca","language_family_english":"Popoloca, San Luis Temalacayuca","language_family_iso":"pps","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-06 16:39:22","created_on":"2015-09-14 21:38:16","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"PPSWYIN2DA\/PPSWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"PQLMBVN1DA","fcbh_id":"PQLMBVN1DA","volume_name":"Millennium Bible","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"PQL","language_name":"Polski","language_english":"Polish","language_iso":"pol","language_iso_2B":"pol","language_iso_2T":"pol","language_iso_1":"pl","language_iso_name":"Polish","language_family_code":"POL","language_family_name":"Polski","language_family_english":"Polish","language_family_iso":"pol","language_family_iso_2B":"pol","language_family_iso_2T":"pol","language_family_iso_1":"pl","version_code":"MBV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:31","created_on":"2010-09-14 16:59:49","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1PQLMBV","audio_zip_path":"PQLMBVN1DA\/PQLMBVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"PRFWBTN2DA","fcbh_id":"PRFWBTN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PRF","language_name":"Paranan","language_english":"Paranan","language_iso":"prf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Paranan","language_family_code":"PRF","language_family_name":"Paranan","language_family_english":"Paranan","language_family_iso":"prf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 17:19:56","created_on":"2013-10-15 19:35:20","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"PRFWBTN2DA\/PRFWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PRFWBTN2ET","fcbh_id":"PRFWBTN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PRF","language_name":"Paranan","language_english":"Paranan","language_iso":"prf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Paranan","language_family_code":"PRF","language_family_name":"Paranan","language_family_english":"Paranan","language_family_iso":"prf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:17","created_on":"2013-08-19 19:49:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PRFWBTN2ET\/PRFWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PRKBSMN1DA","fcbh_id":"PRKBSMN1DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PRK","language_name":"Wa","language_english":"Wa","language_iso":"prk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Parauk","language_family_code":"PRK","language_family_name":"Wa","language_family_english":"Wa","language_family_iso":"prk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-03 19:28:33","created_on":"2016-06-01 19:58:19","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"PRKBSMN1DA\/PRKBSMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"PRKBSMN1ET","fcbh_id":"PRKBSMN1ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PRK","language_name":"Wa","language_english":"Wa","language_iso":"prk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Parauk","language_family_code":"PRK","language_family_name":"Wa","language_family_english":"Wa","language_family_iso":"prk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-28 18:19:46","created_on":"2016-06-28 18:04:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PRKBSMN1ET\/PRKBSMN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PRKBSMN2DA","fcbh_id":"PRKBSMN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PRK","language_name":"Wa","language_english":"Wa","language_iso":"prk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Parauk","language_family_code":"PRK","language_family_name":"Wa","language_family_english":"Wa","language_family_iso":"prk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-03 19:31:33","created_on":"2016-06-01 20:12:48","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"PRKBSMN2DA\/PRKBSMN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PRKBSMN2ET","fcbh_id":"PRKBSMN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PRK","language_name":"Wa","language_english":"Wa","language_iso":"prk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Parauk","language_family_code":"PRK","language_family_name":"Wa","language_family_english":"Wa","language_family_iso":"prk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-29 16:58:51","created_on":"2013-03-12 17:02:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PRKBSMN2ET\/PRKBSMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PRKBSMO2ET","fcbh_id":"PRKBSMO2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PRK","language_name":"Wa","language_english":"Wa","language_iso":"prk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Parauk","language_family_code":"PRK","language_family_name":"Wa","language_family_english":"Wa","language_family_iso":"prk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:07","created_on":"2013-03-12 17:05:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PRKBSMO2ET\/PRKBSMO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PRSGNNS2DA","fcbh_id":"PRSGNNS2DA","volume_name":"Good News for a New Age","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PRS","language_name":"Dari","language_english":"Dari","language_iso":"prs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dari","language_family_code":"PRS","language_family_name":"Dari","language_family_english":"Dari","language_family_iso":"prs","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"GNN","version_name":"","version_english":"","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-07-12 19:54:49","created_on":"2018-07-12 19:31:54","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"PRSGNNS2DA\/PRSGNNS2DA.zip","font":{"id":"30","name":"Scheherazade","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Scheherazade","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2004-2014, SIL International","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["digital_download"],"resolution":[]},{"dam_id":"PSELAIN1DA","fcbh_id":"PSELAIN1DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PSE","language_name":"Serawai","language_english":"Serawai","language_iso":"pse","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Malay","language_family_code":"PSE","language_family_name":"Serawai","language_family_english":"Serawai","language_family_iso":"pse","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-03-03 17:30:40","created_on":"2017-02-28 22:15:54","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"PSELAIN1DA\/PSELAIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"PSELAIN1ET","fcbh_id":"PSELAIN1ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PSE","language_name":"Serawai","language_english":"Serawai","language_iso":"pse","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Malay","language_family_code":"PSE","language_family_name":"Serawai","language_family_english":"Serawai","language_family_iso":"pse","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-03-03 17:31:14","created_on":"2017-02-28 22:13:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PSELAIN1ET\/PSELAIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PSELAIN2DA","fcbh_id":"PSELAIN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PSE","language_name":"Serawai","language_english":"Serawai","language_iso":"pse","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Malay","language_family_code":"PSE","language_family_name":"Serawai","language_family_english":"Serawai","language_family_iso":"pse","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-03-03 17:31:38","created_on":"2017-02-28 22:25:05","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"PSELAIN2DA\/PSELAIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"PSELAIN2ET","fcbh_id":"PSELAIN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PSE","language_name":"Serawai","language_english":"Serawai","language_iso":"pse","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Malay","language_family_code":"PSE","language_family_name":"Serawai","language_family_english":"Serawai","language_family_iso":"pse","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-26 18:17:18","created_on":"2016-01-26 18:05:15","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PSELAIN2ET\/PSELAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PSSBIVN2ET","fcbh_id":"PSSBIVN2ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PSS","language_name":"Kaulong","language_english":"Kaulong","language_iso":"pss","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kaulong","language_family_code":"PSS","language_family_name":"Kaulong","language_family_english":"Kaulong","language_family_iso":"pss","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-20 21:43:14","created_on":"2016-01-20 21:18:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PSSBIVN2ET\/PSSBIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PTPWBTN2ET","fcbh_id":"PTPWBTN2ET","volume_name":"1986 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PTP","language_name":"Patep","language_english":"Patep","language_iso":"ptp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Patep","language_family_code":"PTP","language_family_name":"Patep","language_family_english":"Patep","language_family_iso":"ptp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 20:39:44","created_on":"2014-06-25 14:47:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PTPWBTN2ET\/PTPWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","mp3_cd"],"resolution":[]},{"dam_id":"PUISMVN1ET","fcbh_id":"PUISMVN1ET","volume_name":"1985 Sofia Muller","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"PUI","language_name":"Puinave","language_english":"Puinave","language_iso":"pui","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Puinave","language_family_code":"PUI","language_family_name":"Puinave","language_family_english":"Puinave","language_family_iso":"pui","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SMV","version_name":"Sofia Muller","version_english":"Sofia Muller","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-01 15:33:07","created_on":"2018-08-01 15:23:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PUISMVN1ET\/PUISMVN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PUISMVN2DA","fcbh_id":"PUISMVN2DA","volume_name":"SMV Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PUI","language_name":"Puinave","language_english":"Puinave","language_iso":"pui","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Puinave","language_family_code":"PUI","language_family_name":"Puinave","language_family_english":"Puinave","language_family_iso":"pui","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SMV","version_name":"Sofia Muller","version_english":"Sofia Muller","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-06 15:36:06","created_on":"2015-08-19 19:50:20","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"PUISMVN2DA\/PUISMVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"PUISMVN2ET","fcbh_id":"PUISMVN2ET","volume_name":"1985 Sofia Muller","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"PUI","language_name":"Puinave","language_english":"Puinave","language_iso":"pui","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Puinave","language_family_code":"PUI","language_family_name":"Puinave","language_family_english":"Puinave","language_family_iso":"pui","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SMV","version_name":"Sofia Muller","version_english":"Sofia Muller","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-01 15:34:51","created_on":"2018-07-30 22:59:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PUISMVN2ET\/PUISMVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PWGWBTN2ET","fcbh_id":"PWGWBTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PWG","language_name":"Gapapaiwa","language_english":"Gapapaiwa","language_iso":"pwg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gapapaiwa","language_family_code":"PWG","language_family_name":"Gapapaiwa","language_family_english":"Gapapaiwa","language_family_iso":"pwg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:15","created_on":"2014-06-06 18:51:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PWGWBTN2ET\/PWGWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PWWTBSN2DA","fcbh_id":"PWWTBSN2DA","volume_name":"Bible Society Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PWW","language_name":"Karen Pwo, Northern","language_english":"Karen Pwo, Northern","language_iso":"pww","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pwo Northern Karen","language_family_code":"PWW","language_family_name":"Karen Pwo, Northern","language_family_english":"Karen Pwo, Northern","language_family_iso":"pww","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBS","version_name":"Thailand Bible Society","version_english":"Thailand Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:29","created_on":"2013-05-24 21:55:24","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"PWWTBSN2DA\/PWWTBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"PWWTBSN2ET","fcbh_id":"PWWTBSN2ET","volume_name":"Bible Society Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PWW","language_name":"Karen Pwo, Northern","language_english":"Karen Pwo, Northern","language_iso":"pww","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pwo Northern Karen","language_family_code":"PWW","language_family_name":"Karen Pwo, Northern","language_family_english":"Karen Pwo, Northern","language_family_iso":"pww","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBS","version_name":"Thailand Bible Society","version_english":"Thailand Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:12","created_on":"2012-02-23 00:31:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PWWTBSN2ET\/PWWTBSN2ET.zip","font":{"id":"71","name":"Khmer OFL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Khmer_OFL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2010, Danh Hong","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"PXMBSMN1DA","fcbh_id":"PXMBSMN1DA","volume_name":"BSM Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PXM","language_name":"Mixe Quetzaltepec","language_english":"Mixe Quetzaltepec","language_iso":"pxm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Quetzaltepec Mixe","language_family_code":"PXM","language_family_name":"Mixe Quetzaltepec","language_family_english":"Mixe Quetzaltepec","language_family_iso":"pxm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-18 19:08:10","created_on":"2017-09-14 21:23:57","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"PXMBSMN1DA\/PXMBSMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"PXMBSMN1ET","fcbh_id":"PXMBSMN1ET","volume_name":"BSM Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PXM","language_name":"Mixe Quetzaltepec","language_english":"Mixe Quetzaltepec","language_iso":"pxm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Quetzaltepec Mixe","language_family_code":"PXM","language_family_name":"Mixe Quetzaltepec","language_family_english":"Mixe Quetzaltepec","language_family_iso":"pxm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:42:35","created_on":"2017-09-14 21:11:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PXMBSMN1ET\/PXMBSMN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PXMBSMN2DA","fcbh_id":"PXMBSMN2DA","volume_name":"BSM Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PXM","language_name":"Mixe Quetzaltepec","language_english":"Mixe Quetzaltepec","language_iso":"pxm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Quetzaltepec Mixe","language_family_code":"PXM","language_family_name":"Mixe Quetzaltepec","language_family_english":"Mixe Quetzaltepec","language_family_iso":"pxm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-06 16:45:15","created_on":"2017-09-14 21:16:32","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"PXMBSMN2DA\/PXMBSMN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","digital_download"],"resolution":[]},{"dam_id":"PXMBSMN2ET","fcbh_id":"PXMBSMN2ET","volume_name":"BSM Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PXM","language_name":"Mixe Quetzaltepec","language_english":"Mixe Quetzaltepec","language_iso":"pxm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Quetzaltepec Mixe","language_family_code":"PXM","language_family_name":"Mixe Quetzaltepec","language_family_english":"Mixe Quetzaltepec","language_family_iso":"pxm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:42:35","created_on":"2015-11-16 15:27:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PXMBSMN2ET\/PXMBSMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PXMBSMO1ET","fcbh_id":"PXMBSMO1ET","volume_name":"BSM Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"PXM","language_name":"Mixe Quetzaltepec","language_english":"Mixe Quetzaltepec","language_iso":"pxm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Quetzaltepec Mixe","language_family_code":"PXM","language_family_name":"Mixe Quetzaltepec","language_family_english":"Mixe Quetzaltepec","language_family_iso":"pxm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:42:35","created_on":"2017-09-14 21:13:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PXMBSMO1ET\/PXMBSMO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"PXMBSMO2ET","fcbh_id":"PXMBSMO2ET","volume_name":"BSM Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"PXM","language_name":"Mixe Quetzaltepec","language_english":"Mixe Quetzaltepec","language_iso":"pxm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Quetzaltepec Mixe","language_family_code":"PXM","language_family_name":"Mixe Quetzaltepec","language_family_english":"Mixe Quetzaltepec","language_family_iso":"pxm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2016-09-07 19:12:43","created_on":"2016-02-12 15:03:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"PXMBSMO2ET\/PXMBSMO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"QEJLLBN1DA","fcbh_id":"QEJLLBN1DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QEJ","language_name":"Quechua, Huamalies Dos de Mayo","language_english":"Quechua, Huamalies Dos de Mayo","language_iso":"qvh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huamal\u00edes-Dos de Mayo Hu\u00e1nuco Quechua","language_family_code":"QEJ","language_family_name":"Quechua, Huamalies Dos de Mayo","language_family_english":"Quechua, Huamalies Dos de Mayo","language_family_iso":"qvh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LLB","version_name":"La Liga Biblica","version_english":"La Liga Biblica","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-13 18:24:53","created_on":"2016-12-13 17:25:46","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"QEJLLBN1DA\/QEJLLBN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"QEJLLBN1ET","fcbh_id":"QEJLLBN1ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QEJ","language_name":"Quechua, Huamalies Dos de Mayo","language_english":"Quechua, Huamalies Dos de Mayo","language_iso":"qvh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huamal\u00edes-Dos de Mayo Hu\u00e1nuco Quechua","language_family_code":"QEJ","language_family_name":"Quechua, Huamalies Dos de Mayo","language_family_english":"Quechua, Huamalies Dos de Mayo","language_family_iso":"qvh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LLB","version_name":"La Liga Biblica","version_english":"La Liga Biblica","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-13 17:47:23","created_on":"2016-12-13 17:23:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QEJLLBN1ET\/QEJLLBN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"QEJLLBN2DA","fcbh_id":"QEJLLBN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QEJ","language_name":"Quechua, Huamalies Dos de Mayo","language_english":"Quechua, Huamalies Dos de Mayo","language_iso":"qvh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huamal\u00edes-Dos de Mayo Hu\u00e1nuco Quechua","language_family_code":"QEJ","language_family_name":"Quechua, Huamalies Dos de Mayo","language_family_english":"Quechua, Huamalies Dos de Mayo","language_family_iso":"qvh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LLB","version_name":"La Liga Biblica","version_english":"La Liga Biblica","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 20:28:10","created_on":"2010-09-14 17:00:39","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2QEJLLB","audio_zip_path":"QEJLLBN2DA\/QEJLLBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QEJLLBN2ET","fcbh_id":"QEJLLBN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QEJ","language_name":"Quechua, Huamalies Dos de Mayo","language_english":"Quechua, Huamalies Dos de Mayo","language_iso":"qvh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huamal\u00edes-Dos de Mayo Hu\u00e1nuco Quechua","language_family_code":"QEJ","language_family_name":"Quechua, Huamalies Dos de Mayo","language_family_english":"Quechua, Huamalies Dos de Mayo","language_family_iso":"qvh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LLB","version_name":"La Liga Biblica","version_english":"La Liga Biblica","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-13 17:19:31","created_on":"2011-07-08 19:36:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QEJLLBN2ET\/QEJLLBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QU1LSMN2DA","fcbh_id":"QU1LSMN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QU1","language_name":"K'iche', Cun\u00e9n","language_english":"Kiche, Cunen","language_iso":"quc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"K'iche'","language_family_code":"QU1","language_family_name":"K'iche', Cun\u00e9n","language_family_english":"Kiche, Cunen","language_family_iso":"quc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LSM","version_name":"Larry Edward Marhenke & Sonya Louise Eidsvoog de Marhenke, y sus descendientes","version_english":"Larry Edward Marhenke and Sonya Louise Eidsvoog de Marhenke and their descendents","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-29 21:52:23","created_on":"2013-09-23 18:33:08","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"QU1LSMN2DA\/QU1LSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QU1LSMN2ET","fcbh_id":"QU1LSMN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QU1","language_name":"K'iche', Cun\u00e9n","language_english":"Kiche, Cunen","language_iso":"quc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"K'iche'","language_family_code":"QU1","language_family_name":"K'iche', Cun\u00e9n","language_family_english":"Kiche, Cunen","language_family_iso":"quc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LSM","version_name":"Larry Edward Marhenke & Sonya Louise Eidsvoog de Marhenke, y sus descendientes","version_english":"Larry Edward Marhenke and Sonya Louise Eidsvoog de Marhenke and their descendents","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:25","created_on":"2013-09-23 18:30:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QU1LSMN2ET\/QU1LSMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QUBPBSN2DA","fcbh_id":"QUBPBSN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUB","language_name":"Quechua, Huallaga","language_english":"Quechua, Huallaga","language_iso":"qub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huallaga Hu\u00e1nuco Quechua","language_family_code":"QUB","language_family_name":"Quechua, Huallaga","language_family_english":"Quechua, Huallaga","language_family_iso":"qub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 20:27:04","created_on":"2011-05-31 17:45:21","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"QUBPBSN2DA\/QUBPBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QUBPBSN2ET","fcbh_id":"QUBPBSN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUB","language_name":"Quechua, Huallaga","language_english":"Quechua, Huallaga","language_iso":"qub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huallaga Hu\u00e1nuco Quechua","language_family_code":"QUB","language_family_name":"Quechua, Huallaga","language_family_english":"Quechua, Huallaga","language_family_iso":"qub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-01 19:54:35","created_on":"2011-08-22 20:11:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QUBPBSN2ET\/QUBPBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QUCBLAN2DA","fcbh_id":"QUCBLAN2DA","volume_name":"2011 Catholic Version (Biblia Latinoamericana)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUC","language_name":"Quiche","language_english":"Quiche","language_iso":"quc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"K'iche'","language_family_code":"QUC","language_family_name":"Quiche","language_family_english":"Quiche","language_family_iso":"quc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BLA","version_name":"La Biblia de las Americas","version_english":"La Biblia de las Americas","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:30","created_on":"2013-01-07 19:31:14","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"QUCBLAN2DA\/QUCBLAN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QUCBLAN2ET","fcbh_id":"QUCBLAN2ET","volume_name":"2011 Catholic Version (Biblia Latinoamericana)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUC","language_name":"Quiche","language_english":"Quiche","language_iso":"quc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"K'iche'","language_family_code":"QUC","language_family_name":"Quiche","language_family_english":"Quiche","language_family_iso":"quc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BLA","version_name":"La Biblia de las Americas","version_english":"La Biblia de las Americas","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:13","created_on":"2013-07-11 21:24:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QUCBLAN2ET\/QUCBLAN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QUFLLBN2DA","fcbh_id":"QUFLLBN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUF","language_name":"Quechua, Lambayeque","language_english":"Quechua, Lambayeque","language_iso":"quf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lambayeque Quechua","language_family_code":"QUF","language_family_name":"Quechua, Lambayeque","language_family_english":"Quechua, Lambayeque","language_family_iso":"quf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LLB","version_name":"La Liga Biblica","version_english":"La Liga Biblica","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-11 23:17:01","created_on":"2010-09-14 17:00:39","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2QUFLLB","audio_zip_path":"QUFLLBN2DA\/QUFLLBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QUFLLBN2ET","fcbh_id":"QUFLLBN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUF","language_name":"Quechua, Lambayeque","language_english":"Quechua, Lambayeque","language_iso":"quf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lambayeque Quechua","language_family_code":"QUF","language_family_name":"Quechua, Lambayeque","language_family_english":"Quechua, Lambayeque","language_family_iso":"quf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LLB","version_name":"La Liga Biblica","version_english":"La Liga Biblica","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 16:49:56","created_on":"2010-11-25 20:49:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2QUFLLB","audio_zip_path":"QUFLLBN2ET\/QUFLLBN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QUGSBEN2DA","fcbh_id":"QUGSBEN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"QUG","language_name":"Quichua, Chimborazo","language_english":"Quichua, Chimborazo","language_iso":"qug","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chimborazo Highland Quichua","language_family_code":"QUG","language_family_name":"Quichua, Chimborazo","language_family_english":"Quichua, Chimborazo","language_family_iso":"qug","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:45","created_on":"2010-09-14 17:00:40","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2QUGSBE","audio_zip_path":"QUGSBEN2DA\/QUGSBEN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"QUHRBVN1DA","fcbh_id":"QUHRBVN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUH","language_name":"Quechua, South Bolivian","language_english":"Quechua, South Bolivian","language_iso":"quh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"South Bolivian Quechua","language_family_code":"QUH","language_family_name":"Quechua, South Bolivian","language_family_english":"Quechua, South Bolivian","language_family_iso":"quh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RBV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 15:59:03","created_on":"2015-12-29 22:26:17","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"QUHRBVN1DA\/QUHRBVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QUHRBVN2DA","fcbh_id":"QUHRBVN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUH","language_name":"Quechua, South Bolivian","language_english":"Quechua, South Bolivian","language_iso":"quh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"South Bolivian Quechua","language_family_code":"QUH","language_family_name":"Quechua, South Bolivian","language_family_english":"Quechua, South Bolivian","language_family_iso":"quh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RBV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 15:59:03","created_on":"2015-12-29 22:22:24","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"QUHRBVN2DA\/QUHRBVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QUHSBBN2DA","fcbh_id":"QUHSBBN2DA","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUH","language_name":"Quechua, South Bolivian","language_english":"Quechua, South Bolivian","language_iso":"quh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"South Bolivian Quechua","language_family_code":"QUH","language_family_name":"Quechua, South Bolivian","language_family_english":"Quechua, South Bolivian","language_family_iso":"quh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 20:41:44","created_on":"2010-09-14 17:00:40","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2QUHSBB","audio_zip_path":"QUHSBBN2DA\/QUHSBBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QUJPMCN2DA","fcbh_id":"QUJPMCN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUJ","language_name":"Quiche, Joyabaj","language_english":"Quiche, Joyabaj","language_iso":"quc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"K'iche'","language_family_code":"QUJ","language_family_name":"Quiche, Joyabaj","language_family_english":"Quiche, Joyabaj","language_family_iso":"quc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PMC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-11 23:10:08","created_on":"2010-09-14 17:00:59","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2QUJPMC","audio_zip_path":"QUJPMCN2DA\/QUJPMCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QUJPMCN2ET","fcbh_id":"QUJPMCN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUJ","language_name":"Quiche, Joyabaj","language_english":"Quiche, Joyabaj","language_iso":"quc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"K'iche'","language_family_code":"QUJ","language_family_name":"Quiche, Joyabaj","language_family_english":"Quiche, Joyabaj","language_family_iso":"quc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PMC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-18 01:46:00","created_on":"2010-11-25 20:49:44","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2QUJPMC","audio_zip_path":"QUJPMCN2ET\/QUJPMCN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QULSBBN2DA","fcbh_id":"QULSBBN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUL","language_name":"Quechua, North Bolivian","language_english":"Quechua, North Bolivian","language_iso":"qul","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"North Bolivian Quechua","language_family_code":"QUL","language_family_name":"Quechua, North Bolivian","language_family_english":"Quechua, North Bolivian","language_family_iso":"qul","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 20:33:29","created_on":"2010-09-14 17:00:59","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2QULSBB","audio_zip_path":"QULSBBN2DA\/QULSBBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QULSBBN2ET","fcbh_id":"QULSBBN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUL","language_name":"Quechua, North Bolivian","language_english":"Quechua, North Bolivian","language_iso":"qul","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"North Bolivian Quechua","language_family_code":"QUL","language_family_name":"Quechua, North Bolivian","language_family_english":"Quechua, North Bolivian","language_family_iso":"qul","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:11","created_on":"2011-05-10 00:12:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QULSBBN2ET\/QULSBBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QUPTBLN2DA","fcbh_id":"QUPTBLN2DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUP","language_name":"Quechua, Southern Pastaza","language_english":"Quechua, Southern Pastaza","language_iso":"qup","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Pastaza Quechua","language_family_code":"QUP","language_family_name":"Quechua, Southern Pastaza","language_family_english":"Quechua, Southern Pastaza","language_family_iso":"qup","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:32","created_on":"2011-05-27 16:32:56","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"QUPTBLN2DA\/QUPTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QUPTBLN2ET","fcbh_id":"QUPTBLN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUP","language_name":"Quechua, Southern Pastaza","language_english":"Quechua, Southern Pastaza","language_iso":"qup","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Pastaza Quechua","language_family_code":"QUP","language_family_name":"Quechua, Southern Pastaza","language_family_english":"Quechua, Southern Pastaza","language_family_iso":"qup","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:23:02","created_on":"2012-02-21 22:23:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QUPTBLN2ET\/QUPTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QUTIBSN2DA","fcbh_id":"QUTIBSN2DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUT","language_name":"Quiche, West Central","language_english":"Quiche, West Central","language_iso":"quc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"K'iche'","language_family_code":"QUT","language_family_name":"Quiche, West Central","language_family_english":"Quiche, West Central","language_family_iso":"quc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 20:48:11","created_on":"2010-09-14 17:00:40","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2QUTIBS","audio_zip_path":"QUTIBSN2DA\/QUTIBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QUTIBSN2ET","fcbh_id":"QUTIBSN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUT","language_name":"Quiche, West Central","language_english":"Quiche, West Central","language_iso":"quc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"K'iche'","language_family_code":"QUT","language_family_name":"Quiche, West Central","language_family_english":"Quiche, West Central","language_family_iso":"quc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:23:03","created_on":"2011-10-12 18:14:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QUTIBSN2ET\/QUTIBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QUWHLEN2DA","fcbh_id":"QUWHLEN2DA","volume_name":"1982 Hermanos Libres del Ecuador (Revision)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUW","language_name":"Quichua, Tena Lowland","language_english":"Quichua, Tena Lowland","language_iso":"quw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tena Lowland Quichua","language_family_code":"QUW","language_family_name":"Quichua, Tena Lowland","language_family_english":"Quichua, Tena Lowland","language_family_iso":"quw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"HLE","version_name":"Hermanos Libres del Ecuador","version_english":" Hermanos Libres del Ecuador","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:33","created_on":"2012-05-15 21:03:49","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"QUWHLEN2DA\/QUWHLEN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QUWHLEN2ET","fcbh_id":"QUWHLEN2ET","volume_name":"1982 Hermanos Libres del Ecuador (Revision)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUW","language_name":"Quichua, Tena Lowland","language_english":"Quichua, Tena Lowland","language_iso":"quw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tena Lowland Quichua","language_family_code":"QUW","language_family_name":"Quichua, Tena Lowland","language_family_english":"Quichua, Tena Lowland","language_family_iso":"quw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"HLE","version_name":"Hermanos Libres del Ecuador","version_english":" Hermanos Libres del Ecuador","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2012-12-12 18:34:02","created_on":"2012-10-01 21:51:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QUWHLEN2ET\/QUWHLEN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QUYPBSN1DA","fcbh_id":"QUYPBSN1DA","volume_name":"1987 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUY","language_name":"Quechua, Ayacucho","language_english":"Quechua, Ayacucho","language_iso":"quy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ayacucho Quechua","language_family_code":"QUY","language_family_name":"Quechua, Ayacucho","language_family_english":"Quechua, Ayacucho","language_family_iso":"quy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:33","created_on":"2010-09-14 16:59:50","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1QUYPBS","audio_zip_path":"QUYPBSN1DA\/QUYPBSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QUYPBSN1ET","fcbh_id":"QUYPBSN1ET","volume_name":"1987 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUY","language_name":"Quechua, Ayacucho","language_english":"Quechua, Ayacucho","language_iso":"quy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ayacucho Quechua","language_family_code":"QUY","language_family_name":"Quechua, Ayacucho","language_family_english":"Quechua, Ayacucho","language_family_iso":"quy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 17:34:28","created_on":"2012-02-21 21:40:37","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QUYPBSN1ET\/QUYPBSN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QUYPBSO1DA","fcbh_id":"QUYPBSO1DA","volume_name":"1987 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"QUY","language_name":"Quechua, Ayacucho","language_english":"Quechua, Ayacucho","language_iso":"quy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ayacucho Quechua","language_family_code":"QUY","language_family_name":"Quechua, Ayacucho","language_family_english":"Quechua, Ayacucho","language_family_iso":"quy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBS","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:27","created_on":"2015-04-06 21:38:22","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"QUYPBSO1DA\/QUYPBSO1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QUYSBUN2DA","fcbh_id":"QUYSBUN2DA","volume_name":"1987 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUY","language_name":"Quechua, Ayacucho","language_english":"Quechua, Ayacucho","language_iso":"quy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ayacucho Quechua","language_family_code":"QUY","language_family_name":"Quechua, Ayacucho","language_family_english":"Quechua, Ayacucho","language_family_iso":"quy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 20:17:48","created_on":"2010-09-14 17:00:40","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2QUYSBU","audio_zip_path":"QUYSBUN2DA\/QUYSBUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QUYSBUN2ET","fcbh_id":"QUYSBUN2ET","volume_name":"1987 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUY","language_name":"Quechua, Ayacucho","language_english":"Quechua, Ayacucho","language_iso":"quy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ayacucho Quechua","language_family_code":"QUY","language_family_name":"Quechua, Ayacucho","language_family_english":"Quechua, Ayacucho","language_family_iso":"quy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:22","created_on":"2012-01-13 22:50:47","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QUYSBUN2ET\/QUYSBUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QUZBIVN2ET","fcbh_id":"QUZBIVN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"QUZ","language_name":"Quechua, Cuzco","language_english":"Quechua, Cuzco","language_iso":"quz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cusco Quechua","language_family_code":"QUZ","language_family_name":"Quechua, Cuzco","language_family_english":"Quechua, Cuzco","language_family_iso":"quz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-13 18:57:21","created_on":"2015-07-10 22:35:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QUZBIVN2ET\/QUZBIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QUZPBSN2DA","fcbh_id":"QUZPBSN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUZ","language_name":"Quechua, Cuzco","language_english":"Quechua, Cuzco","language_iso":"quz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cusco Quechua","language_family_code":"QUZ","language_family_name":"Quechua, Cuzco","language_family_english":"Quechua, Cuzco","language_family_iso":"quz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:34","created_on":"2010-09-14 17:00:40","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2QUZPBS","audio_zip_path":"QUZPBSN2DA\/QUZPBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QUZPBSN2ET","fcbh_id":"QUZPBSN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUZ","language_name":"Quechua, Cuzco","language_english":"Quechua, Cuzco","language_iso":"quz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cusco Quechua","language_family_code":"QUZ","language_family_name":"Quechua, Cuzco","language_family_english":"Quechua, Cuzco","language_family_iso":"quz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 20:24:25","created_on":"2011-08-04 16:17:10","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QUZPBSN2ET\/QUZPBSN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QUZPBSO2ET","fcbh_id":"QUZPBSO2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QUZ","language_name":"Quechua, Cuzco","language_english":"Quechua, Cuzco","language_iso":"quz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cusco Quechua","language_family_code":"QUZ","language_family_name":"Quechua, Cuzco","language_family_english":"Quechua, Cuzco","language_family_iso":"quz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBS","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:16","created_on":"2011-08-16 19:16:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QUZPBSO2ET\/QUZPBSO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QVAWBTN1DA","fcbh_id":"QVAWBTN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVA","language_name":"Quechua Ambo-Pasco","language_english":"Quechua Ambo-Pasco","language_iso":"qva","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ambo-Pasco Quechua","language_family_code":"QVA","language_family_name":"Quechua Ambo-Pasco","language_family_english":"Quechua Ambo-Pasco","language_family_iso":"qva","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:31:12","created_on":"2017-04-11 18:23:52","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"QVAWBTN1DA\/QVAWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QVAWBTN2DA","fcbh_id":"QVAWBTN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVA","language_name":"Quechua Ambo-Pasco","language_english":"Quechua Ambo-Pasco","language_iso":"qva","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ambo-Pasco Quechua","language_family_code":"QVA","language_family_name":"Quechua Ambo-Pasco","language_family_english":"Quechua Ambo-Pasco","language_family_iso":"qva","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:31:13","created_on":"2017-04-11 17:27:13","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"QVAWBTN2DA\/QVAWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QVCTBLN2DA","fcbh_id":"QVCTBLN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVC","language_name":"Quechua, Cajamarca","language_english":"Quechua, Cajamarca","language_iso":"qvc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cajamarca Quechua","language_family_code":"QVC","language_family_name":"Quechua, Cajamarca","language_family_english":"Quechua, Cajamarca","language_family_iso":"qvc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:34","created_on":"2011-06-03 20:56:05","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"QVCTBLN2DA\/QVCTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QVCTBLN2ET","fcbh_id":"QVCTBLN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVC","language_name":"Quechua, Cajamarca","language_english":"Quechua, Cajamarca","language_iso":"qvc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cajamarca Quechua","language_family_code":"QVC","language_family_name":"Quechua, Cajamarca","language_family_english":"Quechua, Cajamarca","language_family_iso":"qvc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:20","created_on":"2011-05-30 17:29:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QVCTBLN2ET\/QVCTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QVETBLN2DA","fcbh_id":"QVETBLN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVE","language_name":"Quechua, Eastern Apur\u00edmac","language_english":"Quechua, Eastern Apurimac","language_iso":"qve","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Apur\u00edmac Quechua","language_family_code":"QVE","language_family_name":"Quechua, Eastern Apur\u00edmac","language_family_english":"Quechua, Eastern Apurimac","language_family_iso":"qve","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-23 17:35:39","created_on":"2012-12-21 20:53:10","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"QVETBLN2DA\/QVETBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QVETBLN2ET","fcbh_id":"QVETBLN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVE","language_name":"Quechua, Eastern Apur\u00edmac","language_english":"Quechua, Eastern Apurimac","language_iso":"qve","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Apur\u00edmac Quechua","language_family_code":"QVE","language_family_name":"Quechua, Eastern Apur\u00edmac","language_family_english":"Quechua, Eastern Apurimac","language_family_iso":"qve","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:24","created_on":"2012-07-23 20:31:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QVETBLN2ET\/QVETBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QVMTBLN2DA","fcbh_id":"QVMTBLN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVM","language_name":"Quechua, Margos","language_english":"Quechua, Margos","language_iso":"qvm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Margos-Yarowilca-Lauricocha Quechua","language_family_code":"QVM","language_family_name":"Quechua, Margos","language_family_english":"Quechua, Margos","language_family_iso":"qvm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-04-23 17:57:31","created_on":"2011-10-25 15:34:57","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"QVMTBLN2DA\/QVMTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QVMTBLN2ET","fcbh_id":"QVMTBLN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVM","language_name":"Quechua, Margos","language_english":"Quechua, Margos","language_iso":"qvm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Margos-Yarowilca-Lauricocha Quechua","language_family_code":"QVM","language_family_name":"Quechua, Margos","language_family_english":"Quechua, Margos","language_family_iso":"qvm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:05:55","created_on":"2011-09-22 19:39:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QVMTBLN2ET\/QVMTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QVNLLBN2DA","fcbh_id":"QVNLLBN2DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVN","language_name":"Quechua, North Junin","language_english":"Quechua, North Junin","language_iso":"qvn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"North Jun\u00edn Quechua","language_family_code":"QVN","language_family_name":"Quechua, North Junin","language_family_english":"Quechua, North Junin","language_family_iso":"qvn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LLB","version_name":"La Liga Biblica","version_english":"La Liga Biblica","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:35","created_on":"2012-09-07 20:03:35","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"QVNLLBN2DA\/QVNLLBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QVNLLBN2ET","fcbh_id":"QVNLLBN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVN","language_name":"Quechua, North Junin","language_english":"Quechua, North Junin","language_iso":"qvn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"North Jun\u00edn Quechua","language_family_code":"QVN","language_family_name":"Quechua, North Junin","language_family_english":"Quechua, North Junin","language_family_iso":"qvn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LLB","version_name":"La Liga Biblica","version_english":"La Liga Biblica","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:19","created_on":"2012-03-23 21:05:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QVNLLBN2ET\/QVNLLBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QVOVAAN2DA","fcbh_id":"QVOVAAN2DA","volume_name":"Colegio Don Bosco","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVO","language_name":"Quichua, Napo Lowland","language_english":"Quichua, Napo Lowland","language_iso":"qvo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Napo Lowland Quechua","language_family_code":"QVO","language_family_name":"Quichua, Napo Lowland","language_family_english":"Quichua, Napo Lowland","language_family_iso":"qvo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"VAA","version_name":"Vicariato Apostolico de Aguarico","version_english":"Vicariato Apostolico de Aguarico","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:36","created_on":"2012-06-01 18:38:01","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"QVOVAAN2DA\/QVOVAAN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QVOVAAN2ET","fcbh_id":"QVOVAAN2ET","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVO","language_name":"Quichua, Napo Lowland","language_english":"Quichua, Napo Lowland","language_iso":"qvo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Napo Lowland Quechua","language_family_code":"QVO","language_family_name":"Quichua, Napo Lowland","language_family_english":"Quichua, Napo Lowland","language_family_iso":"qvo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"VAA","version_name":"Vicariato Apostolico de Aguarico","version_english":"Vicariato Apostolico de Aguarico","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:21","created_on":"2012-10-01 21:45:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QVOVAAN2ET\/QVOVAAN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QVSTBLN2DA","fcbh_id":"QVSTBLN2DA","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVS","language_name":"Quechua, San Martin","language_english":"Quechua, San Martin","language_iso":"qvs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Mart\u00edn Quechua","language_family_code":"QVS","language_family_name":"Quechua, San Martin","language_family_english":"Quechua, San Martin","language_family_iso":"qvs","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 20:38:11","created_on":"2010-09-14 17:01:11","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2QVSTBL","audio_zip_path":"QVSTBLN2DA\/QVSTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QVSTBLN2ET","fcbh_id":"QVSTBLN2ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVS","language_name":"Quechua, San Martin","language_english":"Quechua, San Martin","language_iso":"qvs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Mart\u00edn Quechua","language_family_code":"QVS","language_family_name":"Quechua, San Martin","language_family_english":"Quechua, San Martin","language_family_iso":"qvs","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:51","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2QVSTBL","audio_zip_path":"QVSTBLN2ET\/QVSTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QVWTBLN2DA","fcbh_id":"QVWTBLN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVW","language_name":"Quechua, Huaylla Wanca","language_english":"Quechua, Huaylla Wanca","language_iso":"qvw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huaylla Wanca Quechua","language_family_code":"QVW","language_family_name":"Quechua, Huaylla Wanca","language_family_english":"Quechua, Huaylla Wanca","language_family_iso":"qvw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-11 22:48:50","created_on":"2010-09-14 17:00:40","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2QVWTBL","audio_zip_path":"QVWTBLN2DA\/QVWTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QVWTBLN2ET","fcbh_id":"QVWTBLN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVW","language_name":"Quechua, Huaylla Wanca","language_english":"Quechua, Huaylla Wanca","language_iso":"qvw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huaylla Wanca Quechua","language_family_code":"QVW","language_family_name":"Quechua, Huaylla Wanca","language_family_english":"Quechua, Huaylla Wanca","language_family_iso":"qvw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:19","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2QVWTBL","audio_zip_path":"QVWTBLN2ET\/QVWTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QVZWBTN2DA","fcbh_id":"QVZWBTN2DA","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVZ","language_name":"Quichua, Northern Pastaza","language_english":"Quichua, Northern Pastaza","language_iso":"qvz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Pastaza Quichua","language_family_code":"QVZ","language_family_name":"Quichua, Northern Pastaza","language_family_english":"Quichua, Northern Pastaza","language_family_iso":"qvz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:38","created_on":"2012-07-13 20:16:35","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"QVZWBTN2DA\/QVZWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QVZWBTN2ET","fcbh_id":"QVZWBTN2ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QVZ","language_name":"Quichua, Northern Pastaza","language_english":"Quichua, Northern Pastaza","language_iso":"qvz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Pastaza Quichua","language_family_code":"QVZ","language_family_name":"Quichua, Northern Pastaza","language_family_english":"Quichua, Northern Pastaza","language_family_iso":"qvz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:51","created_on":"2011-05-30 17:45:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QVZWBTN2ET\/QVZWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QWHLLBN2DA","fcbh_id":"QWHLLBN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QWH","language_name":"Quechua, Huaylas","language_english":"Quechua, Huaylas","language_iso":"qwh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huaylas Ancash Quechua","language_family_code":"QWH","language_family_name":"Quechua, Huaylas","language_family_english":"Quechua, Huaylas","language_family_iso":"qwh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LLB","version_name":"La Liga Biblica","version_english":"La Liga Biblica","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-11 22:47:06","created_on":"2010-09-14 17:00:41","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2QWHLLB","audio_zip_path":"QWHLLBN2DA\/QWHLLBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QWHLLBN2ET","fcbh_id":"QWHLLBN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QWH","language_name":"Quechua, Huaylas","language_english":"Quechua, Huaylas","language_iso":"qwh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huaylas Ancash Quechua","language_family_code":"QWH","language_family_name":"Quechua, Huaylas","language_family_english":"Quechua, Huaylas","language_family_iso":"qwh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LLB","version_name":"La Liga Biblica","version_english":"La Liga Biblica","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:20","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2QWHLLB","audio_zip_path":"QWHLLBN2ET\/QWHLLBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QXHWBTN2DA","fcbh_id":"QXHWBTN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QXH","language_name":"Quechua, Panao Huanuco","language_english":"Quechua, Panao Huanuco","language_iso":"qxh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Panao Hu\u00e1nuco Quechua","language_family_code":"QXH","language_family_name":"Quechua, Panao Huanuco","language_family_english":"Quechua, Panao Huanuco","language_family_iso":"qxh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-04-23 18:34:14","created_on":"2010-09-14 17:01:36","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2QXHWBT","audio_zip_path":"QXHWBTN2DA\/QXHWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QXHWBTN2ET","fcbh_id":"QXHWBTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QXH","language_name":"Quechua, Panao Huanuco","language_english":"Quechua, Panao Huanuco","language_iso":"qxh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Panao Hu\u00e1nuco Quechua","language_family_code":"QXH","language_family_name":"Quechua, Panao Huanuco","language_family_english":"Quechua, Panao Huanuco","language_family_iso":"qxh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:15","created_on":"2010-11-25 20:50:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2QXHWBT","audio_zip_path":"QXHWBTN2ET\/QXHWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QXLQSVN1DA","fcbh_id":"QXLQSVN1DA","volume_name":"Salasaka Highland Quichua Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QXL","language_name":"Quichua, Salasaka Highland","language_english":"Quichua, Salasaka Highland","language_iso":"qxl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Salasaca Highland Quichua","language_family_code":"QXL","language_family_name":"Quichua, Salasaka Highland","language_family_english":"Quichua, Salasaka Highland","language_family_iso":"qxl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"QSV","version_name":"QSV","version_english":"QSV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:12","created_on":"2016-10-21 19:37:05","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"QXLQSVN1DA\/QXLQSVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"QXLQSVN2DA","fcbh_id":"QXLQSVN2DA","volume_name":"Salasaka Highland Quichua Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QXL","language_name":"Quichua, Salasaka Highland","language_english":"Quichua, Salasaka Highland","language_iso":"qxl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Salasaca Highland Quichua","language_family_code":"QXL","language_family_name":"Quichua, Salasaka Highland","language_family_english":"Quichua, Salasaka Highland","language_family_iso":"qxl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"QSV","version_name":"QSV","version_english":"QSV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:12","created_on":"2016-10-21 19:29:59","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"QXLQSVN2DA\/QXLQSVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QXNWBTN2DA","fcbh_id":"QXNWBTN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QXN","language_name":"Quechua, Northern Conchucos Ancash","language_english":"Quechua, Northern Conchucos Ancash","language_iso":"qxn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Conchucos Ancash Quechua","language_family_code":"QXN","language_family_name":"Quechua, Northern Conchucos Ancash","language_family_english":"Quechua, Northern Conchucos Ancash","language_family_iso":"qxn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-11 22:53:49","created_on":"2010-09-14 17:00:59","right_to_left":"false","num_art":"4","num_sample_audio":"2","sku":"N2QXNWBT","audio_zip_path":"QXNWBTN2DA\/QXNWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QXNWBTN2ET","fcbh_id":"QXNWBTN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QXN","language_name":"Quechua, Northern Conchucos Ancash","language_english":"Quechua, Northern Conchucos Ancash","language_iso":"qxn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Conchucos Ancash Quechua","language_family_code":"QXN","language_family_name":"Quechua, Northern Conchucos Ancash","language_family_english":"Quechua, Northern Conchucos Ancash","language_family_iso":"qxn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 20:35:46","created_on":"2011-05-18 16:38:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"QXNWBTN2ET\/QXNWBTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QXOLLBN2DA","fcbh_id":"QXOLLBN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QXO","language_name":"Quechua, Southern Conchucos Ancash","language_english":"Quechua, Southern Conchucos Ancash","language_iso":"qxo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Conchucos Ancash Quechua","language_family_code":"QXO","language_family_name":"Quechua, Southern Conchucos Ancash","language_family_english":"Quechua, Southern Conchucos Ancash","language_family_iso":"qxo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LLB","version_name":"La Liga Biblica","version_english":"La Liga Biblica","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-11 21:24:12","created_on":"2010-09-14 17:00:41","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2QXOLLB","audio_zip_path":"QXOLLBN2DA\/QXOLLBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"QXOLLBN2ET","fcbh_id":"QXOLLBN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QXO","language_name":"Quechua, Southern Conchucos Ancash","language_english":"Quechua, Southern Conchucos Ancash","language_iso":"qxo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Conchucos Ancash Quechua","language_family_code":"QXO","language_family_name":"Quechua, Southern Conchucos Ancash","language_family_english":"Quechua, Southern Conchucos Ancash","language_family_iso":"qxo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LLB","version_name":"La Liga Biblica","version_english":"La Liga Biblica","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:22","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2QXOLLB","audio_zip_path":"QXOLLBN2ET\/QXOLLBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"QXRBSEN1DA","fcbh_id":"QXRBSEN1DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QXR","language_name":"Quichua Ca\u00f1ar Highland","language_english":"Quichua Canar Highland","language_iso":"qxr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ca\u00f1ar Highland Quichua","language_family_code":"QXR","language_family_name":"Quichua Ca\u00f1ar Highland","language_family_english":"Quichua Canar Highland","language_family_iso":"qxr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-15 16:39:30","created_on":"2016-12-22 20:39:09","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"QXRBSEN1DA\/QXRBSEN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"QXRBSEN2DA","fcbh_id":"QXRBSEN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"QXR","language_name":"Quichua Ca\u00f1ar Highland","language_english":"Quichua Canar Highland","language_iso":"qxr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ca\u00f1ar Highland Quichua","language_family_code":"QXR","language_family_name":"Quichua Ca\u00f1ar Highland","language_family_english":"Quichua Canar Highland","language_family_iso":"qxr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-15 16:39:31","created_on":"2016-12-22 20:40:32","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"QXRBSEN2DA\/QXRBSEN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RAITBLN2ET","fcbh_id":"RAITBLN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RAI","language_name":"Ramoaaina","language_english":"Ramoaaina","language_iso":"rai","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ramoaaina","language_family_code":"RAI","language_family_name":"Ramoaaina","language_family_english":"Ramoaaina","language_family_iso":"rai","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 20:53:23","created_on":"2014-06-25 14:54:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RAITBLN2ET\/RAITBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"RAPWBTN1DA","fcbh_id":"RAPWBTN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"RAP","language_name":"Rapa Nui","language_english":"Rapa Nui","language_iso":"rap","language_iso_2B":"rap","language_iso_2T":"rap","language_iso_1":"","language_iso_name":"Rapanui","language_family_code":"RAP","language_family_name":"Rapa Nui","language_family_english":"Rapa Nui","language_family_iso":"rap","language_family_iso_2B":"rap","language_family_iso_2T":"rap","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-29 21:20:51","created_on":"2018-10-29 20:48:45","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"RAPWBTN1DA\/RAPWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download"],"resolution":[]},{"dam_id":"RAPWBTN1ET","fcbh_id":"RAPWBTN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"RAP","language_name":"Rapa Nui","language_english":"Rapa Nui","language_iso":"rap","language_iso_2B":"rap","language_iso_2T":"rap","language_iso_1":"","language_iso_name":"Rapanui","language_family_code":"RAP","language_family_name":"Rapa Nui","language_family_english":"Rapa Nui","language_family_iso":"rap","language_family_iso_2B":"rap","language_family_iso_2T":"rap","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-29 21:21:25","created_on":"2018-10-29 21:12:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RAPWBTN1ET\/RAPWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"RAVNLPN2DA","fcbh_id":"RAVNLPN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RAV","language_name":"Sampang","language_english":"Sampang","language_iso":"rav","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sampang","language_family_code":"RAV","language_family_name":"Sampang","language_family_english":"Sampang","language_family_iso":"rav","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NLP","version_name":"Nepali National Language Preservation Institute","version_english":"Nepali National Language Preservation Institute","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:41","created_on":"2011-09-30 16:48:27","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"RAVNLPN2DA\/RAVNLPN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RAVNLPN2ET","fcbh_id":"RAVNLPN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RAV","language_name":"Sampang","language_english":"Sampang","language_iso":"rav","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sampang","language_family_code":"RAV","language_family_name":"Sampang","language_family_english":"Sampang","language_family_iso":"rav","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NLP","version_name":"Nepali National Language Preservation Institute","version_english":"Nepali National Language Preservation Institute","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-05-22 17:06:37","created_on":"2014-05-22 15:54:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RAVNLPN2ET\/RAVNLPN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"RAWRBCN1DA","fcbh_id":"RAWRBCN1DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RAW","language_name":"Rvwang","language_english":"Rawang","language_iso":"raw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rawang","language_family_code":"RAW","language_family_name":"Rvwang","language_family_english":"Rawang","language_family_iso":"raw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RBC","version_name":"Rawang Bible Committee","version_english":"Rawang Bible Committee","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-18 16:29:50","created_on":"2016-09-02 19:10:38","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"RAWRBCN1DA\/RAWRBCN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RAWRBCN1ET","fcbh_id":"RAWRBCN1ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RAW","language_name":"Rvwang","language_english":"Rawang","language_iso":"raw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rawang","language_family_code":"RAW","language_family_name":"Rvwang","language_family_english":"Rawang","language_family_iso":"raw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RBC","version_name":"Rawang Bible Committee","version_english":"Rawang Bible Committee","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-18 16:29:15","created_on":"2016-10-18 16:17:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RAWRBCN1ET\/RAWRBCN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"REJLAIN1DA","fcbh_id":"REJLAIN1DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"REJ","language_name":"Rejang","language_english":"Rejang","language_iso":"rej","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rejang","language_family_code":"REJ","language_family_name":"Rejang","language_family_english":"Rejang","language_family_iso":"rej","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-05 14:03:35","created_on":"2017-05-05 13:50:12","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"REJLAIN1DA\/REJLAIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"REJLAIN1ET","fcbh_id":"REJLAIN1ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"REJ","language_name":"Rejang","language_english":"Rejang","language_iso":"rej","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rejang","language_family_code":"REJ","language_family_name":"Rejang","language_family_english":"Rejang","language_family_iso":"rej","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-18 01:59:35","created_on":"2017-05-04 17:38:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"REJLAIN1ET\/REJLAIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"REJLAIN2DA","fcbh_id":"REJLAIN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"REJ","language_name":"Rejang","language_english":"Rejang","language_iso":"rej","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rejang","language_family_code":"REJ","language_family_name":"Rejang","language_family_english":"Rejang","language_family_iso":"rej","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-05 14:03:36","created_on":"2017-05-05 13:48:09","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"REJLAIN2DA\/REJLAIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"REJLAIN2ET","fcbh_id":"REJLAIN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"REJ","language_name":"Rejang","language_english":"Rejang","language_iso":"rej","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rejang","language_family_code":"REJ","language_family_name":"Rejang","language_family_english":"Rejang","language_family_iso":"rej","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-18 01:59:18","created_on":"2014-10-21 18:10:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"REJLAIN2ET\/REJLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","mp3_cd"],"resolution":[]},{"dam_id":"RELBTLN1DA","fcbh_id":"RELBTLN1DA","volume_name":"2018 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"REL","language_name":"Rendille","language_english":"Rendille","language_iso":"rel","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rendille","language_family_code":"REL","language_family_name":"Rendille","language_family_english":"Rendille","language_family_iso":"rel","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-30 17:31:20","created_on":"2018-07-30 15:53:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RELBTLN1DA\/RELBTLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download"],"resolution":[]},{"dam_id":"RELBTLN1ET","fcbh_id":"RELBTLN1ET","volume_name":"2018 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"REL","language_name":"Rendille","language_english":"Rendille","language_iso":"rel","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rendille","language_family_code":"REL","language_family_name":"Rendille","language_family_english":"Rendille","language_family_iso":"rel","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-30 17:45:38","created_on":"2018-07-30 17:34:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RELBTLN1ET\/RELBTLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"RELBTLN2DA","fcbh_id":"RELBTLN2DA","volume_name":"2018 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"REL","language_name":"Rendille","language_english":"Rendille","language_iso":"rel","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rendille","language_family_code":"REL","language_family_name":"Rendille","language_family_english":"Rendille","language_family_iso":"rel","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-30 16:41:37","created_on":"2018-07-30 15:15:03","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"RELBTLN2DA\/RELBTLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download"],"resolution":[]},{"dam_id":"RELBTLN2ET","fcbh_id":"RELBTLN2ET","volume_name":"2018 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"REL","language_name":"Rendille","language_english":"Rendille","language_iso":"rel","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rendille","language_family_code":"REL","language_family_name":"Rendille","language_family_english":"Rendille","language_family_iso":"rel","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-30 17:31:59","created_on":"2018-07-30 16:45:10","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RELBTLN2ET\/RELBTLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"RIMBSTN2DA","fcbh_id":"RIMBSTN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RIM","language_name":"Kinyaturu","language_english":"Kinyaturu","language_iso":"rim","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nyaturu","language_family_code":"RIM","language_family_name":"Kinyaturu","language_family_english":"Kinyaturu","language_family_iso":"rim","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-29 16:26:47","created_on":"2013-01-22 16:47:09","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"RIMBSTN2DA\/RIMBSTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"RIMBSTN2ET","fcbh_id":"RIMBSTN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RIM","language_name":"Kinyaturu","language_english":"Kinyaturu","language_iso":"rim","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nyaturu","language_family_code":"RIM","language_family_name":"Kinyaturu","language_family_english":"Kinyaturu","language_family_iso":"rim","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:21","created_on":"2011-10-10 16:37:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RIMBSTN2ET\/RIMBSTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"RJSMTSN1DA","fcbh_id":"RJSMTSN1DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RJS","language_name":"Rajbanshi","language_english":"Rajbanshi","language_iso":"rjs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rajbanshi","language_family_code":"RJS","language_family_name":"Rajbanshi","language_family_english":"Rajbanshi","language_family_iso":"rjs","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MTS","version_name":"Mother Tongue Translators Society","version_english":"Mother Tongue Translators Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-21 19:44:01","created_on":"2018-05-18 20:29:05","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"RJSMTSN1DA\/RJSMTSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RJSMTSN1ET","fcbh_id":"RJSMTSN1ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RJS","language_name":"Rajbanshi","language_english":"Rajbanshi","language_iso":"rjs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rajbanshi","language_family_code":"RJS","language_family_name":"Rajbanshi","language_family_english":"Rajbanshi","language_family_iso":"rjs","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MTS","version_name":"Mother Tongue Translators Society","version_english":"Mother Tongue Translators Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-13 15:36:42","created_on":"2018-08-10 15:58:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RJSMTSN1ET\/RJSMTSN1ET.zip","font":{"id":"18","name":"Kalimati","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Kalimati","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"RJSMTSN2DA","fcbh_id":"RJSMTSN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RJS","language_name":"Rajbanshi","language_english":"Rajbanshi","language_iso":"rjs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rajbanshi","language_family_code":"RJS","language_family_name":"Rajbanshi","language_family_english":"Rajbanshi","language_family_iso":"rjs","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MTS","version_name":"Mother Tongue Translators Society","version_english":"Mother Tongue Translators Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-21 19:45:07","created_on":"2018-05-18 20:23:31","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"RJSMTSN2DA\/RJSMTSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RJSMTSN2ET","fcbh_id":"RJSMTSN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RJS","language_name":"Rajbanshi","language_english":"Rajbanshi","language_iso":"rjs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rajbanshi","language_family_code":"RJS","language_family_name":"Rajbanshi","language_family_english":"Rajbanshi","language_family_iso":"rjs","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MTS","version_name":"Mother Tongue Translators Society","version_english":"Mother Tongue Translators Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-10 16:06:24","created_on":"2018-08-10 15:54:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RJSMTSN2ET\/RJSMTSN2ET.zip","font":{"id":"18","name":"Kalimati","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Kalimati","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"RMCWFWN1DA","fcbh_id":"RMCWFWN1DA","volume_name":"The Word for the World Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RMC","language_name":"Romani, East Slovak","language_english":"Romani, Carpathian","language_iso":"rmc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Carpathian Romani","language_family_code":"RMC","language_family_name":"Romani, East Slovak","language_family_english":"Romani, Carpathian","language_family_iso":"rmc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WFW","version_name":"World for World","version_english":"World for World","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-03 20:26:17","created_on":"2017-05-03 19:57:27","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"RMCWFWN1DA\/RMCWFWN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RMCWFWN1ET","fcbh_id":"RMCWFWN1ET","volume_name":"The Word for the World Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RMC","language_name":"Romani, East Slovak","language_english":"Romani, Carpathian","language_iso":"rmc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Carpathian Romani","language_family_code":"RMC","language_family_name":"Romani, East Slovak","language_family_english":"Romani, Carpathian","language_family_iso":"rmc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WFW","version_name":"World for World","version_english":"World for World","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-03 20:26:17","created_on":"2017-05-03 19:54:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RMCWFWN1ET\/RMCWFWN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"RMCWFWN2DA","fcbh_id":"RMCWFWN2DA","volume_name":"The Word for the World Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RMC","language_name":"Romani, East Slovak","language_english":"Romani, Carpathian","language_iso":"rmc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Carpathian Romani","language_family_code":"RMC","language_family_name":"Romani, East Slovak","language_family_english":"Romani, Carpathian","language_family_iso":"rmc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WFW","version_name":"World for World","version_english":"World for World","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-03 19:56:03","created_on":"2014-09-05 16:30:24","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"RMCWFWN2DA\/RMCWFWN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"RMCWFWN2ET","fcbh_id":"RMCWFWN2ET","volume_name":"The Word for the World Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RMC","language_name":"Romani, East Slovak","language_english":"Romani, Carpathian","language_iso":"rmc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Carpathian Romani","language_family_code":"RMC","language_family_name":"Romani, East Slovak","language_family_english":"Romani, Carpathian","language_family_iso":"rmc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WFW","version_name":"World for World","version_english":"World for World","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-03 19:56:40","created_on":"2014-06-25 19:55:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RMCWFWN2ET\/RMCWFWN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"RMLNVSN2DA","fcbh_id":"ROMNVSN2DA","volume_name":"GBV Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"RML","language_name":"Romani, Baltic","language_english":"Romani, Baltic","language_iso":"rml","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Baltic Romani","language_family_code":"RML","language_family_name":"Romani, Baltic","language_family_english":"Romani, Baltic","language_family_iso":"rml","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:45","created_on":"2010-09-14 17:00:41","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2ROMNVS","audio_zip_path":"RMLNVSN2DA\/RMLNVSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RMORAMN2DA","fcbh_id":"RMORAMN2DA","volume_name":"Romanes Arbeit Marburg","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RMO","language_name":"Romani, Sinti","language_english":"Romani, Sinti","language_iso":"rmo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sinte Romani","language_family_code":"RMO","language_family_name":"Romani, Sinti","language_family_english":"Romani, Sinti","language_family_iso":"rmo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RAM","version_name":"Romanes Arbeit Marburg","version_english":"Romanes Arbeit Marburg","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:42","created_on":"2012-10-15 16:09:38","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"RMORAMN2DA\/RMORAMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"RMORAMN2ET","fcbh_id":"RMORAMN2ET","volume_name":"Romanes Arbeit Marburg","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RMO","language_name":"Romani, Sinti","language_english":"Romani, Sinti","language_iso":"rmo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sinte Romani","language_family_code":"RMO","language_family_name":"Romani, Sinti","language_family_english":"Romani, Sinti","language_family_iso":"rmo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RAM","version_name":"Romanes Arbeit Marburg","version_english":"Romanes Arbeit Marburg","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:14","created_on":"2012-10-01 22:07:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RMORAMN2ET\/RMORAMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"RMYCVVN2DA","fcbh_id":"RMYCVVN2DA","volume_name":"Chilean Vlax Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RMY","language_name":"Romane, Vlax","language_english":"Romane, Vlax","language_iso":"rmy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Vlax Romani","language_family_code":"RMY","language_family_name":"Romane, Vlax","language_family_english":"Romane, Vlax","language_family_iso":"rmy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CVV","version_name":"Vlax","version_english":"Vlax","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-11 21:19:56","created_on":"2010-09-14 17:01:11","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2RMYCVV","audio_zip_path":"RMYCVVN2DA\/RMYCVVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"RMYCVVN2ET","fcbh_id":"RMYCVVN2ET","volume_name":"Chilean Vlax Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RMY","language_name":"Romane, Vlax","language_english":"Romane, Vlax","language_iso":"rmy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Vlax Romani","language_family_code":"RMY","language_family_name":"Romane, Vlax","language_family_english":"Romane, Vlax","language_family_iso":"rmy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CVV","version_name":"Vlax","version_english":"Vlax","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 20:59:51","created_on":"2010-11-25 20:49:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2RMYCVV","audio_zip_path":"RMYCVVN2ET\/RMYCVVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"RNGSBMN2DA","fcbh_id":"RNGSBMN2DA","volume_name":"Bible Society Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"RNG","language_name":"Ronga","language_english":"Xhirhonga","language_iso":"rng","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ronga","language_family_code":"RNG","language_family_name":"Ronga","language_family_english":"Xhirhonga","language_family_iso":"rng","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:49","created_on":"2010-09-14 17:00:41","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2RNGSBM","audio_zip_path":"RNGSBMN2DA\/RNGSBMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RNLBIVN2ET","fcbh_id":"RNLBIVN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RNL","language_name":"Ranglong","language_english":"Ranglong","language_iso":"rnl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ranglong","language_family_code":"RNL","language_family_name":"Ranglong","language_family_english":"Ranglong","language_family_iso":"rnl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-11 21:45:04","created_on":"2016-02-11 21:40:47","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RNLBIVN2ET\/RNLBIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ROLTBLN1DA","fcbh_id":"ROLTBLN1DA","volume_name":"TBL Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ROL","language_name":"Romblomanon","language_english":"Romblomanon","language_iso":"rol","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Romblomanon","language_family_code":"ROL","language_family_name":"Romblomanon","language_family_english":"Romblomanon","language_family_iso":"rol","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-29 22:13:57","created_on":"2017-12-20 18:49:02","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ROLTBLN1DA\/ROLTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ROLTBLN2DA","fcbh_id":"ROLTBLN2DA","volume_name":"TBL Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ROL","language_name":"Romblomanon","language_english":"Romblomanon","language_iso":"rol","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Romblomanon","language_family_code":"ROL","language_family_name":"Romblomanon","language_family_english":"Romblomanon","language_family_iso":"rol","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-29 22:14:21","created_on":"2017-12-20 18:44:40","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ROLTBLN2DA\/ROLTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RONBSRN2DA","fcbh_id":"RUMBSRN2DA","volume_name":"2009 Interconfessional Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RON","language_name":"Rom\u00e2n","language_english":"Romanian","language_iso":"ron","language_iso_2B":"rum","language_iso_2T":"ron","language_iso_1":"ro","language_iso_name":"Romanian","language_family_code":"RON","language_family_name":"Rom\u00e2n","language_family_english":"Romanian","language_family_iso":"ron","language_family_iso_2B":"rum","language_family_iso_2T":"ron","language_family_iso_1":"ro","version_code":"BSR","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-04-28 19:04:18","created_on":"2010-09-14 17:01:12","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2RUMBSR","audio_zip_path":"RONBSRN2DA\/RONBSRN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RONBSRN2ET","fcbh_id":"RONBSRN2ET","volume_name":"2009 Interconfessional Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RON","language_name":"Rom\u00e2n","language_english":"Romanian","language_iso":"ron","language_iso_2B":"rum","language_iso_2T":"ron","language_iso_1":"ro","language_iso_name":"Romanian","language_family_code":"RON","language_family_name":"Rom\u00e2n","language_family_english":"Romanian","language_family_iso":"ron","language_family_iso_2B":"rum","language_family_iso_2T":"ron","language_family_iso_1":"ro","version_code":"BSR","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 21:55:14","created_on":"2014-04-28 19:06:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RONBSRN2ET\/RONBSRN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"RONDCVO1DA","fcbh_id":"RONDCVO1DA","volume_name":"Dumitru Cornilescu Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RON","language_name":"Rom\u00e2n","language_english":"Romanian","language_iso":"ron","language_iso_2B":"rum","language_iso_2T":"ron","language_iso_1":"ro","language_iso_name":"Romanian","language_family_code":"RON","language_family_name":"Rom\u00e2n","language_family_english":"Romanian","language_family_iso":"ron","language_family_iso_2B":"rum","language_family_iso_2T":"ron","language_family_iso_1":"ro","version_code":"DCV","version_name":"Dumitru Cornilescu Version","version_english":"Dumitru Cornilescu Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-03-13 15:59:04","created_on":"2017-10-11 19:14:25","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"RONDCVO1DA\/RONDCVO1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"RONWTCN2ET","fcbh_id":"RONWTCN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RON","language_name":"Rom\u00e2n","language_english":"Romanian","language_iso":"ron","language_iso_2B":"rum","language_iso_2T":"ron","language_iso_1":"ro","language_iso_name":"Romanian","language_family_code":"RON","language_family_name":"Rom\u00e2n","language_family_english":"Romanian","language_family_iso":"ron","language_family_iso_2B":"rum","language_family_iso_2T":"ron","language_family_iso_1":"ro","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-07 16:48:53","created_on":"2017-09-07 16:42:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RONWTCN2ET\/RONWTCN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ROOWBTN2ET","fcbh_id":"ROOWBTN2ET","volume_name":"1982 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ROO","language_name":"Rotokas","language_english":"Rotokas","language_iso":"roo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rotokas","language_family_code":"ROO","language_family_name":"Rotokas","language_family_english":"Rotokas","language_family_iso":"roo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:48","created_on":"2014-06-25 14:56:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ROOWBTN2ET\/ROOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"RROPNGN1DA","fcbh_id":"RROPNGN1DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RRO","language_name":"Waima","language_english":"Waima","language_iso":"rro","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Waima","language_family_code":"RRO","language_family_name":"Waima","language_family_english":"Waima","language_family_iso":"rro","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-20 17:55:53","created_on":"2016-12-20 16:56:23","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"RROPNGN1DA\/RROPNGN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RROPNGN1ET","fcbh_id":"RROPNGN1ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RRO","language_name":"Waima","language_english":"Waima","language_iso":"rro","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Waima","language_family_code":"RRO","language_family_name":"Waima","language_family_english":"Waima","language_family_iso":"rro","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-03 18:15:08","created_on":"2016-12-20 16:50:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RROPNGN1ET\/RROPNGN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"RROPNGN2DA","fcbh_id":"RROPNGN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RRO","language_name":"Waima","language_english":"Waima","language_iso":"rro","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Waima","language_family_code":"RRO","language_family_name":"Waima","language_family_english":"Waima","language_family_iso":"rro","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-12-20 18:39:05","created_on":"2016-12-20 16:54:34","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"RROPNGN2DA\/RROPNGN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RROPNGN2ET","fcbh_id":"RROPNGN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RRO","language_name":"Waima","language_english":"Waima","language_iso":"rro","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Waima","language_family_code":"RRO","language_family_name":"Waima","language_family_english":"Waima","language_family_iso":"rro","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-03 18:15:09","created_on":"2014-05-08 18:58:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RROPNGN2ET\/RROPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"RUAICGN2DA","fcbh_id":"RUAICGN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"RUA","language_name":"Kinyarwanda","language_english":"Kinyarwanda","language_iso":"kin","language_iso_2B":"kin","language_iso_2T":"kin","language_iso_1":"rw","language_iso_name":"Kinyarwanda","language_family_code":"RUA","language_family_name":"Kinyarwanda","language_family_english":"Kinyarwanda","language_family_iso":"kin","language_family_iso_2B":"kin","language_family_iso_2T":"kin","language_family_iso_1":"rw","version_code":"ICG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:39","created_on":"2010-09-14 17:00:41","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2RUAICG","audio_zip_path":"RUAICGN2DA\/RUAICGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RUBWBTN1DA","fcbh_id":"RUBWBTN1DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RUB","language_name":"Gungu","language_english":"Lugungu","language_iso":"rub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gungu","language_family_code":"RUB","language_family_name":"Gungu","language_family_english":"Lugungu","language_family_iso":"rub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-07 18:25:33","created_on":"2018-06-07 15:51:38","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"RUBWBTN1DA\/RUBWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RUBWBTN2DA","fcbh_id":"RUBWBTN2DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RUB","language_name":"Gungu","language_english":"Lugungu","language_iso":"rub","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gungu","language_family_code":"RUB","language_family_name":"Gungu","language_family_english":"Lugungu","language_family_iso":"rub","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-07 18:25:55","created_on":"2018-06-07 15:50:13","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"RUBWBTN2DA\/RUBWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RUFPBTN1ET","fcbh_id":"RUFPBTN1ET","volume_name":"PBT Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"RUF","language_name":"Lughuru","language_english":"Luguru","language_iso":"ruf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Luguru","language_family_code":"RUF","language_family_name":"Lughuru","language_family_english":"Luguru","language_family_iso":"ruf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-04-19 15:55:32","created_on":"2018-04-19 15:50:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RUFPBTN1ET\/RUFPBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"RUGWBTN1DA","fcbh_id":"RUGWBTN1DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RUG","language_name":"Roviana","language_english":"Roviana","language_iso":"rug","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Roviana","language_family_code":"RUG","language_family_name":"Roviana","language_family_english":"Roviana","language_family_iso":"rug","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-18 18:59:48","created_on":"2016-11-17 21:00:00","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"RUGWBTN1DA\/RUGWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RUGWBTN1ET","fcbh_id":"RUGWBTN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RUG","language_name":"Roviana","language_english":"Roviana","language_iso":"rug","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Roviana","language_family_code":"RUG","language_family_name":"Roviana","language_family_english":"Roviana","language_family_iso":"rug","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:50:15","created_on":"2017-04-12 22:20:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RUGWBTN1ET\/RUGWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"RUGWBTN2DA","fcbh_id":"RUGWBTN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RUG","language_name":"Roviana","language_english":"Roviana","language_iso":"rug","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Roviana","language_family_code":"RUG","language_family_name":"Roviana","language_family_english":"Roviana","language_family_iso":"rug","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-18 18:48:31","created_on":"2016-11-17 20:49:12","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"RUGWBTN2DA\/RUGWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RUGWBTN2ET","fcbh_id":"RUGWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RUG","language_name":"Roviana","language_english":"Roviana","language_iso":"rug","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Roviana","language_family_code":"RUG","language_family_name":"Roviana","language_family_english":"Roviana","language_family_iso":"rug","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:50:15","created_on":"2017-04-12 22:18:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RUGWBTN2ET\/RUGWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"RUGWBTO1ET","fcbh_id":"RUGWBTO1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RUG","language_name":"Roviana","language_english":"Roviana","language_iso":"rug","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Roviana","language_family_code":"RUG","language_family_name":"Roviana","language_family_english":"Roviana","language_family_iso":"rug","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:50:15","created_on":"2017-04-12 22:23:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RUGWBTO1ET\/RUGWBTO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"RUGWBTO2ET","fcbh_id":"RUGWBTO2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RUG","language_name":"Roviana","language_english":"Roviana","language_iso":"rug","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Roviana","language_family_code":"RUG","language_family_name":"Roviana","language_family_english":"Roviana","language_family_iso":"rug","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-05-16 17:50:15","created_on":"2017-04-12 22:22:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RUGWBTO2ET\/RUGWBTO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"RUNBSBN2DA","fcbh_id":"RUNBSBN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RUN","language_name":"Kirundi","language_english":"Kirundi","language_iso":"run","language_iso_2B":"run","language_iso_2T":"run","language_iso_1":"rn","language_iso_name":"Rundi","language_family_code":"RUN","language_family_name":"Kirundi","language_family_english":"Kirundi","language_family_iso":"run","language_family_iso_2B":"run","language_family_iso_2T":"run","language_family_iso_1":"rn","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:43","created_on":"2010-09-14 17:00:42","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2RUNBSB","audio_zip_path":"RUNBSBN2DA\/RUNBSBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"RUNBSBN2ET","fcbh_id":"RUNBSBN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RUN","language_name":"Kirundi","language_english":"Kirundi","language_iso":"run","language_iso_2B":"run","language_iso_2T":"run","language_iso_1":"rn","language_iso_name":"Rundi","language_family_code":"RUN","language_family_name":"Kirundi","language_family_english":"Kirundi","language_family_iso":"run","language_family_iso_2B":"run","language_family_iso_2T":"run","language_family_iso_1":"rn","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:20","created_on":"2013-07-19 18:08:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RUNBSBN2ET\/RUNBSBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"RUSBSRN2DA","fcbh_id":"RUSBSRN2DA","volume_name":"Holy Synod","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"RUS","language_name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","language_english":"Russian","language_iso":"rus","language_iso_2B":"rus","language_iso_2T":"rus","language_iso_1":"ru","language_iso_name":"Russian","language_family_code":"RUS","language_family_name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","language_family_english":"Russian","language_family_iso":"rus","language_family_iso_2B":"rus","language_family_iso_2T":"rus","language_family_iso_1":"ru","version_code":"BSR","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"\u041d\u043e\u0432\u044b\u0439 \u0417\u0430\u0432\u0435\u0442","updated_on":"2015-10-27 21:19:18","created_on":"2010-09-14 17:00:42","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2RUSBSR","audio_zip_path":"RUSBSRN2DA\/RUSBSRN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RUSS76N2DA","fcbh_id":"RUSS76N2DA","volume_name":"1876 Synodal Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RUS","language_name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","language_english":"Russian","language_iso":"rus","language_iso_2B":"rus","language_iso_2T":"rus","language_iso_1":"ru","language_iso_name":"Russian","language_family_code":"RUS","language_family_name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","language_family_english":"Russian","language_family_iso":"rus","language_family_iso_2B":"rus","language_family_iso_2T":"rus","language_family_iso_1":"ru","version_code":"S76","version_name":"1876 Synodal Version Bible","version_english":"1876 Synodal Version Bible","collection_code":"NT","rich":"0","collection_name":"\u041d\u043e\u0432\u044b\u0439 \u0417\u0430\u0432\u0435\u0442","updated_on":"2017-06-26 19:49:59","created_on":"2017-06-22 20:16:21","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"RUSS76N2DA\/RUSS76N2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RUSS76N2ET","fcbh_id":"RUSS76N2ET","volume_name":"1876 Synodal Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RUS","language_name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","language_english":"Russian","language_iso":"rus","language_iso_2B":"rus","language_iso_2T":"rus","language_iso_1":"ru","language_iso_name":"Russian","language_family_code":"RUS","language_family_name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","language_family_english":"Russian","language_family_iso":"rus","language_family_iso_2B":"rus","language_family_iso_2T":"rus","language_family_iso_1":"ru","version_code":"S76","version_name":"1876 Synodal Version Bible","version_english":"1876 Synodal Version Bible","collection_code":"NT","rich":"0","collection_name":"\u041d\u043e\u0432\u044b\u0439 \u0417\u0430\u0432\u0435\u0442","updated_on":"2017-09-05 22:05:48","created_on":"2010-09-14 17:01:35","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RUSS76N2ET\/RUSS76N2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"RUSS76O2DA","fcbh_id":"RUSS76O2DA","volume_name":"1876 Synodal Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RUS","language_name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","language_english":"Russian","language_iso":"rus","language_iso_2B":"rus","language_iso_2T":"rus","language_iso_1":"ru","language_iso_name":"Russian","language_family_code":"RUS","language_family_name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","language_family_english":"Russian","language_family_iso":"rus","language_family_iso_2B":"rus","language_family_iso_2T":"rus","language_family_iso_1":"ru","version_code":"S76","version_name":"1876 Synodal Version Bible","version_english":"1876 Synodal Version Bible","collection_code":"OT","rich":"0","collection_name":"\u0412\u0435\u0442\u0445\u0438\u0439 \u0417\u0430\u0432\u0435\u0442","updated_on":"2017-06-26 19:50:33","created_on":"2017-06-22 21:31:45","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"RUSS76O2DA\/RUSS76O2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"RUSS76O2ET","fcbh_id":"RUSS76O2ET","volume_name":"1876 Synodal Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RUS","language_name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","language_english":"Russian","language_iso":"rus","language_iso_2B":"rus","language_iso_2T":"rus","language_iso_1":"ru","language_iso_name":"Russian","language_family_code":"RUS","language_family_name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","language_family_english":"Russian","language_family_iso":"rus","language_family_iso_2B":"rus","language_family_iso_2T":"rus","language_family_iso_1":"ru","version_code":"S76","version_name":"1876 Synodal Version Bible","version_english":"1876 Synodal Version Bible","collection_code":"OT","rich":"0","collection_name":"\u0412\u0435\u0442\u0445\u0438\u0439 \u0417\u0430\u0432\u0435\u0442","updated_on":"2017-09-05 22:06:03","created_on":"2010-09-14 17:01:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RUSS76O2ET\/RUSS76O2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"RUSWTCN2ET","fcbh_id":"RUSWTCN2ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RUS","language_name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","language_english":"Russian","language_iso":"rus","language_iso_2B":"rus","language_iso_2T":"rus","language_iso_1":"ru","language_iso_name":"Russian","language_family_code":"RUS","language_family_name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","language_family_english":"Russian","language_family_iso":"rus","language_family_iso_2B":"rus","language_family_iso_2T":"rus","language_family_iso_1":"ru","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"\u041d\u043e\u0432\u044b\u0439 \u0417\u0430\u0432\u0435\u0442","updated_on":"2017-09-07 18:57:03","created_on":"2017-09-07 17:18:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RUSWTCN2ET\/RUSWTCN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"RUSWTCO2ET","fcbh_id":"RUSWTCO2ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RUS","language_name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","language_english":"Russian","language_iso":"rus","language_iso_2B":"rus","language_iso_2T":"rus","language_iso_1":"ru","language_iso_name":"Russian","language_family_code":"RUS","language_family_name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","language_family_english":"Russian","language_family_iso":"rus","language_family_iso_2B":"rus","language_family_iso_2T":"rus","language_family_iso_1":"ru","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"OT","rich":"0","collection_name":"\u0412\u0435\u0442\u0445\u0438\u0439 \u0417\u0430\u0432\u0435\u0442","updated_on":"2017-09-07 18:57:03","created_on":"2017-09-07 16:57:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RUSWTCO2ET\/RUSWTCO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"RWOWBTN2ET","fcbh_id":"RWOWBTN2ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"RWO","language_name":"Rawa","language_english":"Rawa","language_iso":"rwo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rawa","language_family_code":"RWO","language_family_name":"Rawa","language_family_english":"Rawa","language_family_iso":"rwo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-29 17:11:11","created_on":"2015-11-30 16:42:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"RWOWBTN2ET\/RWOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SABWBTN2DA","fcbh_id":"SABWBTN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SAB","language_name":"Buglere","language_english":"Buglere","language_iso":"sab","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Buglere","language_family_code":"SAB","language_family_name":"Buglere","language_family_english":"Buglere","language_family_iso":"sab","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:44","created_on":"2012-06-04 17:43:44","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"SABWBTN2DA\/SABWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SABWBTN2ET","fcbh_id":"SABWBTN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SAB","language_name":"Buglere","language_english":"Buglere","language_iso":"sab","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Buglere","language_family_code":"SAB","language_family_name":"Buglere","language_family_english":"Buglere","language_family_iso":"sab","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:18","created_on":"2011-07-08 18:18:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SABWBTN2ET\/SABWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SAGCARN2DA","fcbh_id":"SAGCARN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SAG","language_name":"Sango","language_english":"Sango","language_iso":"sag","language_iso_2B":"sag","language_iso_2T":"sag","language_iso_1":"sg","language_iso_name":"Sango","language_family_code":"SAG","language_family_name":"Sango","language_family_english":"Sango","language_family_iso":"sag","language_family_iso_2B":"sag","language_family_iso_2T":"sag","language_family_iso_1":"sg","version_code":"CAR","version_name":"Central African Republic","version_english":"Central African Republic","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:44","created_on":"2011-05-09 22:45:42","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"SAGCARN2DA\/SAGCARN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SAGCARN2ET","fcbh_id":"SAGCARN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SAG","language_name":"Sango","language_english":"Sango","language_iso":"sag","language_iso_2B":"sag","language_iso_2T":"sag","language_iso_1":"sg","language_iso_name":"Sango","language_family_code":"SAG","language_family_name":"Sango","language_family_english":"Sango","language_family_iso":"sag","language_family_iso_2B":"sag","language_family_iso_2T":"sag","language_family_iso_1":"sg","version_code":"CAR","version_name":"Central African Republic","version_english":"Central African Republic","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:12","created_on":"2013-08-05 16:46:44","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SAGCARN2ET\/SAGCARN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SAJLAIN1DA","fcbh_id":"SAJLAIN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SAJ","language_name":"Sahu","language_english":"Sahu","language_iso":"saj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sahu","language_family_code":"SAJ","language_family_name":"Sahu","language_family_english":"Sahu","language_family_iso":"saj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-04-11 16:30:56","created_on":"2016-04-11 15:44:07","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SAJLAIN1DA\/SAJLAIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SAJLAIN1ET","fcbh_id":"SAJLAIN1ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SAJ","language_name":"Sahu","language_english":"Sahu","language_iso":"saj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sahu","language_family_code":"SAJ","language_family_name":"Sahu","language_family_english":"Sahu","language_family_iso":"saj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-18 01:55:47","created_on":"2016-04-25 20:53:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SAJLAIN1ET\/SAJLAIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SASLAIN2DA","fcbh_id":"SASLAIN2DA","volume_name":"Today's Sasak Version, 2007","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SAS","language_name":"Sasak","language_english":"Sasak","language_iso":"sas","language_iso_2B":"sas","language_iso_2T":"sas","language_iso_1":"","language_iso_name":"Sasak","language_family_code":"SAS","language_family_name":"Sasak","language_family_english":"Sasak","language_family_iso":"sas","language_family_iso_2B":"sas","language_family_iso_2T":"sas","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-02-24 20:03:58","created_on":"2014-02-24 19:28:31","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"SASLAIN2DA\/SASLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SASLAIN2ET","fcbh_id":"SASLAIN2ET","volume_name":"Today's Sasak Version, 2007","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SAS","language_name":"Sasak","language_english":"Sasak","language_iso":"sas","language_iso_2B":"sas","language_iso_2T":"sas","language_iso_1":"","language_iso_name":"Sasak","language_family_code":"SAS","language_family_name":"Sasak","language_family_english":"Sasak","language_family_iso":"sas","language_family_iso_2B":"sas","language_family_iso_2T":"sas","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:19","created_on":"2011-08-12 19:59:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SASLAIN2ET\/SASLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SBANVVN2DA","fcbh_id":"SBANVVN2DA","volume_name":"Nouvelle Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SBA","language_name":"Ngambay","language_english":"Ngambay","language_iso":"sba","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ngambay","language_family_code":"SBA","language_family_name":"Ngambay","language_family_english":"Ngambay","language_family_iso":"sba","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:45","created_on":"2010-09-14 17:00:43","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2SBANVV","audio_zip_path":"SBANVVN2DA\/SBANVVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SBANVVN2ET","fcbh_id":"SBANVVN2ET","volume_name":"Nouvelle Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SBA","language_name":"Ngambay","language_english":"Ngambay","language_iso":"sba","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ngambay","language_family_code":"SBA","language_family_name":"Ngambay","language_family_english":"Ngambay","language_family_iso":"sba","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:52","created_on":"2014-11-20 23:02:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SBANVVN2ET\/SBANVVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SBDABBN2DA","fcbh_id":"SBDABBN2DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SBD","language_name":"San","language_english":"San","language_iso":"sbd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Samo","language_family_code":"SBD","language_family_name":"San","language_family_english":"San","language_family_iso":"sbd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 21:42:13","created_on":"2010-09-14 17:01:24","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2SBDABB","audio_zip_path":"SBDABBN2DA\/SBDABBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SBDABBN2ET","fcbh_id":"SBDABBN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SBD","language_name":"San","language_english":"San","language_iso":"sbd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southern Samo","language_family_code":"SBD","language_family_name":"San","language_family_english":"San","language_family_iso":"sbd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:21","created_on":"2011-08-12 19:06:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SBDABBN2ET\/SBDABBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SBLTBLN2DA","fcbh_id":"SBLTBLN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SBL","language_name":"Sambal, Botolan","language_english":"Sambal, Botolan","language_iso":"sbl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Botolan Sambal","language_family_code":"SBL","language_family_name":"Sambal, Botolan","language_family_english":"Sambal, Botolan","language_family_iso":"sbl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-03-03 20:39:02","created_on":"2014-03-03 19:27:40","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"SBLTBLN2DA\/SBLTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","developer","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SBLTBLN2ET","fcbh_id":"SBLTBLN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SBL","language_name":"Sambal, Botolan","language_english":"Sambal, Botolan","language_iso":"sbl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Botolan Sambal","language_family_code":"SBL","language_family_name":"Sambal, Botolan","language_family_english":"Sambal, Botolan","language_family_iso":"sbl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:17","created_on":"2012-03-02 21:44:15","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SBLTBLN2ET\/SBLTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SCKIEMN1DA","fcbh_id":"SCKIEMN1DA","volume_name":"IEM Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SCK","language_name":"Sadani","language_english":"Sadri","language_iso":"sck","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sadri","language_family_code":"SCK","language_family_name":"Sadani","language_family_english":"Sadri","language_family_iso":"sck","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IEM","version_name":"IEM","version_english":"IEM","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-26 19:18:40","created_on":"2018-02-26 18:57:50","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SCKIEMN1DA\/SCKIEMN1DA.zip","font":{"id":"45","name":"Doulos SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SCKIEMN1ET","fcbh_id":"SCKIEMN1ET","volume_name":"IEM Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SCK","language_name":"Sadani","language_english":"Sadri","language_iso":"sck","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sadri","language_family_code":"SCK","language_family_name":"Sadani","language_family_english":"Sadri","language_family_iso":"sck","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IEM","version_name":"IEM","version_english":"IEM","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-26 19:19:06","created_on":"2018-02-26 18:44:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SCKIEMN1ET\/SCKIEMN1ET.zip","font":{"id":"45","name":"Doulos SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SCKIEMN2DA","fcbh_id":"SCKIEMN2DA","volume_name":"IEM Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SCK","language_name":"Sadani","language_english":"Sadri","language_iso":"sck","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sadri","language_family_code":"SCK","language_family_name":"Sadani","language_family_english":"Sadri","language_family_iso":"sck","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IEM","version_name":"IEM","version_english":"IEM","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-26 19:19:22","created_on":"2018-02-26 18:47:11","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SCKIEMN2DA\/SCKIEMN2DA.zip","font":{"id":"45","name":"Doulos SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SCKIEMN2ET","fcbh_id":"SCKIEMN2ET","volume_name":"IEM Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SCK","language_name":"Sadani","language_english":"Sadri","language_iso":"sck","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sadri","language_family_code":"SCK","language_family_name":"Sadani","language_family_english":"Sadri","language_family_iso":"sck","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IEM","version_name":"IEM","version_english":"IEM","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-08 19:00:42","created_on":"2017-09-01 21:07:15","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SCKIEMN2ET\/SCKIEMN2ET.zip","font":{"id":"45","name":"Doulos SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SDALAIN1DA","fcbh_id":"SDALAIN1DA","volume_name":"Formal Toraja Version, 2009","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SDA","language_name":"Toraja","language_english":"Toraja","language_iso":"sda","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Toraja-Sa'dan","language_family_code":"SDA","language_family_name":"Toraja","language_family_english":"Toraja","language_family_iso":"sda","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-28 21:37:27","created_on":"2016-06-23 19:54:55","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SDALAIN1DA\/SDALAIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SDALAIN1ET","fcbh_id":"SDALAIN1ET","volume_name":"Formal Toraja Version, 2009","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SDA","language_name":"Toraja","language_english":"Toraja","language_iso":"sda","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Toraja-Sa'dan","language_family_code":"SDA","language_family_name":"Toraja","language_family_english":"Toraja","language_family_iso":"sda","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-28 21:38:58","created_on":"2016-06-24 15:17:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SDALAIN1ET\/SDALAIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SDALAIN2DA","fcbh_id":"SDALAIN2DA","volume_name":"Formal Toraja Version, 2009","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SDA","language_name":"Toraja","language_english":"Toraja","language_iso":"sda","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Toraja-Sa'dan","language_family_code":"SDA","language_family_name":"Toraja","language_family_english":"Toraja","language_family_iso":"sda","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-28 21:38:38","created_on":"2016-06-23 20:02:29","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SDALAIN2DA\/SDALAIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SDALAIN2ET","fcbh_id":"SDALAIN2ET","volume_name":"Formal Toraja Version, 2009","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SDA","language_name":"Toraja","language_english":"Toraja","language_iso":"sda","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Toraja-Sa'dan","language_family_code":"SDA","language_family_name":"Toraja","language_family_english":"Toraja","language_family_iso":"sda","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-28 21:37:49","created_on":"2011-11-30 19:02:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SDALAIN2ET\/SDALAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SDMGFAN1DA","fcbh_id":"SDMGFAN1DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SDM","language_name":"Semandang","language_english":"Gerai","language_iso":"sdm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Semandang","language_family_code":"SDM","language_family_name":"Semandang","language_family_english":"Gerai","language_family_iso":"sdm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"GFA","version_name":"Gereja Firman Allah","version_english":"Gereja Firman Allah","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-12-06 22:30:20","created_on":"2018-06-08 16:09:17","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SDMGFAN1DA\/SDMGFAN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"SDMGFAN1ET","fcbh_id":"SDMGFAN1ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SDM","language_name":"Semandang","language_english":"Gerai","language_iso":"sdm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Semandang","language_family_code":"SDM","language_family_name":"Semandang","language_family_english":"Gerai","language_family_iso":"sdm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"GFA","version_name":"Gereja Firman Allah","version_english":"Gereja Firman Allah","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-12-06 22:30:20","created_on":"2018-09-14 16:41:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SDMGFAN1ET\/SDMGFAN1ET.zip","font":{"id":"7","name":"Arial","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Arial","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SDMGFAN2DA","fcbh_id":"SDMGFAN2DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SDM","language_name":"Semandang","language_english":"Gerai","language_iso":"sdm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Semandang","language_family_code":"SDM","language_family_name":"Semandang","language_family_english":"Gerai","language_family_iso":"sdm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"GFA","version_name":"Gereja Firman Allah","version_english":"Gereja Firman Allah","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-12-06 22:30:20","created_on":"2018-06-08 16:05:48","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SDMGFAN2DA\/SDMGFAN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"SDMGFAN2ET","fcbh_id":"SDMGFAN2ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SDM","language_name":"Semandang","language_english":"Gerai","language_iso":"sdm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Semandang","language_family_code":"SDM","language_family_name":"Semandang","language_family_english":"Gerai","language_family_iso":"sdm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"GFA","version_name":"Gereja Firman Allah","version_english":"Gereja Firman Allah","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-12-06 22:30:20","created_on":"2018-09-14 16:19:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SDMGFAN2ET\/SDMGFAN2ET.zip","font":{"id":"7","name":"Arial","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Arial","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SDMSGVN2ET","fcbh_id":"SDMSGVN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SDM","language_name":"Semandang","language_english":"Gerai","language_iso":"sdm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Semandang","language_family_code":"SDM","language_family_name":"Semandang","language_family_english":"Gerai","language_family_iso":"sdm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SGV","version_name":"SGV","version_english":"SGV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-12-06 22:30:20","created_on":"2018-10-18 19:52:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SDMSGVN2ET\/SDMSGVN2ET.zip","font":{"id":"86","name":"Sylfaen","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Sylfaen","files":{"zip":"all.zip","ttf":"sylfaen.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"","url":""},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SEFABCN2DA","fcbh_id":"SEFABCN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SEF","language_name":"Senoufo, Cebaara","language_english":"Senoufo, Cebaara","language_iso":"sef","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cebaara Senoufo","language_family_code":"SEF","language_family_name":"Senoufo, Cebaara","language_family_english":"Senoufo, Cebaara","language_family_iso":"sef","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:48","created_on":"2010-09-14 17:00:43","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2SEFABC","audio_zip_path":"SEFABCN2DA\/SEFABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SEHBSMN1DA","fcbh_id":"SEHBSMN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SEH","language_name":"Chisena","language_english":"Sena","language_iso":"seh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sena","language_family_code":"SEH","language_family_name":"Chisena","language_family_english":"Sena","language_family_iso":"seh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-20 21:46:56","created_on":"2017-04-20 21:14:23","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SEHBSMN1DA\/SEHBSMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SEHBSMN2DA","fcbh_id":"SEHBSMN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SEH","language_name":"Chisena","language_english":"Sena","language_iso":"seh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sena","language_family_code":"SEH","language_family_name":"Chisena","language_family_english":"Sena","language_family_iso":"seh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-20 21:46:56","created_on":"2017-04-20 21:16:20","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SEHBSMN2DA\/SEHBSMN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SESVMVN1DA","fcbh_id":"SESVMVN1DA","volume_name":"Velberter Mission & WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SES","language_name":"Songhay, Gao","language_english":"Songhay, Koyraboro Senni","language_iso":"ses","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Koyraboro Senni Songhai","language_family_code":"SES","language_family_name":"Songhay, Gao","language_family_english":"Songhay, Koyraboro Senni","language_family_iso":"ses","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"VMV","version_name":"Velberter Mission Version","version_english":"Velberter Mission Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 18:23:30","created_on":"2015-01-23 21:15:26","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"SESVMVN1DA\/SESVMVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SESVMVN1ET","fcbh_id":"SESVMVN1ET","volume_name":"Velberter Mission & WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SES","language_name":"Songhay, Gao","language_english":"Songhay, Koyraboro Senni","language_iso":"ses","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Koyraboro Senni Songhai","language_family_code":"SES","language_family_name":"Songhay, Gao","language_family_english":"Songhay, Koyraboro Senni","language_family_iso":"ses","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"VMV","version_name":"Velberter Mission Version","version_english":"Velberter Mission Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 18:23:30","created_on":"2015-01-26 18:55:37","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SESVMVN1ET\/SESVMVN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SEYWBTN1DA","fcbh_id":"SEYWBTN1DA","volume_name":"Maija'qu\u00eb Huaj\u00eb Ca N\u00ebose'e","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SEY","language_name":"Secoya","language_english":"Secoya","language_iso":"sey","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Secoya","language_family_code":"SEY","language_family_name":"Secoya","language_family_english":"Secoya","language_family_iso":"sey","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:42:00","created_on":"2017-04-24 16:43:47","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SEYWBTN1DA\/SEYWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SEYWBTN1ET","fcbh_id":"SEYWBTN1ET","volume_name":"Maija'qu\u00eb Huaj\u00eb Ca N\u00ebose'e","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SEY","language_name":"Secoya","language_english":"Secoya","language_iso":"sey","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Secoya","language_family_code":"SEY","language_family_name":"Secoya","language_family_english":"Secoya","language_family_iso":"sey","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-06 01:03:23","created_on":"2017-05-06 00:44:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SEYWBTN1ET\/SEYWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SEYWBTN2DA","fcbh_id":"SEYWBTN2DA","volume_name":"Maija'qu\u00eb Huaj\u00eb Ca N\u00ebose'e","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SEY","language_name":"Secoya","language_english":"Secoya","language_iso":"sey","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Secoya","language_family_code":"SEY","language_family_name":"Secoya","language_family_english":"Secoya","language_family_iso":"sey","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-24 22:03:04","created_on":"2017-04-24 16:37:19","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SEYWBTN2DA\/SEYWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SEYWBTN2ET","fcbh_id":"SEYWBTN2ET","volume_name":"Maija'qu\u00eb Huaj\u00eb Ca N\u00ebose'e","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SEY","language_name":"Secoya","language_english":"Secoya","language_iso":"sey","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Secoya","language_family_code":"SEY","language_family_name":"Secoya","language_family_english":"Secoya","language_family_iso":"sey","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-06 01:03:23","created_on":"2017-05-06 00:42:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SEYWBTN2ET\/SEYWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SFWAFVN2DA","fcbh_id":"SFWAFVN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SFW","language_name":"Sehwi","language_english":"Sehwi","language_iso":"sfw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sehwi","language_family_code":"SFW","language_family_name":"Sehwi","language_family_english":"Sehwi","language_family_iso":"sfw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AFV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:50","created_on":"2010-09-14 17:00:43","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2SFWAFV","audio_zip_path":"SFWAFVN2DA\/SFWAFVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SGBTBLN2DA","fcbh_id":"SGBTBLN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SGB","language_name":"Ayta Mag-antsi","language_english":"Ayta Mag-antsi","language_iso":"sgb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mag-antsi Ayta","language_family_code":"SGB","language_family_name":"Ayta Mag-antsi","language_family_english":"Ayta Mag-antsi","language_family_iso":"sgb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:13:17","created_on":"2012-07-13 19:24:37","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"SGBTBLN2DA\/SGBTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SGBTBLN2ET","fcbh_id":"SGBTBLN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SGB","language_name":"Ayta Mag-antsi","language_english":"Ayta Mag-antsi","language_iso":"sgb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mag-antsi Ayta","language_family_code":"SGB","language_family_name":"Ayta Mag-antsi","language_family_english":"Ayta Mag-antsi","language_family_iso":"sgb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:40:41","created_on":"2011-07-01 18:19:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SGBTBLN2ET\/SGBTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SGWBSEN2DA","fcbh_id":"SGWBSEN2DA","volume_name":"1982 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SGW","language_name":"Gurage Chaha ","language_english":"Gurage Chaha ","language_iso":"sgw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sebat Bet Gurage","language_family_code":"SGW","language_family_name":"Gurage Chaha","language_family_english":"Gurage Chaha","language_family_iso":"sgw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"bse","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:47","created_on":"2011-02-02 03:44:09","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2SGWBSE","audio_zip_path":"SGWBSEN2DA\/SGWBSEN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SGWBSEN2ET","fcbh_id":"SGWBSEN2ET","volume_name":"1982 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SGW","language_name":"Gurage Chaha ","language_english":"Gurage Chaha ","language_iso":"sgw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sebat Bet Gurage","language_family_code":"SGW","language_family_name":"Gurage Chaha","language_family_english":"Gurage Chaha","language_family_iso":"sgw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSE","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:20","created_on":"2013-07-19 18:20:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SGWBSEN2ET\/SGWBSEN2ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SGZWBTN2ET","fcbh_id":"SGZWBTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SGZ","language_name":"Sursurunga","language_english":"Sursurunga","language_iso":"sgz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sursurunga","language_family_code":"SGZ","language_family_name":"Sursurunga","language_family_english":"Sursurunga","language_family_iso":"sgz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 21:42:13","created_on":"2014-05-08 18:51:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SGZWBTN2ET\/SGZWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SHKBSSN2DA","fcbh_id":"SHKBSSN2DA","volume_name":"BSS Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SHK","language_name":"Shilluk","language_english":"Shilluk","language_iso":"shk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Shilluk","language_family_code":"SHK","language_family_name":"Shilluk","language_family_english":"Shilluk","language_family_iso":"shk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-05-22 16:14:58","created_on":"2012-12-17 19:46:59","right_to_left":"false","num_art":"0","num_sample_audio":"1","sku":"","audio_zip_path":"SHKBSSN2DA\/SHKBSSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SHNTBSN2DA","fcbh_id":"SHNTBSN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SHN","language_name":"Shan","language_english":"Shan","language_iso":"shn","language_iso_2B":"shn","language_iso_2T":"shn","language_iso_1":"","language_iso_name":"Shan","language_family_code":"SHN","language_family_name":"Shan","language_family_english":"Shan","language_family_iso":"shn","language_family_iso_2B":"shn","language_family_iso_2T":"shn","language_family_iso_1":"","version_code":"TBS","version_name":"Thailand Bible Society","version_english":"Thailand Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-16 22:01:03","created_on":"2010-11-25 20:50:15","right_to_left":"false","num_art":"3","num_sample_audio":"2","sku":"N2SHNTBS","audio_zip_path":"SHNTBSN2DA\/SHNTBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SHNTBSN2ET","fcbh_id":"SHNTBSN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SHN","language_name":"Shan","language_english":"Shan","language_iso":"shn","language_iso_2B":"shn","language_iso_2T":"shn","language_iso_1":"","language_iso_name":"Shan","language_family_code":"SHN","language_family_name":"Shan","language_family_english":"Shan","language_family_iso":"shn","language_family_iso_2B":"shn","language_family_iso_2T":"shn","language_family_iso_1":"","version_code":"TBS","version_name":"Thailand Bible Society","version_english":"Thailand Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:15","created_on":"2015-08-10 19:41:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SHNTBSN2ET\/SHNTBSN2ET.zip","font":{"id":"78","name":"Shan","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Shan","files":{"zip":"all.zip","ttf":"NotoSansMyanmar-Regular.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"","url":""},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SHUABTN2DA","fcbh_id":"SHUABTN2DA","volume_name":"(Chadian) 2012 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SHU","language_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_english":"Arabic","language_iso":"shu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chadian Arabic","language_family_code":"ARA","language_family_name":"\u0627\u0644\u0639\u0631\u0628\u064a\u0629","language_family_english":"Arabic","language_family_iso":"ara","language_family_iso_2B":"ara","language_family_iso_2T":"ara","language_family_iso_1":"ar","version_code":"ABT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 15:59:03","created_on":"2013-06-10 20:18:13","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"SHUABTN2DA\/SHUABTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SIGWBTN2DA","fcbh_id":"SIGWBTN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SIG","language_name":"Paasaal","language_english":"Paasaal","language_iso":"sig","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Paasaal","language_family_code":"SIG","language_family_name":"Paasaal","language_family_english":"Paasaal","language_family_iso":"sig","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:50","created_on":"2010-09-14 17:01:18","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2SIGWBT","audio_zip_path":"SIGWBTN2DA\/SIGWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SIGWBTN2ET","fcbh_id":"SIGWBTN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SIG","language_name":"Paasaal","language_english":"Paasaal","language_iso":"sig","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Paasaal","language_family_code":"SIG","language_family_name":"Paasaal","language_family_english":"Paasaal","language_family_iso":"sig","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2012-04-17 14:19:51","created_on":"2010-11-25 20:49:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2SIGWBT","audio_zip_path":"SIGWBTN2ET\/SIGWBTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SILGILN2DA","fcbh_id":"SILGILN2DA","volume_name":"1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SIL","language_name":"Sisaala, Tumulung","language_english":"Sisaala, Tumulung","language_iso":"sil","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tumulung Sisaala","language_family_code":"SIL","language_family_name":"Sisaala, Tumulung","language_family_english":"Sisaala, Tumulung","language_family_iso":"sil","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"GIL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-17 17:54:17","created_on":"2010-09-14 17:00:43","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2SILGIL","audio_zip_path":"SILGILN2DA\/SILGILN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SILGILN2ET","fcbh_id":"SILGILN2ET","volume_name":"1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SIL","language_name":"Sisaala, Tumulung","language_english":"Sisaala, Tumulung","language_iso":"sil","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tumulung Sisaala","language_family_code":"SIL","language_family_name":"Sisaala, Tumulung","language_family_english":"Sisaala, Tumulung","language_family_iso":"sil","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"GIL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:49","created_on":"2010-11-25 20:49:35","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2SILGIL","audio_zip_path":"SILGILN2ET\/SILGILN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SIMPNGN2ET","fcbh_id":"SIMPNGN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SIM","language_name":"Mende (Papua New Guinea)","language_english":"Mende (Papua New Guinea)","language_iso":"sim","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mende (Papua New Guinea)","language_family_code":"SIM","language_family_name":"Mende (Papua New Guinea)","language_family_english":"Mende (Papua New Guinea)","language_family_iso":"sim","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 19:52:42","created_on":"2014-05-13 19:28:44","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SIMPNGN2ET\/SIMPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SJATBLN2DA","fcbh_id":"SJATBLN2DA","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SJA","language_name":"Epera pedee","language_english":"Epera pedee","language_iso":"sja","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Epena","language_family_code":"SJA","language_family_name":"Epera pedee","language_family_english":"Epera pedee","language_family_iso":"sja","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-26 20:34:58","created_on":"2010-09-14 17:01:06","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2SJATBL","audio_zip_path":"SJATBLN2DA\/SJATBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SJATBLN2ET","fcbh_id":"SJATBLN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SJA","language_name":"Epera pedee","language_english":"Epera pedee","language_iso":"sja","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Epena","language_family_code":"SJA","language_family_name":"Epera pedee","language_family_english":"Epera pedee","language_family_iso":"sja","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:20","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2SJATBL","audio_zip_path":"SJATBLN2ET\/SJATBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SLDTBLN2DA","fcbh_id":"SLDTBLN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SLD","language_name":"Sissala","language_english":"Sissala","language_iso":"sld","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sissala","language_family_code":"SLD","language_family_name":"Sissala","language_family_english":"Sissala","language_family_iso":"sld","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-17 17:55:26","created_on":"2010-09-14 17:00:44","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2SLDTBL","audio_zip_path":"SLDTBLN2DA\/SLDTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SLDTBLN2ET","fcbh_id":"SLDTBLN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SLD","language_name":"Sissala","language_english":"Sissala","language_iso":"sld","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sissala","language_family_code":"SLD","language_family_name":"Sissala","language_family_english":"Sissala","language_family_iso":"sld","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:53","created_on":"2011-06-16 19:32:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SLDTBLN2ET\/SLDTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SLLTBLN2ET","fcbh_id":"SLLTBLN2ET","volume_name":"1978 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SLL","language_name":"Salt-Yui","language_english":"Salt-Yui","language_iso":"sll","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Salt-Yui","language_family_code":"SLL","language_family_name":"Salt-Yui","language_family_english":"Salt-Yui","language_family_iso":"sll","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 16:56:12","created_on":"2014-06-25 15:13:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SLLTBLN2ET\/SLLTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SLOSBSN2DA","fcbh_id":"SLOSBSN2DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SLO","language_name":"Sloven\u010dina","language_english":"Slovak","language_iso":"slk","language_iso_2B":"slo","language_iso_2T":"slk","language_iso_1":"sk","language_iso_name":"Slovak","language_family_code":"SLO","language_family_name":"Sloven\u010dina","language_family_english":"Slovak","language_family_iso":"slk","language_family_iso_2B":"slo","language_family_iso_2T":"slk","language_family_iso_1":"sk","version_code":"SBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:37","created_on":"2010-09-14 17:00:44","right_to_left":"false","num_art":"5","num_sample_audio":"1","sku":"N2SLOSBS","audio_zip_path":"SLOSBSN2DA\/SLOSBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SLVSBSN1DA","fcbh_id":"SLVSBSN1DA","volume_name":"Slovenski standardni prevod Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SLV","language_name":"Slovenian","language_english":"Slovenian","language_iso":"slv","language_iso_2B":"slv","language_iso_2T":"slv","language_iso_1":"sl","language_iso_name":"Slovenian","language_family_code":"SLV","language_family_name":"Slovenian","language_family_english":"Slovenian","language_family_iso":"slv","language_family_iso_2B":"slv","language_family_iso_2T":"slv","language_family_iso_1":"sl","version_code":"SBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 18:27:16","created_on":"2016-12-05 16:40:14","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SLVSBSN1DA\/SLVSBSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SLVSBSN2DA","fcbh_id":"SLVSBSN2DA","volume_name":"Slovenski standardni prevod Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SLV","language_name":"Slovenian","language_english":"Slovenian","language_iso":"slv","language_iso_2B":"slv","language_iso_2T":"slv","language_iso_1":"sl","language_iso_name":"Slovenian","language_family_code":"SLV","language_family_name":"Slovenian","language_family_english":"Slovenian","language_family_iso":"slv","language_family_iso_2B":"slv","language_family_iso_2T":"slv","language_family_iso_1":"sl","version_code":"SBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 18:27:29","created_on":"2016-12-05 16:28:37","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SLVSBSN2DA\/SLVSBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SMLTBLN2DA","fcbh_id":"SMLTBLN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SML","language_name":"Sinama","language_english":"Sinama","language_iso":"sml","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Sama","language_family_code":"SML","language_family_name":"Sinama","language_family_english":"Sinama","language_family_iso":"sml","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:52","created_on":"2012-05-15 20:55:47","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"SMLTBLN2DA\/SMLTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SMLTBLN2ET","fcbh_id":"SMLTBLN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SML","language_name":"Sinama","language_english":"Sinama","language_iso":"sml","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Sama","language_family_code":"SML","language_family_name":"Sinama","language_family_english":"Sinama","language_family_iso":"sml","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:19","created_on":"2013-01-15 23:23:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SMLTBLN2ET\/SMLTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SMOBSPN1DA","fcbh_id":"SMOBSPN1DA","volume_name":"BSSP Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SMO","language_name":"Samoan","language_english":"Samoan","language_iso":"smo","language_iso_2B":"smo","language_iso_2T":"smo","language_iso_1":"sm","language_iso_name":"Samoan","language_family_code":"SMO","language_family_name":"Samoan","language_family_english":"Samoan","language_family_iso":"smo","language_family_iso_2B":"smo","language_family_iso_2T":"smo","language_family_iso_1":"sm","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-03-17 15:53:17","created_on":"2014-10-03 19:24:21","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"SMOBSPN1DA\/SMOBSPN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SMOBSPN1ET","fcbh_id":"SMOBSPN1ET","volume_name":"BSSP Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SMO","language_name":"Samoan","language_english":"Samoan","language_iso":"smo","language_iso_2B":"smo","language_iso_2T":"smo","language_iso_1":"sm","language_iso_name":"Samoan","language_family_code":"SMO","language_family_name":"Samoan","language_family_english":"Samoan","language_family_iso":"smo","language_family_iso_2B":"smo","language_family_iso_2T":"smo","language_family_iso_1":"sm","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-08 22:21:36","created_on":"2015-03-17 16:25:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SMOBSPN1ET\/SMOBSPN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SMOBSPN2DA","fcbh_id":"SMOBSPN2DA","volume_name":"BSSP Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SMO","language_name":"Samoan","language_english":"Samoan","language_iso":"smo","language_iso_2B":"smo","language_iso_2T":"smo","language_iso_1":"sm","language_iso_name":"Samoan","language_family_code":"SMO","language_family_name":"Samoan","language_family_english":"Samoan","language_family_iso":"smo","language_family_iso_2B":"smo","language_family_iso_2T":"smo","language_family_iso_1":"sm","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:53","created_on":"2012-08-13 16:08:48","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"SMOBSPN2DA\/SMOBSPN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SMOBSPN2ET","fcbh_id":"SMOBSPN2ET","volume_name":"BSSP Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SMO","language_name":"Samoan","language_english":"Samoan","language_iso":"smo","language_iso_2B":"smo","language_iso_2T":"smo","language_iso_1":"sm","language_iso_name":"Samoan","language_family_code":"SMO","language_family_name":"Samoan","language_family_english":"Samoan","language_family_iso":"smo","language_family_iso_2B":"smo","language_family_iso_2T":"smo","language_family_iso_1":"sm","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-17 17:22:50","created_on":"2011-08-29 16:57:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SMOBSPN2ET\/SMOBSPN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SMTBIVN2ET","fcbh_id":"SMTBIVN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SMT","language_name":"Simte","language_english":"Simte","language_iso":"smt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Simte","language_family_code":"SMT","language_family_name":"Simte","language_family_english":"Simte","language_family_iso":"smt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-03 18:07:06","created_on":"2015-06-22 18:39:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SMTBIVN2ET\/SMTBIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SN1SLVN2ET","fcbh_id":"SN1SLVN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SN1","language_name":"Siane (Lambau)","language_english":"Siane (Lambau)","language_iso":"snp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Siane","language_family_code":"SN1","language_family_name":"Siane (Lambau)","language_family_english":"Siane (Lambau)","language_family_iso":"snp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLV","version_name":"Sign Language Version","version_english":"Sign Language Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:16","created_on":"2014-07-18 15:49:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SN1SLVN2ET\/SN1SLVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SNCPNGN2ET","fcbh_id":"SNCPNGN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SNC","language_name":"Sinaugoro","language_english":"Sinaugoro","language_iso":"snc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sinaugoro","language_family_code":"SNC","language_family_name":"Sinaugoro","language_family_english":"Sinaugoro","language_family_iso":"snc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 16:58:33","created_on":"2014-05-08 18:41:43","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SNCPNGN2ET\/SNCPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SNDPAKN2DA","fcbh_id":"SNDPAKN2DA","volume_name":"PAK Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SND","language_name":"Sindhi","language_english":"Sindhi","language_iso":"snd","language_iso_2B":"snd","language_iso_2T":"snd","language_iso_1":"sd","language_iso_name":"Sindhi","language_family_code":"SND","language_family_name":"Sindhi","language_family_english":"Sindhi","language_family_iso":"snd","language_family_iso_2B":"snd","language_family_iso_2T":"snd","language_family_iso_1":"sd","version_code":"PAK","version_name":"Pakistan","version_english":"Pakistan","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:10","created_on":"2012-09-17 16:37:02","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"SNDPAKN2DA\/SNDPAKN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SNFWYIN2DA","fcbh_id":"SNFWYIN2DA","volume_name":"Bible Society Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SNF","language_name":"Noon","language_english":"Noon","language_iso":"snf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Noon","language_family_code":"SNF","language_family_name":"Noon","language_family_english":"Noon","language_family_iso":"snf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:11","created_on":"2013-11-11 20:48:47","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"SNFWYIN2DA\/SNFWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SNHNRSN2DA","fcbh_id":"SNHNRSN2DA","volume_name":"New Revised Sinhala","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SNH","language_name":"Sinhala","language_english":"Sinhala","language_iso":"sin","language_iso_2B":"sin","language_iso_2T":"sin","language_iso_1":"si","language_iso_name":"Sinhala","language_family_code":"SNH","language_family_name":"Sinhala","language_family_english":"Sinhala","language_family_iso":"sin","language_family_iso_2B":"sin","language_family_iso_2T":"sin","language_family_iso_1":"si","version_code":"NRS","version_name":"New Revised Standard Version ","version_english":"New Revised Standard Version ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:01","created_on":"2010-09-14 17:01:19","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2SNHNRS","audio_zip_path":"SNHNRSN2DA\/SNHNRSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SNHRNVN2DA","fcbh_id":"SNHRNVN2DA","volume_name":"1973 Revised New Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SNH","language_name":"Sinhala","language_english":"Sinhala","language_iso":"sin","language_iso_2B":"sin","language_iso_2T":"sin","language_iso_1":"si","language_iso_name":"Sinhala","language_family_code":"SNH","language_family_name":"Sinhala","language_family_english":"Sinhala","language_family_iso":"sin","language_family_iso_2B":"sin","language_family_iso_2T":"sin","language_family_iso_1":"si","version_code":"RNV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:44","created_on":"2010-09-14 17:00:44","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2SNHRNV","audio_zip_path":"SNHRNVN2DA\/SNHRNVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SNNWBTN1DA","fcbh_id":"SNNWBTN1DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SNN","language_name":"Siona","language_english":"Siona","language_iso":"snn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Siona","language_family_code":"SNN","language_family_name":"Siona","language_family_english":"Siona","language_family_iso":"snn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-29 18:49:18","created_on":"2018-03-29 17:20:00","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SNNWBTN1DA\/SNNWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SNNWBTN1ET","fcbh_id":"SNNWBTN1ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SNN","language_name":"Siona","language_english":"Siona","language_iso":"snn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Siona","language_family_code":"SNN","language_family_name":"Siona","language_family_english":"Siona","language_family_iso":"snn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-29 18:49:40","created_on":"2018-03-29 17:37:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SNNWBTN1ET\/SNNWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SNNWBTN2DA","fcbh_id":"SNNWBTN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SNN","language_name":"Siona","language_english":"Siona","language_iso":"snn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Siona","language_family_code":"SNN","language_family_name":"Siona","language_family_english":"Siona","language_family_iso":"snn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-29 19:02:02","created_on":"2018-03-29 17:21:30","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SNNWBTN2DA\/SNNWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SNNWBTN2ET","fcbh_id":"SNNWBTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SNN","language_name":"Siona","language_english":"Siona","language_iso":"snn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Siona","language_family_code":"SNN","language_family_name":"Siona","language_family_english":"Siona","language_family_iso":"snn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-29 17:16:28","created_on":"2014-10-27 15:39:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SNNWBTN2ET\/SNNWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SNPWBTN2ET","fcbh_id":"SNPWBTN2ET","volume_name":"1991 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SNP","language_name":"Siane (Komongu)","language_english":"Siane (Komongu)","language_iso":"snp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Siane","language_family_code":"SNP","language_family_name":"Siane (Komongu)","language_family_english":"Siane (Komongu)","language_family_iso":"snp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 21:12:45","created_on":"2014-07-18 15:46:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SNPWBTN2ET\/SNPWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SNWWBTN2DA","fcbh_id":"SNWWBTN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SNW","language_name":"Selee","language_english":"Selee","language_iso":"snw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Selee","language_family_code":"SNW","language_family_name":"Selee","language_family_english":"Selee","language_family_iso":"snw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-08-01 17:18:58","created_on":"2014-07-31 20:41:20","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"SNWWBTN2DA\/SNWWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SNWWBTN2ET","fcbh_id":"SNWWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SNW","language_name":"Selee","language_english":"Selee","language_iso":"snw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Selee","language_family_code":"SNW","language_family_name":"Selee","language_family_english":"Selee","language_family_iso":"snw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:18","created_on":"2014-02-24 17:20:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SNWWBTN2ET\/SNWWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SNYWBTN2ET","fcbh_id":"SNYWBTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SNY","language_name":"Saniyo-Hiyewe","language_english":"Saniyo-Hiyewe","language_iso":"sny","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Saniyo-Hiyewe","language_family_code":"SNY","language_family_name":"Saniyo-Hiyewe","language_family_english":"Saniyo-Hiyewe","language_family_iso":"sny","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 21:01:03","created_on":"2014-06-25 15:16:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SNYWBTN2ET\/SNYWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SOMSIMN2DA","fcbh_id":"SOMSIMN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SOM","language_name":"Somali","language_english":"Somali","language_iso":"som","language_iso_2B":"som","language_iso_2T":"som","language_iso_1":"so","language_iso_name":"Somali","language_family_code":"SOM","language_family_name":"Somali","language_family_english":"Somali","language_family_iso":"som","language_family_iso_2B":"som","language_family_iso_2T":"som","language_family_iso_1":"so","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-17 17:59:30","created_on":"2010-12-07 15:00:35","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2SOMSIM","audio_zip_path":"SOMSIMN2DA\/SOMSIMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SOMSIMN2ET","fcbh_id":"SOMSIMN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SOM","language_name":"Somali","language_english":"Somali","language_iso":"som","language_iso_2B":"som","language_iso_2T":"som","language_iso_1":"so","language_iso_name":"Somali","language_family_code":"SOM","language_family_name":"Somali","language_family_english":"Somali","language_family_iso":"som","language_family_iso_2B":"som","language_family_iso_2T":"som","language_family_iso_1":"so","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:20","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2SOMSIM","audio_zip_path":"SOMSIMN2ET\/SOMSIMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SOMSIMO1DA","fcbh_id":"SOMSIMO1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SOM","language_name":"Somali","language_english":"Somali","language_iso":"som","language_iso_2B":"som","language_iso_2T":"som","language_iso_1":"so","language_iso_name":"Somali","language_family_code":"SOM","language_family_name":"Somali","language_family_english":"Somali","language_family_iso":"som","language_family_iso_2B":"som","language_family_iso_2T":"som","language_family_iso_1":"so","version_code":"SIM","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-03-13 15:59:03","created_on":"2015-03-23 18:13:52","right_to_left":"false","num_art":"5","num_sample_audio":"1","sku":"","audio_zip_path":"SOMSIMO1DA\/SOMSIMO1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SOMSIMO2ET","fcbh_id":"SOMSIMO2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SOM","language_name":"Somali","language_english":"Somali","language_iso":"som","language_iso_2B":"som","language_iso_2T":"som","language_iso_1":"so","language_iso_name":"Somali","language_family_code":"SOM","language_family_name":"Somali","language_family_english":"Somali","language_family_iso":"som","language_family_iso_2B":"som","language_family_iso_2T":"som","language_family_iso_1":"so","version_code":"SIM","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2013-12-17 17:59:01","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"O2SOMSIM","audio_zip_path":"SOMSIMO2ET\/SOMSIMO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SOMTVIN2DA","fcbh_id":"SOMTVIN2DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SOM","language_name":"Somali","language_english":"Somali","language_iso":"som","language_iso_2B":"som","language_iso_2T":"som","language_iso_1":"so","language_iso_name":"Somali","language_family_code":"SOM","language_family_name":"Somali","language_family_english":"Somali","language_family_iso":"som","language_family_iso_2B":"som","language_family_iso_2T":"som","language_family_iso_1":"so","version_code":"TVI","version_name":"Theovision International","version_english":"Theovision International","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:14","created_on":"2015-09-03 19:21:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SOMTVIN2DA\/SOMTVIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SOQWBTN2ET","fcbh_id":"SOQWBTN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SOQ","language_name":"Kanasi","language_english":"Kanasi","language_iso":"soq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kanasi","language_family_code":"SOQ","language_family_name":"Kanasi","language_family_english":"Kanasi","language_family_iso":"soq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:23:03","created_on":"2014-06-25 19:01:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SOQWBTN2ET\/SOQWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SOYSIMN1DA","fcbh_id":"SOYSIMN1DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SOY","language_name":"Sola","language_english":"Sola","language_iso":"soy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Miyobe","language_family_code":"SOY","language_family_name":"Sola","language_family_english":"Sola","language_family_iso":"soy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-16 20:05:21","created_on":"2018-02-15 21:21:43","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SOYSIMN1DA\/SOYSIMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SOYSIMN1ET","fcbh_id":"SOYSIMN1ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SOY","language_name":"Sola","language_english":"Sola","language_iso":"soy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Miyobe","language_family_code":"SOY","language_family_name":"Sola","language_family_english":"Sola","language_family_iso":"soy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-15 21:58:26","created_on":"2018-02-15 21:03:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SOYSIMN1ET\/SOYSIMN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SOYSIMN2DA","fcbh_id":"SOYSIMN2DA","volume_name":"20011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SOY","language_name":"Sola","language_english":"Sola","language_iso":"soy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Miyobe","language_family_code":"SOY","language_family_name":"Sola","language_family_english":"Sola","language_family_iso":"soy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-16 20:04:52","created_on":"2018-02-15 21:19:38","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SOYSIMN2DA\/SOYSIMN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SOYSIMN2ET","fcbh_id":"SOYSIMN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SOY","language_name":"Sola","language_english":"Sola","language_iso":"soy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Miyobe","language_family_code":"SOY","language_family_name":"Sola","language_family_english":"Sola","language_family_iso":"soy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-15 21:02:06","created_on":"2012-11-26 20:16:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SOYSIMN2ET\/SOYSIMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SPLWBTN2ET","fcbh_id":"SPLWBTN2ET","volume_name":"1986 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPL","language_name":"Selepet","language_english":"Selepet","language_iso":"spl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Selepet","language_family_code":"SPL","language_family_name":"Selepet","language_family_english":"Selepet","language_family_iso":"spl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:22","created_on":"2014-07-18 15:43:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPLWBTN2ET\/SPLWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SPNBDAN1DA","fcbh_id":"SPNBDAN1DA","volume_name":"2010 Biblia de Am\u00e9rica","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"BDA","version_name":"Biblia de Am\u00e9rica","version_english":" Biblia de America","collection_code":"NT","rich":"0","collection_name":"Nuevo Testamento","updated_on":"2015-10-08 17:17:07","created_on":"2015-07-08 19:13:25","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"SPNBDAN1DA\/SPNBDAN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SPNBDAN1ET","fcbh_id":"SPNBDAN1ET","volume_name":"2010 Biblia de Am\u00e9rica","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"BDA","version_name":"Biblia de Am\u00e9rica","version_english":" Biblia de America","collection_code":"NT","rich":"0","collection_name":"Nuevo Testamento","updated_on":"2015-10-08 17:55:55","created_on":"2015-10-08 17:43:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPNBDAN1ET\/SPNBDAN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SPNBDAN2DA","fcbh_id":"SPNBDAN2DA","volume_name":"2010 Biblia de Am\u00e9rica","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"BDA","version_name":"Biblia de Am\u00e9rica","version_english":" Biblia de America","collection_code":"NT","rich":"0","collection_name":"Nuevo Testamento","updated_on":"2014-08-14 17:50:14","created_on":"2012-10-08 16:32:46","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"SPNBDAN2DA\/SPNBDAN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SPNBDAN2ET","fcbh_id":"SPNBDAN2ET","volume_name":"2010 Biblia de Am\u00e9rica","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"BDA","version_name":"Biblia de Am\u00e9rica","version_english":" Biblia de America","collection_code":"NT","rich":"0","collection_name":"Nuevo Testamento","updated_on":"2013-11-04 15:17:01","created_on":"2012-01-23 17:25:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPNBDAN2ET\/SPNBDAN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SPNBDAO1ET","fcbh_id":"SPNBDAO1ET","volume_name":"2010 Biblia de Am\u00e9rica","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"BDA","version_name":"Biblia de Am\u00e9rica","version_english":" Biblia de America","collection_code":"OT","rich":"0","collection_name":"Antiguo Testamento","updated_on":"2016-09-12 19:41:32","created_on":"2015-10-08 17:31:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPNBDAO1ET\/SPNBDAO1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SPNBDAO2ET","fcbh_id":"SPNBDAO2ET","volume_name":"2010 Biblia de Am\u00e9rica","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"BDA","version_name":"Biblia de Am\u00e9rica","version_english":" Biblia de America","collection_code":"OT","rich":"0","collection_name":"Antiguo Testamento","updated_on":"2013-11-04 15:17:28","created_on":"2012-08-21 21:21:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPNBDAO2ET\/SPNBDAO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SPNDHHN2DA","fcbh_id":"SPNDHHN2DA","volume_name":"Dios Habla Hoy","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"DHH","version_name":"Dios Habla Hoy","version_english":"Dios Habla Hoy","collection_code":"NT","rich":"0","collection_name":"Nuevo Testamento","updated_on":"2015-09-02 23:17:18","created_on":"2010-09-14 17:00:44","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2SPNDHH","audio_zip_path":"SPNDHHN2DA\/SPNDHHN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SPNERVN1DA","fcbh_id":"SPNERVN1DA","volume_name":"Easy to Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"ERV","version_name":"Easy to Read Version","version_english":"Easy to Read Version","collection_code":"NT","rich":"0","collection_name":"Nuevo Testamento","updated_on":"2017-12-12 17:21:08","created_on":"2017-12-12 15:48:34","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SPNERVN1DA\/SPNERVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SPNERVN1ET","fcbh_id":"SPNERVN1ET","volume_name":"Easy to Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"ERV","version_name":"Easy to Read Version","version_english":"Easy to Read Version","collection_code":"NT","rich":"0","collection_name":"Nuevo Testamento","updated_on":"2017-12-14 20:04:44","created_on":"2017-12-12 17:32:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPNERVN1ET\/SPNERVN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SPNERVO1ET","fcbh_id":"SPNERVO1ET","volume_name":"Easy to Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"ERV","version_name":"Easy to Read Version","version_english":"Easy to Read Version","collection_code":"OT","rich":"0","collection_name":"Antiguo Testamento","updated_on":"2017-12-14 20:04:44","created_on":"2017-12-12 17:34:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPNERVO1ET\/SPNERVO1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SPNLBVN2ET","fcbh_id":"SPNLBVN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"LBV","version_name":"La Casa de la Biblia","version_english":"La Casa de la Biblia","collection_code":"NT","rich":"0","collection_name":"Nuevo Testamento","updated_on":"2014-04-04 16:37:04","created_on":"2013-12-30 23:16:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPNLBVN2ET\/SPNLBVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SPNPDTN1DA","fcbh_id":"SPNPDTN1DA","volume_name":"La Palabra de Dios Para Todos","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"PDT","version_name":"PDT","version_english":"PDT","collection_code":"NT","rich":"0","collection_name":"Nuevo Testamento","updated_on":"2018-01-15 17:25:04","created_on":"2018-01-15 17:07:39","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SPNPDTN1DA\/SPNPDTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SPNPDTO1DA","fcbh_id":"SPNPDTO1DA","volume_name":"La Palabra de Dios Para Todos","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"PDT","version_name":"PDT","version_english":"PDT","collection_code":"OT","rich":"0","collection_name":"Antiguo Testamento","updated_on":"2018-01-24 17:59:34","created_on":"2018-01-15 17:13:44","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SPNPDTO1DA\/SPNPDTO1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SPNR02N2ET","fcbh_id":"SPNR02N2ET","volume_name":"1602 Reina-Valera Antigua","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"R02","version_name":"Reina-Valera Antigua 1602","version_english":"Reina-Valera Antigua 1602","collection_code":"NT","rich":"0","collection_name":"Nuevo Testamento","updated_on":"2013-12-17 18:03:11","created_on":"2010-09-14 17:01:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPNR02N2ET\/SPNR02N2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SPNR02O2ET","fcbh_id":"SPNR02O2ET","volume_name":"1602 Reina-Valera Antigua","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"R02","version_name":"Reina-Valera Antigua 1602","version_english":"Reina-Valera Antigua 1602","collection_code":"OT","rich":"0","collection_name":"Antiguo Testamento","updated_on":"2013-12-17 18:02:49","created_on":"2010-09-14 17:01:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPNR02O2ET\/SPNR02O2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SPNR95N2DA","fcbh_id":"SPNR95N2DA","volume_name":"1995 Reina Valera","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"R95","version_name":"Reina Valera 1995 Version","version_english":"Reina Valera 1995 Version","collection_code":"NT","rich":"0","collection_name":"Nuevo Testamento","updated_on":"2015-10-14 23:14:25","created_on":"2010-09-14 17:00:45","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2SPNR95","audio_zip_path":"SPNR95N2DA\/SPNR95N2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SPNRVCN1ET","fcbh_id":"SPNRVCN1ET","volume_name":"Reina Valera, Revisada y Corregida (1865)","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"RVC","version_name":"RVC","version_english":"RVC","collection_code":"NT","rich":"0","collection_name":"Nuevo Testamento","updated_on":"2017-09-11 19:38:36","created_on":"2017-09-01 19:42:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPNRVCN1ET\/SPNRVCN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SPNRVCO1ET","fcbh_id":"SPNRVCO1ET","volume_name":"Reina Valera, Revisada y Corregida (1865)","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"RVC","version_name":"RVC","version_english":"RVC","collection_code":"OT","rich":"0","collection_name":"Antiguo Testamento","updated_on":"2017-09-11 19:39:29","created_on":"2017-09-01 19:35:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPNRVCO1ET\/SPNRVCO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SPNSEVN2ET","fcbh_id":"SPNSEVN2ET","volume_name":"1569 Sagradas Escrituras","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"SEV","version_name":"1569 Sagradas Escrituras Version","version_english":"1569 Sagradas Escrituras Version","collection_code":"NT","rich":"0","collection_name":"Nuevo Testamento","updated_on":"2013-12-17 18:01:41","created_on":"2010-09-14 17:01:37","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPNSEVN2ET\/SPNSEVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SPNSEVO2ET","fcbh_id":"SPNSEVO2ET","volume_name":"1569 Sagradas Escrituras","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"SEV","version_name":"1569 Sagradas Escrituras Version","version_english":"1569 Sagradas Escrituras Version","collection_code":"OT","rich":"0","collection_name":"Antiguo Testamento","updated_on":"2013-12-17 18:01:26","created_on":"2010-09-14 17:01:37","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPNSEVO2ET\/SPNSEVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SPNWTCN1DA","fcbh_id":"SPNWTCN1DA","volume_name":"La Palabra de Dios para Todos","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"Nuevo Testamento","updated_on":"2015-08-24 22:49:21","created_on":"2015-08-24 20:19:00","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"SPNWTCN1DA\/SPNWTCN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SPNWTCN1ET","fcbh_id":"SPNWTCN1ET","volume_name":"La Palabra de Dios para Todos","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"Nuevo Testamento","updated_on":"2017-04-21 19:42:43","created_on":"2015-08-24 23:11:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPNWTCN1ET\/SPNWTCN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SPNWTCN2DA","fcbh_id":"SPNWTCN2DA","volume_name":"La Palabra de Dios para Todos","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"Nuevo Testamento","updated_on":"2016-08-02 21:02:36","created_on":"2015-08-21 17:14:41","right_to_left":"false","num_art":"6","num_sample_audio":"1","sku":"","audio_zip_path":"SPNWTCN2DA\/SPNWTCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SPNWTCN2ET","fcbh_id":"SPNWTCN2ET","volume_name":"La Palabra de Dios para Todos","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"Nuevo Testamento","updated_on":"2017-04-21 19:42:43","created_on":"2014-05-22 16:56:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPNWTCN2ET\/SPNWTCN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SPNWTCO1ET","fcbh_id":"SPNWTCO1ET","volume_name":"La Palabra de Dios para Todos","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"OT","rich":"0","collection_name":"Antiguo Testamento","updated_on":"2017-04-21 19:42:43","created_on":"2015-08-24 22:50:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPNWTCO1ET\/SPNWTCO1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SPNWTCO2ET","fcbh_id":"SPNWTCO2ET","volume_name":"La Palabra de Dios para Todos","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPN","language_name":"Espa\u00f1ol","language_english":"Spanish","language_iso":"spa","language_iso_2B":"spa","language_iso_2T":"spa","language_iso_1":"es","language_iso_name":"Spanish","language_family_code":"SPN","language_family_name":"Espa\u00f1ol","language_family_english":"Spanish","language_family_iso":"spa","language_family_iso_2B":"spa","language_family_iso_2T":"spa","language_family_iso_1":"es","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"OT","rich":"0","collection_name":"Antiguo Testamento","updated_on":"2017-04-21 19:42:43","created_on":"2014-05-22 16:59:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPNWTCO2ET\/SPNWTCO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SPPTBLN2DA","fcbh_id":"SPPTBLN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPP","language_name":"Supyire","language_english":"Supyire","language_iso":"spp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Supyire Senoufo","language_family_code":"SPP","language_family_name":"Supyire","language_family_english":"Supyire","language_family_iso":"spp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-25 23:59:56","created_on":"2012-01-27 20:26:32","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"SPPTBLN2DA\/SPPTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SPPTBLN2ET","fcbh_id":"SPPTBLN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPP","language_name":"Supyire","language_english":"Supyire","language_iso":"spp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Supyire Senoufo","language_family_code":"SPP","language_family_name":"Supyire","language_family_english":"Supyire","language_family_iso":"spp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:10","created_on":"2011-05-30 17:47:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPPTBLN2ET\/SPPTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SPSWBTN2ET","fcbh_id":"SPSWBTN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SPS","language_name":"Saposa","language_english":"Saposa","language_iso":"sps","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Saposa","language_family_code":"SPS","language_family_name":"Saposa","language_family_english":"Saposa","language_family_iso":"sps","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 21:02:06","created_on":"2014-08-01 20:06:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SPSWBTN2ET\/SPSWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SRCCRVN1DA","fcbh_id":"SRCCRVN1DA","volume_name":"Croatian Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SRC","language_name":"Croatian","language_english":"Croatian","language_iso":"hbs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"sh","language_iso_name":"Serbo-Croatian","language_family_code":"SRC","language_family_name":"Croatian","language_family_english":"Croatian","language_family_iso":"hbs","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"sh","version_code":"CRV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-26 23:01:40","created_on":"2010-09-14 16:59:50","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1SRCCRV","audio_zip_path":"SRCCRVN1DA\/SRCCRVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SRIWBTN2DA","fcbh_id":"SRIWBTN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SRI","language_name":"Siriano","language_english":"Siriano","language_iso":"sri","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Siriano","language_family_code":"SRI","language_family_name":"Siriano","language_family_english":"Siriano","language_family_iso":"sri","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-17 17:53:09","created_on":"2010-10-05 19:34:03","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2SRIWBT","audio_zip_path":"SRIWBTN2DA\/SRIWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SRIWBTN2ET","fcbh_id":"SRIWBTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SRI","language_name":"Siriano","language_english":"Siriano","language_iso":"sri","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Siriano","language_family_code":"SRI","language_family_name":"Siriano","language_family_english":"Siriano","language_family_iso":"sri","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:15","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2SRIWBT","audio_zip_path":"SRIWBTN2ET\/SRIWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SRMWBTN2DA","fcbh_id":"SRMWBTN2DA","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SRM","language_name":"Saramaccan","language_english":"Saramaccan","language_iso":"srm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Saramaccan","language_family_code":"SRM","language_family_name":"Saramaccan","language_family_english":"Saramaccan","language_family_iso":"srm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-11-12 23:13:34","created_on":"2010-09-14 17:00:46","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2SRMWBT","audio_zip_path":"SRMWBTN2DA\/SRMWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SRMWBTN2ET","fcbh_id":"SRMWBTN2ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SRM","language_name":"Saramaccan","language_english":"Saramaccan","language_iso":"srm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Saramaccan","language_family_code":"SRM","language_family_name":"Saramaccan","language_family_english":"Saramaccan","language_family_iso":"srm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:37","created_on":"2010-11-25 20:49:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2SRMWBT","audio_zip_path":"SRMWBTN2ET\/SRMWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SRNBSSN2DA","fcbh_id":"SRNBSSN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SRN","language_name":"Sranan Tongo","language_english":"Sranan Tongo","language_iso":"srn","language_iso_2B":"srn","language_iso_2T":"srn","language_iso_1":"","language_iso_name":"Sranan Tongo","language_family_code":"SRN","language_family_name":"Sranan Tongo","language_family_english":"Sranan Tongo","language_family_iso":"srn","language_family_iso_2B":"srn","language_family_iso_2T":"srn","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-05-22 16:14:58","created_on":"2010-09-14 17:00:46","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2SRNBSS","audio_zip_path":"SRNBSSN2DA\/SRNBSSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SRNBSSN2ET","fcbh_id":"SRNBSSN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SRN","language_name":"Sranan Tongo","language_english":"Sranan Tongo","language_iso":"srn","language_iso_2B":"srn","language_iso_2T":"srn","language_iso_1":"","language_iso_name":"Sranan Tongo","language_family_code":"SRN","language_family_name":"Sranan Tongo","language_family_english":"Sranan Tongo","language_family_iso":"srn","language_family_iso_2B":"srn","language_family_iso_2T":"srn","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:00","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2SRNBSS","audio_zip_path":"SRNBSSN2ET\/SRNBSSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SRRBSSN2DA","fcbh_id":"SRRBSSN2DA","volume_name":"1987 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SRR","language_name":"Seereer","language_english":"Seereer","language_iso":"srr","language_iso_2B":"srr","language_iso_2T":"srr","language_iso_1":"","language_iso_name":"Serer","language_family_code":"SRR","language_family_name":"Seereer","language_family_english":"Seereer","language_family_iso":"srr","language_family_iso_2B":"srr","language_family_iso_2T":"srr","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:03","created_on":"2010-11-25 20:50:13","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2SRRBSS","audio_zip_path":"SRRBSSN2DA\/SRRBSSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SSGWBTN2ET","fcbh_id":"SSGWBTN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SSG","language_name":"Seimat","language_english":"Seimat","language_iso":"ssg","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Seimat","language_family_code":"SSG","language_family_name":"Seimat","language_family_english":"Seimat","language_family_iso":"ssg","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 21:09:39","created_on":"2014-07-18 15:40:41","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SSGWBTN2ET\/SSGWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"STNBSPN1DA","fcbh_id":"STNBSPN1DA","volume_name":"BSSP Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"STN","language_name":"Owa","language_english":"Owa","language_iso":"stn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Owa","language_family_code":"STN","language_family_name":"Owa","language_family_english":"Owa","language_family_iso":"stn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-05 22:34:09","created_on":"2017-05-05 22:01:48","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"STNBSPN1DA\/STNBSPN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"STNBSPN1ET","fcbh_id":"STNBSPN1ET","volume_name":"BSSP Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"STN","language_name":"Owa","language_english":"Owa","language_iso":"stn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Owa","language_family_code":"STN","language_family_name":"Owa","language_family_english":"Owa","language_family_iso":"stn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-08 16:00:08","created_on":"2017-05-05 21:59:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"STNBSPN1ET\/STNBSPN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"STNBSPN2DA","fcbh_id":"STNBSPN2DA","volume_name":"BSSP Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"STN","language_name":"Owa","language_english":"Owa","language_iso":"stn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Owa","language_family_code":"STN","language_family_name":"Owa","language_family_english":"Owa","language_family_iso":"stn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-05 22:28:58","created_on":"2015-01-15 16:45:31","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"STNBSPN2DA\/STNBSPN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"STNBSPN2ET","fcbh_id":"STNBSPN2ET","volume_name":"BSSP Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"STN","language_name":"Owa","language_english":"Owa","language_iso":"stn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Owa","language_family_code":"STN","language_family_name":"Owa","language_family_english":"Owa","language_family_iso":"stn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:21","created_on":"2011-10-17 16:48:37","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"STNBSPN2ET\/STNBSPN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"STPTBLN1DA","fcbh_id":"STPTBLN1DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"STP","language_name":"Tepehuan de Durango","language_english":"Tepehuan de Durango","language_iso":"stp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southeastern Tepehuan","language_family_code":"STP","language_family_name":"Tepehuan de Durango","language_family_english":"Tepehuan de Durango","language_family_iso":"stp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 19:28:08","created_on":"2010-09-14 17:01:22","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1STPTBL","audio_zip_path":"STPTBLN1DA\/STPTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"STPTBLN1ET","fcbh_id":"STPTBLN1ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"STP","language_name":"Tepehuan de Durango","language_english":"Tepehuan de Durango","language_iso":"stp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Southeastern Tepehuan","language_family_code":"STP","language_family_name":"Tepehuan de Durango","language_family_english":"Tepehuan de Durango","language_family_iso":"stp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:21","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1STPTBL","audio_zip_path":"STPTBLN1ET\/STPTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SUACLVN2DA","fcbh_id":"SUACLVN2DA","volume_name":"Common Language Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUA","language_name":"Kisukuma","language_english":"Kisukuma","language_iso":"suk","language_iso_2B":"suk","language_iso_2T":"suk","language_iso_1":"","language_iso_name":"Sukuma","language_family_code":"SUA","language_family_name":"Kisukuma","language_family_english":"Kisukuma","language_family_iso":"suk","language_family_iso_2B":"suk","language_family_iso_2T":"suk","language_family_iso_1":"","version_code":"CLV","version_name":"Common Language Version","version_english":"Common Language Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-04 20:14:30","created_on":"2010-09-14 17:00:47","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2SUACLV","audio_zip_path":"SUACLVN2DA\/SUACLVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SUACLVN2ET","fcbh_id":"SUACLVN2ET","volume_name":"Common Language Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUA","language_name":"Kisukuma","language_english":"Kisukuma","language_iso":"suk","language_iso_2B":"suk","language_iso_2T":"suk","language_iso_1":"","language_iso_name":"Sukuma","language_family_code":"SUA","language_family_name":"Kisukuma","language_family_english":"Kisukuma","language_family_iso":"suk","language_family_iso_2B":"suk","language_family_iso_2T":"suk","language_family_iso_1":"","version_code":"CLV","version_name":"Common Language Version","version_english":"Common Language Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:01","created_on":"2011-10-10 16:30:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SUACLVN2ET\/SUACLVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SUEWBTN2ET","fcbh_id":"SUEWBTN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUE","language_name":"Suena","language_english":"Suena","language_iso":"sue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Suena","language_family_code":"SUE","language_family_name":"Suena","language_family_english":"Suena","language_family_iso":"sue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 21:37:28","created_on":"2014-07-18 15:51:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SUEWBTN2ET\/SUEWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SUKTBLN2ET","fcbh_id":"SUKTBLN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUK","language_name":"Sulka","language_english":"Sulka","language_iso":"suk","language_iso_2B":"suk","language_iso_2T":"suk","language_iso_1":"","language_iso_name":"Sukuma","language_family_code":"SUK","language_family_name":"Sulka","language_family_english":"Sulka","language_family_iso":"suk","language_family_iso_2B":"suk","language_family_iso_2T":"suk","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-17 22:56:21","created_on":"2011-10-18 18:24:35","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SUKTBLN2ET\/SUKTBLN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SUNIBSN2DA","fcbh_id":"SUNIBSN2DA","volume_name":"Formal Sundanese Version, 1997","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUN","language_name":"Sundanese","language_english":"Sundanese","language_iso":"sun","language_iso_2B":"sun","language_iso_2T":"sun","language_iso_1":"su","language_iso_name":"Sundanese","language_family_code":"SUN","language_family_name":"Sundanese","language_family_english":"Sundanese","language_family_iso":"sun","language_family_iso_2B":"sun","language_family_iso_2T":"sun","language_family_iso_1":"su","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-17 22:57:41","created_on":"2010-09-14 17:00:47","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2SUNIBS","audio_zip_path":"SUNIBSN2DA\/SUNIBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SUNIBSN2ET","fcbh_id":"SUNIBSN2ET","volume_name":"Formal Sundanese Version, 1997","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUN","language_name":"Sundanese","language_english":"Sundanese","language_iso":"sun","language_iso_2B":"sun","language_iso_2T":"sun","language_iso_1":"su","language_iso_name":"Sundanese","language_family_code":"SUN","language_family_name":"Sundanese","language_family_english":"Sundanese","language_family_iso":"sun","language_family_iso_2B":"sun","language_family_iso_2T":"sun","language_family_iso_1":"su","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:23:02","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2SUNIBS","audio_zip_path":"SUNIBSN2ET\/SUNIBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SUNTSVN1DA","fcbh_id":"SUNTSVN1DA","volume_name":"Today's Version 1991 (Nganggo Basa Sunda Sadidinten)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUN","language_name":"Sundanese","language_english":"Sundanese","language_iso":"sun","language_iso_2B":"sun","language_iso_2T":"sun","language_iso_1":"su","language_iso_name":"Sundanese","language_family_code":"SUN","language_family_name":"Sundanese","language_family_english":"Sundanese","language_family_iso":"sun","language_family_iso_2B":"sun","language_family_iso_2T":"sun","language_family_iso_1":"su","version_code":"TSV","version_name":"Nganggo Basa Sunda Sadidinten","version_english":"Today's Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:37:09","created_on":"2016-10-21 20:05:38","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SUNTSVN1DA\/SUNTSVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SUNTSVN2DA","fcbh_id":"SUNTSVN2DA","volume_name":"Today's Version 1991 (Nganggo Basa Sunda Sadidinten)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUN","language_name":"Sundanese","language_english":"Sundanese","language_iso":"sun","language_iso_2B":"sun","language_iso_2T":"sun","language_iso_1":"su","language_iso_name":"Sundanese","language_family_code":"SUN","language_family_name":"Sundanese","language_family_english":"Sundanese","language_family_iso":"sun","language_family_iso_2B":"sun","language_family_iso_2T":"sun","language_family_iso_1":"su","version_code":"TSV","version_name":"Nganggo Basa Sunda Sadidinten","version_english":"Today's Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:37:08","created_on":"2016-10-21 20:07:58","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SUNTSVN2DA\/SUNTSVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SURIBSN2DA","fcbh_id":"SURIBSN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUR","language_name":"Mwaghavul","language_english":"Mwaghavul","language_iso":"sur","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mwaghavul","language_family_code":"SUR","language_family_name":"Mwaghavul","language_family_english":"Mwaghavul","language_family_iso":"sur","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-12 20:17:55","created_on":"2010-09-14 17:00:47","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2SURIBS","audio_zip_path":"SURIBSN2DA\/SURIBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SURIBSN2ET","fcbh_id":"SURIBSN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUR","language_name":"Mwaghavul","language_english":"Mwaghavul","language_iso":"sur","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mwaghavul","language_family_code":"SUR","language_family_name":"Mwaghavul","language_family_english":"Mwaghavul","language_family_iso":"sur","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:20","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2SURIBS","audio_zip_path":"SURIBSN2ET\/SURIBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SUSPBTN2DA","fcbh_id":"SUSPBTN2DA","volume_name":"PBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUS","language_name":"Susu","language_english":"Susu","language_iso":"sus","language_iso_2B":"sus","language_iso_2T":"sus","language_iso_1":"","language_iso_name":"Susu","language_family_code":"SUS","language_family_name":"Susu","language_family_english":"Susu","language_family_iso":"sus","language_family_iso_2B":"sus","language_family_iso_2T":"sus","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:01","created_on":"2012-10-08 16:04:57","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"SUSPBTN2DA\/SUSPBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SUSPBTN2ET","fcbh_id":"SUSPBTN2ET","volume_name":"PBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUS","language_name":"Susu","language_english":"Susu","language_iso":"sus","language_iso_2B":"sus","language_iso_2T":"sus","language_iso_1":"","language_iso_name":"Susu","language_family_code":"SUS","language_family_name":"Susu","language_family_english":"Susu","language_family_iso":"sus","language_family_iso_2B":"sus","language_family_iso_2T":"sus","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 18:11:26","created_on":"2011-10-18 19:00:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SUSPBTN2ET\/SUSPBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SUZWBTN1DA","fcbh_id":"SUZWBTN1DA","volume_name":"2011 Editon","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUZ","language_name":"Sunuwar","language_english":"Sunwar","language_iso":"suz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sunwar","language_family_code":"SUZ","language_family_name":"Sunuwar","language_family_english":"Sunwar","language_family_iso":"suz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-31 19:00:23","created_on":"2015-10-28 21:39:45","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SUZWBTN1DA\/SUZWBTN1DA.zip","font":{"id":"5","name":"Annapurna SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Annapurna_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SUZWBTN1ET","fcbh_id":"SUZWBTN1ET","volume_name":"2011 Editon","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUZ","language_name":"Sunuwar","language_english":"Sunwar","language_iso":"suz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sunwar","language_family_code":"SUZ","language_family_name":"Sunuwar","language_family_english":"Sunwar","language_family_iso":"suz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-08 16:02:17","created_on":"2015-10-28 21:40:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SUZWBTN1ET\/SUZWBTN1ET.zip","font":{"id":"5","name":"Annapurna SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Annapurna_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SUZWBTN2DA","fcbh_id":"SUZWBTN2DA","volume_name":"2011 Editon","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUZ","language_name":"Sunuwar","language_english":"Sunwar","language_iso":"suz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sunwar","language_family_code":"SUZ","language_family_name":"Sunuwar","language_family_english":"Sunwar","language_family_iso":"suz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-31 19:00:23","created_on":"2015-10-28 21:30:47","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SUZWBTN2DA\/SUZWBTN2DA.zip","font":{"id":"5","name":"Annapurna SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Annapurna_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SUZWBTN2ET","fcbh_id":"SUZWBTN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUZ","language_name":"Sunuwar","language_english":"Sunwar","language_iso":"suz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sunwar","language_family_code":"SUZ","language_family_name":"Sunuwar","language_family_english":"Sunwar","language_family_iso":"suz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:25","created_on":"2015-05-22 15:35:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SUZWBTN2ET\/SUZWBTN2ET.zip","font":{"id":"5","name":"Annapurna SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Annapurna_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SUZWBTO1ET","fcbh_id":"SUZWBTO1ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUZ","language_name":"Sunuwar","language_english":"Sunwar","language_iso":"suz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sunwar","language_family_code":"SUZ","language_family_name":"Sunuwar","language_family_english":"Sunwar","language_family_iso":"suz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2016-05-31 19:00:23","created_on":"2015-11-02 18:19:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SUZWBTO1ET\/SUZWBTO1ET.zip","font":{"id":"5","name":"Annapurna SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Annapurna_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SUZWBTO2ET","fcbh_id":"SUZWBTO2ET","volume_name":"2011 Editon","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SUZ","language_name":"Sunuwar","language_english":"Sunwar","language_iso":"suz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sunwar","language_family_code":"SUZ","language_family_name":"Sunuwar","language_family_english":"Sunwar","language_family_iso":"suz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2016-05-31 19:00:23","created_on":"2015-10-28 21:47:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SUZWBTO2ET\/SUZWBTO2ET.zip","font":{"id":"5","name":"Annapurna SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Annapurna_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SWAHNVN2DA","fcbh_id":"SWAHNVN2DA","volume_name":"Habari Njema (Interconfessional) Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SWA","language_name":"Kiswahili","language_english":"Kiswahili","language_iso":"swh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Swahili (individual language)","language_family_code":"SWA","language_family_name":"Kiswahili","language_family_english":"Kiswahili","language_family_iso":"swh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"HNV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:33","created_on":"2010-09-14 17:00:47","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2SWAHNV","audio_zip_path":"SWAHNVN2DA\/SWAHNVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SWAHNVS2DA","fcbh_id":"SWAHNVS2DA","volume_name":"Story - Old Testament - Habari Njema Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SWA","language_name":"Kiswahili","language_english":"Kiswahili","language_iso":"swh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Swahili (individual language)","language_family_code":"SWA","language_family_name":"Kiswahili","language_family_english":"Kiswahili","language_family_iso":"swh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"HNV","version_name":"","version_english":"","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-01-22 20:41:59","created_on":"2016-01-25 23:33:39","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SWAHNVS2DA\/SWAHNVS2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SWAUNBN1DA","fcbh_id":"SWAUNBN1DA","volume_name":"Habari Njema Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SWA","language_name":"Kiswahili","language_english":"Kiswahili","language_iso":"swh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Swahili (individual language)","language_family_code":"SWA","language_family_name":"Kiswahili","language_family_english":"Kiswahili","language_family_iso":"swh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UNB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:27","created_on":"2010-09-14 16:59:50","right_to_left":"false","num_art":"3","num_sample_audio":"2","sku":"N1SWAUNB","audio_zip_path":"SWAUNBN1DA\/SWAUNBN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SWCSBZN2DA","fcbh_id":"SWCSBZN2DA","volume_name":"1981 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SWC","language_name":"Kiswahili","language_english":"Kiswahili, Congo","language_iso":"swc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Congo Swahili","language_family_code":"SWC","language_family_name":"Kiswahili","language_family_english":"Kiswahili, Congo","language_family_iso":"swc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBZ","version_name":"Bible Society of the DRC","version_english":"Bible Society of the DRC","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 15:59:04","created_on":"2010-10-05 19:34:26","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2SWCSBZ","audio_zip_path":"SWCSBZN2DA\/SWCSBZN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SWES17N2ET","fcbh_id":"SWES17N2ET","volume_name":"1917 Swedish Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SWE","language_name":"Svenska","language_english":"Swedish","language_iso":"swe","language_iso_2B":"swe","language_iso_2T":"swe","language_iso_1":"sv","language_iso_name":"Swedish","language_family_code":"SWE","language_family_name":"Svenska","language_family_english":"Swedish","language_family_iso":"swe","language_family_iso_2B":"swe","language_family_iso_2T":"swe","language_family_iso_1":"sv","version_code":"S17","version_name":"1917 Swedish Bible","version_english":"1917 Swedish Bible","collection_code":"NT","rich":"0","collection_name":"Nya testamentet","updated_on":"2018-09-18 01:49:45","created_on":"2010-09-14 17:01:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SWES17N2ET\/SWES17N2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SWES17O2ET","fcbh_id":"SWES17O2ET","volume_name":"1917 Swedish Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SWE","language_name":"Svenska","language_english":"Swedish","language_iso":"swe","language_iso_2B":"swe","language_iso_2T":"swe","language_iso_1":"sv","language_iso_name":"Swedish","language_family_code":"SWE","language_family_name":"Svenska","language_family_english":"Swedish","language_family_iso":"swe","language_family_iso_2B":"swe","language_family_iso_2T":"swe","language_family_iso_1":"sv","version_code":"S17","version_name":"1917 Swedish Bible","version_english":"1917 Swedish Bible","collection_code":"OT","rich":"0","collection_name":"Gamla testamentet","updated_on":"2018-09-18 02:04:55","created_on":"2010-09-14 17:01:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SWES17O2ET\/SWES17O2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SWESFBN2DA","fcbh_id":"SWESFBN2DA","volume_name":"1998 Stiftelsen Svenska Folkbibeln Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SWE","language_name":"Svenska","language_english":"Swedish","language_iso":"swe","language_iso_2B":"swe","language_iso_2T":"swe","language_iso_1":"sv","language_iso_name":"Swedish","language_family_code":"SWE","language_family_name":"Svenska","language_family_english":"Swedish","language_family_iso":"swe","language_family_iso_2B":"swe","language_family_iso_2T":"swe","language_family_iso_1":"sv","version_code":"SFB","version_name":"Stiftelsen Svenska Folkbibeln","version_english":"Stiftelsen Svenska Folkbibeln","collection_code":"NT","rich":"0","collection_name":"Nya testamentet","updated_on":"2017-12-14 20:15:52","created_on":"2014-04-21 20:48:01","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"SWESFBN2DA\/SWESFBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SWESFBN2ET","fcbh_id":"SWESFBN2ET","volume_name":"1998 Stiftelsen Svenska Folkbibeln Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SWE","language_name":"Svenska","language_english":"Swedish","language_iso":"swe","language_iso_2B":"swe","language_iso_2T":"swe","language_iso_1":"sv","language_iso_name":"Swedish","language_family_code":"SWE","language_family_name":"Svenska","language_family_english":"Swedish","language_family_iso":"swe","language_family_iso_2B":"swe","language_family_iso_2T":"swe","language_family_iso_1":"sv","version_code":"SFB","version_name":"Stiftelsen Svenska Folkbibeln","version_english":"Stiftelsen Svenska Folkbibeln","collection_code":"NT","rich":"0","collection_name":"Nya testamentet","updated_on":"2018-11-26 16:46:41","created_on":"2014-04-21 17:28:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SWESFBN2ET\/SWESFBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SWESFBO2ET","fcbh_id":"SWESFBO2ET","volume_name":"1998 Stiftelsen Svenska Folkbibeln Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SWE","language_name":"Svenska","language_english":"Swedish","language_iso":"swe","language_iso_2B":"swe","language_iso_2T":"swe","language_iso_1":"sv","language_iso_name":"Swedish","language_family_code":"SWE","language_family_name":"Svenska","language_family_english":"Swedish","language_family_iso":"swe","language_family_iso_2B":"swe","language_family_iso_2T":"swe","language_family_iso_1":"sv","version_code":"SFB","version_name":"Stiftelsen Svenska Folkbibeln","version_english":"Stiftelsen Svenska Folkbibeln","collection_code":"OT","rich":"0","collection_name":"Gamla testamentet","updated_on":"2017-12-14 20:15:52","created_on":"2014-05-14 17:03:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SWESFBO2ET\/SWESFBO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"SWESFVN1DA","fcbh_id":"SWESFVN1DA","volume_name":"2015 Stiftelsen Svenska Folkbibeln","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SWE","language_name":"Svenska","language_english":"Swedish","language_iso":"swe","language_iso_2B":"swe","language_iso_2T":"swe","language_iso_1":"sv","language_iso_name":"Swedish","language_family_code":"SWE","language_family_name":"Svenska","language_family_english":"Swedish","language_family_iso":"swe","language_family_iso_2B":"swe","language_family_iso_2T":"swe","language_family_iso_1":"sv","version_code":"SFV","version_name":"SFV","version_english":"SFV","collection_code":"NT","rich":"0","collection_name":"Nya testamentet","updated_on":"2018-03-13 15:59:06","created_on":"2017-06-22 17:37:52","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SWESFVN1DA\/SWESFVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SWESFVN1ET","fcbh_id":"SWESFVN1ET","volume_name":"2015 Stiftelsen Svenska Folkbibeln","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SWE","language_name":"Svenska","language_english":"Swedish","language_iso":"swe","language_iso_2B":"swe","language_iso_2T":"swe","language_iso_1":"sv","language_iso_name":"Swedish","language_family_code":"SWE","language_family_name":"Svenska","language_family_english":"Swedish","language_family_iso":"swe","language_family_iso_2B":"swe","language_family_iso_2T":"swe","language_family_iso_1":"sv","version_code":"SFV","version_name":"SFV","version_english":"SFV","collection_code":"NT","rich":"0","collection_name":"Nya testamentet","updated_on":"2017-12-14 20:15:52","created_on":"2017-12-14 18:14:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SWESFVN1ET\/SWESFVN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SWESFVN2DA","fcbh_id":"SWESFVN2DA","volume_name":"2015 Stiftelsen Svenska Folkbibeln","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SWE","language_name":"Svenska","language_english":"Swedish","language_iso":"swe","language_iso_2B":"swe","language_iso_2T":"swe","language_iso_1":"sv","language_iso_name":"Swedish","language_family_code":"SWE","language_family_name":"Svenska","language_family_english":"Swedish","language_family_iso":"swe","language_family_iso_2B":"swe","language_family_iso_2T":"swe","language_family_iso_1":"sv","version_code":"SFV","version_name":"SFV","version_english":"SFV","collection_code":"NT","rich":"0","collection_name":"Nya testamentet","updated_on":"2018-01-08 17:53:44","created_on":"2017-06-22 17:34:09","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"SWESFVN2DA\/SWESFVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SWESFVN2ET","fcbh_id":"SWESFVN2ET","volume_name":"2015 Stiftelsen Svenska Folkbibeln","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SWE","language_name":"Svenska","language_english":"Swedish","language_iso":"swe","language_iso_2B":"swe","language_iso_2T":"swe","language_iso_1":"sv","language_iso_name":"Swedish","language_family_code":"SWE","language_family_name":"Svenska","language_family_english":"Swedish","language_family_iso":"swe","language_family_iso_2B":"swe","language_family_iso_2T":"swe","language_family_iso_1":"sv","version_code":"SFV","version_name":"SFV","version_english":"SFV","collection_code":"NT","rich":"0","collection_name":"Nya testamentet","updated_on":"2017-12-14 20:15:52","created_on":"2017-12-14 18:11:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SWESFVN2ET\/SWESFVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SWESFVO1ET","fcbh_id":"SWESFVO1ET","volume_name":"2015 Stiftelsen Svenska Folkbibeln","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SWE","language_name":"Svenska","language_english":"Swedish","language_iso":"swe","language_iso_2B":"swe","language_iso_2T":"swe","language_iso_1":"sv","language_iso_name":"Swedish","language_family_code":"SWE","language_family_name":"Svenska","language_family_english":"Swedish","language_family_iso":"swe","language_family_iso_2B":"swe","language_family_iso_2T":"swe","language_family_iso_1":"sv","version_code":"SFV","version_name":"SFV","version_english":"SFV","collection_code":"OT","rich":"0","collection_name":"Gamla testamentet","updated_on":"2017-12-14 20:15:52","created_on":"2017-12-14 18:17:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SWESFVO1ET\/SWESFVO1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SWESFVO2ET","fcbh_id":"SWESFVO2ET","volume_name":"2015 Stiftelsen Svenska Folkbibeln","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SWE","language_name":"Svenska","language_english":"Swedish","language_iso":"swe","language_iso_2B":"swe","language_iso_2T":"swe","language_iso_1":"sv","language_iso_name":"Swedish","language_family_code":"SWE","language_family_name":"Svenska","language_family_english":"Swedish","language_family_iso":"swe","language_family_iso_2B":"swe","language_family_iso_2T":"swe","language_family_iso_1":"sv","version_code":"SFV","version_name":"SFV","version_english":"SFV","collection_code":"OT","rich":"0","collection_name":"Gamla testamentet","updated_on":"2017-12-14 20:15:52","created_on":"2017-12-14 18:15:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SWESFVO2ET\/SWESFVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"SWKBSMN2DA","fcbh_id":"SWKBSMN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"SWK","language_name":"Chisena","language_english":"Sena, Malawi","language_iso":"swk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Malawi Sena","language_family_code":"SWK","language_family_name":"Chisena","language_family_english":"Sena, Malawi","language_family_iso":"swk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-06 00:21:30","created_on":"2010-09-14 17:00:48","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2SWKBSM","audio_zip_path":"SWKBSMN2DA\/SWKBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"SXNLAIN2DA","fcbh_id":"SXNLAIN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SXN","language_name":"Sangir","language_english":"Sangir","language_iso":"sxn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sangir","language_family_code":"SXN","language_family_name":"Sangir","language_family_english":"Sangir","language_family_iso":"sxn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:04","created_on":"2013-05-07 16:24:40","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"SXNLAIN2DA\/SXNLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"SXNLAIN2ET","fcbh_id":"SXNLAIN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"SXN","language_name":"Sangir","language_english":"Sangir","language_iso":"sxn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sangir","language_family_code":"SXN","language_family_name":"Sangir","language_family_english":"Sangir","language_family_iso":"sxn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-18 18:09:08","created_on":"2012-07-06 16:06:15","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"SXNLAIN2ET\/SXNLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TABIBTN2ET","fcbh_id":"TABIBTN2ET","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TAB","language_name":"Tabassaran","language_english":"Tabassaran","language_iso":"tab","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tabassaran","language_family_code":"TAB","language_family_name":"Tabassaran","language_family_english":"Tabassaran","language_family_iso":"tab","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:14","created_on":"2011-08-15 16:53:47","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TABIBTN2ET\/TABIBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TACPBCN1DA","fcbh_id":"TACPBCN1DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TAC","language_name":"Tarahumara Baja","language_english":"Tarahumara Baja","language_iso":"tac","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lowland Tarahumara","language_family_code":"TAC","language_family_name":"Tarahumara Baja","language_family_english":"Tarahumara Baja","language_family_iso":"tac","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBC","version_name":"Peninsula Bible Church","version_english":"Peninsula Bible Church","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 19:19:25","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"TACPBCN1DA\/TACPBCN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TACPBCN1ET","fcbh_id":"TACPBCN1ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TAC","language_name":"Tarahumara Baja","language_english":"Tarahumara Baja","language_iso":"tac","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lowland Tarahumara","language_family_code":"TAC","language_family_name":"Tarahumara Baja","language_family_english":"Tarahumara Baja","language_family_iso":"tac","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBC","version_name":"Peninsula Bible Church","version_english":"Peninsula Bible Church","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:21","created_on":"2012-02-20 22:49:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TACPBCN1ET\/TACPBCN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TAJWBTN2DA","fcbh_id":"TAJWBTN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TAJ","language_name":"Tamang, Eastern","language_english":"Tamang, Eastern","language_iso":"taj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Tamang","language_family_code":"TAJ","language_family_name":"Tamang, Eastern","language_family_english":"Tamang, Eastern","language_family_iso":"taj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:05","created_on":"2012-06-04 19:55:23","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"TAJWBTN2DA\/TAJWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TAJWBTN2ET","fcbh_id":"TAJWBTN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TAJ","language_name":"Tamang, Eastern","language_english":"Tamang, Eastern","language_iso":"taj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Tamang","language_family_code":"TAJ","language_family_name":"Tamang, Eastern","language_family_english":"Tamang, Eastern","language_family_iso":"taj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:14","created_on":"2012-02-28 22:09:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TAJWBTN2ET\/TAJWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TAPWFWN2ET","fcbh_id":"TAPWFWN2ET","volume_name":"WWBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TAP","language_name":"Taabwa","language_english":"Taabwa","language_iso":"tap","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Taabwa","language_family_code":"TAP","language_family_name":"Taabwa","language_family_english":"Taabwa","language_family_iso":"tap","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WFW","version_name":"World for World","version_english":"World for World","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 18:23:30","created_on":"2014-10-21 18:15:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TAPWFWN2ET\/TAPWFWN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","mp3_cd"],"resolution":[]},{"dam_id":"TAQWBTN1DA","fcbh_id":"TAQWBTN1DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TAQ","language_name":"Tamasheq","language_english":"Tamasheq","language_iso":"taq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tamasheq","language_family_code":"TAQ","language_family_name":"Tamasheq","language_family_english":"Tamasheq","language_family_iso":"taq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:05","created_on":"2010-09-14 16:59:50","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1TAQWBT","audio_zip_path":"TAQWBTN1DA\/TAQWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TAQWBTN1ET","fcbh_id":"TAQWBTN1ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TAQ","language_name":"Tamasheq","language_english":"Tamasheq","language_iso":"taq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tamasheq","language_family_code":"TAQ","language_family_name":"Tamasheq","language_family_english":"Tamasheq","language_family_iso":"taq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:17","created_on":"2012-02-23 00:02:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TAQWBTN1ET\/TAQWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TAQWBTN2DA","fcbh_id":"TAQWBTN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TAQ","language_name":"Tamasheq","language_english":"Tamasheq","language_iso":"taq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tamasheq","language_family_code":"TAQ","language_family_name":"Tamasheq","language_family_english":"Tamasheq","language_family_iso":"taq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-11 21:16:58","created_on":"2010-09-14 17:00:48","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TAQWBT","audio_zip_path":"TAQWBTN2DA\/TAQWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TAQWBTN2ET","fcbh_id":"TAQWBTN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TAQ","language_name":"Tamasheq","language_english":"Tamasheq","language_iso":"taq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tamasheq","language_family_code":"TAQ","language_family_name":"Tamasheq","language_family_english":"Tamasheq","language_family_iso":"taq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:17","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2TAQWBT","audio_zip_path":"TAQWBTN2ET\/TAQWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TAVWBTN1DA","fcbh_id":"TAVWBTN1DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TAV","language_name":"Tatuyo","language_english":"Tatuyo","language_iso":"tav","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tatuyo","language_family_code":"TAV","language_family_name":"Tatuyo","language_family_english":"Tatuyo","language_family_iso":"tav","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-17 17:15:59","created_on":"2018-06-25 14:45:47","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TAVWBTN1DA\/TAVWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TAVWBTN1ET","fcbh_id":"TAVWBTN1ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TAV","language_name":"Tatuyo","language_english":"Tatuyo","language_iso":"tav","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tatuyo","language_family_code":"TAV","language_family_name":"Tatuyo","language_family_english":"Tatuyo","language_family_iso":"tav","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-17 17:22:44","created_on":"2018-06-25 15:41:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TAVWBTN1ET\/TAVWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TAVWBTN2DA","fcbh_id":"TAVWBTN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TAV","language_name":"Tatuyo","language_english":"Tatuyo","language_iso":"tav","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tatuyo","language_family_code":"TAV","language_family_name":"Tatuyo","language_family_english":"Tatuyo","language_family_iso":"tav","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-17 17:23:04","created_on":"2018-06-25 15:52:21","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TAVWBTN2DA\/TAVWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TAVWBTN2ET","fcbh_id":"TAVWBTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TAV","language_name":"Tatuyo","language_english":"Tatuyo","language_iso":"tav","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tatuyo","language_family_code":"TAV","language_family_name":"Tatuyo","language_family_english":"Tatuyo","language_family_iso":"tav","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:15","created_on":"2012-08-13 19:33:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TAVWBTN2ET\/TAVWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TBCPNGN2DA","fcbh_id":"TBCPNGN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TBC","language_name":"Takia","language_english":"Takia","language_iso":"tbc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Takia","language_family_code":"TBC","language_family_name":"Takia","language_family_english":"Takia","language_family_iso":"tbc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:06","created_on":"2011-11-08 21:16:33","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"TBCPNGN2DA\/TBCPNGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TBCPNGN2ET","fcbh_id":"TBCPNGN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TBC","language_name":"Takia","language_english":"Takia","language_iso":"tbc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Takia","language_family_code":"TBC","language_family_name":"Takia","language_family_english":"Takia","language_family_iso":"tbc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:19","created_on":"2011-05-30 17:52:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TBCPNGN2ET\/TBCPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TBLWYIN1DA","fcbh_id":"TBLWYIN1DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TBL","language_name":"Tboli","language_english":"Tboli","language_iso":"tbl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tboli","language_family_code":"TBL","language_family_name":"Tboli","language_family_english":"Tboli","language_family_iso":"tbl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-18 00:16:08","created_on":"2018-09-08 21:07:04","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TBLWYIN1DA\/TBLWYIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"TBLWYIN2DA","fcbh_id":"TBLWYIN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TBL","language_name":"Tboli","language_english":"Tboli","language_iso":"tbl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tboli","language_family_code":"TBL","language_family_name":"Tboli","language_family_english":"Tboli","language_family_iso":"tbl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-08 21:40:22","created_on":"2018-09-08 20:53:24","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TBLWYIN2DA\/TBLWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"TBOWBTN2ET","fcbh_id":"TBOWBTN2ET","volume_name":"1985 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TBO","language_name":"Tawala","language_english":"Tawala","language_iso":"tbo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tawala","language_family_code":"TBO","language_family_name":"Tawala","language_family_english":"Tawala","language_family_iso":"tbo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 21:56:43","created_on":"2014-07-11 15:55:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TBOWBTN2ET\/TBOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TBTWBTN1DA","fcbh_id":"TBTWBTN1DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TBT","language_name":"Tembo (Kitembo)","language_english":"Tembo (Kitembo)","language_iso":"tbt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tembo (Kitembo)","language_family_code":"TBT","language_family_name":"Tembo (Kitembo)","language_family_english":"Tembo (Kitembo)","language_family_iso":"tbt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:13","created_on":"2017-09-18 17:26:34","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TBTWBTN1DA\/TBTWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TBTWBTN2DA","fcbh_id":"TBTWBTN2DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TBT","language_name":"Tembo (Kitembo)","language_english":"Tembo (Kitembo)","language_iso":"tbt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tembo (Kitembo)","language_family_code":"TBT","language_family_name":"Tembo (Kitembo)","language_family_english":"Tembo (Kitembo)","language_family_iso":"tbt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:13","created_on":"2017-09-18 17:23:14","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TBTWBTN2DA\/TBTWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TBYLAIN2DA","fcbh_id":"TBYLAIN2DA","volume_name":"Today's Tabaru Version, 2008","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TBY","language_name":"Tabaru","language_english":"Tabaru","language_iso":"tby","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tabaru","language_family_code":"TBY","language_family_name":"Tabaru","language_family_english":"Tabaru","language_family_iso":"tby","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:06","created_on":"2011-10-14 15:39:32","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"TBYLAIN2DA\/TBYLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TBYLAIN2ET","fcbh_id":"TBYLAIN2ET","volume_name":"Today's Tabaru Version, 2008","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TBY","language_name":"Tabaru","language_english":"Tabaru","language_iso":"tby","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tabaru","language_family_code":"TBY","language_family_name":"Tabaru","language_family_english":"Tabaru","language_family_iso":"tby","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-08 19:10:17","created_on":"2011-05-30 17:54:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TBYLAIN2ET\/TBYLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TBZBSBN2DA","fcbh_id":"TBZBSBN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TBZ","language_name":"Ditammari","language_english":"Ditammari","language_iso":"tbz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ditammari","language_family_code":"TBZ","language_family_name":"Ditammari","language_family_english":"Ditammari","language_family_iso":"tbz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-08-26 18:20:14","created_on":"2010-09-14 17:00:48","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TBZBSB","audio_zip_path":"TBZBSBN2DA\/TBZBSBN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TBZBSBN2ET","fcbh_id":"TBZBSBN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TBZ","language_name":"Ditammari","language_english":"Ditammari","language_iso":"tbz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ditammari","language_family_code":"TBZ","language_family_name":"Ditammari","language_family_english":"Ditammari","language_family_iso":"tbz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:22","created_on":"2012-06-22 16:14:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TBZBSBN2ET\/TBZBSBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TBZBSBO2ET","fcbh_id":"TBZBSBO2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TBZ","language_name":"Ditammari","language_english":"Ditammari","language_iso":"tbz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ditammari","language_family_code":"TBZ","language_family_name":"Ditammari","language_family_english":"Ditammari","language_family_iso":"tbz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSB","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:22","created_on":"2012-06-22 16:22:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TBZBSBO2ET\/TBZBSBO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TCATBLN2DA","fcbh_id":"TCATBLN2DA","volume_name":"1986 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TCA","language_name":"Ticuna","language_english":"Ticuna","language_iso":"tca","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ticuna","language_family_code":"TCA","language_family_name":"Ticuna","language_family_english":"Ticuna","language_family_iso":"tca","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 19:33:40","created_on":"2010-10-05 19:34:27","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2TCATBL","audio_zip_path":"TCATBLN2DA\/TCATBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TCATBLN2ET","fcbh_id":"TCATBLN2ET","volume_name":"1986 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TCA","language_name":"Ticuna","language_english":"Ticuna","language_iso":"tca","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ticuna","language_family_code":"TCA","language_family_name":"Ticuna","language_family_english":"Ticuna","language_family_iso":"tca","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 19:33:26","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2TCATBL","audio_zip_path":"TCATBLN2ET\/TCATBLN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TCCBSTN1DA","fcbh_id":"TCCBSTN1DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TCC","language_name":"Datooga","language_english":"Datooga","language_iso":"tcc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Datooga","language_family_code":"TCC","language_family_name":"Datooga","language_family_english":"Datooga","language_family_iso":"tcc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-29 16:26:47","created_on":"2015-05-28 15:48:41","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"TCCBSTN1DA\/TCCBSTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TCCBSTN1ET","fcbh_id":"TCCBSTN1ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TCC","language_name":"Datooga","language_english":"Datooga","language_iso":"tcc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Datooga","language_family_code":"TCC","language_family_name":"Datooga","language_family_english":"Datooga","language_family_iso":"tcc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:10","created_on":"2015-06-04 16:02:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TCCBSTN1ET\/TCCBSTN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TCCBSTN2DA","fcbh_id":"TCCBSTN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TCC","language_name":"Datooga","language_english":"Datooga","language_iso":"tcc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Datooga","language_family_code":"TCC","language_family_name":"Datooga","language_family_english":"Datooga","language_family_iso":"tcc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-29 16:26:47","created_on":"2010-09-14 17:01:23","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2TCCBST","audio_zip_path":"TCCBSTN2DA\/TCCBSTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TCCBSTN2ET","fcbh_id":"TCCBSTN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TCC","language_name":"Datooga","language_english":"Datooga","language_iso":"tcc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Datooga","language_family_code":"TCC","language_family_name":"Datooga","language_family_english":"Datooga","language_family_iso":"tcc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:09","created_on":"2010-09-14 17:01:24","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2TCCBST","audio_zip_path":"TCCBSTN2ET\/TCCBSTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TCVWTCN1DA","fcbh_id":"TCVWTCN1DA","volume_name":"Easy-to-Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TCV","language_name":"\u0ba4\u0bae\u0bbf\u0bb4\u0bcd","language_english":"Tamil","language_iso":"tam","language_iso_2B":"tam","language_iso_2T":"tam","language_iso_1":"ta","language_iso_name":"Tamil","language_family_code":"TCV","language_family_name":"\u0ba4\u0bae\u0bbf\u0bb4\u0bcd","language_family_english":"Tamil","language_family_iso":"tam","language_family_iso_2B":"tam","language_family_iso_2T":"tam","language_family_iso_1":"ta","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-03 16:29:45","created_on":"2016-10-03 16:04:43","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TCVWTCN1DA\/TCVWTCN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TCVWTCN1ET","fcbh_id":"TCVWTCN1ET","volume_name":"Easy-to-Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TCV","language_name":"\u0ba4\u0bae\u0bbf\u0bb4\u0bcd","language_english":"Tamil","language_iso":"tam","language_iso_2B":"tam","language_iso_2T":"tam","language_iso_1":"ta","language_iso_name":"Tamil","language_family_code":"TCV","language_family_name":"\u0ba4\u0bae\u0bbf\u0bb4\u0bcd","language_family_english":"Tamil","language_family_iso":"tam","language_family_iso_2B":"tam","language_family_iso_2T":"tam","language_family_iso_1":"ta","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-21 19:42:43","created_on":"2016-10-03 16:31:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TCVWTCN1ET\/TCVWTCN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TCVWTCN2DA","fcbh_id":"TCVWTCN2DA","volume_name":"Easy-to-Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TCV","language_name":"\u0ba4\u0bae\u0bbf\u0bb4\u0bcd","language_english":"Tamil","language_iso":"tam","language_iso_2B":"tam","language_iso_2T":"tam","language_iso_1":"ta","language_iso_name":"Tamil","language_family_code":"TCV","language_family_name":"\u0ba4\u0bae\u0bbf\u0bb4\u0bcd","language_family_english":"Tamil","language_family_iso":"tam","language_family_iso_2B":"tam","language_family_iso_2T":"tam","language_family_iso_1":"ta","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-03 16:23:25","created_on":"2016-10-03 16:05:27","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TCVWTCN2DA\/TCVWTCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TCVWTCN2ET","fcbh_id":"TCVWTCN2ET","volume_name":"Easy-to-Read Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TCV","language_name":"\u0ba4\u0bae\u0bbf\u0bb4\u0bcd","language_english":"Tamil","language_iso":"tam","language_iso_2B":"tam","language_iso_2T":"tam","language_iso_1":"ta","language_iso_name":"Tamil","language_family_code":"TCV","language_family_name":"\u0ba4\u0bae\u0bbf\u0bb4\u0bcd","language_family_english":"Tamil","language_family_iso":"tam","language_family_iso_2B":"tam","language_family_iso_2T":"tam","language_family_iso_1":"ta","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-21 19:42:44","created_on":"2011-08-30 18:20:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TCVWTCN2ET\/TCVWTCN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TCWWTCN1DA","fcbh_id":"TCWWTCN1DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TCW","language_name":"Telugu","language_english":"Telugu","language_iso":"tel","language_iso_2B":"tel","language_iso_2T":"tel","language_iso_1":"te","language_iso_name":"Telugu","language_family_code":"TCW","language_family_name":"Telugu","language_family_english":"Telugu","language_family_iso":"tel","language_family_iso_2B":"tel","language_family_iso_2T":"tel","language_family_iso_1":"te","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-26 15:30:54","created_on":"2016-01-19 22:16:31","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TCWWTCN1DA\/TCWWTCN1DA.zip","font":{"id":"67","name":"Lohit-Telugu","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Telugu","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2011-12 Lohit Fonts Project contributors","url":"http:\/\/bit.ly\/1y7P7iU"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TCWWTCN1ET","fcbh_id":"TCWWTCN1ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TCW","language_name":"Telugu","language_english":"Telugu","language_iso":"tel","language_iso_2B":"tel","language_iso_2T":"tel","language_iso_1":"te","language_iso_name":"Telugu","language_family_code":"TCW","language_family_name":"Telugu","language_family_english":"Telugu","language_family_iso":"tel","language_family_iso_2B":"tel","language_family_iso_2T":"tel","language_family_iso_1":"te","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-25 20:37:38","created_on":"2016-01-25 20:29:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TCWWTCN1ET\/TCWWTCN1ET.zip","font":{"id":"67","name":"Lohit-Telugu","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Telugu","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2011-12 Lohit Fonts Project contributors","url":"http:\/\/bit.ly\/1y7P7iU"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TCWWTCN2DA","fcbh_id":"TCWWTCN2DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TCW","language_name":"Telugu","language_english":"Telugu","language_iso":"tel","language_iso_2B":"tel","language_iso_2T":"tel","language_iso_1":"te","language_iso_name":"Telugu","language_family_code":"TCW","language_family_name":"Telugu","language_family_english":"Telugu","language_family_iso":"tel","language_family_iso_2B":"tel","language_family_iso_2T":"tel","language_family_iso_1":"te","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-26 15:31:52","created_on":"2016-01-19 22:09:17","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TCWWTCN2DA\/TCWWTCN2DA.zip","font":{"id":"67","name":"Lohit-Telugu","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Telugu","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2011-12 Lohit Fonts Project contributors","url":"http:\/\/bit.ly\/1y7P7iU"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TCWWTCN2ET","fcbh_id":"TCWWTCN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TCW","language_name":"Telugu","language_english":"Telugu","language_iso":"tel","language_iso_2B":"tel","language_iso_2T":"tel","language_iso_1":"te","language_iso_name":"Telugu","language_family_code":"TCW","language_family_name":"Telugu","language_family_english":"Telugu","language_family_iso":"tel","language_family_iso_2B":"tel","language_family_iso_2T":"tel","language_family_iso_1":"te","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-19 22:07:51","created_on":"2011-08-30 18:08:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TCWWTCN2ET\/TCWWTCN2ET.zip","font":{"id":"67","name":"Lohit-Telugu","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Telugu","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2011-12 Lohit Fonts Project contributors","url":"http:\/\/bit.ly\/1y7P7iU"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TCWWTCO1ET","fcbh_id":"TCWWTCO1ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TCW","language_name":"Telugu","language_english":"Telugu","language_iso":"tel","language_iso_2B":"tel","language_iso_2T":"tel","language_iso_1":"te","language_iso_name":"Telugu","language_family_code":"TCW","language_family_name":"Telugu","language_family_english":"Telugu","language_family_iso":"tel","language_family_iso_2B":"tel","language_family_iso_2T":"tel","language_family_iso_1":"te","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2016-01-25 20:48:11","created_on":"2016-01-25 20:32:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TCWWTCO1ET\/TCWWTCO1ET.zip","font":{"id":"67","name":"Lohit-Telugu","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Telugu","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2011-12 Lohit Fonts Project contributors","url":"http:\/\/bit.ly\/1y7P7iU"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TCWWTCO2ET","fcbh_id":"TCWWTCO2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TCW","language_name":"Telugu","language_english":"Telugu","language_iso":"tel","language_iso_2B":"tel","language_iso_2T":"tel","language_iso_1":"te","language_iso_name":"Telugu","language_family_code":"TCW","language_family_name":"Telugu","language_family_english":"Telugu","language_family_iso":"tel","language_family_iso_2B":"tel","language_family_iso_2T":"tel","language_family_iso_1":"te","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2016-01-19 22:08:24","created_on":"2011-08-30 18:10:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TCWWTCO2ET\/TCWWTCO2ET.zip","font":{"id":"67","name":"Lohit-Telugu","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Lohit_Telugu","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2011-12 Lohit Fonts Project contributors","url":"http:\/\/bit.ly\/1y7P7iU"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TEDWYIN2ET","fcbh_id":"TEDWYIN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TED","language_name":"Krumen Tepo","language_english":"Kroumen Tepo","language_iso":"ted","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tepo Krumen","language_family_code":"TED","language_family_name":"Krumen Tepo","language_family_english":"Kroumen Tepo","language_family_iso":"ted","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-09-29 18:02:28","created_on":"2015-09-21 22:49:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TEDWYIN2ET\/TEDWYIN2ET.zip","font":{"id":"13","name":"Charis SIL AmArea","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL_AmArea","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TEETBLN1DA","fcbh_id":"TEETBLN1DA","volume_name":"1976 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TEE","language_name":"Tepehua de Huehuetla","language_english":"Tepehua de Huehuetla","language_iso":"tee","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huehuetla Tepehua","language_family_code":"TEE","language_family_name":"Tepehua de Huehuetla","language_family_english":"Tepehua de Huehuetla","language_family_iso":"tee","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:08","created_on":"2010-09-14 17:01:21","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1TEETBL","audio_zip_path":"TEETBLN1DA\/TEETBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TEETBLN1ET","fcbh_id":"TEETBLN1ET","volume_name":"1976 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TEE","language_name":"Tepehua de Huehuetla","language_english":"Tepehua de Huehuetla","language_iso":"tee","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Huehuetla Tepehua","language_family_code":"TEE","language_family_name":"Tepehua de Huehuetla","language_family_english":"Tepehua de Huehuetla","language_family_iso":"tee","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:17","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1TEETBL","audio_zip_path":"TEETBLN1ET\/TEETBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TEMBSLN2DA","fcbh_id":"TEMBSLN2DA","volume_name":"BSSL Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TEM","language_name":"Themne","language_english":"Themne","language_iso":"tem","language_iso_2B":"tem","language_iso_2T":"tem","language_iso_1":"","language_iso_name":"Timne","language_family_code":"TEM","language_family_name":"Themne","language_family_english":"Themne","language_family_iso":"tem","language_family_iso_2B":"tem","language_family_iso_2T":"tem","language_family_iso_1":"","version_code":"BSL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 19:32:48","created_on":"2010-09-14 17:01:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2TEMBSL","audio_zip_path":"TEMBSLN2DA\/TEMBSLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TEMBSLN2ET","fcbh_id":"TEMBSLN2ET","volume_name":"BSSL Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TEM","language_name":"Themne","language_english":"Themne","language_iso":"tem","language_iso_2B":"tem","language_iso_2T":"tem","language_iso_1":"","language_iso_name":"Timne","language_family_code":"TEM","language_family_name":"Themne","language_family_english":"Themne","language_family_iso":"tem","language_family_iso_2B":"tem","language_family_iso_2T":"tem","language_family_iso_1":"","version_code":"BSL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:10","created_on":"2011-05-12 19:22:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TEMBSLN2ET\/TEMBSLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TEOBSUN2DA","fcbh_id":"TEOBSUN2DA","volume_name":"1961 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TEO","language_name":"Ateso","language_english":"Ateso","language_iso":"teo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Teso","language_family_code":"TEO","language_family_name":"Ateso","language_family_english":"Ateso","language_family_iso":"teo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-21 16:04:50","created_on":"2012-05-15 21:06:31","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"TEOBSUN2DA\/TEOBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TEOBSUN2ET","fcbh_id":"TEOBSUN2ET","volume_name":"1961 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TEO","language_name":"Ateso","language_english":"Ateso","language_iso":"teo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Teso","language_family_code":"TEO","language_family_name":"Ateso","language_family_english":"Ateso","language_family_iso":"teo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:07","created_on":"2014-05-05 16:30:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TEOBSUN2ET\/TEOBSUN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TERTBLN2DA","fcbh_id":"TERTBLN2DA","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TER","language_name":"Terena","language_english":"Terena","language_iso":"ter","language_iso_2B":"ter","language_iso_2T":"ter","language_iso_1":"","language_iso_name":"Tereno","language_family_code":"TER","language_family_name":"Terena","language_family_english":"Terena","language_family_iso":"ter","language_family_iso_2B":"ter","language_family_iso_2T":"ter","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:09","created_on":"2012-07-23 16:16:25","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"TERTBLN2DA\/TERTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TERTBLN2ET","fcbh_id":"TERTBLN2ET","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TER","language_name":"Terena","language_english":"Terena","language_iso":"ter","language_iso_2B":"ter","language_iso_2T":"ter","language_iso_1":"","language_iso_name":"Tereno","language_family_code":"TER","language_family_name":"Terena","language_family_english":"Terena","language_family_iso":"ter","language_family_iso_2B":"ter","language_family_iso_2T":"ter","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:51","created_on":"2012-04-16 22:03:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TERTBLN2ET\/TERTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TFRWBTN2DA","fcbh_id":"TFRWBTN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TFR","language_name":"Teribe","language_english":"Teribe","language_iso":"tfr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Teribe","language_family_code":"TFR","language_family_name":"Teribe","language_family_english":"Teribe","language_family_iso":"tfr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 19:30:13","created_on":"2010-09-14 17:01:20","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2TFRWBT","audio_zip_path":"TFRWBTN2DA\/TFRWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TFRWBTN2ET","fcbh_id":"TFRWBTN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TFR","language_name":"Teribe","language_english":"Teribe","language_iso":"tfr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Teribe","language_family_code":"TFR","language_family_name":"Teribe","language_family_english":"Teribe","language_family_iso":"tfr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:35","created_on":"2011-05-12 20:59:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TFRWBTN2ET\/TFRWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TGKIBTN2DA","fcbh_id":"TGKIBTN2DA","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TGK","language_name":"Tajik","language_english":"Tajik","language_iso":"tgk","language_iso_2B":"tgk","language_iso_2T":"tgk","language_iso_1":"tg","language_iso_name":"Tajik","language_family_code":"TGK","language_family_name":"Tajik","language_family_english":"Tajik","language_family_iso":"tgk","language_family_iso_2B":"tgk","language_family_iso_2T":"tgk","language_family_iso_1":"tg","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-27 20:30:18","created_on":"2014-02-24 18:33:02","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TGKIBTN2DA\/TGKIBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TGKIBTN2ET","fcbh_id":"TGKIBTN2ET","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TGK","language_name":"Tajik","language_english":"Tajik","language_iso":"tgk","language_iso_2B":"tgk","language_iso_2T":"tgk","language_iso_1":"tg","language_iso_name":"Tajik","language_family_code":"TGK","language_family_name":"Tajik","language_family_english":"Tajik","language_family_iso":"tgk","language_family_iso_2B":"tgk","language_family_iso_2T":"tgk","language_family_iso_1":"tg","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-12-05 16:54:03","created_on":"2014-02-13 17:59:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TGKIBTN2ET\/TGKIBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TGLPBSN1DA","fcbh_id":"TGLPBSN1DA","volume_name":"Mabutung Balita Para sa Ating Panahon","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TGL","language_name":"Tagalog","language_english":"Tagalog","language_iso":"tgl","language_iso_2B":"tgl","language_iso_2T":"tgl","language_iso_1":"tl","language_iso_name":"Tagalog","language_family_code":"TGL","language_family_name":"Tagalog","language_family_english":"Tagalog","language_family_iso":"tgl","language_family_iso_2B":"tgl","language_family_iso_2T":"tgl","language_family_iso_1":"tl","version_code":"PBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:17","created_on":"2010-09-14 16:59:51","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1TGLPBS","audio_zip_path":"TGLPBSN1DA\/TGLPBSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TGLPBSN2DA","fcbh_id":"TGLPBSN2DA","volume_name":"2012 Magandang Balita Biblia","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TGL","language_name":"Tagalog","language_english":"Tagalog","language_iso":"tgl","language_iso_2B":"tgl","language_iso_2T":"tgl","language_iso_1":"tl","language_iso_name":"Tagalog","language_family_code":"TGL","language_family_name":"Tagalog","language_family_english":"Tagalog","language_family_iso":"tgl","language_family_iso_2B":"tgl","language_family_iso_2T":"tgl","language_family_iso_1":"tl","version_code":"PBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-04 23:44:05","created_on":"2015-04-27 19:35:48","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"TGLPBSN2DA\/TGLPBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TGLPBSN2ET","fcbh_id":"TGLPBSN2ET","volume_name":"2012 Magandang Balita Biblia","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TGL","language_name":"Tagalog","language_english":"Tagalog","language_iso":"tgl","language_iso_2B":"tgl","language_iso_2T":"tgl","language_iso_1":"tl","language_iso_name":"Tagalog","language_family_code":"TGL","language_family_name":"Tagalog","language_family_english":"Tagalog","language_family_iso":"tgl","language_family_iso_2B":"tgl","language_family_iso_2T":"tgl","language_family_iso_1":"tl","version_code":"PBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-04 23:44:21","created_on":"2013-08-19 17:10:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TGLPBSN2ET\/TGLPBSN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TGLTABN2ET","fcbh_id":"TGLTABN2ET","volume_name":"1905 Ang Dating Biblia","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TGL","language_name":"Tagalog","language_english":"Tagalog","language_iso":"tgl","language_iso_2B":"tgl","language_iso_2T":"tgl","language_iso_1":"tl","language_iso_name":"Tagalog","language_family_code":"TGL","language_family_name":"Tagalog","language_family_english":"Tagalog","language_family_iso":"tgl","language_family_iso_2B":"tgl","language_family_iso_2T":"tgl","language_family_iso_1":"tl","version_code":"TAB","version_name":"1905 Ang Dating Biblia","version_english":"1905 Ang Dating Biblia","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 18:32:48","created_on":"2010-09-14 17:01:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TGLTABN2ET\/TGLTABN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TGLTABO2ET","fcbh_id":"TGLTABO2ET","volume_name":"1905 Ang Dating Biblia","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TGL","language_name":"Tagalog","language_english":"Tagalog","language_iso":"tgl","language_iso_2B":"tgl","language_iso_2T":"tgl","language_iso_1":"tl","language_iso_name":"Tagalog","language_family_code":"TGL","language_family_name":"Tagalog","language_family_english":"Tagalog","language_family_iso":"tgl","language_family_iso_2B":"tgl","language_family_iso_2T":"tgl","language_family_iso_1":"tl","version_code":"TAB","version_name":"1905 Ang Dating Biblia","version_english":"1905 Ang Dating Biblia","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2014-01-03 18:32:33","created_on":"2010-09-14 17:01:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TGLTABO2ET\/TGLTABO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TGOTBLN1DA","fcbh_id":"TGOTBLN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TGO","language_name":"Sudest","language_english":"Sudest","language_iso":"tgo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sudest","language_family_code":"TGO","language_family_name":"Sudest","language_family_english":"Sudest","language_family_iso":"tgo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-29 18:14:10","created_on":"2017-03-10 15:23:40","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TGOTBLN1DA\/TGOTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TGOTBLN1ET","fcbh_id":"TGOTBLN1ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TGO","language_name":"Sudest","language_english":"Sudest","language_iso":"tgo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sudest","language_family_code":"TGO","language_family_name":"Sudest","language_family_english":"Sudest","language_family_iso":"tgo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-03-10 16:26:55","created_on":"2017-03-10 15:10:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TGOTBLN1ET\/TGOTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TGOTBLN2DA","fcbh_id":"TGOTBLN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TGO","language_name":"Sudest","language_english":"Sudest","language_iso":"tgo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sudest","language_family_code":"TGO","language_family_name":"Sudest","language_family_english":"Sudest","language_family_iso":"tgo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-29 18:21:37","created_on":"2017-03-10 15:18:38","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TGOTBLN2DA\/TGOTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TGOTBLN2ET","fcbh_id":"TGOTBLN2ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TGO","language_name":"Sudest","language_english":"Sudest","language_iso":"tgo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sudest","language_family_code":"TGO","language_family_name":"Sudest","language_family_english":"Sudest","language_family_iso":"tgo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-03-10 15:12:01","created_on":"2016-03-31 17:21:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TGOTBLN2ET\/TGOTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TGPWBTN2DA","fcbh_id":"TGPWBTN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TGP","language_name":"Tangoa","language_english":"Tangoa","language_iso":"tgp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tangoa","language_family_code":"TGP","language_family_name":"Tangoa","language_family_english":"Tangoa","language_family_iso":"tgp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:33:12","created_on":"2016-01-28 20:39:28","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TGPWBTN2DA\/TGPWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TGPWBTN2ET","fcbh_id":"TGPWBTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TGP","language_name":"Tangoa","language_english":"Tangoa","language_iso":"tgp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tangoa","language_family_code":"TGP","language_family_name":"Tangoa","language_family_english":"Tangoa","language_family_iso":"tgp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:37","created_on":"2015-08-10 19:49:12","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TGPWBTN2ET\/TGPWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TGWABUN1DA","fcbh_id":"TGWABUN1DA","volume_name":"1987 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TGW","language_name":"Tagbana","language_english":"Tagbana","language_iso":"tgw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tagwana Senoufo","language_family_code":"TGW","language_family_name":"Tagbana","language_family_english":"Tagbana","language_family_iso":"tgw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-11 21:00:24","created_on":"2010-09-14 16:59:51","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1TGWABU","audio_zip_path":"TGWABUN1DA\/TGWABUN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TGWABUN2DA","fcbh_id":"TGWABUN2DA","volume_name":"1987 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TGW","language_name":"Tagbana","language_english":"Tagbana","language_iso":"tgw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tagwana Senoufo","language_family_code":"TGW","language_family_name":"Tagbana","language_family_english":"Tagbana","language_family_iso":"tgw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:37:09","created_on":"2010-09-14 17:00:49","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TGWABU","audio_zip_path":"TGWABUN2DA\/TGWABUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"THAKJVN2ET","fcbh_id":"THAKJVN2ET","volume_name":"King James Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"THA","language_name":"\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22","language_english":"Thai","language_iso":"tha","language_iso_2B":"tha","language_iso_2T":"tha","language_iso_1":"th","language_iso_name":"Thai","language_family_code":"THA","language_family_name":"\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22","language_family_english":"Thai","language_family_iso":"tha","language_family_iso_2B":"tha","language_family_iso_2T":"tha","language_family_iso_1":"th","version_code":"KJV","version_name":"King James Version","version_english":"King James Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:06:47","created_on":"2010-09-14 17:01:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"THAKJVN2ET\/THAKJVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","mp3_cd"],"resolution":[]},{"dam_id":"THATSVN1DA","fcbh_id":"THATSVN1DA","volume_name":"Thai Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"THA","language_name":"\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22","language_english":"Thai","language_iso":"tha","language_iso_2B":"tha","language_iso_2T":"tha","language_iso_1":"th","language_iso_name":"Thai","language_family_code":"THA","language_family_name":"\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22","language_family_english":"Thai","language_family_iso":"tha","language_family_iso_2B":"tha","language_family_iso_2T":"tha","language_family_iso_1":"th","version_code":"TSV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-31 16:24:34","created_on":"2016-01-25 18:52:52","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"THATSVN1DA\/THATSVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"THATSVN1ET","fcbh_id":"THATSVN1ET","volume_name":"Thai Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"THA","language_name":"\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22","language_english":"Thai","language_iso":"tha","language_iso_2B":"tha","language_iso_2T":"tha","language_iso_1":"th","language_iso_name":"Thai","language_family_code":"THA","language_family_name":"\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22","language_family_english":"Thai","language_family_iso":"tha","language_family_iso_2B":"tha","language_family_iso_2T":"tha","language_family_iso_1":"th","version_code":"TSV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-25 19:20:19","created_on":"2016-01-25 18:46:23","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"THATSVN1ET\/THATSVN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"THATSVN2DA","fcbh_id":"THATSVN2DA","volume_name":"Thai Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"THA","language_name":"\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22","language_english":"Thai","language_iso":"tha","language_iso_2B":"tha","language_iso_2T":"tha","language_iso_1":"th","language_iso_name":"Thai","language_family_code":"THA","language_family_name":"\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22","language_family_english":"Thai","language_family_iso":"tha","language_family_iso_2B":"tha","language_family_iso_2T":"tha","language_family_iso_1":"th","version_code":"TSV","version_name":"Thai Standard Version","version_english":"Thai Standard Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-11 20:53:04","created_on":"2010-09-14 17:00:49","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2THATSV","audio_zip_path":"THATSVN2DA\/THATSVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"THATSVN2ET","fcbh_id":"THATSVN2ET","volume_name":"Thai Standard Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"THA","language_name":"\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22","language_english":"Thai","language_iso":"tha","language_iso_2B":"tha","language_iso_2T":"tha","language_iso_1":"th","language_iso_name":"Thai","language_family_code":"THA","language_family_name":"\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22","language_family_english":"Thai","language_family_iso":"tha","language_family_iso_2B":"tha","language_family_iso_2T":"tha","language_family_iso_1":"th","version_code":"TSV","version_name":"Thai Standard Version","version_english":"Thai Standard Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2012-08-16 15:24:32","created_on":"2010-11-25 20:49:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2THATSV","audio_zip_path":"THATSVN2ET\/THATSVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"THKBTLN2DA","fcbh_id":"THKBTLN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"THK","language_name":"Tharaka","language_english":"Tharaka","language_iso":"thk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tharaka","language_family_code":"THK","language_family_name":"Tharaka","language_family_english":"Tharaka","language_family_iso":"thk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-09 15:04:53","created_on":"2013-06-18 20:35:29","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"THKBTLN2DA\/THKBTLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"THKBTLN2ET","fcbh_id":"THKBTLN2ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"THK","language_name":"Tharaka","language_english":"Tharaka","language_iso":"thk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tharaka","language_family_code":"THK","language_family_name":"Tharaka","language_family_english":"Tharaka","language_family_iso":"thk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BTL","version_name":"Bible Translation and Literacy","version_english":"Bible Translation and Literacy","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-05-09 15:05:36","created_on":"2011-10-10 16:13:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"THKBTLN2ET\/THKBTLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"THLWYIN1DA","fcbh_id":"THLWYIN1DA","volume_name":"WYI Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"THL","language_name":"Tharu Dangaura","language_english":"Tharu Dangaura","language_iso":"thl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dangaura Tharu","language_family_code":"THL","language_family_name":"Tharu Dangaura","language_family_english":"Tharu Dangaura","language_family_iso":"thl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 18:06:02","created_on":"2018-10-16 16:49:03","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"THLWYIN1DA\/THLWYIN1DA.zip","font":{"id":"7","name":"Arial","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Arial","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"THLWYIN1ET","fcbh_id":"THLWYIN1ET","volume_name":"WYI Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"THL","language_name":"Tharu Dangaura","language_english":"Tharu Dangaura","language_iso":"thl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dangaura Tharu","language_family_code":"THL","language_family_name":"Tharu Dangaura","language_family_english":"Tharu Dangaura","language_family_iso":"thl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 18:10:34","created_on":"2018-10-16 16:18:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"THLWYIN1ET\/THLWYIN1ET.zip","font":{"id":"7","name":"Arial","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Arial","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"THLWYIN2DA","fcbh_id":"THLWYIN2DA","volume_name":"WYI Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"THL","language_name":"Tharu Dangaura","language_english":"Tharu Dangaura","language_iso":"thl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dangaura Tharu","language_family_code":"THL","language_family_name":"Tharu Dangaura","language_family_english":"Tharu Dangaura","language_family_iso":"thl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 18:10:56","created_on":"2018-10-16 16:23:35","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"THLWYIN2DA\/THLWYIN2DA.zip","font":{"id":"7","name":"Arial","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Arial","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"THLWYIN2ET","fcbh_id":"THLWYIN2ET","volume_name":"2018 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"THL","language_name":"Tharu Dangaura","language_english":"Tharu Dangaura","language_iso":"thl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Dangaura Tharu","language_family_code":"THL","language_family_name":"Tharu Dangaura","language_family_english":"Tharu Dangaura","language_family_iso":"thl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-08 15:42:48","created_on":"2018-07-30 17:39:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"THLWYIN2ET\/THLWYIN2ET.zip","font":{"id":"7","name":"Arial","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Arial","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TIHBSMN2ET","fcbh_id":"TIHBSMN2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TIH","language_name":"Timugon Murut","language_english":"Timugon Murut","language_iso":"tih","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Timugon Murut","language_family_code":"TIH","language_family_name":"Timugon Murut","language_family_english":"Timugon Murut","language_family_iso":"tih","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:24","created_on":"2014-09-24 20:11:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TIHBSMN2ET\/TIHBSMN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TIHBSMO2ET","fcbh_id":"TIHBSMO2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TIH","language_name":"Timugon Murut","language_english":"Timugon Murut","language_iso":"tih","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Timugon Murut","language_family_code":"TIH","language_family_name":"Timugon Murut","language_family_english":"Timugon Murut","language_family_iso":"tih","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:24","created_on":"2014-09-24 20:22:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TIHBSMO2ET\/TIHBSMO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TIKWYIN2DA","fcbh_id":"TIKWYIN2DA","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TIK","language_name":"Tikar","language_english":"Tikar","language_iso":"tik","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tikar","language_family_code":"TIK","language_family_name":"Tikar","language_family_english":"Tikar","language_family_iso":"tik","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:12","created_on":"2011-05-13 19:19:03","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"TIKWYIN2DA\/TIKWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TIKWYIN2ET","fcbh_id":"TIKWYIN2ET","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TIK","language_name":"Tikar","language_english":"Tikar","language_iso":"tik","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tikar","language_family_code":"TIK","language_family_name":"Tikar","language_family_english":"Tikar","language_family_iso":"tik","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:06","created_on":"2011-05-17 21:28:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TIKWYIN2ET\/TIKWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TIMWBTN2ET","fcbh_id":"TIMWBTN2ET","volume_name":"1987 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TIM","language_name":"Timbe","language_english":"Timbe","language_iso":"tim","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Timbe","language_family_code":"TIM","language_family_name":"Timbe","language_family_english":"Timbe","language_family_iso":"tim","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 22:01:06","created_on":"2014-08-04 19:11:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TIMWBTN2ET\/TIMWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TIRUBSN2DA","fcbh_id":"TIRUBSN2DA","volume_name":"1991 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TIR","language_name":"Tigrinya","language_english":"Tigrinya","language_iso":"tir","language_iso_2B":"tir","language_iso_2T":"tir","language_iso_1":"ti","language_iso_name":"Tigrinya","language_family_code":"TIR","language_family_name":"Tigrinya","language_family_english":"Tigrinya","language_family_iso":"tir","language_family_iso_2B":"tir","language_family_iso_2T":"tir","language_family_iso_1":"ti","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:37","created_on":"2010-09-14 17:00:49","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2TIRUBS","audio_zip_path":"TIRUBSN2DA\/TIRUBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TIRUBSN2ET","fcbh_id":"TIRUBSN2ET","volume_name":"1991 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TIR","language_name":"Tigrinya","language_english":"Tigrinya","language_iso":"tir","language_iso_2B":"tir","language_iso_2T":"tir","language_iso_1":"ti","language_iso_name":"Tigrinya","language_family_code":"TIR","language_family_name":"Tigrinya","language_family_english":"Tigrinya","language_family_iso":"tir","language_family_iso_2B":"tir","language_family_iso_2T":"tir","language_family_iso_1":"ti","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-18 21:58:23","created_on":"2016-03-01 22:14:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TIRUBSN2ET\/TIRUBSN2ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TIVBSNN2DA","fcbh_id":"TIVBSNN2DA","volume_name":"1964 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TIV","language_name":"Tiv","language_english":"Tiv","language_iso":"tiv","language_iso_2B":"tiv","language_iso_2T":"tiv","language_iso_1":"","language_iso_name":"Tiv","language_family_code":"TIV","language_family_name":"Tiv","language_family_english":"Tiv","language_family_iso":"tiv","language_family_iso_2B":"tiv","language_family_iso_2T":"tiv","language_family_iso_1":"","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:36","created_on":"2010-09-14 17:00:59","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TIVBSN","audio_zip_path":"TIVBSNN2DA\/TIVBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TLBLAIN1DA","fcbh_id":"TLBLAIN1DA","volume_name":"Today's Tobelo Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TLB","language_name":"Tobelo","language_english":"Tobelo","language_iso":"tlb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tobelo","language_family_code":"TLB","language_family_name":"Tobelo","language_family_english":"Tobelo","language_family_iso":"tlb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-23 16:34:48","created_on":"2015-11-19 22:39:20","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TLBLAIN1DA\/TLBLAIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TLBLAIN1ET","fcbh_id":"TLBLAIN1ET","volume_name":"Today's Tobelo Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TLB","language_name":"Tobelo","language_english":"Tobelo","language_iso":"tlb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tobelo","language_family_code":"TLB","language_family_name":"Tobelo","language_family_english":"Tobelo","language_family_iso":"tlb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-23 16:35:13","created_on":"2015-11-19 22:37:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TLBLAIN1ET\/TLBLAIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TLBLAIN2DA","fcbh_id":"TLBLAIN2DA","volume_name":"Today's Tobelo Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TLB","language_name":"Tobelo","language_english":"Tobelo","language_iso":"tlb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tobelo","language_family_code":"TLB","language_family_name":"Tobelo","language_family_english":"Tobelo","language_family_iso":"tlb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-19 22:32:42","created_on":"2014-12-23 20:36:20","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"TLBLAIN2DA\/TLBLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TLBLAIN2ET","fcbh_id":"TLBLAIN2ET","volume_name":"Today's Tobelo Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TLB","language_name":"Tobelo","language_english":"Tobelo","language_iso":"tlb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tobelo","language_family_code":"TLB","language_family_name":"Tobelo","language_family_english":"Tobelo","language_family_iso":"tlb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-19 22:38:13","created_on":"2012-05-09 22:09:47","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TLBLAIN2ET\/TLBLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TLFWBTN2ET","fcbh_id":"TLFWBTN2ET","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TLF","language_name":"Telefol","language_english":"Telefol","language_iso":"tlf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Telefol","language_family_code":"TLF","language_family_name":"Telefol","language_family_english":"Telefol","language_family_iso":"tlf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:23","created_on":"2014-07-11 16:05:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TLFWBTN2ET\/TLFWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TLJWBTN1DA","fcbh_id":"TLJWBTN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TLJ","language_name":"Lubwisi","language_english":"Talinga-Bwisi","language_iso":"tlj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Talinga-Bwisi","language_family_code":"TLJ","language_family_name":"Lubwisi","language_family_english":"Talinga-Bwisi","language_family_iso":"tlj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-05 18:49:11","created_on":"2017-01-05 19:45:35","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TLJWBTN1DA\/TLJWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TLJWBTN1ET","fcbh_id":"TLJWBTN1ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TLJ","language_name":"Lubwisi","language_english":"Talinga-Bwisi","language_iso":"tlj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Talinga-Bwisi","language_family_code":"TLJ","language_family_name":"Lubwisi","language_family_english":"Talinga-Bwisi","language_family_iso":"tlj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-17 20:28:37","created_on":"2017-07-05 18:33:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TLJWBTN1ET\/TLJWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TLJWBTN2DA","fcbh_id":"TLJWBTN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TLJ","language_name":"Lubwisi","language_english":"Talinga-Bwisi","language_iso":"tlj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Talinga-Bwisi","language_family_code":"TLJ","language_family_name":"Lubwisi","language_family_english":"Talinga-Bwisi","language_family_iso":"tlj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-05 18:50:00","created_on":"2017-01-05 19:47:28","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TLJWBTN2DA\/TLJWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TLJWBTN2ET","fcbh_id":"TLJWBTN2ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TLJ","language_name":"Lubwisi","language_english":"Talinga-Bwisi","language_iso":"tlj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Talinga-Bwisi","language_family_code":"TLJ","language_family_name":"Lubwisi","language_family_english":"Talinga-Bwisi","language_family_iso":"tlj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-17 20:29:44","created_on":"2017-07-05 18:41:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TLJWBTN2ET\/TLJWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TLLDRCN2DA","fcbh_id":"TLLDRCN2DA","volume_name":"1993 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TLL","language_name":"Otetela","language_english":"Otetela","language_iso":"tll","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tetela","language_family_code":"TLL","language_family_name":"Otetela","language_family_english":"Otetela","language_family_iso":"tll","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"DRC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:04","created_on":"2010-12-07 15:00:32","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2TLLDRC","audio_zip_path":"TLLDRCN2DA\/TLLDRCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TMCBIVN1DA","fcbh_id":"TMCBIVN1DA","volume_name":"Bibles International Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TMC","language_name":"Tumak","language_english":"Tumak","language_iso":"tmc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tumak","language_family_code":"TMC","language_family_name":"Tumak","language_family_english":"Tumak","language_family_iso":"tmc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-01 17:36:03","created_on":"2016-09-12 14:33:39","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TMCBIVN1DA\/TMCBIVN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TMCBIVN1ET","fcbh_id":"TMCBIVN1ET","volume_name":"1988 Bibles International Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TMC","language_name":"Tumak","language_english":"Tumak","language_iso":"tmc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tumak","language_family_code":"TMC","language_family_name":"Tumak","language_family_english":"Tumak","language_family_iso":"tmc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-08 16:58:05","created_on":"2016-09-12 13:53:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TMCBIVN1ET\/TMCBIVN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TMCBIVN2DA","fcbh_id":"TMCBIVN2DA","volume_name":"1988 Bibles International Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TMC","language_name":"Tumak","language_english":"Tumak","language_iso":"tmc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tumak","language_family_code":"TMC","language_family_name":"Tumak","language_family_english":"Tumak","language_family_iso":"tmc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-01 17:36:42","created_on":"2016-09-12 14:35:03","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TMCBIVN2DA\/TMCBIVN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TMCBIVN2ET","fcbh_id":"TMCBIVN2ET","volume_name":"1988 Bibles International Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TMC","language_name":"Tumak","language_english":"Tumak","language_iso":"tmc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tumak","language_family_code":"TMC","language_family_name":"Tumak","language_family_english":"Tumak","language_family_iso":"tmc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-08 16:58:34","created_on":"2015-03-19 21:09:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TMCBIVN2ET\/TMCBIVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TN1SLSS2DV","fcbh_id":"TN1SLSS2DV","volume_name":"Indian (Tamil Nadu) Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TN1","language_name":"Indian (Tamil Nadu) Sign Language","language_english":"Indian (Tamil Nadu) Sign Language","language_iso":"tnq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Taino","language_family_code":"TN1","language_family_name":"Indian (Tamil Nadu) Sign Language","language_family_english":"Indian (Tamil Nadu) Sign Language","language_family_iso":"tnq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLS","version_name":"Sign Language Stories","version_english":"Sign Language Stories","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2016-01-26 17:23:41","created_on":"2014-06-20 19:58:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TN1SLSS2DV\/TN1SLSS2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"TNATBLN1DA","fcbh_id":"TNATBLN1DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TNA","language_name":"Tacana","language_english":"Tacana","language_iso":"tna","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tacana","language_family_code":"TNA","language_family_name":"Tacana","language_family_english":"Tacana","language_family_iso":"tna","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-12 19:33:21","created_on":"2015-11-12 19:11:29","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TNATBLN1DA\/TNATBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TNATBLN1ET","fcbh_id":"TNATBLN1ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TNA","language_name":"Tacana","language_english":"Tacana","language_iso":"tna","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tacana","language_family_code":"TNA","language_family_name":"Tacana","language_family_english":"Tacana","language_family_iso":"tna","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-12 19:50:47","created_on":"2015-11-12 19:04:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TNATBLN1ET\/TNATBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TNATBLN2DA","fcbh_id":"TNATBLN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TNA","language_name":"Tacana","language_english":"Tacana","language_iso":"tna","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tacana","language_family_code":"TNA","language_family_name":"Tacana","language_family_english":"Tacana","language_family_iso":"tna","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-11-12 19:51:40","created_on":"2015-11-12 19:08:47","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TNATBLN2DA\/TNATBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TNATBLN2ET","fcbh_id":"TNATBLN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TNA","language_name":"Tacana","language_english":"Tacana","language_iso":"tna","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tacana","language_family_code":"TNA","language_family_name":"Tacana","language_family_english":"Tacana","language_family_iso":"tna","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:16","created_on":"2014-10-21 18:33:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TNATBLN2ET\/TNATBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TNKWBTN1DA","fcbh_id":"TNKWBTN1DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TNK","language_name":"Nafe","language_english":"Nafe","language_iso":"tnk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kwamera","language_family_code":"TNK","language_family_name":"Nafe","language_family_english":"Nafe","language_family_iso":"tnk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-06-09 17:11:18","created_on":"2014-06-05 21:10:16","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"TNKWBTN1DA\/TNKWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TNKWBTN1ET","fcbh_id":"TNKWBTN1ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TNK","language_name":"Nafe","language_english":"Nafe","language_iso":"tnk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kwamera","language_family_code":"TNK","language_family_name":"Nafe","language_family_english":"Nafe","language_family_iso":"tnk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-06-05 19:51:29","created_on":"2014-06-05 16:23:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TNKWBTN1ET\/TNKWBTN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TNNWBTN1DA","fcbh_id":"TNNWBTN1DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TNN","language_name":"Nen-naka","language_english":"North Tanna","language_iso":"tnn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"North Tanna","language_family_code":"TNN","language_family_name":"Nen-naka","language_family_english":"North Tanna","language_family_iso":"tnn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-03-24 17:09:56","created_on":"2015-03-23 18:29:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TNNWBTN1DA\/TNNWBTN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TNNWBTN1ET","fcbh_id":"TNNWBTN1ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TNN","language_name":"Nen-naka","language_english":"North Tanna","language_iso":"tnn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"North Tanna","language_family_code":"TNN","language_family_name":"Nen-naka","language_family_english":"North Tanna","language_family_iso":"tnn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:20","created_on":"2014-11-10 17:14:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TNNWBTN1ET\/TNNWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TNRNTMN2ET","fcbh_id":"TNRNTMN2ET","volume_name":"NTM Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TNR","language_name":"M\u00fcnik","language_english":"Munik","language_iso":"tnr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bedik","language_family_code":"TNR","language_family_name":"M\u00fcnik","language_family_english":"Munik","language_family_iso":"tnr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NTM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 18:11:26","created_on":"2015-05-21 21:05:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TNRNTMN2ET\/TNRNTMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TOBBSAN1DA","fcbh_id":"TOBBSAN1DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TOB","language_name":"Toba Qom","language_english":"Toba Sur","language_iso":"tob","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Toba","language_family_code":"TOB","language_family_name":"Toba Qom","language_family_english":"Toba Sur","language_family_iso":"tob","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSA","version_name":"BSA","version_english":"BSA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-28 14:46:20","created_on":"2017-11-28 14:33:37","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TOBBSAN1DA\/TOBBSAN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TOBBSAN2DA","fcbh_id":"TOBBSAN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TOB","language_name":"Toba Qom","language_english":"Toba Sur","language_iso":"tob","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Toba","language_family_code":"TOB","language_family_name":"Toba Qom","language_family_english":"Toba Sur","language_family_iso":"tob","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSA","version_name":"BSA","version_english":"BSA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-28 14:41:57","created_on":"2017-11-27 20:29:08","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TOBBSAN2DA\/TOBBSAN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TOCTBLN2DA","fcbh_id":"TOCTBLN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TOC","language_name":"Totonaco de Coyutla","language_english":"Totonaco de Coyutla","language_iso":"toc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Coyutla Totonac","language_family_code":"TOC","language_family_name":"Totonaco de Coyutla","language_family_english":"Totonaco de Coyutla","language_family_iso":"toc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 19:39:33","created_on":"2011-07-12 22:02:43","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"TOCTBLN2DA\/TOCTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TOCTBLN2ET","fcbh_id":"TOCTBLN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TOC","language_name":"Totonaco de Coyutla","language_english":"Totonaco de Coyutla","language_iso":"toc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Coyutla Totonac","language_family_code":"TOC","language_family_name":"Totonaco de Coyutla","language_family_english":"Totonaco de Coyutla","language_family_iso":"toc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:21","created_on":"2011-08-29 15:50:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TOCTBLN2ET\/TOCTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TOHSBMN2DA","fcbh_id":"TOHSBMN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TOH","language_name":"Gitonga","language_english":"Gitonga","language_iso":"toh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Gitonga","language_family_code":"TOH","language_family_name":"Gitonga","language_family_english":"Gitonga","language_family_iso":"toh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-11 20:22:46","created_on":"2010-11-25 20:49:47","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2TOHSBM","audio_zip_path":"TOHSBMN2DA\/TOHSBMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TOIBSZN2DA","fcbh_id":"TOIBSZN2DA","volume_name":"1963 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TOI","language_name":"Chitonga","language_english":"Chitonga","language_iso":"toi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tonga (Zambia)","language_family_code":"TOI","language_family_name":"Chitonga","language_family_english":"Chitonga","language_family_iso":"toi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSZ","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:35","created_on":"2010-09-14 17:00:50","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TOIBSZ","audio_zip_path":"TOIBSZN2DA\/TOIBSZN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TONBSPN2ET","fcbh_id":"TONBSPN2ET","volume_name":"BSP Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TON","language_name":"Tongan","language_english":"Tongan","language_iso":"ton","language_iso_2B":"ton","language_iso_2T":"ton","language_iso_1":"to","language_iso_name":"Tonga (Tonga Islands)","language_family_code":"TON","language_family_name":"Tongan","language_family_english":"Tongan","language_family_iso":"ton","language_family_iso_2B":"ton","language_family_iso_2T":"ton","language_family_iso_1":"to","version_code":"BSP","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-08 19:58:19","created_on":"2017-09-01 20:27:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TONBSPN2ET\/TONBSPN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TONRWTN2ET","fcbh_id":"TONRWTN2ET","volume_name":"Revised West Translation","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TON","language_name":"Tongan","language_english":"Tongan","language_iso":"ton","language_iso_2B":"ton","language_iso_2T":"ton","language_iso_1":"to","language_iso_name":"Tonga (Tonga Islands)","language_family_code":"TON","language_family_name":"Tongan","language_family_english":"Tongan","language_family_iso":"ton","language_family_iso_2B":"ton","language_family_iso_2T":"ton","language_family_iso_1":"to","version_code":"RWT","version_name":"Revised West Translation","version_english":"Revised West Translation","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-21 18:16:55","created_on":"2017-04-21 17:37:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TONRWTN2ET\/TONRWTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TONRWTO2ET","fcbh_id":"TONRWTO2ET","volume_name":"Revised West Translation","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TON","language_name":"Tongan","language_english":"Tongan","language_iso":"ton","language_iso_2B":"ton","language_iso_2T":"ton","language_iso_1":"to","language_iso_name":"Tonga (Tonga Islands)","language_family_code":"TON","language_family_name":"Tongan","language_family_english":"Tongan","language_family_iso":"ton","language_family_iso_2B":"ton","language_family_iso_2T":"ton","language_family_iso_1":"to","version_code":"RWT","version_name":"Revised West Translation","version_english":"Revised West Translation","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-04-21 18:16:55","created_on":"2017-04-21 17:39:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TONRWTO2ET\/TONRWTO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TOPTBLN2ET","fcbh_id":"TOPTBLN2ET","volume_name":"1985 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TOP","language_name":"Totonac Papantla","language_english":"Totonac Papantla","language_iso":"top","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Papantla Totonac","language_family_code":"TOP","language_family_name":"Totonac Papantla","language_family_english":"Totonac Papantla","language_family_iso":"top","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:49","created_on":"2015-05-29 16:47:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TOPTBLN2ET\/TOPTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TOSTBLN2DA","fcbh_id":"TOSTBLN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TOS","language_name":"Totonaco de la Sierra","language_english":"Totonaco de la Sierra","language_iso":"tos","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Highland Totonac","language_family_code":"TOS","language_family_name":"Totonaco de la Sierra","language_family_english":"Totonaco de la Sierra","language_family_iso":"tos","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-11 20:22:00","created_on":"2010-09-14 17:01:12","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TOSTBL","audio_zip_path":"TOSTBLN2DA\/TOSTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TOSTBLN2ET","fcbh_id":"TOSTBLN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TOS","language_name":"Totonaco de la Sierra","language_english":"Totonaco de la Sierra","language_iso":"tos","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Highland Totonac","language_family_code":"TOS","language_family_name":"Totonaco de la Sierra","language_family_english":"Totonaco de la Sierra","language_family_iso":"tos","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:20","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2TOSTBL","audio_zip_path":"TOSTBLN2ET\/TOSTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TPIPNGN1DA","fcbh_id":"TPIPNGN1DA","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TPI","language_name":"Tok Pisin","language_english":"Tok Pisin","language_iso":"tpi","language_iso_2B":"tpi","language_iso_2T":"tpi","language_iso_1":"","language_iso_name":"Tok Pisin","language_family_code":"TPI","language_family_name":"Tok Pisin","language_family_english":"Tok Pisin","language_family_iso":"tpi","language_family_iso_2B":"tpi","language_family_iso_2T":"tpi","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-23 19:47:22","created_on":"2015-10-21 22:28:00","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TPIPNGN1DA\/TPIPNGN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TPIPNGN1ET","fcbh_id":"TPIPNGN1ET","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TPI","language_name":"Tok Pisin","language_english":"Tok Pisin","language_iso":"tpi","language_iso_2B":"tpi","language_iso_2T":"tpi","language_iso_1":"","language_iso_name":"Tok Pisin","language_family_code":"TPI","language_family_name":"Tok Pisin","language_family_english":"Tok Pisin","language_family_iso":"tpi","language_family_iso_2B":"tpi","language_family_iso_2T":"tpi","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:30:04","created_on":"2015-10-23 19:02:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TPIPNGN1ET\/TPIPNGN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TPIPNGN2DA","fcbh_id":"TPIPNGN2DA","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TPI","language_name":"Tok Pisin","language_english":"Tok Pisin","language_iso":"tpi","language_iso_2B":"tpi","language_iso_2T":"tpi","language_iso_1":"","language_iso_name":"Tok Pisin","language_family_code":"TPI","language_family_name":"Tok Pisin","language_family_english":"Tok Pisin","language_family_iso":"tpi","language_family_iso_2B":"tpi","language_family_iso_2T":"tpi","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-12 15:06:03","created_on":"2010-09-14 17:00:50","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TPIPNG","audio_zip_path":"TPIPNGN2DA\/TPIPNGN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TPIPNGN2ET","fcbh_id":"TPIPNGN2ET","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TPI","language_name":"Tok Pisin","language_english":"Tok Pisin","language_iso":"tpi","language_iso_2B":"tpi","language_iso_2T":"tpi","language_iso_1":"","language_iso_name":"Tok Pisin","language_family_code":"TPI","language_family_name":"Tok Pisin","language_family_english":"Tok Pisin","language_family_iso":"tpi","language_family_iso_2B":"tpi","language_family_iso_2T":"tpi","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:30:04","created_on":"2011-07-01 16:14:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TPIPNGN2ET\/TPIPNGN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TPIPNGO1ET","fcbh_id":"TPIPNGO1ET","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TPI","language_name":"Tok Pisin","language_english":"Tok Pisin","language_iso":"tpi","language_iso_2B":"tpi","language_iso_2T":"tpi","language_iso_1":"","language_iso_name":"Tok Pisin","language_family_code":"TPI","language_family_name":"Tok Pisin","language_family_english":"Tok Pisin","language_family_iso":"tpi","language_family_iso_2B":"tpi","language_family_iso_2T":"tpi","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:30:04","created_on":"2015-10-23 19:07:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TPIPNGO1ET\/TPIPNGO1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TPIPNGO2ET","fcbh_id":"TPIPNGO2ET","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TPI","language_name":"Tok Pisin","language_english":"Tok Pisin","language_iso":"tpi","language_iso_2B":"tpi","language_iso_2T":"tpi","language_iso_1":"","language_iso_name":"Tok Pisin","language_family_code":"TPI","language_family_name":"Tok Pisin","language_family_english":"Tok Pisin","language_family_iso":"tpi","language_family_iso_2B":"tpi","language_family_iso_2T":"tpi","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:30:04","created_on":"2011-07-01 16:16:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TPIPNGO2ET\/TPIPNGO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TPIPNGS1DA","fcbh_id":"TPIPNGS1DA","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TPI","language_name":"Tok Pisin","language_english":"Tok Pisin","language_iso":"tpi","language_iso_2B":"tpi","language_iso_2T":"tpi","language_iso_1":"","language_iso_name":"Tok Pisin","language_family_code":"TPI","language_family_name":"Tok Pisin","language_family_english":"Tok Pisin","language_family_iso":"tpi","language_family_iso_2B":"tpi","language_family_iso_2T":"tpi","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-06-11 16:00:10","created_on":"2018-06-11 15:26:22","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TPIPNGS1DA\/TPIPNGS1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TPIPNGS2DA","fcbh_id":"TPIPNGS2DA","volume_name":"1989 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TPI","language_name":"Tok Pisin","language_english":"Tok Pisin","language_iso":"tpi","language_iso_2B":"tpi","language_iso_2T":"tpi","language_iso_1":"","language_iso_name":"Tok Pisin","language_family_code":"TPI","language_family_name":"Tok Pisin","language_family_english":"Tok Pisin","language_family_iso":"tpi","language_family_iso_2B":"tpi","language_family_iso_2T":"tpi","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-06-11 16:00:33","created_on":"2018-06-11 15:23:40","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TPIPNGS2DA\/TPIPNGS2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TPMWBTN2DA","fcbh_id":"TPMWBTN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TPM","language_name":"Tampulma","language_english":"Tampulma","language_iso":"tpm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tampulma","language_family_code":"TPM","language_family_name":"Tampulma","language_family_english":"Tampulma","language_family_iso":"tpm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:15","created_on":"2010-09-14 17:01:16","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TPMWBT","audio_zip_path":"TPMWBTN2DA\/TPMWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TPMWBTN2ET","fcbh_id":"TPMWBTN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TPM","language_name":"Tampulma","language_english":"Tampulma","language_iso":"tpm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tampulma","language_family_code":"TPM","language_family_name":"Tampulma","language_family_english":"Tampulma","language_family_iso":"tpm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:38","created_on":"2011-10-12 20:35:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TPMWBTN2ET\/TPMWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TPMWBTO2ET","fcbh_id":"TPMWBTO2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TPM","language_name":"Tampulma","language_english":"Tampulma","language_iso":"tpm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tampulma","language_family_code":"TPM","language_family_name":"Tampulma","language_family_english":"Tampulma","language_family_iso":"tpm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:37","created_on":"2011-10-12 20:47:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TPMWBTO2ET\/TPMWBTO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TPPTBLN2DA","fcbh_id":"TPPTBLN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TPP","language_name":"Tepehua Pisaflores","language_english":"Tepehua Pisaflores","language_iso":"tpp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pisaflores Tepehua","language_family_code":"TPP","language_family_name":"Tepehua Pisaflores","language_family_english":"Tepehua Pisaflores","language_family_iso":"tpp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:16","created_on":"2013-08-15 18:59:21","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"TPPTBLN2DA\/TPPTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TPPTBLN2ET","fcbh_id":"TPPTBLN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TPP","language_name":"Tepehua Pisaflores","language_english":"Tepehua Pisaflores","language_iso":"tpp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Pisaflores Tepehua","language_family_code":"TPP","language_family_name":"Tepehua Pisaflores","language_family_english":"Tepehua Pisaflores","language_family_iso":"tpp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-04-04 16:37:40","created_on":"2014-02-20 17:53:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TPPTBLN2ET\/TPPTBLN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TPTTBLN2DA","fcbh_id":"TPTTBLN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TPT","language_name":"Tepehua Tlachichilco","language_english":"Tepehua Tlachichilco","language_iso":"tpt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tlachichilco Tepehua","language_family_code":"TPT","language_family_name":"Tepehua Tlachichilco","language_family_english":"Tepehua Tlachichilco","language_family_iso":"tpt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:16","created_on":"2012-05-30 18:07:33","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"TPTTBLN2DA\/TPTTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TPTTBLN2ET","fcbh_id":"TPTTBLN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TPT","language_name":"Tepehua Tlachichilco","language_english":"Tepehua Tlachichilco","language_iso":"tpt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tlachichilco Tepehua","language_family_code":"TPT","language_family_name":"Tepehua Tlachichilco","language_family_english":"Tepehua Tlachichilco","language_family_iso":"tpt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:16","created_on":"2011-05-30 19:40:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TPTTBLN2ET\/TPTTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TPZWBTN2ET","fcbh_id":"TPZWBTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TPZ","language_name":"Tinputz","language_english":"Tinputz","language_iso":"tpz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tinputz","language_family_code":"TPZ","language_family_name":"Tinputz","language_family_english":"Tinputz","language_family_iso":"tpz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 22:02:38","created_on":"2014-05-08 18:55:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TPZWBTN2ET\/TPZWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TQOPNGN2ET","fcbh_id":"TQOPNGN2ET","volume_name":"1983 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TQO","language_name":"Toaripi","language_english":"Toaripi","language_iso":"tqo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Toaripi","language_family_code":"TQO","language_family_name":"Toaripi","language_family_english":"Toaripi","language_family_iso":"tqo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-23 19:10:47","created_on":"2016-09-16 16:37:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TQOPNGN2ET\/TQOPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TRIUFMN2DA","fcbh_id":"TRIUFMN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TRI","language_name":"Trio","language_english":"Trio","language_iso":"tri","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tri\u00f3","language_family_code":"TRI","language_family_name":"Trio","language_family_english":"Trio","language_family_iso":"tri","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UFM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:06","created_on":"2011-12-12 21:26:23","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"TRIUFMN2DA\/TRIUFMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TRKBSTN2DA","fcbh_id":"TRKBSTN2DA","volume_name":"Kutsal Kitap 2009","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TRK","language_name":"T\u00fcrk\u00e7e","language_english":"Turkish","language_iso":"tur","language_iso_2B":"tur","language_iso_2T":"tur","language_iso_1":"tr","language_iso_name":"Turkish","language_family_code":"TRK","language_family_name":"T\u00fcrk\u00e7e","language_family_english":"Turkish","language_family_iso":"tur","language_family_iso_2B":"tur","language_family_iso_2T":"tur","language_family_iso_1":"tr","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-29 16:26:47","created_on":"2010-10-05 19:34:27","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2TRKBST","audio_zip_path":"TRKBSTN2DA\/TRKBSTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TRKBSTN2ET","fcbh_id":"TRKBSTN2ET","volume_name":"Kutsal Kitap 2009","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TRK","language_name":"T\u00fcrk\u00e7e","language_english":"Turkish","language_iso":"tur","language_iso_2B":"tur","language_iso_2T":"tur","language_iso_1":"tr","language_iso_name":"Turkish","language_family_code":"TRK","language_family_name":"T\u00fcrk\u00e7e","language_family_english":"Turkish","language_family_iso":"tur","language_family_iso_2B":"tur","language_family_iso_2T":"tur","language_family_iso_1":"tr","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:10","created_on":"2014-03-31 17:02:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TRKBSTN2ET\/TRKBSTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TRKBSTO2ET","fcbh_id":"TRKBSTO2ET","volume_name":"Kutsal Kitap 2009","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TRK","language_name":"T\u00fcrk\u00e7e","language_english":"Turkish","language_iso":"tur","language_iso_2B":"tur","language_iso_2T":"tur","language_iso_1":"tr","language_iso_name":"Turkish","language_family_code":"TRK","language_family_name":"T\u00fcrk\u00e7e","language_family_english":"Turkish","language_family_iso":"tur","language_family_iso_2B":"tur","language_family_iso_2T":"tur","language_family_iso_1":"tr","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:11","created_on":"2014-03-31 17:03:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TRKBSTO2ET\/TRKBSTO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TRKBSTS2DA","fcbh_id":"TRKBSTS2DA","volume_name":"Partial OT","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TRK","language_name":"T\u00fcrk\u00e7e","language_english":"Turkish","language_iso":"tur","language_iso_2B":"tur","language_iso_2T":"tur","language_iso_1":"tr","language_iso_name":"Turkish","language_family_code":"TRK","language_family_name":"T\u00fcrk\u00e7e","language_family_english":"Turkish","language_family_iso":"tur","language_family_iso_2B":"tur","language_family_iso_2T":"tur","language_family_iso_1":"tr","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2017-11-29 16:26:47","created_on":"2015-09-18 00:47:31","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"TRKBSTS2DA\/TRKBSTS2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["digital_download"],"resolution":[]},{"dam_id":"TRKNVSN1DA","fcbh_id":"TRKNVSN1DA","volume_name":"Yeni Antla\u015fma 1987, 1994","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TRK","language_name":"T\u00fcrk\u00e7e","language_english":"Turkish","language_iso":"tur","language_iso_2B":"tur","language_iso_2T":"tur","language_iso_1":"tr","language_iso_name":"Turkish","language_family_code":"TRK","language_family_name":"T\u00fcrk\u00e7e","language_family_english":"Turkish","language_family_iso":"tur","language_family_iso_2B":"tur","language_family_iso_2T":"tur","language_family_iso_1":"tr","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-10 17:11:46","created_on":"2010-09-14 16:59:51","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1TRKNVS","audio_zip_path":"TRKNVSN1DA\/TRKNVSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TRKNVSN1ET","fcbh_id":"TRKNVSN1ET","volume_name":"Yeni Antla\u015fma 1987, 1994","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TRK","language_name":"T\u00fcrk\u00e7e","language_english":"Turkish","language_iso":"tur","language_iso_2B":"tur","language_iso_2T":"tur","language_iso_1":"tr","language_iso_name":"Turkish","language_family_code":"TRK","language_family_name":"T\u00fcrk\u00e7e","language_family_english":"Turkish","language_family_iso":"tur","language_family_iso_2B":"tur","language_family_iso_2T":"tur","language_family_iso_1":"tr","version_code":"NVS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-10 17:12:31","created_on":"2013-06-18 21:09:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TRKNVSN1ET\/TRKNVSN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TRKWTCN1DA","fcbh_id":"TRKWTCN1DA","volume_name":"Halk Dilinde 2012","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TRK","language_name":"T\u00fcrk\u00e7e","language_english":"Turkish","language_iso":"tur","language_iso_2B":"tur","language_iso_2T":"tur","language_iso_1":"tr","language_iso_name":"Turkish","language_family_code":"TRK","language_family_name":"T\u00fcrk\u00e7e","language_family_english":"Turkish","language_family_iso":"tur","language_family_iso_2B":"tur","language_family_iso_2T":"tur","language_family_iso_1":"tr","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-10 15:27:10","created_on":"2016-04-28 18:07:59","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TRKWTCN1DA\/TRKWTCN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TRKWTCN1ET","fcbh_id":"TRKWTCN1ET","volume_name":"Halk Dilinde 2012","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TRK","language_name":"T\u00fcrk\u00e7e","language_english":"Turkish","language_iso":"tur","language_iso_2B":"tur","language_iso_2T":"tur","language_iso_1":"tr","language_iso_name":"Turkish","language_family_code":"TRK","language_family_name":"T\u00fcrk\u00e7e","language_family_english":"Turkish","language_family_iso":"tur","language_family_iso_2B":"tur","language_family_iso_2T":"tur","language_family_iso_1":"tr","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-26 18:27:38","created_on":"2016-04-28 18:11:37","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TRKWTCN1ET\/TRKWTCN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TRKWTCN2DA","fcbh_id":"TRKWTCN2DA","volume_name":"Halk Dilinde 2012","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TRK","language_name":"T\u00fcrk\u00e7e","language_english":"Turkish","language_iso":"tur","language_iso_2B":"tur","language_iso_2T":"tur","language_iso_1":"tr","language_iso_name":"Turkish","language_family_code":"TRK","language_family_name":"T\u00fcrk\u00e7e","language_family_english":"Turkish","language_family_iso":"tur","language_family_iso_2B":"tur","language_family_iso_2T":"tur","language_family_iso_1":"tr","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-10 15:27:28","created_on":"2016-04-28 18:06:28","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TRKWTCN2DA\/TRKWTCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TRKWTCN2ET","fcbh_id":"TRKWTCN2ET","volume_name":"Halk Dilinde 2012","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TRK","language_name":"T\u00fcrk\u00e7e","language_english":"Turkish","language_iso":"tur","language_iso_2B":"tur","language_iso_2T":"tur","language_iso_1":"tr","language_iso_name":"Turkish","language_family_code":"TRK","language_family_name":"T\u00fcrk\u00e7e","language_family_english":"Turkish","language_family_iso":"tur","language_family_iso_2B":"tur","language_family_iso_2T":"tur","language_family_iso_1":"tr","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-26 18:28:26","created_on":"2014-11-10 21:06:53","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TRKWTCN2ET\/TRKWTCN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TRQTBLN1DA","fcbh_id":"TRQTBLN1DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TRQ","language_name":"Triqui, San Mart\u00edn Itunyoso","language_english":"Triqui, San Mart\u00EDn Itunyoso","language_iso":"trq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Mart\u00edn Itunyoso Triqui","language_family_code":"TRQ","language_family_name":"Triqui, San Mart\u00edn Itunyoso","language_family_english":"Triqui, San Mart\u00EDn Itunyoso","language_family_iso":"trq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:37:09","created_on":"2017-04-19 22:22:32","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TRQTBLN1DA\/TRQTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TRQTBLN2DA","fcbh_id":"TRQTBLN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TRQ","language_name":"Triqui, San Mart\u00edn Itunyoso","language_english":"Triqui, San Mart\u00EDn Itunyoso","language_iso":"trq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Mart\u00edn Itunyoso Triqui","language_family_code":"TRQ","language_family_name":"Triqui, San Mart\u00edn Itunyoso","language_family_english":"Triqui, San Mart\u00EDn Itunyoso","language_family_iso":"trq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:37:09","created_on":"2017-04-19 22:18:11","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TRQTBLN2DA\/TRQTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TRSUTIN1DA","fcbh_id":"TRSUTIN1DA","volume_name":"UTI Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TRS","language_name":"Triqui Chicahuaxtla","language_english":"Triqui Chicahuaxtla","language_iso":"trs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chicahuaxtla Triqui","language_family_code":"TRS","language_family_name":"Triqui Chicahuaxtla","language_family_english":"Triqui Chicahuaxtla","language_family_iso":"trs","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UTI","version_name":"Union Nacional de Traductores Indigenas A.C.","version_english":"Union Nacional de Traductores Indigenas A.C.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-08 16:55:35","created_on":"2015-11-23 15:46:32","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"TRSUTIN1DA\/TRSUTIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TRSUTIN1ET","fcbh_id":"TRSUTIN1ET","volume_name":"UTI Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TRS","language_name":"Triqui Chicahuaxtla","language_english":"Triqui Chicahuaxtla","language_iso":"trs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chicahuaxtla Triqui","language_family_code":"TRS","language_family_name":"Triqui Chicahuaxtla","language_family_english":"Triqui Chicahuaxtla","language_family_iso":"trs","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UTI","version_name":"Union Nacional de Traductores Indigenas A.C.","version_english":"Union Nacional de Traductores Indigenas A.C.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-05 19:42:42","created_on":"2015-12-29 22:50:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TRSUTIN1ET\/TRSUTIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TRSUTIN2DA","fcbh_id":"TRSUTIN2DA","volume_name":"UTI Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TRS","language_name":"Triqui Chicahuaxtla","language_english":"Triqui Chicahuaxtla","language_iso":"trs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chicahuaxtla Triqui","language_family_code":"TRS","language_family_name":"Triqui Chicahuaxtla","language_family_english":"Triqui Chicahuaxtla","language_family_iso":"trs","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UTI","version_name":"Union Nacional de Traductores Indigenas A.C.","version_english":"Union Nacional de Traductores Indigenas A.C.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 19:56:19","created_on":"2015-11-17 18:45:09","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TRSUTIN2DA\/TRSUTIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TRSUTIN2ET","fcbh_id":"TRSUTIN2ET","volume_name":"UTI Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TRS","language_name":"Triqui Chicahuaxtla","language_english":"Triqui Chicahuaxtla","language_iso":"trs","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Chicahuaxtla Triqui","language_family_code":"TRS","language_family_name":"Triqui Chicahuaxtla","language_family_english":"Triqui Chicahuaxtla","language_family_iso":"trs","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UTI","version_name":"Union Nacional de Traductores Indigenas A.C.","version_english":"Union Nacional de Traductores Indigenas A.C.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-01-05 19:43:01","created_on":"2015-12-29 22:51:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TRSUTIN2ET\/TRSUTIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TS1BSMN1DA","fcbh_id":"TS1BSMN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TS1","language_name":"Tsonga","language_english":"Xichangana","language_iso":"tso","language_iso_2B":"tso","language_iso_2T":"tso","language_iso_1":"ts","language_iso_name":"Tsonga","language_family_code":"TS1","language_family_name":"Tsonga","language_family_english":"Xichangana","language_family_iso":"tso","language_family_iso_2B":"tso","language_family_iso_2T":"tso","language_family_iso_1":"ts","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-18 18:12:53","created_on":"2016-02-18 17:54:55","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TS1BSMN1DA\/TS1BSMN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TS1BSMN2DA","fcbh_id":"TS1BSMN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TS1","language_name":"Tsonga","language_english":"Xichangana","language_iso":"tso","language_iso_2B":"tso","language_iso_2T":"tso","language_iso_1":"ts","language_iso_name":"Tsonga","language_family_code":"TS1","language_family_name":"Tsonga","language_family_english":"Xichangana","language_family_iso":"tso","language_family_iso_2B":"tso","language_family_iso_2T":"tso","language_family_iso_1":"ts","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-18 18:07:35","created_on":"2016-02-18 17:48:55","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TS1BSMN2DA\/TS1BSMN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TSCBSMN2DA","fcbh_id":"TSCBSMN2DA","volume_name":"1972 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TSC","language_name":"Xitshwa","language_english":"Xitshwa","language_iso":"tsc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tswa","language_family_code":"TSC","language_family_name":"Xitshwa","language_family_english":"Xitshwa","language_family_iso":"tsc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:44","created_on":"2010-09-14 17:00:50","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TSCBSM","audio_zip_path":"TSCBSMN2DA\/TSCBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TSZBSMN2DA","fcbh_id":"TSZBSMN2DA","volume_name":"Bible Society Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TSZ","language_name":"Purepecha","language_english":"Purepecha","language_iso":"tsz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Purepecha","language_family_code":"TSZ","language_family_name":"Purepecha","language_family_english":"Purepecha","language_family_iso":"tsz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-12-29 22:41:25","created_on":"2011-01-13 19:30:14","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2TSZBSM","audio_zip_path":"TSZBSMN2DA\/TSZBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TT1IBTN2ET","fcbh_id":"TT1IBTN2ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TT1","language_name":"Tatar","language_english":"Tatar","language_iso":"ttr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tera","language_family_code":"TTR","language_family_name":"Tatar","language_family_english":"Tatar","language_family_iso":"tat","language_family_iso_2B":"tat","language_family_iso_2T":"tat","language_family_iso_1":"tt","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-17 21:24:41","created_on":"2017-06-21 19:39:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TT1IBTN2ET\/TT1IBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TT1IBTO2ET","fcbh_id":"TT1IBTO2ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TT1","language_name":"Tatar","language_english":"Tatar","language_iso":"ttr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tera","language_family_code":"TTR","language_family_name":"Tatar","language_family_english":"Tatar","language_family_iso":"tat","language_family_iso_2B":"tat","language_family_iso_2T":"tat","language_family_iso_1":"tt","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-07-17 21:24:41","created_on":"2017-06-21 19:43:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TT1IBTO2ET\/TT1IBTO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TTCWBTN1DA","fcbh_id":"TTCWBTN1DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TTC","language_name":"Tektiteko","language_english":"Tektiteko","language_iso":"ttc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tektiteko","language_family_code":"TTC","language_family_name":"Tektiteko","language_family_english":"Tektiteko","language_family_iso":"ttc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-16 15:28:32","created_on":"2018-03-13 16:07:18","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"TTCWBTN1DA\/TTCWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TTCWBTN1ET","fcbh_id":"TTCWBTN1ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TTC","language_name":"Tektiteko","language_english":"Tektiteko","language_iso":"ttc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tektiteko","language_family_code":"TTC","language_family_name":"Tektiteko","language_family_english":"Tektiteko","language_family_iso":"ttc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 16:17:23","created_on":"2018-03-13 16:03:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TTCWBTN1ET\/TTCWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TTCWBTN2DA","fcbh_id":"TTCWBTN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TTC","language_name":"Tektiteko","language_english":"Tektiteko","language_iso":"ttc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tektiteko","language_family_code":"TTC","language_family_name":"Tektiteko","language_family_english":"Tektiteko","language_family_iso":"ttc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-02-04 20:06:35","created_on":"2014-01-13 18:13:05","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"TTCWBTN2DA\/TTCWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TTCWBTN2ET","fcbh_id":"TTCWBTN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TTC","language_name":"Tektiteko","language_english":"Tektiteko","language_iso":"ttc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tektiteko","language_family_code":"TTC","language_family_name":"Tektiteko","language_family_english":"Tektiteko","language_family_iso":"ttc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-13 15:52:23","created_on":"2011-10-12 14:58:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TTCWBTN2ET\/TTCWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TTEWBTN1DA","fcbh_id":"TTEWBTN1DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TTE","language_name":"Bwanabwana","language_english":"Bwanabwana","language_iso":"tte","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bwanabwana","language_family_code":"TTE","language_family_name":"Bwanabwana","language_family_english":"Bwanabwana","language_family_iso":"tte","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-12 19:32:49","created_on":"2018-07-11 22:08:34","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TTEWBTN1DA\/TTEWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TTEWBTN1ET","fcbh_id":"TTEWBTN1ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TTE","language_name":"Bwanabwana","language_english":"Bwanabwana","language_iso":"tte","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bwanabwana","language_family_code":"TTE","language_family_name":"Bwanabwana","language_family_english":"Bwanabwana","language_family_iso":"tte","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-12 19:33:06","created_on":"2018-07-11 22:00:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TTEWBTN1ET\/TTEWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TTEWBTN2DA","fcbh_id":"TTEWBTN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TTE","language_name":"Bwanabwana","language_english":"Bwanabwana","language_iso":"tte","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bwanabwana","language_family_code":"TTE","language_family_name":"Bwanabwana","language_family_english":"Bwanabwana","language_family_iso":"tte","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-12 19:33:29","created_on":"2018-07-11 22:04:38","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TTEWBTN2DA\/TTEWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TTEWBTN2ET","fcbh_id":"TTEWBTN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TTE","language_name":"Bwanabwana","language_english":"Bwanabwana","language_iso":"tte","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Bwanabwana","language_family_code":"TTE","language_family_name":"Bwanabwana","language_family_english":"Bwanabwana","language_family_iso":"tte","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-11 22:52:54","created_on":"2014-06-25 18:55:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TTEWBTN2ET\/TTEWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TTRIBTN2DA","fcbh_id":"TTRIBTN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TTR","language_name":"Tatar","language_english":"Tatar","language_iso":"tat","language_iso_2B":"tat","language_iso_2T":"tat","language_iso_1":"tt","language_iso_name":"Tatar","language_family_code":"TTR","language_family_name":"Tatar","language_family_english":"Tatar","language_family_iso":"tat","language_family_iso_2B":"tat","language_family_iso_2T":"tat","language_family_iso_1":"tt","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 19:21:31","created_on":"2010-09-14 17:00:50","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TTRIBT","audio_zip_path":"TTRIBTN2DA\/TTRIBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TTRIBTN2ET","fcbh_id":"TTRIBTN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TTR","language_name":"Tatar","language_english":"Tatar","language_iso":"tat","language_iso_2B":"tat","language_iso_2T":"tat","language_iso_1":"tt","language_iso_name":"Tatar","language_family_code":"TTR","language_family_name":"Tatar","language_family_english":"Tatar","language_family_iso":"tat","language_family_iso_2B":"tat","language_family_iso_2T":"tat","language_family_iso_1":"tt","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:01","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2TTRIBT","audio_zip_path":"TTRIBTN2ET\/TTRIBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TU1TBLN2DA","fcbh_id":"TUOTBLN2DA","volume_name":"2004 Edition (Brazil)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TU1","language_name":"Tukano","language_english":"Tukano","language_iso":"tuo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tucano","language_family_code":"TUO","language_family_name":"Tucano","language_family_english":"Tucano","language_family_iso":"tuo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:19","created_on":"2010-10-05 19:34:27","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2TUOTBL","audio_zip_path":"TU1TBLN2DA\/TU1TBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TU1TBLN2ET","fcbh_id":"TUOTBLN2ET","volume_name":"2004 Edition (Brazil)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TU1","language_name":"Tukano","language_english":"Tukano","language_iso":"tuo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tucano","language_family_code":"TUO","language_family_name":"Tucano","language_family_english":"Tucano","language_family_iso":"tuo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:20","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2TUOTBL","audio_zip_path":"TU1TBLN2ET\/TU1TBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TUEWBTN2DA","fcbh_id":"TUEWBTN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TUE","language_name":"Tuyuca","language_english":"Tuyuca","language_iso":"tue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tuyuca","language_family_code":"TUE","language_family_name":"Tuyuca","language_family_english":"Tuyuca","language_family_iso":"tue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:19","created_on":"2011-05-09 22:27:32","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"TUEWBTN2DA\/TUEWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TUEWBTN2ET","fcbh_id":"TUEWBTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TUE","language_name":"Tuyuca","language_english":"Tuyuca","language_iso":"tue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tuyuca","language_family_code":"TUE","language_family_name":"Tuyuca","language_family_english":"Tuyuca","language_family_iso":"tue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:37","created_on":"2011-05-10 15:14:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TUEWBTN2ET\/TUEWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TUFWYIN1DA","fcbh_id":"TUFWYIN1DA","volume_name":"1987 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TUF","language_name":"U'wa","language_english":"Tunebo, Central","language_iso":"tuf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Tunebo","language_family_code":"TUF","language_family_name":"U'wa","language_family_english":"Tunebo, Central","language_family_iso":"tuf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-28 20:44:15","created_on":"2016-10-28 16:52:42","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TUFWYIN1DA\/TUFWYIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TUFWYIN1ET","fcbh_id":"TUFWYIN1ET","volume_name":"1987 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TUF","language_name":"U'wa","language_english":"Tunebo, Central","language_iso":"tuf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Tunebo","language_family_code":"TUF","language_family_name":"U'wa","language_family_english":"Tunebo, Central","language_family_iso":"tuf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-08 16:28:54","created_on":"2016-10-28 16:50:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TUFWYIN1ET\/TUFWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TUFWYIN2DA","fcbh_id":"TUFWYIN2DA","volume_name":"1987 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TUF","language_name":"U'wa","language_english":"Tunebo, Central","language_iso":"tuf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Tunebo","language_family_code":"TUF","language_family_name":"U'wa","language_family_english":"Tunebo, Central","language_family_iso":"tuf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-01-24 17:57:21","created_on":"2016-10-28 16:54:02","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TUFWYIN2DA\/TUFWYIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TUFWYIN2ET","fcbh_id":"TUFWYIN2ET","volume_name":"1987 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TUF","language_name":"U'wa","language_english":"Tunebo, Central","language_iso":"tuf","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Tunebo","language_family_code":"TUF","language_family_name":"U'wa","language_family_english":"Tunebo, Central","language_family_iso":"tuf","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-30 16:54:07","created_on":"2011-05-30 17:58:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TUFWYIN2ET\/TUFWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TUIABCN2DA","fcbh_id":"TUIABCN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TUI","language_name":"Tupuri","language_english":"Tupuri","language_iso":"tui","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tupuri","language_family_code":"TUI","language_family_name":"Tupuri","language_family_english":"Tupuri","language_family_iso":"tui","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:48","created_on":"2010-09-14 17:00:51","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TUIABC","audio_zip_path":"TUIABCN2DA\/TUIABCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TUKIBTN1ET","fcbh_id":"TUKIBTN1ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TUK","language_name":"Turkmen","language_english":"Turkmen","language_iso":"tuk","language_iso_2B":"tuk","language_iso_2T":"tuk","language_iso_1":"tk","language_iso_name":"Turkmen","language_family_code":"TUK","language_family_name":"Turkmen","language_family_english":"Turkmen","language_family_iso":"tuk","language_family_iso_2B":"tuk","language_family_iso_2T":"tuk","language_family_iso_1":"tk","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-06 19:19:45","created_on":"2017-08-01 21:37:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TUKIBTN1ET\/TUKIBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TUKIBTN2ET","fcbh_id":"TUKIBTN2ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TUK","language_name":"Turkmen","language_english":"Turkmen","language_iso":"tuk","language_iso_2B":"tuk","language_iso_2T":"tuk","language_iso_1":"tk","language_iso_name":"Turkmen","language_family_code":"TUK","language_family_name":"Turkmen","language_family_english":"Turkmen","language_family_iso":"tuk","language_family_iso_2B":"tuk","language_family_iso_2T":"tuk","language_family_iso_1":"tk","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-06 19:21:37","created_on":"2017-08-01 21:45:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TUKIBTN2ET\/TUKIBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TUKIBTO1DA","fcbh_id":"TUKIBTO1DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TUK","language_name":"Turkmen","language_english":"Turkmen","language_iso":"tuk","language_iso_2B":"tuk","language_iso_2T":"tuk","language_iso_1":"tk","language_iso_name":"Turkmen","language_family_code":"TUK","language_family_name":"Turkmen","language_family_english":"Turkmen","language_family_iso":"tuk","language_family_iso_2B":"tuk","language_family_iso_2T":"tuk","language_family_iso_1":"tk","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-01-11 18:57:15","created_on":"2017-12-21 16:04:04","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TUKIBTO1DA\/TUKIBTO1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TUKIBTO1ET","fcbh_id":"TUKIBTO1ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TUK","language_name":"Turkmen","language_english":"Turkmen","language_iso":"tuk","language_iso_2B":"tuk","language_iso_2T":"tuk","language_iso_1":"tk","language_iso_name":"Turkmen","language_family_code":"TUK","language_family_name":"Turkmen","language_family_english":"Turkmen","language_family_iso":"tuk","language_family_iso_2B":"tuk","language_family_iso_2T":"tuk","language_family_iso_1":"tk","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-08-06 19:22:01","created_on":"2017-08-01 21:52:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TUKIBTO1ET\/TUKIBTO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TUKIBTO2DA","fcbh_id":"TUKIBTO2DA","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TUK","language_name":"Turkmen","language_english":"Turkmen","language_iso":"tuk","language_iso_2B":"tuk","language_iso_2T":"tuk","language_iso_1":"tk","language_iso_name":"Turkmen","language_family_code":"TUK","language_family_name":"Turkmen","language_family_english":"Turkmen","language_family_iso":"tuk","language_family_iso_2B":"tuk","language_family_iso_2T":"tuk","language_family_iso_1":"tk","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-04-12 16:55:55","created_on":"2017-12-21 16:02:58","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TUKIBTO2DA\/TUKIBTO2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TUKIBTO2ET","fcbh_id":"TUKIBTO2ET","volume_name":"2016 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TUK","language_name":"Turkmen","language_english":"Turkmen","language_iso":"tuk","language_iso_2B":"tuk","language_iso_2T":"tuk","language_iso_1":"tk","language_iso_name":"Turkmen","language_family_code":"TUK","language_family_name":"Turkmen","language_family_english":"Turkmen","language_family_iso":"tuk","language_family_iso_2B":"tuk","language_family_iso_2T":"tuk","language_family_iso_1":"tk","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-01-11 18:57:14","created_on":"2017-08-01 21:44:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TUKIBTO2ET\/TUKIBTO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TUOWBTN2DA","fcbh_id":"TUOWBTN2DA","volume_name":"2005 Edition (Colombia)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TUO","language_name":"Tucano","language_english":"Tucano","language_iso":"tuo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tucano","language_family_code":"TUO","language_family_name":"Tucano","language_family_english":"Tucano","language_family_iso":"tuo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-11 20:09:48","created_on":"2010-09-14 17:00:51","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TUOWBT","audio_zip_path":"TUOWBTN2DA\/TUOWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TUOWBTN2ET","fcbh_id":"TUOWBTN2ET","volume_name":"2005 Edition (Colombia)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TUO","language_name":"Tucano","language_english":"Tucano","language_iso":"tuo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tucano","language_family_code":"TUO","language_family_name":"Tucano","language_family_english":"Tucano","language_family_iso":"tuo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:18","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2TUOWBT","audio_zip_path":"TUOWBTN2ET\/TUOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TUVBSKN2DA","fcbh_id":"TUVBSKN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TUV","language_name":"Turkana","language_english":"Turkana","language_iso":"tuv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Turkana","language_family_code":"TUV","language_family_name":"Turkana","language_family_english":"Turkana","language_family_iso":"tuv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSK","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-06 00:19:45","created_on":"2010-09-14 17:00:57","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TUVBSK","audio_zip_path":"TUVBSKN2DA\/TUVBSKN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TUWBSMN2DA","fcbh_id":"TUWBSMN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TUW","language_name":"Chitumbuka","language_english":"Chitumbuka","language_iso":"tum","language_iso_2B":"tum","language_iso_2T":"tum","language_iso_1":"","language_iso_name":"Tumbuka","language_family_code":"TUW","language_family_name":"Chitumbuka","language_family_english":"Chitumbuka","language_family_iso":"tum","language_family_iso_2B":"tum","language_family_iso_2T":"tum","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:43","created_on":"2010-09-14 17:00:51","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TUWBSM","audio_zip_path":"TUWBSMN2DA\/TUWBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TVWLAIN1DA","fcbh_id":"TVWLAIN1DA","volume_name":"LAI Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TVW","language_name":"Sedoa","language_english":"Sedoa","language_iso":"tvw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sedoa","language_family_code":"TVW","language_family_name":"Sedoa","language_family_english":"Sedoa","language_family_iso":"tvw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-09 18:20:32","created_on":"2018-03-29 15:40:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TVWLAIN1DA\/TVWLAIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TVWLAIN2DA","fcbh_id":"TVWLAIN2DA","volume_name":"LAI Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TVW","language_name":"Sedoa","language_english":"Sedoa","language_iso":"tvw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sedoa","language_family_code":"TVW","language_family_name":"Sedoa","language_family_english":"Sedoa","language_family_iso":"tvw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-09 18:20:32","created_on":"2018-03-29 15:35:57","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TVWLAIN2DA\/TVWLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TWBOMFN1DA","fcbh_id":"TWBOMFN1DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TWB","language_name":"Tawbuid","language_english":"Western Tawbuid","language_iso":"twb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Tawbuid","language_family_code":"TWB","language_family_name":"Tawbuid","language_family_english":"Western Tawbuid","language_family_iso":"twb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"OMF","version_name":"Overseas Missionary Fellowship","version_english":"Overseas Missionary Fellowship","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-26 15:22:21","created_on":"2016-01-26 21:06:52","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TWBOMFN1DA\/TWBOMFN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TWBOMFN1ET","fcbh_id":"TWBOMFN1ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TWB","language_name":"Tawbuid","language_english":"Western Tawbuid","language_iso":"twb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Tawbuid","language_family_code":"TWB","language_family_name":"Tawbuid","language_family_english":"Western Tawbuid","language_family_iso":"twb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"OMF","version_name":"Overseas Missionary Fellowship","version_english":"Overseas Missionary Fellowship","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-26 15:27:30","created_on":"2016-08-26 15:20:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TWBOMFN1ET\/TWBOMFN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TWBOMFN2DA","fcbh_id":"TWBOMFN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TWB","language_name":"Tawbuid","language_english":"Western Tawbuid","language_iso":"twb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Tawbuid","language_family_code":"TWB","language_family_name":"Tawbuid","language_family_english":"Western Tawbuid","language_family_iso":"twb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"OMF","version_name":"Overseas Missionary Fellowship","version_english":"Overseas Missionary Fellowship","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-26 15:23:09","created_on":"2016-01-26 21:13:32","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TWBOMFN2DA\/TWBOMFN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TWBOMFN2ET","fcbh_id":"TWBOMFN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TWB","language_name":"Tawbuid","language_english":"Western Tawbuid","language_iso":"twb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Western Tawbuid","language_family_code":"TWB","language_family_name":"Tawbuid","language_family_english":"Western Tawbuid","language_family_iso":"twb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"OMF","version_name":"Overseas Missionary Fellowship","version_english":"Overseas Missionary Fellowship","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-09-22 15:41:13","created_on":"2015-09-21 22:58:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TWBOMFN2ET\/TWBOMFN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"TWULAIN2DA","fcbh_id":"TWULAIN2DA","volume_name":"Today's Rote Version, 2004","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TWU","language_name":"Rote","language_english":"Rote","language_iso":"twu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Termanu","language_family_code":"TWU","language_family_name":"Rote","language_family_english":"Rote","language_family_iso":"twu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:21","created_on":"2011-07-12 23:08:30","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"TWULAIN2DA\/TWULAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TWULAIN2ET","fcbh_id":"TWULAIN2ET","volume_name":"Today's Rote Version, 2004","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TWU","language_name":"Rote","language_english":"Rote","language_iso":"twu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Termanu","language_family_code":"TWU","language_family_name":"Rote","language_family_english":"Rote","language_family_iso":"twu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:16","created_on":"2011-07-19 17:44:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TWULAIN2ET\/TWULAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TXATBLP1DA","fcbh_id":"TXATBLP1DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TXA","language_name":"Tombonuo","language_english":"Tombonuo","language_iso":"txa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tombonuo","language_family_code":"TXA","language_family_name":"Tombonuo","language_family_english":"Tombonuo","language_family_iso":"txa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-03-22 19:10:13","created_on":"2017-08-02 19:43:54","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TXATBLP1DA\/TXATBLP1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","streaming_url","digital_download"],"resolution":[]},{"dam_id":"TXUTBLN1DA","fcbh_id":"TXUTBLN1DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TXU","language_name":"Kayapo","language_english":"Kayapo","language_iso":"txu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kayap\u00f3","language_family_code":"TXU","language_family_name":"Kayapo","language_family_english":"Kayapo","language_family_iso":"txu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-18 16:58:37","created_on":"2016-04-01 18:24:45","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TXUTBLN1DA\/TXUTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TXUTBLN1ET","fcbh_id":"TXUTBLN1ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TXU","language_name":"Kayapo","language_english":"Kayapo","language_iso":"txu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kayap\u00f3","language_family_code":"TXU","language_family_name":"Kayapo","language_family_english":"Kayapo","language_family_iso":"txu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-04-01 18:20:12","created_on":"2016-04-01 18:00:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TXUTBLN1ET\/TXUTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TXUTBLN2DA","fcbh_id":"TXUTBLN2DA","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TXU","language_name":"Kayapo","language_english":"Kayapo","language_iso":"txu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kayap\u00f3","language_family_code":"TXU","language_family_name":"Kayapo","language_family_english":"Kayapo","language_family_iso":"txu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-04-01 18:35:07","created_on":"2016-04-01 18:04:16","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TXUTBLN2DA\/TXUTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TXUTBLN2ET","fcbh_id":"TXUTBLN2ET","volume_name":"1996 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TXU","language_name":"Kayapo","language_english":"Kayapo","language_iso":"txu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kayap\u00f3","language_family_code":"TXU","language_family_name":"Kayapo","language_family_english":"Kayapo","language_family_iso":"txu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:12","created_on":"2011-05-30 18:01:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TXUTBLN2ET\/TXUTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TZASLSS2DV","fcbh_id":"TZASLSS2DV","volume_name":"DOOR International Tanzanian Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TZA","language_name":"Tanzanian Sign Language","language_english":"Tanzanian Sign Language","language_iso":"tza","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tanzanian Sign Language","language_family_code":"TZA","language_family_name":"Tanzanian Sign Language","language_family_english":"Tanzanian Sign Language","language_family_iso":"tza","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLS","version_name":"Sign Language Stories","version_english":"Sign Language Stories","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2014-03-08 01:04:39","created_on":"2014-01-10 17:07:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TZASLSS2DV\/TZASLSS2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"TZBSBMN2DA","fcbh_id":"TZBSBMN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TZB","language_name":"Tzeltal, Bachajon","language_english":"Tzeltal, Bachajon","language_iso":"tzh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tzeltal","language_family_code":"TZB","language_family_name":"Tzeltal, Bachajon","language_family_english":"Tzeltal, Bachajon","language_family_iso":"tzh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:49","created_on":"2010-09-14 17:00:52","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TZBSBM","audio_zip_path":"TZBSBMN2DA\/TZBSBMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TZCSBMN2DA","fcbh_id":"TZCSBMN2DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TZC","language_name":"Tzotzil, Chamula","language_english":"Tzotzil, Chamula","language_iso":"tzo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tzotzil","language_family_code":"TZC","language_family_name":"Tzotzil, Chamula","language_family_english":"Tzotzil, Chamula","language_family_iso":"tzo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:43","created_on":"2010-09-14 17:00:52","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TZCSBM","audio_zip_path":"TZCSBMN2DA\/TZCSBMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TZESBMN2DA","fcbh_id":"TZESBMN2DA","volume_name":"1997 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TZE","language_name":"Tzotzil, Chenalho","language_english":"Tzotzil, Chenalho","language_iso":"tzo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tzotzil","language_family_code":"TZE","language_family_name":"Tzotzil, Chenalho","language_family_english":"Tzotzil, Chenalho","language_family_iso":"tzo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:49","created_on":"2010-09-14 17:00:52","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TZESBM","audio_zip_path":"TZESBMN2DA\/TZESBMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TZHSBMN2DA","fcbh_id":"TZHSBMN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TZH","language_name":"Tzeltal, Oxchuc","language_english":"Tzeltal, Oxchuc","language_iso":"tzh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tzeltal","language_family_code":"TZH","language_family_name":"Tzeltal, Oxchuc","language_family_english":"Tzeltal, Oxchuc","language_family_iso":"tzh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:42","created_on":"2010-09-14 17:00:52","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2TZHSBM","audio_zip_path":"TZHSBMN2DA\/TZHSBMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"TZJIBSN1DA","fcbh_id":"TZJIBSN1DA","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TZJ","language_name":"Tzutujil, Eastern","language_english":"Tzutijil Santtiago Atitlan","language_iso":"tzj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tz'utujil","language_family_code":"TZJ","language_family_name":"Tzutujil, Eastern","language_family_english":"Tzutijil Santtiago Atitlan","language_family_iso":"tzj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-27 18:15:29","created_on":"2010-09-14 16:59:52","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1TZJIBS","audio_zip_path":"TZJIBSN1DA\/TZJIBSN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TZJIBSN1ET","fcbh_id":"TZJIBSN1ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TZJ","language_name":"Tzutujil, Eastern","language_english":"Tzutijil Santtiago Atitlan","language_iso":"tzj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tz'utujil","language_family_code":"TZJ","language_family_name":"Tzutujil, Eastern","language_family_english":"Tzutijil Santtiago Atitlan","language_family_iso":"tzj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:05","created_on":"2011-06-15 19:43:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TZJIBSN1ET\/TZJIBSN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TZJWYIN2ET","fcbh_id":"TZJWYIN2ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TZJ","language_name":"Tzutujil, Eastern","language_english":"Tzutijil Santtiago Atitlan","language_iso":"tzj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tz'utujil","language_family_code":"TZJ","language_family_name":"Tzutujil, Eastern","language_family_english":"Tzutijil Santtiago Atitlan","language_family_iso":"tzj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-02-27 18:15:29","created_on":"2012-01-04 19:07:50","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TZJWYIN2ET\/TZJWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"TZMWYIP1DA","fcbh_id":"TZMWYIP1DA","volume_name":"WYI Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TZM","language_name":"Tamazight, Central Atlas","language_english":"Tamazight, Central Atlas","language_iso":"tzm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Atlas Tamazight","language_family_code":"TZM","language_family_name":"Tamazight, Central Atlas","language_family_english":"Tamazight, Central Atlas","language_family_iso":"tzm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-09-21 22:22:16","created_on":"2018-09-21 21:41:58","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TZMWYIP1DA\/TZMWYIP1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","streaming_url","digital_download"],"resolution":[]},{"dam_id":"TZMWYIS1DA","fcbh_id":"TZMWYIS1DA","volume_name":"WYI Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"TZM","language_name":"Tamazight, Central Atlas","language_english":"Tamazight, Central Atlas","language_iso":"tzm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Central Atlas Tamazight","language_family_code":"TZM","language_family_name":"Tamazight, Central Atlas","language_family_english":"Tamazight, Central Atlas","language_family_iso":"tzm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-09-21 22:29:08","created_on":"2018-09-21 21:47:12","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"TZMWYIS1DA\/TZMWYIS1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["digital_download"],"resolution":[]},{"dam_id":"TZTWBTN2DA","fcbh_id":"TZTWBTN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TZT","language_name":"Tzutujil, Western","language_english":"Tzutujil, Western","language_iso":"tzt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"","language_family_code":"TZT","language_family_name":"Tzutujil, Western","language_family_english":"Tzutujil, Western","language_family_iso":"tzt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:23","created_on":"2011-05-23 21:28:22","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"TZTWBTN2DA\/TZTWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"TZTWBTN2ET","fcbh_id":"TZTWBTN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"TZT","language_name":"Tzutujil, Western","language_english":"Tzutujil, Western","language_iso":"tzt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"","language_family_code":"TZT","language_family_name":"Tzutujil, Western","language_family_english":"Tzutujil, Western","language_family_iso":"tzt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:19","created_on":"2011-05-23 21:40:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"TZTWBTN2ET\/TZTWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"UB1KLAN2ET","fcbh_id":"UB1KLAN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"UB1","language_name":"Umbu Ungu Kala","language_english":"Umbu Ungu Kala","language_iso":"ubu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Umbu-Ungu","language_family_code":"UB1","language_family_name":"Umbu Ungu Kala","language_family_english":"Umbu Ungu Kala","language_family_iso":"ubu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"KLA","version_name":"KLA","version_english":"KLA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-03 17:53:50","created_on":"2014-07-07 21:04:28","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"UB1KLAN2ET\/UB1KLAN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"UB2NPGN2ET","fcbh_id":"UB2NPGN2ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"UB2","language_name":"Umbu Ungu No Penge","language_english":"Umbu Ungu No Penge","language_iso":"ubu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Umbu-Ungu","language_family_code":"UB2","language_family_name":"Umbu Ungu No Penge","language_family_english":"Umbu Ungu No Penge","language_family_iso":"ubu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NPG","version_name":"No Penge","version_english":"No Penge","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-03 18:08:25","created_on":"2014-07-07 21:07:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"UB2NPGN2ET\/UB2NPGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"UBLTAPN1DA","fcbh_id":"UBLTAPN1DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"UBL","language_name":"Bikol Buhinon","language_english":"Bikol Buhinon","language_iso":"ubl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Buhi'non Bikol","language_family_code":"UBL","language_family_name":"Bikol Buhinon","language_family_english":"Bikol Buhinon","language_family_iso":"ubl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TAP","version_name":"Translators Association of the Philippines","version_english":"Translators Association of the Philippines","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-20 22:54:58","created_on":"2018-06-07 15:46:44","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"UBLTAPN1DA\/UBLTAPN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"UBLTAPN2DA","fcbh_id":"UBLTAPN2DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"UBL","language_name":"Bikol Buhinon","language_english":"Bikol Buhinon","language_iso":"ubl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Buhi'non Bikol","language_family_code":"UBL","language_family_name":"Bikol Buhinon","language_family_english":"Bikol Buhinon","language_family_iso":"ubl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TAP","version_name":"Translators Association of the Philippines","version_english":"Translators Association of the Philippines","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-20 23:14:50","created_on":"2018-06-07 15:34:21","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"UBLTAPN2DA\/UBLTAPN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","sign_language","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"UDMIBTN1DA","fcbh_id":"UDMIBTN1DA","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"UDM","language_name":"Udmurt","language_english":"Udmurt","language_iso":"udm","language_iso_2B":"udm","language_iso_2T":"udm","language_iso_1":"","language_iso_name":"Udmurt","language_family_code":"UDM","language_family_name":"Udmurt","language_family_english":"Udmurt","language_family_iso":"udm","language_family_iso_2B":"udm","language_family_iso_2T":"udm","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-01 15:08:33","created_on":"2016-07-28 19:55:51","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"UDMIBTN1DA\/UDMIBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"UDMIBTN1ET","fcbh_id":"UDMIBTN1ET","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"UDM","language_name":"Udmurt","language_english":"Udmurt","language_iso":"udm","language_iso_2B":"udm","language_iso_2T":"udm","language_iso_1":"","language_iso_name":"Udmurt","language_family_code":"UDM","language_family_name":"Udmurt","language_family_english":"Udmurt","language_family_iso":"udm","language_family_iso_2B":"udm","language_family_iso_2T":"udm","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-01 14:26:48","created_on":"2016-08-01 14:20:22","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"UDMIBTN1ET\/UDMIBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"UDMIBTN2DA","fcbh_id":"UDMIBTN2DA","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"UDM","language_name":"Udmurt","language_english":"Udmurt","language_iso":"udm","language_iso_2B":"udm","language_iso_2T":"udm","language_iso_1":"","language_iso_name":"Udmurt","language_family_code":"UDM","language_family_name":"Udmurt","language_family_english":"Udmurt","language_family_iso":"udm","language_family_iso_2B":"udm","language_family_iso_2T":"udm","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-01 15:08:56","created_on":"2016-07-28 20:15:32","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"UDMIBTN2DA\/UDMIBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"UDMIBTN2ET","fcbh_id":"UDMIBTN2ET","volume_name":"IBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"UDM","language_name":"Udmurt","language_english":"Udmurt","language_iso":"udm","language_iso_2B":"udm","language_iso_2T":"udm","language_iso_1":"","language_iso_name":"Udmurt","language_family_code":"UDM","language_family_name":"Udmurt","language_family_english":"Udmurt","language_family_iso":"udm","language_family_iso_2B":"udm","language_family_iso_2T":"udm","language_family_iso_1":"","version_code":"IBT","version_name":"Institute for Bible Translation ","version_english":"Institute for Bible Translation ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-06-02 14:04:20","created_on":"2014-10-31 19:49:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"UDMIBTN2ET\/UDMIBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"UDUSIMN2DA","fcbh_id":"UDUSIMN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"UDU","language_name":"Uduk","language_english":"Uduk","language_iso":"udu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Uduk","language_family_code":"UDU","language_family_name":"Uduk","language_family_english":"Uduk","language_family_iso":"udu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 20:06:59","created_on":"2010-10-05 19:34:24","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2UDUSIM","audio_zip_path":"UDUSIMN2DA\/UDUSIMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"UDUSIMN2ET","fcbh_id":"UDUSIMN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"UDU","language_name":"Uduk","language_english":"Uduk","language_iso":"udu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Uduk","language_family_code":"UDU","language_family_name":"Uduk","language_family_english":"Uduk","language_family_iso":"udu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:20","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2UDUSIM","audio_zip_path":"UDUSIMN2ET\/UDUSIMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"UGNSLSS2DV","fcbh_id":"UGNSLSS2DV","volume_name":"DOOR International Ugandan Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"UGN","language_name":"Ugandan Sign Language","language_english":"Ugandan Sign Language","language_iso":"ugn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ugandan Sign Language","language_family_code":"UGN","language_family_name":"Ugandan Sign Language","language_family_english":"Ugandan Sign Language","language_family_iso":"ugn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLS","version_name":"Sign Language Stories","version_english":"Sign Language Stories","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2014-01-21 16:58:04","created_on":"2014-01-10 17:09:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"UGNSLSS2DV\/UGNSLSS2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"UKRO30N2ET","fcbh_id":"UKRO30N2ET","volume_name":"1962 Ukrainian Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"UKR","language_name":"\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430","language_english":"Ukrainian","language_iso":"ukr","language_iso_2B":"ukr","language_iso_2T":"ukr","language_iso_1":"uk","language_iso_name":"Ukrainian","language_family_code":"UKR","language_family_name":"\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430","language_family_english":"Ukrainian","language_family_iso":"ukr","language_family_iso_2B":"ukr","language_family_iso_2T":"ukr","language_family_iso_1":"uk","version_code":"O30","version_name":"Ukranian Bible 1930","version_english":"Ukranian Bible 1930","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-16 15:33:01","created_on":"2010-09-14 17:01:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"UKRO30N2ET\/UKRO30N2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"UKRO30O2ET","fcbh_id":"UKRO30O2ET","volume_name":"1962 Ukrainian Bible","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"UKR","language_name":"\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430","language_english":"Ukrainian","language_iso":"ukr","language_iso_2B":"ukr","language_iso_2T":"ukr","language_iso_1":"uk","language_iso_name":"Ukrainian","language_family_code":"UKR","language_family_name":"\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430","language_family_english":"Ukrainian","language_family_iso":"ukr","language_family_iso_2B":"ukr","language_family_iso_2T":"ukr","language_family_iso_1":"uk","version_code":"O30","version_name":"Ukranian Bible 1930","version_english":"Ukranian Bible 1930","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2015-10-16 15:33:01","created_on":"2010-09-14 17:01:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"UKRO30O2ET\/UKRO30O2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"UKRO95N2DA","fcbh_id":"UKRO95N2DA","volume_name":"1995 Ohienko","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"UKR","language_name":"\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430","language_english":"Ukrainian","language_iso":"ukr","language_iso_2B":"ukr","language_iso_2T":"ukr","language_iso_1":"uk","language_iso_name":"Ukrainian","language_family_code":"UKR","language_family_name":"\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430","language_family_english":"Ukrainian","language_family_iso":"ukr","language_family_iso_2B":"ukr","language_family_iso_2T":"ukr","language_family_iso_1":"uk","version_code":"O95","version_name":"Urkainian Ohienko ","version_english":"Urkainian Ohienko ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:32","created_on":"2010-09-14 17:00:52","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2UKRO95","audio_zip_path":"UKRO95N2DA\/UKRO95N2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"UMBBSAN2DA","fcbh_id":"UMBBSAN2DA","volume_name":"1963 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"UMB","language_name":"Umbundu","language_english":"Umbundu","language_iso":"umb","language_iso_2B":"umb","language_iso_2T":"umb","language_iso_1":"","language_iso_name":"Umbundu","language_family_code":"UMB","language_family_name":"Umbundu","language_family_english":"Umbundu","language_family_iso":"umb","language_family_iso_2B":"umb","language_family_iso_2T":"umb","language_family_iso_1":"","version_code":"BSA","version_name":"BSA","version_english":"BSA","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-10-21 19:25:35","created_on":"2010-09-14 17:00:53","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2UMBBSA","audio_zip_path":"UMBBSAN2DA\/UMBBSAN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"UPVWBTN1DA","fcbh_id":"UPVWBTN1DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"UPV","language_name":"Uripiv","language_english":"Uripiv","language_iso":"upv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Uripiv-Wala-Rano-Atchin","language_family_code":"UPV","language_family_name":"Uripiv","language_family_english":"Uripiv","language_family_iso":"upv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-21 21:24:17","created_on":"2017-11-17 21:12:48","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"UPVWBTN1DA\/UPVWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"UPVWBTN1ET","fcbh_id":"UPVWBTN1ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"UPV","language_name":"Uripiv","language_english":"Uripiv","language_iso":"upv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Uripiv-Wala-Rano-Atchin","language_family_code":"UPV","language_family_name":"Uripiv","language_family_english":"Uripiv","language_family_iso":"upv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-21 15:20:47","created_on":"2017-06-21 15:15:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"UPVWBTN1ET\/UPVWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"URATBLN2DA","fcbh_id":"URATBLN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"URA","language_name":"Urarina","language_english":"Urarina","language_iso":"ura","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Urarina","language_family_code":"URA","language_family_name":"Urarina","language_family_english":"Urarina","language_family_iso":"ura","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 20:12:03","created_on":"2010-09-14 17:01:20","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2URATBL","audio_zip_path":"URATBLN2DA\/URATBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"URATBLN2ET","fcbh_id":"URATBLN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"URA","language_name":"Urarina","language_english":"Urarina","language_iso":"ura","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Urarina","language_family_code":"URA","language_family_name":"Urarina","language_family_english":"Urarina","language_family_iso":"ura","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:15","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2URATBL","audio_zip_path":"URATBLN2ET\/URATBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"URBWBTN1DA","fcbh_id":"URBWBTN1DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"URB","language_name":"Ka\u2019apor","language_english":"Kaapor","language_iso":"urb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Urub\u00fa-Kaapor","language_family_code":"URB","language_family_name":"Ka\u2019apor","language_family_english":"Kaapor","language_family_iso":"urb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-12 17:48:16","created_on":"2017-11-30 20:47:30","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"URBWBTN1DA\/URBWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"URBWBTN1ET","fcbh_id":"URBWBTN1ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"URB","language_name":"Ka\u2019apor","language_english":"Kaapor","language_iso":"urb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Urub\u00fa-Kaapor","language_family_code":"URB","language_family_name":"Ka\u2019apor","language_family_english":"Kaapor","language_family_iso":"urb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-12 17:48:16","created_on":"2017-11-30 19:06:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"URBWBTN1ET\/URBWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"URBWBTN2DA","fcbh_id":"URBWBTN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"URB","language_name":"Ka\u2019apor","language_english":"Kaapor","language_iso":"urb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Urub\u00fa-Kaapor","language_family_code":"URB","language_family_name":"Ka\u2019apor","language_family_english":"Kaapor","language_family_iso":"urb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-06 15:29:07","created_on":"2017-11-30 20:43:50","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"URBWBTN2DA\/URBWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"URBWBTN2ET","fcbh_id":"URBWBTN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"URB","language_name":"Ka\u2019apor","language_english":"Kaapor","language_iso":"urb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Urub\u00fa-Kaapor","language_family_code":"URB","language_family_name":"Ka\u2019apor","language_family_english":"Kaapor","language_family_iso":"urb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-12 17:48:17","created_on":"2016-12-01 18:55:02","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"URBWBTN2ET\/URBWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"URDPAKN2DA","fcbh_id":"URDPAKN2DA","volume_name":"Bible Society Version (for Pakistan)","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"URD","language_name":"Urdu","language_english":"Urdu","language_iso":"urd","language_iso_2B":"urd","language_iso_2T":"urd","language_iso_1":"ur","language_iso_name":"Urdu","language_family_code":"URD","language_family_name":"Urdu","language_family_english":"Urdu","language_family_iso":"urd","language_family_iso_2B":"urd","language_family_iso_2T":"urd","language_family_iso_1":"ur","version_code":"PAK","version_name":"Pakistan","version_english":"Pakistan","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:08","created_on":"2011-06-16 16:01:58","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"URDPAKN2DA\/URDPAKN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"URDWTCN2DA","fcbh_id":"URDWTCN2DA","volume_name":"Easy-to-Read Version (for India)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"URD","language_name":"Urdu","language_english":"Urdu","language_iso":"urd","language_iso_2B":"urd","language_iso_2T":"urd","language_iso_1":"ur","language_iso_name":"Urdu","language_family_code":"URD","language_family_name":"Urdu","language_family_english":"Urdu","language_family_iso":"urd","language_family_iso_2B":"urd","language_family_iso_2T":"urd","language_family_iso_1":"ur","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:26","created_on":"2012-05-09 21:45:25","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"URDWTCN2DA\/URDWTCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"URDWTCN2ET","fcbh_id":"URDWTCN2ET","volume_name":"Easy-to-Read Version (for India)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"URD","language_name":"Urdu","language_english":"Urdu","language_iso":"urd","language_iso_2B":"urd","language_iso_2T":"urd","language_iso_1":"ur","language_iso_name":"Urdu","language_family_code":"URD","language_family_name":"Urdu","language_family_english":"Urdu","language_family_iso":"urd","language_family_iso_2B":"urd","language_family_iso_2T":"urd","language_family_iso_1":"ur","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-12-29 23:07:37","created_on":"2011-10-10 17:37:05","right_to_left":"true","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"URDWTCN2ET\/URDWTCN2ET.zip","font":{"id":"30","name":"Scheherazade","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Scheherazade","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2004-2014, SIL International","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"URHUBSN2DA","fcbh_id":"URHUBSN2DA","volume_name":"1977 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"URH","language_name":"Urhobo","language_english":"Urhobo","language_iso":"urh","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Urhobo","language_family_code":"URH","language_family_name":"Urhobo","language_family_english":"Urhobo","language_family_iso":"urh","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:50","created_on":"2010-09-14 17:00:54","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2URHUBS","audio_zip_path":"URHUBSN2DA\/URHUBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"URKTBSN2DA","fcbh_id":"URKTBSN2DA","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"URK","language_name":"Urak Lawoi","language_english":"Urak Lawoi","language_iso":"urk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Urak Lawoi'","language_family_code":"URK","language_family_name":"Urak Lawoi","language_family_english":"Urak Lawoi","language_family_iso":"urk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBS","version_name":"Thailand Bible Society","version_english":"Thailand Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:27","created_on":"2012-06-21 15:50:18","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"URKTBSN2DA\/URKTBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"URKTBSN2ET","fcbh_id":"URKTBSN2ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"URK","language_name":"Urak Lawoi","language_english":"Urak Lawoi","language_iso":"urk","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Urak Lawoi'","language_family_code":"URK","language_family_name":"Urak Lawoi","language_family_english":"Urak Lawoi","language_family_iso":"urk","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBS","version_name":"Thailand Bible Society","version_english":"Thailand Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:12","created_on":"2012-01-13 21:42:44","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"URKTBSN2ET\/URKTBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"URYAOVN2ET","fcbh_id":"URYAOVN2ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"URY","language_name":"Orya","language_english":"Orya","language_iso":"ury","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Orya","language_family_code":"URY","language_family_name":"Orya","language_family_english":"Orya","language_family_iso":"ury","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AOV","version_name":"AOV","version_english":"AOV","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-30 23:07:04","created_on":"2017-05-06 00:30:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"URYAOVN2ET\/URYAOVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"USAWBTN2ET","fcbh_id":"USAWBTN2ET","volume_name":"1980 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"USA","language_name":"Usarufa","language_english":"Usarufa","language_iso":"usa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Usarufa","language_family_code":"USA","language_family_name":"Usarufa","language_family_english":"Usarufa","language_family_iso":"usa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-03 18:12:26","created_on":"2014-08-05 15:47:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"USAWBTN2ET\/USAWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"USPWBTN2DA","fcbh_id":"USPWBTN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"USP","language_name":"Uspanteco","language_english":"Uspanteco","language_iso":"usp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Uspanteco","language_family_code":"USP","language_family_name":"Uspanteco","language_family_english":"Uspanteco","language_family_iso":"usp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 20:15:19","created_on":"2010-09-14 17:00:54","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2USPWBT","audio_zip_path":"USPWBTN2DA\/USPWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"USPWBTN2ET","fcbh_id":"USPWBTN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"USP","language_name":"Uspanteco","language_english":"Uspanteco","language_iso":"usp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Uspanteco","language_family_code":"USP","language_family_name":"Uspanteco","language_family_english":"Uspanteco","language_family_iso":"usp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:03","created_on":"2011-08-05 17:16:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"USPWBTN2ET\/USPWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"UVLWBTN2ET","fcbh_id":"UVLWBTN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"UVL","language_name":"Lote","language_english":"Lote","language_iso":"uvl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lote","language_family_code":"UVL","language_family_name":"Lote","language_family_english":"Lote","language_family_iso":"uvl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 18:14:43","created_on":"2014-09-19 16:38:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"UVLWBTN2ET\/UVLWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"VAGWBTN2DA","fcbh_id":"VAGWBTN2DA","volume_name":"1977 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VAG","language_name":"Vagla","language_english":"Vagla","language_iso":"vag","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Vagla","language_family_code":"VAG","language_family_name":"Vagla","language_family_english":"Vagla","language_family_iso":"vag","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 20:21:17","created_on":"2010-09-14 17:00:54","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2VAGWBT","audio_zip_path":"VAGWBTN2DA\/VAGWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"VAGWBTN2ET","fcbh_id":"VAGWBTN2ET","volume_name":"1977 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VAG","language_name":"Vagla","language_english":"Vagla","language_iso":"vag","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Vagla","language_family_code":"VAG","language_family_name":"Vagla","language_family_english":"Vagla","language_family_iso":"vag","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:17","created_on":"2012-01-04 20:06:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"VAGWBTN2ET\/VAGWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"VAIBSLN2DA","fcbh_id":"VAIBSLN2DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"VAI","language_name":"Vai","language_english":"Vai","language_iso":"vai","language_iso_2B":"vai","language_iso_2T":"vai","language_iso_1":"","language_iso_name":"Vai","language_family_code":"VAI","language_family_name":"Vai","language_family_english":"Vai","language_family_iso":"vai","language_family_iso_2B":"vai","language_family_iso_2T":"vai","language_family_iso_1":"","version_code":"BSL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:19:08","created_on":"2011-09-26 15:56:07","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"VAIBSLN2DA\/VAIBSLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"VIDPBTN1ET","fcbh_id":"VIDPBTN1ET","volume_name":"Ilagano lya Sambi kwa Wanhu Weng'ha","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VID","language_name":"Vidunda","language_english":"Vidunda","language_iso":"vid","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Vidunda","language_family_code":"VID","language_family_name":"Vidunda","language_family_english":"Vidunda","language_family_iso":"vid","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-18 00:31:21","created_on":"2015-09-10 22:50:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"VIDPBTN1ET\/VIDPBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"VIECOVN1DA","fcbh_id":"VIECOVN1DA","volume_name":"1924 Khoi-Cadman","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VIE","language_name":"Ti\u1ebfng Vi\u1ec7t","language_english":"Vietnamese","language_iso":"vie","language_iso_2B":"vie","language_iso_2T":"vie","language_iso_1":"vi","language_iso_name":"Vietnamese","language_family_code":"VIE","language_family_name":"Ti\u1ebfng Vi\u1ec7t","language_family_english":"Vietnamese","language_family_iso":"vie","language_family_iso_2B":"vie","language_family_iso_2T":"vie","language_family_iso_1":"vi","version_code":"COV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:37:09","created_on":"2010-09-14 16:59:52","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1VIECOV","audio_zip_path":"VIECOVN1DA\/VIECOVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"VIELHGN2ET","fcbh_id":"VIELHGN2ET","volume_name":"Word of God for Everyone (Catholic) Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VIE","language_name":"Ti\u1ebfng Vi\u1ec7t","language_english":"Vietnamese","language_iso":"vie","language_iso_2B":"vie","language_iso_2T":"vie","language_iso_1":"vi","language_iso_name":"Vietnamese","language_family_code":"VIE","language_family_name":"Ti\u1ebfng Vi\u1ec7t","language_family_english":"Vietnamese","language_family_iso":"vie","language_family_iso_2B":"vie","language_family_iso_2T":"vie","language_family_iso_1":"vi","version_code":"LHG","version_name":"Group Liturgy of the Hours","version_english":"Group Liturgy of the Hours","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:37:11","created_on":"2013-04-16 19:51:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"VIELHGN2ET\/VIELHGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"VIEVOVN1DA","fcbh_id":"VIEVOVN1DA","volume_name":"Vietnamese Old Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VIE","language_name":"Ti\u1ebfng Vi\u1ec7t","language_english":"Vietnamese","language_iso":"vie","language_iso_2B":"vie","language_iso_2T":"vie","language_iso_1":"vi","language_iso_name":"Vietnamese","language_family_code":"VIE","language_family_name":"Ti\u1ebfng Vi\u1ec7t","language_family_english":"Vietnamese","language_family_iso":"vie","language_family_iso_2B":"vie","language_family_iso_2T":"vie","language_family_iso_1":"vi","version_code":"VOV","version_name":"Vietnamese Old Version","version_english":"Vietnamese Old Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-28 20:46:36","created_on":"2015-05-27 16:06:07","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"VIEVOVN1DA\/VIEVOVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"VIEVOVN1ET","fcbh_id":"VIEVOVN1ET","volume_name":"Vietnamese Old Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"VIE","language_name":"Ti\u1ebfng Vi\u1ec7t","language_english":"Vietnamese","language_iso":"vie","language_iso_2B":"vie","language_iso_2T":"vie","language_iso_1":"vi","language_iso_name":"Vietnamese","language_family_code":"VIE","language_family_name":"Ti\u1ebfng Vi\u1ec7t","language_family_english":"Vietnamese","language_family_iso":"vie","language_family_iso_2B":"vie","language_family_iso_2T":"vie","language_family_iso_1":"vi","version_code":"VOV","version_name":"Vietnamese Old Version","version_english":"Vietnamese Old Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:23:04","created_on":"2015-06-03 16:39:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"VIEVOVN1ET\/VIEVOVN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"VIEVOVN2DA","fcbh_id":"VIEVOVN2DA","volume_name":"Vietnamese Old Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VIE","language_name":"Ti\u1ebfng Vi\u1ec7t","language_english":"Vietnamese","language_iso":"vie","language_iso_2B":"vie","language_iso_2T":"vie","language_iso_1":"vi","language_iso_name":"Vietnamese","language_family_code":"VIE","language_family_name":"Ti\u1ebfng Vi\u1ec7t","language_family_english":"Vietnamese","language_family_iso":"vie","language_family_iso_2B":"vie","language_family_iso_2T":"vie","language_family_iso_1":"vi","version_code":"VOV","version_name":"Vietnamese Old Version","version_english":"Vietnamese Old Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-28 20:46:36","created_on":"2010-09-14 17:00:54","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2VIEVOV","audio_zip_path":"VIEVOVN2DA\/VIEVOVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"VIEVOVN2ET","fcbh_id":"VIEVOVN2ET","volume_name":"Vietnamese Old Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VIE","language_name":"Ti\u1ebfng Vi\u1ec7t","language_english":"Vietnamese","language_iso":"vie","language_iso_2B":"vie","language_iso_2T":"vie","language_iso_1":"vi","language_iso_name":"Vietnamese","language_family_code":"VIE","language_family_name":"Ti\u1ebfng Vi\u1ec7t","language_family_english":"Vietnamese","language_family_iso":"vie","language_family_iso_2B":"vie","language_family_iso_2T":"vie","language_family_iso_1":"vi","version_code":"VOV","version_name":"Vietnamese Old Version","version_english":"Vietnamese Old Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:23:04","created_on":"2010-09-14 17:00:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2VIEVOV","audio_zip_path":"VIEVOVN2ET\/VIEVOVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"VIEVOVO1ET","fcbh_id":"VIEVOVO1ET","volume_name":"Vietnamese Old Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"VIE","language_name":"Ti\u1ebfng Vi\u1ec7t","language_english":"Vietnamese","language_iso":"vie","language_iso_2B":"vie","language_iso_2T":"vie","language_iso_1":"vi","language_iso_name":"Vietnamese","language_family_code":"VIE","language_family_name":"Ti\u1ebfng Vi\u1ec7t","language_family_english":"Vietnamese","language_family_iso":"vie","language_family_iso_2B":"vie","language_family_iso_2T":"vie","language_family_iso_1":"vi","version_code":"VOV","version_name":"Vietnamese Old Version","version_english":"Vietnamese Old Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:53","created_on":"2015-07-22 21:56:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"VIEVOVO1ET\/VIEVOVO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"VIEVOVO2ET","fcbh_id":"VIEVOVO2ET","volume_name":"Vietnamese Old Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VIE","language_name":"Ti\u1ebfng Vi\u1ec7t","language_english":"Vietnamese","language_iso":"vie","language_iso_2B":"vie","language_iso_2T":"vie","language_iso_1":"vi","language_iso_name":"Vietnamese","language_family_code":"VIE","language_family_name":"Ti\u1ebfng Vi\u1ec7t","language_family_english":"Vietnamese","language_family_iso":"vie","language_family_iso_2B":"vie","language_family_iso_2T":"vie","language_family_iso_1":"vi","version_code":"VOV","version_name":"Vietnamese Old Version","version_english":"Vietnamese Old Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:53","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"O2VIEVOV","audio_zip_path":"VIEVOVO2ET\/VIEVOVO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"VIEWTCN2ET","fcbh_id":"VIEWTCN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VIE","language_name":"Ti\u1ebfng Vi\u1ec7t","language_english":"Vietnamese","language_iso":"vie","language_iso_2B":"vie","language_iso_2T":"vie","language_iso_1":"vi","language_iso_name":"Vietnamese","language_family_code":"VIE","language_family_name":"Ti\u1ebfng Vi\u1ec7t","language_family_english":"Vietnamese","language_family_iso":"vie","language_family_iso_2B":"vie","language_family_iso_2T":"vie","language_family_iso_1":"vi","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-08 19:57:17","created_on":"2017-09-01 20:34:37","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"VIEWTCN2ET\/VIEWTCN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"VIEWTCO2ET","fcbh_id":"VIEWTCO2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VIE","language_name":"Ti\u1ebfng Vi\u1ec7t","language_english":"Vietnamese","language_iso":"vie","language_iso_2B":"vie","language_iso_2T":"vie","language_iso_1":"vi","language_iso_name":"Vietnamese","language_family_code":"VIE","language_family_name":"Ti\u1ebfng Vi\u1ec7t","language_family_english":"Vietnamese","language_family_iso":"vie","language_family_iso_2B":"vie","language_family_iso_2T":"vie","language_family_iso_1":"vi","version_code":"WTC","version_name":"World Bible Translation Center","version_english":"World Bible Translation Center","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-09-08 19:57:18","created_on":"2017-09-01 20:32:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"VIEWTCO2ET\/VIEWTCO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"VIVWBTN2ET","fcbh_id":"VIVWBTN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VIV","language_name":"Iduna","language_english":"Iduna","language_iso":"viv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Iduna","language_family_code":"VIV","language_family_name":"Iduna","language_family_english":"Iduna","language_family_iso":"viv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-28 16:18:09","created_on":"2011-10-17 17:16:42","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"VIVWBTN2ET\/VIVWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"VMWBSMN2DA","fcbh_id":"VMWBSMN2DA","volume_name":"BSM Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"VMW","language_name":"Makhuwa","language_english":"Makhuwa","language_iso":"vmw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Makhuwa","language_family_code":"VMW","language_family_name":"Makhuwa","language_family_english":"Makhuwa","language_family_iso":"vmw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-28 21:16:23","created_on":"2013-09-03 20:26:09","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"VMWBSMN2DA\/VMWBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"VMYTBLN1DA","fcbh_id":"VMYTBLN1DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VMY","language_name":"Mazateco de Ayautla","language_english":"Mazateco de Ayautla","language_iso":"vmy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ayautla Mazatec","language_family_code":"VMY","language_family_name":"Mazateco de Ayautla","language_family_english":"Mazateco de Ayautla","language_family_iso":"vmy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-11 22:55:15","created_on":"2010-10-05 19:34:25","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1VMYTBL","audio_zip_path":"VMYTBLN1DA\/VMYTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"VMYTBLN1ET","fcbh_id":"VMYTBLN1ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VMY","language_name":"Mazateco de Ayautla","language_english":"Mazateco de Ayautla","language_iso":"vmy","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ayautla Mazatec","language_family_code":"VMY","language_family_name":"Mazateco de Ayautla","language_family_english":"Mazateco de Ayautla","language_family_iso":"vmy","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:16","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1VMYTBL","audio_zip_path":"VMYTBLN1ET\/VMYTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"VUNBSTN2DA","fcbh_id":"VUNBSTN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VUN","language_name":"Kivunjo","language_english":"Kivunjo","language_iso":"vun","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Vunjo","language_family_code":"VUN","language_family_name":"Kivunjo","language_family_english":"Kivunjo","language_family_iso":"vun","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-29 16:26:47","created_on":"2010-09-14 17:01:06","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2VUNBST","audio_zip_path":"VUNBSTN2DA\/VUNBSTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"VUNBSTN2ET","fcbh_id":"VUNBSTN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VUN","language_name":"Kivunjo","language_english":"Kivunjo","language_iso":"vun","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Vunjo","language_family_code":"VUN","language_family_name":"Kivunjo","language_family_english":"Kivunjo","language_family_iso":"vun","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BST","version_name":"BST","version_english":"BST","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:10","created_on":"2010-09-14 17:01:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2VUNBST","audio_zip_path":"VUNBSTN2ET\/VUNBSTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"VUTABCN1DA","fcbh_id":"VUTABCN1DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VUT","language_name":"Vute","language_english":"Vute","language_iso":"vut","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Vute","language_family_code":"VUT","language_family_name":"Vute","language_family_english":"Vute","language_family_iso":"vut","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-08-10 19:14:02","created_on":"2015-08-10 16:54:17","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"VUTABCN1DA\/VUTABCN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"VUTABCN1ET","fcbh_id":"VUTABCN1ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VUT","language_name":"Vute","language_english":"Vute","language_iso":"vut","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Vute","language_family_code":"VUT","language_family_name":"Vute","language_family_english":"Vute","language_family_iso":"vut","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:20","created_on":"2015-08-10 16:34:39","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"VUTABCN1ET\/VUTABCN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"VUTABCN2DA","fcbh_id":"VUTABCN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VUT","language_name":"Vute","language_english":"Vute","language_iso":"vut","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Vute","language_family_code":"VUT","language_family_name":"Vute","language_family_english":"Vute","language_family_iso":"vut","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-08-10 19:19:43","created_on":"2015-08-10 16:49:21","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"VUTABCN2DA\/VUTABCN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"VUTABCN2ET","fcbh_id":"VUTABCN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"VUT","language_name":"Vute","language_english":"Vute","language_iso":"vut","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Vute","language_family_code":"VUT","language_family_name":"Vute","language_family_english":"Vute","language_family_iso":"vut","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ABC","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:19","created_on":"2015-05-22 16:54:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"VUTABCN2ET\/VUTABCN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"WA1SIMN2DA","fcbh_id":"WA1SIMN2DA","volume_name":"(Ethiopic) 2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WA1","language_name":"Wolaitta","language_english":"Wolaytta","language_iso":"wal","language_iso_2B":"wal","language_iso_2T":"wal","language_iso_1":"","language_iso_name":"Wolaytta","language_family_code":"WAL","language_family_name":"Wolaitta","language_family_english":"Wolaytta","language_family_iso":"wal","language_family_iso_2B":"wal","language_family_iso_2T":"wal","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-28 20:56:06","created_on":"2015-07-28 20:24:08","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"WA1SIMN2DA\/WA1SIMN2DA.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"WA1SIMN2ET","fcbh_id":"WA1SIMN2ET","volume_name":"(Ethiopic) 2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WA1","language_name":"Wolaitta","language_english":"Wolaytta","language_iso":"wal","language_iso_2B":"wal","language_iso_2T":"wal","language_iso_1":"","language_iso_name":"Wolaytta","language_family_code":"WAL","language_family_name":"Wolaitta","language_family_english":"Wolaytta","language_family_iso":"wal","language_family_iso_2B":"wal","language_family_iso_2T":"wal","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-25 23:31:01","created_on":"2015-06-01 18:29:09","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WA1SIMN2ET\/WA1SIMN2ET.zip","font":{"id":"2","name":"Abyssinica SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Abyssinica_SIL","files":{"zip":"all.zip","ttf":"Abyssinica_SIL.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"&copy; 2000-2013, SIL International","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"WAJWBTN2ET","fcbh_id":"WAJWBTN2ET","volume_name":"1975 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WAJ","language_name":"Waffa","language_english":"Waffa","language_iso":"waj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Waffa","language_family_code":"WAJ","language_family_name":"Waffa","language_family_english":"Waffa","language_family_iso":"waj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 17:10:37","created_on":"2014-07-07 21:09:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WAJWBTN2ET\/WAJWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"WALSIMN2DA","fcbh_id":"WALSIMN2DA","volume_name":"(Latin) 2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WAL","language_name":"Wolaitta","language_english":"Wolaytta","language_iso":"wal","language_iso_2B":"wal","language_iso_2T":"wal","language_iso_1":"","language_iso_name":"Wolaytta","language_family_code":"WAL","language_family_name":"Wolaitta","language_family_english":"Wolaytta","language_family_iso":"wal","language_family_iso_2B":"wal","language_family_iso_2T":"wal","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-28 20:11:26","created_on":"2010-10-05 19:34:28","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2WALSIM","audio_zip_path":"WALSIMN2DA\/WALSIMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"WALSIMN2ET","fcbh_id":"WALSIMN2ET","volume_name":"(Latin) 2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WAL","language_name":"Wolaitta","language_english":"Wolaytta","language_iso":"wal","language_iso_2B":"wal","language_iso_2T":"wal","language_iso_1":"","language_iso_name":"Wolaytta","language_family_code":"WAL","language_family_name":"Wolaitta","language_family_english":"Wolaytta","language_family_iso":"wal","language_family_iso_2B":"wal","language_family_iso_2T":"wal","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-25 23:32:03","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2WALSIM","audio_zip_path":"WALSIMN2ET\/WALSIMN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"WALSIMO2ET","fcbh_id":"WALSIMO2ET","volume_name":"(Latin) 2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WAL","language_name":"Wolaitta","language_english":"Wolaytta","language_iso":"wal","language_iso_2B":"wal","language_iso_2T":"wal","language_iso_1":"","language_iso_name":"Wolaytta","language_family_code":"WAL","language_family_name":"Wolaitta","language_family_english":"Wolaytta","language_family_iso":"wal","language_family_iso_2B":"wal","language_family_iso_2T":"wal","language_family_iso_1":"","version_code":"SIM","version_name":"","version_english":"","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2016-02-25 23:33:05","created_on":"2012-10-05 15:26:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WALSIMO2ET\/WALSIMO2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"WAPWYIN2DA","fcbh_id":"WAPWYIN2DA","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WAP","language_name":"Wapishana","language_english":"Wapishana","language_iso":"wap","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wapishana","language_family_code":"WAP","language_family_name":"Wapishana","language_family_english":"Wapishana","language_family_iso":"wap","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-07-08 19:11:33","created_on":"2014-07-01 19:48:29","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"WAPWYIN2DA\/WAPWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"WAPWYIN2ET","fcbh_id":"WAPWYIN2ET","volume_name":"2012 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WAP","language_name":"Wapishana","language_english":"Wapishana","language_iso":"wap","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wapishana","language_family_code":"WAP","language_family_name":"Wapishana","language_family_english":"Wapishana","language_family_iso":"wap","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:17:12","created_on":"2014-06-25 15:25:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WAPWYIN2ET\/WAPWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"WARSPVN2DA","fcbh_id":"WARSPVN2DA","volume_name":"1984 Popular Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WAR","language_name":"Samareno","language_english":"Samareno","language_iso":"war","language_iso_2B":"war","language_iso_2T":"war","language_iso_1":"","language_iso_name":"Waray (Philippines)","language_family_code":"WAR","language_family_name":"Samareno","language_family_english":"Samareno","language_family_iso":"war","language_family_iso_2B":"war","language_family_iso_2T":"war","language_family_iso_1":"","version_code":"SPV","version_name":"Popular Version","version_english":"Popular Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:31","created_on":"2011-05-26 19:16:21","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"WARSPVN2DA\/WARSPVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"WARSPVN2ET","fcbh_id":"WARSPVN2ET","volume_name":"1984 Popular Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WAR","language_name":"Samareno","language_english":"Samareno","language_iso":"war","language_iso_2B":"war","language_iso_2T":"war","language_iso_1":"","language_iso_name":"Waray (Philippines)","language_family_code":"WAR","language_family_name":"Samareno","language_family_english":"Samareno","language_family_iso":"war","language_family_iso_2B":"war","language_family_iso_2T":"war","language_family_iso_1":"","version_code":"SPV","version_name":"Popular Version","version_english":"Popular Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-10 18:13:15","created_on":"2011-05-26 19:56:49","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WARSPVN2ET\/WARSPVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"WAWUFMN2DA","fcbh_id":"WAWUFMN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WAW","language_name":"UaiUai","language_english":"UaiUai","language_iso":"waw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Waiwai","language_family_code":"WAW","language_family_name":"UaiUai","language_family_english":"UaiUai","language_family_iso":"waw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UFM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-02-16 18:49:20","created_on":"2010-09-14 17:01:07","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2WAWUFM","audio_zip_path":"WAWUFMN2DA\/WAWUFMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"WAYWTVN2DA","fcbh_id":"WAYWTVN2DA","volume_name":"1979 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WAY","language_name":"Wayana","language_english":"Wayana","language_iso":"way","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wayana","language_family_code":"WAY","language_family_name":"Wayana","language_family_english":"Wayana","language_family_iso":"way","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WTV","version_name":"World Team Version","version_english":"World Team Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:32","created_on":"2011-05-27 17:58:43","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"WAYWTVN2DA\/WAYWTVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"WAYWTVN2ET","fcbh_id":"WAYWTVN2ET","volume_name":"1979 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WAY","language_name":"Wayana","language_english":"Wayana","language_iso":"way","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wayana","language_family_code":"WAY","language_family_name":"Wayana","language_family_english":"Wayana","language_family_iso":"way","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WTV","version_name":"World Team Version","version_english":"World Team Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:47","created_on":"2011-08-11 20:48:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WAYWTVN2ET\/WAYWTVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"WBABIVN1DA","fcbh_id":"WBABIVN1DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WBA","language_name":"Warao","language_english":"Warao","language_iso":"wba","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Warao","language_family_code":"WBA","language_family_name":"Warao","language_family_english":"Warao","language_family_iso":"wba","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-05-06 19:18:36","created_on":"2014-04-25 17:59:28","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"WBABIVN1DA\/WBABIVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"WBABIVN1ET","fcbh_id":"WBABIVN1ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WBA","language_name":"Warao","language_english":"Warao","language_iso":"wba","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Warao","language_family_code":"WBA","language_family_name":"Warao","language_family_english":"Warao","language_family_iso":"wba","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-16 20:22:10","created_on":"2014-04-08 15:32:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WBABIVN1ET\/WBABIVN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"WERWBTN2ET","fcbh_id":"WERWBTN2ET","volume_name":"1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WER","language_name":"Weri","language_english":"Weri","language_iso":"wer","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Weri","language_family_code":"WER","language_family_name":"Weri","language_family_english":"Weri","language_family_iso":"wer","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-03 18:26:57","created_on":"2014-07-07 21:12:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WERWBTN2ET\/WERWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"WESBSCN2DA","fcbh_id":"WESBSCN2DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"WES","language_name":"Pidgin for Cameroon","language_english":"Pidgin for Cameroon","language_iso":"wes","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Cameroon Pidgin","language_family_code":"WES","language_family_name":"Pidgin for Cameroon","language_family_english":"Pidgin for Cameroon","language_family_iso":"wes","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSC","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:41","created_on":"2010-09-14 17:00:55","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2WESBSC","audio_zip_path":"WESBSCN2DA\/WESBSCN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"WIUWBTN2ET","fcbh_id":"WIUWBTN2ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WIU","language_name":"Wiru","language_english":"Wiru","language_iso":"wiu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wiru","language_family_code":"WIU","language_family_name":"Wiru","language_family_english":"Wiru","language_family_iso":"wiu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-03 18:29:43","created_on":"2014-09-26 18:26:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WIUWBTN2ET\/WIUWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"WLSBCNN1DA","fcbh_id":"WLSBCNN1DA","volume_name":"Beibl Cymraeg Newydd","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"WLS","language_name":"Cymraeg","language_english":"Welsh","language_iso":"cym","language_iso_2B":"wel","language_iso_2T":"cym","language_iso_1":"cy","language_iso_name":"Welsh","language_family_code":"WLS","language_family_name":"Cymraeg","language_family_english":"Welsh","language_family_iso":"cym","language_family_iso_2B":"wel","language_family_iso_2T":"cym","language_family_iso_1":"cy","version_code":"BCN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-11 19:28:42","created_on":"2010-09-14 16:59:53","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1WLSBCN","audio_zip_path":"WLSBCNN1DA\/WLSBCNN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"WLSBCNN2DA","fcbh_id":"WLSBCNN2DA","volume_name":"Beibl Cymraeg Newydd","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"WLS","language_name":"Cymraeg","language_english":"Welsh","language_iso":"cym","language_iso_2B":"wel","language_iso_2T":"cym","language_iso_1":"cy","language_iso_name":"Welsh","language_family_code":"WLS","language_family_name":"Cymraeg","language_family_english":"Welsh","language_family_iso":"cym","language_family_iso_2B":"wel","language_family_iso_2T":"cym","language_family_iso_1":"cy","version_code":"BCN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-09-16 17:14:10","created_on":"2010-09-14 17:00:55","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2WLSBCN","audio_zip_path":"WLSBCNN2DA\/WLSBCNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"WLXBIVN1DA","fcbh_id":"WLXBIVN1DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WLX","language_name":"Wali (Ghana)","language_english":"Wali (Ghana)","language_iso":"wlx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wali (Ghana)","language_family_code":"WLX","language_family_name":"Wali (Ghana)","language_family_english":"Wali (Ghana)","language_family_iso":"wlx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-15 16:18:26","created_on":"2017-09-15 15:48:52","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"WLXBIVN1DA\/WLXBIVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"WLXBIVN1ET","fcbh_id":"WLXBIVN1ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WLX","language_name":"Wali (Ghana)","language_english":"Wali (Ghana)","language_iso":"wlx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wali (Ghana)","language_family_code":"WLX","language_family_name":"Wali (Ghana)","language_family_english":"Wali (Ghana)","language_family_iso":"wlx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-15 16:18:26","created_on":"2017-09-15 15:56:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WLXBIVN1ET\/WLXBIVN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"WLXBIVN2DA","fcbh_id":"WLXBIVN2DA","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WLX","language_name":"Wali (Ghana)","language_english":"Wali (Ghana)","language_iso":"wlx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wali (Ghana)","language_family_code":"WLX","language_family_name":"Wali (Ghana)","language_family_english":"Wali (Ghana)","language_family_iso":"wlx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-15 16:38:03","created_on":"2017-09-14 21:53:26","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"WLXBIVN2DA\/WLXBIVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"WLXBIVN2ET","fcbh_id":"WLXBIVN2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WLX","language_name":"Wali (Ghana)","language_english":"Wali (Ghana)","language_iso":"wlx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wali (Ghana)","language_family_code":"WLX","language_family_name":"Wali (Ghana)","language_family_english":"Wali (Ghana)","language_family_iso":"wlx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-15 15:55:18","created_on":"2014-09-26 18:06:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WLXBIVN2ET\/WLXBIVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"WLXBIVO1ET","fcbh_id":"WLXBIVO1ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WLX","language_name":"Wali (Ghana)","language_english":"Wali (Ghana)","language_iso":"wlx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wali (Ghana)","language_family_code":"WLX","language_family_name":"Wali (Ghana)","language_family_english":"Wali (Ghana)","language_family_iso":"wlx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-09-15 16:18:26","created_on":"2017-09-15 15:59:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WLXBIVO1ET\/WLXBIVO1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"WLXBIVO2ET","fcbh_id":"WLXBIVO2ET","volume_name":"2009 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WLX","language_name":"Wali (Ghana)","language_english":"Wali (Ghana)","language_iso":"wlx","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wali (Ghana)","language_family_code":"WLX","language_family_name":"Wali (Ghana)","language_family_english":"Wali (Ghana)","language_family_iso":"wlx","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BIV","version_name":"Bibles International Version","version_english":"Bibles International Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-09-15 15:55:43","created_on":"2014-09-26 18:12:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WLXBIVO2ET\/WLXBIVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"WMWWYIN2DA","fcbh_id":"WMWWYIN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WMW","language_name":"Mwani","language_english":"Mwani","language_iso":"wmw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mwani","language_family_code":"WMW","language_family_name":"Mwani","language_family_english":"Mwani","language_family_iso":"wmw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:33","created_on":"2013-04-29 16:31:51","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"WMWWYIN2DA\/WMWWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"WMWWYIN2ET","fcbh_id":"WMWWYIN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WMW","language_name":"Mwani","language_english":"Mwani","language_iso":"wmw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mwani","language_family_code":"WMW","language_family_name":"Mwani","language_family_english":"Mwani","language_family_iso":"wmw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:35","created_on":"2012-05-09 21:49:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WMWWYIN2ET\/WMWWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"WNUPNGN2ET","fcbh_id":"WNUPNGN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WNU","language_name":"Usan","language_english":"Usan","language_iso":"wnu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Usan","language_family_code":"WNU","language_family_name":"Usan","language_family_english":"Usan","language_family_iso":"wnu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-03 21:30:08","created_on":"2014-06-06 19:14:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WNUPNGN2ET\/WNUPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"WOBWBTN2DA","fcbh_id":"WOBWBTN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WOB","language_name":"We, Northern","language_english":"We, Northern","language_iso":"wob","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"W\u00e8 Northern","language_family_code":"WOB","language_family_name":"We, Northern","language_family_english":"We, Northern","language_family_iso":"wob","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:33","created_on":"2012-08-13 18:36:07","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"WOBWBTN2DA\/WOBWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"WOBWBTN2ET","fcbh_id":"WOBWBTN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WOB","language_name":"We, Northern","language_english":"We, Northern","language_iso":"wob","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"W\u00e8 Northern","language_family_code":"WOB","language_family_name":"We, Northern","language_family_english":"We, Northern","language_family_iso":"wob","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:35","created_on":"2011-05-30 19:37:19","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WOBWBTN2ET\/WOBWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"WUVWBTN2ET","fcbh_id":"WUVWBTN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WUV","language_name":"Wuvulu-Aua","language_english":"Wuvulu-Aua","language_iso":"wuv","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Wuvulu-Aua","language_family_code":"WUV","language_family_name":"Wuvulu-Aua","language_family_english":"Wuvulu-Aua","language_family_iso":"wuv","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 17:14:14","created_on":"2014-06-26 16:30:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WUVWBTN2ET\/WUVWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"WWAWYIN2DA","fcbh_id":"WWAWYIN2DA","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WWA","language_name":"Waama","language_english":"Waama","language_iso":"wwa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Waama","language_family_code":"WWA","language_family_name":"Waama","language_family_english":"Waama","language_family_iso":"wwa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-18 16:54:48","created_on":"2013-10-25 20:09:14","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"WWAWYIN2DA\/WWAWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"WWAWYIN2ET","fcbh_id":"WWAWYIN2ET","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"WWA","language_name":"Waama","language_english":"Waama","language_iso":"wwa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Waama","language_family_code":"WWA","language_family_name":"Waama","language_family_english":"Waama","language_family_iso":"wwa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:52","created_on":"2013-08-19 17:21:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"WWAWYIN2ET\/WWAWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"XAVTBLN2ET","fcbh_id":"XAVTBLN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XAV","language_name":"Xavante","language_english":"Xavante","language_iso":"xav","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Xav\u00e1nte","language_family_code":"XAV","language_family_name":"Xavante","language_family_english":"Xavante","language_family_iso":"xav","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:16","created_on":"2012-03-02 21:54:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XAVTBLN2ET\/XAVTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"XEDWYIN1DA","fcbh_id":"XEDWYIN1DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XED","language_name":"Hdi","language_english":"Hdi","language_iso":"xed","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hdi","language_family_code":"XED","language_family_name":"Hdi","language_family_english":"Hdi","language_family_iso":"xed","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-24 18:40:28","created_on":"2017-04-24 18:26:28","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"XEDWYIN1DA\/XEDWYIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"XEDWYIN1ET","fcbh_id":"XEDWYIN1ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XED","language_name":"Hdi","language_english":"Hdi","language_iso":"xed","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hdi","language_family_code":"XED","language_family_name":"Hdi","language_family_english":"Hdi","language_family_iso":"xed","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-04-24 18:40:28","created_on":"2017-04-24 18:30:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XEDWYIN1ET\/XEDWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"XEDWYIN2DA","fcbh_id":"XEDWYIN2DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XED","language_name":"Hdi","language_english":"Hdi","language_iso":"xed","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hdi","language_family_code":"XED","language_family_name":"Hdi","language_family_english":"Hdi","language_family_iso":"xed","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-11-10 21:20:59","created_on":"2014-11-07 20:23:08","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"XEDWYIN2DA\/XEDWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"XEDWYIN2ET","fcbh_id":"XEDWYIN2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XED","language_name":"Hdi","language_english":"Hdi","language_iso":"xed","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Hdi","language_family_code":"XED","language_family_name":"Hdi","language_family_english":"Hdi","language_family_iso":"xed","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:23","created_on":"2014-03-31 16:45:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XEDWYIN2ET\/XEDWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"XKISLSS2DV","fcbh_id":"XKISLSS2DV","volume_name":"DOOR International Kenyan Sign Language","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XKI","language_name":"Kenyan Sign Language","language_english":"Kenyan Sign Language","language_iso":"xki","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kenyan Sign Language","language_family_code":"XKI","language_family_name":"Kenyan Sign Language","language_family_english":"Kenyan Sign Language","language_family_iso":"xki","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SLS","version_name":"Sign Language Stories","version_english":"Sign Language Stories","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2014-03-07 20:48:02","created_on":"2014-01-10 16:47:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XKISLSS2DV\/XKISLSS2DV.zip","font":null,"arclight_language_id":"","media":"video","media_type":"Drama","delivery":["sign_language"],"resolution":["lo"]},{"dam_id":"XLAPNGN2ET","fcbh_id":"XLAPNGN2ET","volume_name":"2005 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XLA","language_name":"Kamula","language_english":"Kamula","language_iso":"xla","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kamula","language_family_code":"XLA","language_family_name":"Kamula","language_family_english":"Kamula","language_family_iso":"xla","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-28 22:32:02","created_on":"2014-04-21 17:10:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XLAPNGN2ET\/XLAPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"XMMLAIN1DA","fcbh_id":"XMMLAIN1DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XMM","language_name":"Manadonese Malay","language_english":"Manadonese Malay","language_iso":"xmm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Manado Malay","language_family_code":"XMM","language_family_name":"Manadonese Malay","language_family_english":"Manadonese Malay","language_family_iso":"xmm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-25 19:24:12","created_on":"2018-01-10 21:00:46","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"XMMLAIN1DA\/XMMLAIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"XMMLAIN1ET","fcbh_id":"XMMLAIN1ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"XMM","language_name":"Manadonese Malay","language_english":"Manadonese Malay","language_iso":"xmm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Manado Malay","language_family_code":"XMM","language_family_name":"Manadonese Malay","language_family_english":"Manadonese Malay","language_family_iso":"xmm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-25 19:25:15","created_on":"2018-09-08 14:38:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XMMLAIN1ET\/XMMLAIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"XMMLAIN2DA","fcbh_id":"XMMLAIN2DA","volume_name":"2017 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XMM","language_name":"Manadonese Malay","language_english":"Manadonese Malay","language_iso":"xmm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Manado Malay","language_family_code":"XMM","language_family_name":"Manadonese Malay","language_family_english":"Manadonese Malay","language_family_iso":"xmm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:37:09","created_on":"2018-01-10 20:57:21","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"XMMLAIN2DA\/XMMLAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"XMMLAIN2ET","fcbh_id":"XMMLAIN2ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"XMM","language_name":"Manadonese Malay","language_english":"Manadonese Malay","language_iso":"xmm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Manado Malay","language_family_code":"XMM","language_family_name":"Manadonese Malay","language_family_english":"Manadonese Malay","language_family_iso":"xmm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-25 19:25:34","created_on":"2018-09-08 15:26:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XMMLAIN2ET\/XMMLAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"XO1NVRN1DA","fcbh_id":"KOSNVRN1DA","volume_name":"Likoonli - 1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XO1","language_name":"Konkomba, Likoonli","language_english":"Konkomba, Likoonli","language_iso":"xon","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Konkomba","language_family_code":"XON","language_family_name":"Konkomba","language_family_english":"Konkomba","language_family_iso":"xon","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVR","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:31","created_on":"2010-09-14 16:59:45","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1KOSNVR","audio_zip_path":"XO1NVRN1DA\/XO1NVRN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"XO1NVRN1ET","fcbh_id":"KOSNVRN1ET","volume_name":"Likoonli - 1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XO1","language_name":"Konkomba, Likoonli","language_english":"Konkomba, Likoonli","language_iso":"xon","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Konkomba","language_family_code":"XON","language_family_name":"Konkomba","language_family_english":"Konkomba","language_family_iso":"xon","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"NVR","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-25 20:40:00","created_on":"2011-06-02 20:46:17","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XO1NVRN1ET\/XO1NVRN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"XO2IBSN2DA","fcbh_id":"KOSIBSN2DA","volume_name":"Likpakpaaln - 1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XO2","language_name":"Konkomba, Likpakpaaln","language_english":"Konkomba, Likpakpaaln","language_iso":"xon","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Konkomba","language_family_code":"XON","language_family_name":"Konkomba","language_family_english":"Konkomba","language_family_iso":"xon","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-03-24 01:50:46","created_on":"2010-09-14 17:00:25","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KOSIBS","audio_zip_path":"XO2IBSN2DA\/XO2IBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"XO2IBSN2ET","fcbh_id":"KOSIBSN2ET","volume_name":"Likpakpaaln - 1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XO2","language_name":"Konkomba, Likpakpaaln","language_english":"Konkomba, Likpakpaaln","language_iso":"xon","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Konkomba","language_family_code":"XON","language_family_name":"Konkomba","language_family_english":"Konkomba","language_family_iso":"xon","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"IBS","version_name":"Bible Society","version_english":"Bible Society","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:23:03","created_on":"2011-06-02 20:49:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XO2IBSN2ET\/XO2IBSN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"XOGBSUN1DA","fcbh_id":"XOGBSUN1DA","volume_name":"BSU Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XOG","language_name":"Lusoga","language_english":"Soga","language_iso":"xog","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Soga","language_family_code":"XOG","language_family_name":"Lusoga","language_family_english":"Soga","language_family_iso":"xog","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-05 22:05:41","created_on":"2017-04-26 23:27:25","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"XOGBSUN1DA\/XOGBSUN1DA.zip","font":{"id":"45","name":"Doulos SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Doulos_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© SIL International, 1997-2009. All rights reserved.","url":"http:\/\/bit.ly\/13TIEuL"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"XOGBSUN2DA","fcbh_id":"XOGBSUN2DA","volume_name":"BSU Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XOG","language_name":"Lusoga","language_english":"Soga","language_iso":"xog","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Soga","language_family_code":"XOG","language_family_name":"Lusoga","language_family_english":"Soga","language_family_iso":"xog","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSU","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-11-20 18:07:54","created_on":"2014-11-20 17:19:32","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"XOGBSUN2DA\/XOGBSUN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"XPEUBSN2DA","fcbh_id":"XPEUBSN2DA","volume_name":"1967 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"XPE","language_name":"Kpelle for Liberia","language_english":"Kpelle for Liberia","language_iso":"xpe","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Liberia Kpelle","language_family_code":"XPE","language_family_name":"Kpelle for Liberia","language_family_english":"Kpelle for Liberia","language_family_iso":"xpe","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:59","created_on":"2010-09-14 17:01:18","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2XPEUBS","audio_zip_path":"XPEUBSN2DA\/XPEUBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"XRBWBTN2DA","fcbh_id":"XRBWBTN2DA","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XRB","language_name":"Karaboro","language_english":"Karaboro","language_iso":"xrb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Karaboro","language_family_code":"XRB","language_family_name":"Karaboro","language_family_english":"Karaboro","language_family_iso":"xrb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-11 19:37:32","created_on":"2010-09-14 17:00:55","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2XRBWBT","audio_zip_path":"XRBWBTN2DA\/XRBWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"XRBWBTN2ET","fcbh_id":"XRBWBTN2ET","volume_name":"1993 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XRB","language_name":"Karaboro","language_english":"Karaboro","language_iso":"xrb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Eastern Karaboro","language_family_code":"XRB","language_family_name":"Karaboro","language_family_english":"Karaboro","language_family_iso":"xrb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:50","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2XRBWBT","audio_zip_path":"XRBWBTN2ET\/XRBWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"XSBWYIN1DA","fcbh_id":"XSBWYIN1DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XSB","language_name":"Sambali","language_english":"Sambali","language_iso":"xsb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tin\u00e0 Sambal","language_family_code":"XSB","language_family_name":"Sambali","language_family_english":"Sambali","language_family_iso":"xsb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-04-16 19:40:49","created_on":"2018-04-16 17:18:05","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"XSBWYIN1DA\/XSBWYIN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"XSBWYIN1ET","fcbh_id":"XSBWYIN1ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XSB","language_name":"Sambali","language_english":"Sambali","language_iso":"xsb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tin\u00e0 Sambal","language_family_code":"XSB","language_family_name":"Sambali","language_family_english":"Sambali","language_family_iso":"xsb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-04-16 17:16:43","created_on":"2018-04-16 17:08:37","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XSBWYIN1ET\/XSBWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"XSBWYIN2DA","fcbh_id":"XSBWYIN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XSB","language_name":"Sambali","language_english":"Sambali","language_iso":"xsb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tin\u00e0 Sambal","language_family_code":"XSB","language_family_name":"Sambali","language_family_english":"Sambali","language_family_iso":"xsb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-04-16 19:39:55","created_on":"2018-04-16 17:11:15","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"XSBWYIN2DA\/XSBWYIN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"XSBWYIN2ET","fcbh_id":"XSBWYIN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XSB","language_name":"Sambali","language_english":"Sambali","language_iso":"xsb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Tin\u00e0 Sambal","language_family_code":"XSB","language_family_name":"Sambali","language_family_english":"Sambali","language_family_iso":"xsb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-09-08 19:06:46","created_on":"2017-09-01 20:57:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XSBWYIN2ET\/XSBWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"XSMBFVN1DA","fcbh_id":"XSMBFVN1DA","volume_name":"(Burkina Faso) 1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XSM","language_name":"Kasem","language_english":"Kasem","language_iso":"xsm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kasem","language_family_code":"XSM","language_family_name":"Kasem","language_family_english":"Kasem","language_family_iso":"xsm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BFV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-11 21:48:09","created_on":"2017-05-11 21:36:15","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"XSMBFVN1DA\/XSMBFVN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"XSMBFVN1ET","fcbh_id":"XSMBFVN1ET","volume_name":"(Burkina Faso) 1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XSM","language_name":"Kasem","language_english":"Kasem","language_iso":"xsm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kasem","language_family_code":"XSM","language_family_name":"Kasem","language_family_english":"Kasem","language_family_iso":"xsm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BFV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-05-11 21:41:28","created_on":"2017-05-11 21:29:47","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XSMBFVN1ET\/XSMBFVN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"XSMBFVN2DA","fcbh_id":"KASBFVN2DA","volume_name":"(Burkina Faso) 1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XSM","language_name":"Kasem","language_english":"Kasem","language_iso":"xsm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kasem","language_family_code":"XSM","language_family_name":"Kasem","language_family_english":"Kasem","language_family_iso":"xsm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BFV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-06 22:51:41","created_on":"2010-09-14 17:00:20","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KASBFV","audio_zip_path":"XSMBFVN2DA\/XSMBFVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"XSMBFVN2ET","fcbh_id":"XSMBFVN2ET","volume_name":"(Burkina Faso) 1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XSM","language_name":"Kasem","language_english":"Kasem","language_iso":"xsm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kasem","language_family_code":"XSM","language_family_name":"Kasem","language_family_english":"Kasem","language_family_iso":"xsm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BFV","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:03:47","created_on":"2011-06-02 16:50:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XSMBFVN2ET\/XSMBFVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"XSMWBTN2DA","fcbh_id":"KASWBTN2DA","volume_name":"2003 Edition (Ghana)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XSM","language_name":"Kasem","language_english":"Kasem","language_iso":"xsm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kasem","language_family_code":"XSM","language_family_name":"Kasem","language_family_english":"Kasem","language_family_iso":"xsm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:36","created_on":"2010-09-14 17:00:21","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2KASWBT","audio_zip_path":"XSMWBTN2DA\/XSMWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"XSMWBTN2ET","fcbh_id":"XSMWBTN2ET","volume_name":"2003 Edition (Ghana)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XSM","language_name":"Kasem","language_english":"Kasem","language_iso":"xsm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kasem","language_family_code":"XSM","language_family_name":"Kasem","language_family_english":"Kasem","language_family_iso":"xsm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:29:16","created_on":"2013-07-01 17:00:16","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XSMWBTN2ET\/XSMWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"XSRWBTN1DA","fcbh_id":"XSRWBTN1DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XSR","language_name":"Sherpa","language_english":"Sherpa","language_iso":"xsr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sherpa","language_family_code":"XSR","language_family_name":"Sherpa","language_family_english":"Sherpa","language_family_iso":"xsr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-24 16:59:31","created_on":"2017-02-24 16:50:28","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"XSRWBTN1DA\/XSRWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"XSRWBTN1ET","fcbh_id":"XSRWBTN1ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XSR","language_name":"Sherpa","language_english":"Sherpa","language_iso":"xsr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sherpa","language_family_code":"XSR","language_family_name":"Sherpa","language_family_english":"Sherpa","language_family_iso":"xsr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-24 17:00:46","created_on":"2017-02-24 16:32:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XSRWBTN1ET\/XSRWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"XSRWBTN2DA","fcbh_id":"XSRWBTN2DA","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XSR","language_name":"Sherpa","language_english":"Sherpa","language_iso":"xsr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sherpa","language_family_code":"XSR","language_family_name":"Sherpa","language_family_english":"Sherpa","language_family_iso":"xsr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-02-24 17:01:04","created_on":"2017-02-24 16:35:42","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"XSRWBTN2DA\/XSRWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"XSRWBTN2ET","fcbh_id":"XSRWBTN2ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XSR","language_name":"Sherpa","language_english":"Sherpa","language_iso":"xsr","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sherpa","language_family_code":"XSR","language_family_name":"Sherpa","language_family_english":"Sherpa","language_family_iso":"xsr","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-14 20:46:06","created_on":"2015-09-22 15:47:14","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XSRWBTN2ET\/XSRWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"XSUMEVN2DA","fcbh_id":"XSUMEVN2DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XSU","language_name":"Sanum\u00e1","language_english":"Tsanuma","language_iso":"xsu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sanum\u00e1","language_family_code":"XSU","language_family_name":"Sanum\u00e1","language_family_english":"Tsanuma","language_family_iso":"xsu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MEV","version_name":"Miss\u00e3o Evang\u00e9lica da Amaz\u00f4nia","version_english":"Missao Evangelica da Amazonia","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:36","created_on":"2013-06-10 22:25:05","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"XSUMEVN2DA\/XSUMEVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"XSUMEVN2ET","fcbh_id":"XSUMEVN2ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XSU","language_name":"Sanum\u00e1","language_english":"Tsanuma","language_iso":"xsu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sanum\u00e1","language_family_code":"XSU","language_family_name":"Sanum\u00e1","language_family_english":"Tsanuma","language_family_iso":"xsu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MEV","version_name":"Miss\u00e3o Evang\u00e9lica da Amaz\u00f4nia","version_english":"Missao Evangelica da Amazonia","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:20","created_on":"2013-06-11 17:49:29","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XSUMEVN2ET\/XSUMEVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"XTDTBLN1DA","fcbh_id":"XTDTBLN1DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XTD","language_name":"Mixtec Diuxi-Tilantongo","language_english":"Mixtec Diuxi-Tilantongo","language_iso":"xtd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Diuxi-Tilantongo Mixtec","language_family_code":"XTD","language_family_name":"Mixtec Diuxi-Tilantongo","language_family_english":"Mixtec Diuxi-Tilantongo","language_family_iso":"xtd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-02-20 20:38:27","created_on":"2015-02-06 21:41:47","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XTDTBLN1DA\/XTDTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"XTDTBLN1ET","fcbh_id":"XTDTBLN1ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XTD","language_name":"Mixtec Diuxi-Tilantongo","language_english":"Mixtec Diuxi-Tilantongo","language_iso":"xtd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Diuxi-Tilantongo Mixtec","language_family_code":"XTD","language_family_name":"Mixtec Diuxi-Tilantongo","language_family_english":"Mixtec Diuxi-Tilantongo","language_family_iso":"xtd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:18","created_on":"2015-02-06 21:43:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XTDTBLN1ET\/XTDTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"XTDTBLN2DA","fcbh_id":"XTDTBLN2DA","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XTD","language_name":"Mixtec Diuxi-Tilantongo","language_english":"Mixtec Diuxi-Tilantongo","language_iso":"xtd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Diuxi-Tilantongo Mixtec","language_family_code":"XTD","language_family_name":"Mixtec Diuxi-Tilantongo","language_family_english":"Mixtec Diuxi-Tilantongo","language_family_iso":"xtd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-02-10 21:09:38","created_on":"2015-02-06 20:55:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XTDTBLN2DA\/XTDTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"XTDTBLN2ET","fcbh_id":"XTDTBLN2ET","volume_name":"2001 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XTD","language_name":"Mixtec Diuxi-Tilantongo","language_english":"Mixtec Diuxi-Tilantongo","language_iso":"xtd","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Diuxi-Tilantongo Mixtec","language_family_code":"XTD","language_family_name":"Mixtec Diuxi-Tilantongo","language_family_english":"Mixtec Diuxi-Tilantongo","language_family_iso":"xtd","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:18","created_on":"2011-10-11 19:39:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XTDTBLN2ET\/XTDTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"XTMTBLP1ET","fcbh_id":"XTMTBLP1ET","volume_name":"2013 Edition (Partial OT)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XTM","language_name":"Mixtec, Magdalena Pe\u00f1asco","language_english":"Mixtec Magdalena Penasco","language_iso":"xtm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Magdalena Pe\u00f1asco Mixtec","language_family_code":"XTM","language_family_name":"Mixtec, Magdalena Pe\u00f1asco","language_family_english":"Mixtec Magdalena Penasco","language_family_iso":"xtm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-08-03 20:17:43","created_on":"2015-08-14 16:50:05","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XTMTBLP1ET\/XTMTBLP1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile"],"resolution":[]},{"dam_id":"XTMTBLP2ET","fcbh_id":"XTMTBLP2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XTM","language_name":"Mixtec, Magdalena Pe\u00f1asco","language_english":"Mixtec Magdalena Penasco","language_iso":"xtm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Magdalena Pe\u00f1asco Mixtec","language_family_code":"XTM","language_family_name":"Mixtec, Magdalena Pe\u00f1asco","language_family_english":"Mixtec Magdalena Penasco","language_family_iso":"xtm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-08-03 20:17:43","created_on":"2015-08-14 16:44:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XTMTBLP2ET\/XTMTBLP2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile"],"resolution":[]},{"dam_id":"XTNTBLN1DA","fcbh_id":"XTNTBLN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XTN","language_name":"Mixteco del Norte de Tlaxiaco","language_english":"Mixteco del Norte de Tlaxiaco","language_iso":"xtn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Tlaxiaco Mixtec","language_family_code":"XTN","language_family_name":"Mixteco del Norte de Tlaxiaco","language_family_english":"Mixteco del Norte de Tlaxiaco","language_family_iso":"xtn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-26 21:37:10","created_on":"2018-01-11 19:04:31","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"XTNTBLN1DA\/XTNTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"XTNTBLN1ET","fcbh_id":"XTNTBLN1ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XTN","language_name":"Mixteco del Norte de Tlaxiaco","language_english":"Mixteco del Norte de Tlaxiaco","language_iso":"xtn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Tlaxiaco Mixtec","language_family_code":"XTN","language_family_name":"Mixteco del Norte de Tlaxiaco","language_family_english":"Mixteco del Norte de Tlaxiaco","language_family_iso":"xtn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-11 18:13:54","created_on":"2018-06-11 18:01:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XTNTBLN1ET\/XTNTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"XTNTBLS1DA","fcbh_id":"XTNTBLS1DA","volume_name":"2015 - OT Selections","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XTN","language_name":"Mixteco del Norte de Tlaxiaco","language_english":"Mixteco del Norte de Tlaxiaco","language_iso":"xtn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Northern Tlaxiaco Mixtec","language_family_code":"XTN","language_family_name":"Mixteco del Norte de Tlaxiaco","language_family_english":"Mixteco del Norte de Tlaxiaco","language_family_iso":"xtn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-01-26 21:37:10","created_on":"2018-01-11 19:19:00","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"XTNTBLS1DA\/XTNTBLS1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["web_streaming","streaming_url","digital_download"],"resolution":[]},{"dam_id":"XUOWBTN2DA","fcbh_id":"XUOWBTN2DA","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XUO","language_name":"Kuo","language_english":"Kuo","language_iso":"xuo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kuo","language_family_code":"XUO","language_family_name":"Kuo","language_family_english":"Kuo","language_family_iso":"xuo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-06 21:56:08","created_on":"2014-07-28 16:10:45","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"XUOWBTN2DA\/XUOWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"XUOWBTN2ET","fcbh_id":"XUOWBTN2ET","volume_name":"2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"XUO","language_name":"Kuo","language_english":"Kuo","language_iso":"xuo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Kuo","language_family_code":"XUO","language_family_name":"Kuo","language_family_english":"Kuo","language_family_iso":"xuo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-03 18:07:34","created_on":"2014-02-24 16:39:37","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"XUOWBTN2ET\/XUOWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"YAATBLN2DA","fcbh_id":"YAATBLN2DA","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YAA","language_name":"Yaminahua","language_english":"Yaminahua","language_iso":"yaa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yaminahua","language_family_code":"YAA","language_family_name":"Yaminahua","language_family_english":"Yaminahua","language_family_iso":"yaa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-18 16:55:33","created_on":"2013-10-24 20:24:13","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"YAATBLN2DA\/YAATBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"YAATBLN2ET","fcbh_id":"YAATBLN2ET","volume_name":"2003 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YAA","language_name":"Yaminahua","language_english":"Yaminahua","language_iso":"yaa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yaminahua","language_family_code":"YAA","language_family_name":"Yaminahua","language_family_english":"Yaminahua","language_family_iso":"yaa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:05:54","created_on":"2013-09-03 16:57:07","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YAATBLN2ET\/YAATBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YADTBLN2DA","fcbh_id":"YADTBLN2DA","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YAD","language_name":"Yagua","language_english":"Yagua","language_iso":"yad","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yagua","language_family_code":"YAD","language_family_name":"Yagua","language_family_english":"Yagua","language_family_iso":"yad","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-18 16:56:17","created_on":"2013-10-25 20:37:42","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"YADTBLN2DA\/YADTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"YADTBLN2ET","fcbh_id":"YADTBLN2ET","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YAD","language_name":"Yagua","language_english":"Yagua","language_iso":"yad","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yagua","language_family_code":"YAD","language_family_name":"Yagua","language_family_english":"Yagua","language_family_iso":"yad","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:52","created_on":"2013-08-28 19:17:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YADTBLN2ET\/YADTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YALPBTN2DA","fcbh_id":"YALPBTN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YAL","language_name":"Yalunka","language_english":"Yalunka","language_iso":"yal","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yalunka","language_family_code":"YAL","language_family_name":"Yalunka","language_family_english":"Yalunka","language_family_iso":"yal","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-04-23 18:05:04","created_on":"2010-11-25 20:50:12","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2YALPBT","audio_zip_path":"YALPBTN2DA\/YALPBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"YALPBTN2ET","fcbh_id":"YALPBTN2ET","volume_name":"2008 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YAL","language_name":"Yalunka","language_english":"Yalunka","language_iso":"yal","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yalunka","language_family_code":"YAL","language_family_name":"Yalunka","language_family_english":"Yalunka","language_family_iso":"yal","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-12-20 21:58:19","created_on":"2010-11-25 20:50:13","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2YALPBT","audio_zip_path":"YALPBTN2ET\/YALPBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YAMWBTN2DA","fcbh_id":"YAMWBTN2DA","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YAM","language_name":"Yamba","language_english":"Yamba","language_iso":"yam","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yamba","language_family_code":"YAM","language_family_name":"Yamba","language_family_english":"Yamba","language_family_iso":"yam","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 21:06:02","created_on":"2010-09-14 17:01:13","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2YAMWBT","audio_zip_path":"YAMWBTN2DA\/YAMWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"YAMWBTN2ET","fcbh_id":"YAMWBTN2ET","volume_name":"1992 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YAM","language_name":"Yamba","language_english":"Yamba","language_iso":"yam","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yamba","language_family_code":"YAM","language_family_name":"Yamba","language_family_english":"Yamba","language_family_iso":"yam","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:50","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2YAMWBT","audio_zip_path":"YAMWBTN2ET\/YAMWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YAOBSMN2DA","fcbh_id":"YAOBSMN2DA","volume_name":"2008 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"YAO","language_name":"Chiyao","language_english":"Chiyao","language_iso":"yao","language_iso_2B":"yao","language_iso_2T":"yao","language_iso_1":"","language_iso_name":"Yao","language_family_code":"YAO","language_family_name":"Chiyao","language_family_english":"Chiyao","language_family_iso":"yao","language_family_iso_2B":"yao","language_family_iso_2T":"yao","language_family_iso_1":"","version_code":"BSM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:49","created_on":"2010-09-14 17:00:56","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2YAOBSM","audio_zip_path":"YAOBSMN2DA\/YAOBSMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"YASWYIN1DA","fcbh_id":"YASWYIN1DA","volume_name":"Noga\u0301l\u0254 na\u0301 mammana ya G\u025b\u0254y\u0254","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"YAS","language_name":"Nugunu","language_english":"Nugunu","language_iso":"yas","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nugunu (Cameroon)","language_family_code":"YAS","language_family_name":"Nugunu","language_family_english":"Nugunu","language_family_iso":"yas","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-10 23:31:14","created_on":"2018-09-08 18:22:58","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"YASWYIN1DA\/YASWYIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"YASWYIN1ET","fcbh_id":"YASWYIN1ET","volume_name":"Noga\u0301l\u0254 na\u0301 mammana ya G\u025b\u0254y\u0254","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"YAS","language_name":"Nugunu","language_english":"Nugunu","language_iso":"yas","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nugunu (Cameroon)","language_family_code":"YAS","language_family_name":"Nugunu","language_family_english":"Nugunu","language_family_iso":"yas","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-12 19:12:34","created_on":"2018-11-12 18:57:44","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YASWYIN1ET\/YASWYIN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"YASWYIN2DA","fcbh_id":"YASWYIN2DA","volume_name":"Noga\u0301l\u0254 na\u0301 mammana ya G\u025b\u0254y\u0254","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YAS","language_name":"Nugunu","language_english":"Nugunu","language_iso":"yas","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nugunu (Cameroon)","language_family_code":"YAS","language_family_name":"Nugunu","language_family_english":"Nugunu","language_family_iso":"yas","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-10 23:32:30","created_on":"2018-09-08 18:16:52","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"YASWYIN2DA\/YASWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"YASWYIN2ET","fcbh_id":"YASWYIN2ET","volume_name":"Noga\u0301l\u0254 na\u0301 mammana ya G\u025b\u0254y\u0254","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"YAS","language_name":"Nugunu","language_english":"Nugunu","language_iso":"yas","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Nugunu (Cameroon)","language_family_code":"YAS","language_family_name":"Nugunu","language_family_english":"Nugunu","language_family_iso":"yas","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-11-12 19:12:45","created_on":"2018-11-12 18:56:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YASWYIN2ET\/YASWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"YATCABN1DA","fcbh_id":"YATCABN1DA","volume_name":"N\u025bs\u0254\u0301g n\u025b\u0301 N\u025bwa","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"YAT","language_name":"Yambeta","language_english":"Yambeta","language_iso":"yat","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yambeta","language_family_code":"YAT","language_family_name":"Yambeta","language_family_english":"Yambeta","language_family_iso":"yat","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAB","version_name":"CABTAL","version_english":"CABTAL","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 18:25:12","created_on":"2018-10-16 17:29:28","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"YATCABN1DA\/YATCABN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"YATCABN1ET","fcbh_id":"YATCABN1ET","volume_name":"N\u025bs\u0254\u0301g n\u025b\u0301 N\u025bwa","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"YAT","language_name":"Yambeta","language_english":"Yambeta","language_iso":"yat","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yambeta","language_family_code":"YAT","language_family_name":"Yambeta","language_family_english":"Yambeta","language_family_iso":"yat","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAB","version_name":"CABTAL","version_english":"CABTAL","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 18:25:34","created_on":"2018-10-16 17:28:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YATCABN1ET\/YATCABN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"YATCABN2DA","fcbh_id":"YATCABN2DA","volume_name":"N\u025bs\u0254\u0301g n\u025b\u0301 N\u025bwa","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"YAT","language_name":"Yambeta","language_english":"Yambeta","language_iso":"yat","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yambeta","language_family_code":"YAT","language_family_name":"Yambeta","language_family_english":"Yambeta","language_family_iso":"yat","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAB","version_name":"CABTAL","version_english":"CABTAL","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 18:25:58","created_on":"2018-10-16 17:27:15","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"YATCABN2DA\/YATCABN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"YATCABN2ET","fcbh_id":"YATCABN2ET","volume_name":"N\u025bs\u0254\u0301g n\u025b\u0301 N\u025bwa","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YAT","language_name":"Yambeta","language_english":"Yambeta","language_iso":"yat","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yambeta","language_family_code":"YAT","language_family_name":"Yambeta","language_family_english":"Yambeta","language_family_iso":"yat","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAB","version_name":"CABTAL","version_english":"CABTAL","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-09-24 20:38:12","created_on":"2018-08-20 20:59:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YATCABN2ET\/YATCABN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"YAZTBLN1DA","fcbh_id":"YAZTBLN1DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YAZ","language_name":"Lokaa","language_english":"Lokaa","language_iso":"yaz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lokaa","language_family_code":"YAZ","language_family_name":"Lokaa","language_family_english":"Lokaa","language_family_iso":"yaz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-22 19:38:44","created_on":"2015-03-24 17:16:15","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"YAZTBLN1DA\/YAZTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"YAZTBLN1ET","fcbh_id":"YAZTBLN1ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YAZ","language_name":"Lokaa","language_english":"Lokaa","language_iso":"yaz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lokaa","language_family_code":"YAZ","language_family_name":"Lokaa","language_family_english":"Lokaa","language_family_iso":"yaz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-22 19:41:08","created_on":"2015-03-26 16:58:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YAZTBLN1ET\/YAZTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YAZTBLN2DA","fcbh_id":"YAZTBLN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YAZ","language_name":"Lokaa","language_english":"Lokaa","language_iso":"yaz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lokaa","language_family_code":"YAZ","language_family_name":"Lokaa","language_family_english":"Lokaa","language_family_iso":"yaz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-22 19:42:00","created_on":"2015-03-24 17:26:30","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"YAZTBLN2DA\/YAZTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"YAZTBLN2ET","fcbh_id":"YAZTBLN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YAZ","language_name":"Lokaa","language_english":"Lokaa","language_iso":"yaz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lokaa","language_family_code":"YAZ","language_family_name":"Lokaa","language_family_english":"Lokaa","language_family_iso":"yaz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:19","created_on":"2014-02-24 16:50:37","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YAZTBLN2ET\/YAZTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YBBCABN2ET","fcbh_id":"YBBCABN2ET","volume_name":"2017 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"YBB","language_name":"Yemba","language_english":"Yemba","language_iso":"ybb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yemba","language_family_code":"YBB","language_family_name":"Yemba","language_family_english":"Yemba","language_family_iso":"ybb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"CAB","version_name":"CABTAL","version_english":"CABTAL","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-18 19:47:47","created_on":"2018-09-28 17:05:54","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YBBCABN2ET\/YBBCABN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"YBYWBTN2ET","fcbh_id":"YBYWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YBY","language_name":"Yaweyuha","language_english":"Yaweyuha","language_iso":"yby","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yaweyuha","language_family_code":"YBY","language_family_name":"Yaweyuha","language_family_english":"Yaweyuha","language_family_iso":"yby","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 17:15:21","created_on":"2011-10-10 15:54:31","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YBYWBTN2ET\/YBYWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YCNWBTN2DA","fcbh_id":"YCNWBTN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YCN","language_name":"Yucuna","language_english":"Yucuna","language_iso":"ycn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yucuna","language_family_code":"YCN","language_family_name":"Yucuna","language_family_english":"Yucuna","language_family_iso":"ycn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:37","created_on":"2013-02-01 19:28:55","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"YCNWBTN2DA\/YCNWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"YCNWBTN2ET","fcbh_id":"YCNWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YCN","language_name":"Yucuna","language_english":"Yucuna","language_iso":"ycn","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yucuna","language_family_code":"YCN","language_family_name":"Yucuna","language_family_english":"Yucuna","language_family_iso":"ycn","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:34","created_on":"2013-09-03 16:51:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YCNWBTN2ET\/YCNWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YKAWYIN2ET","fcbh_id":"YKAWYIN2ET","volume_name":"1986 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YKA","language_name":"Yakan","language_english":"Yakan","language_iso":"yka","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yakan","language_family_code":"YKA","language_family_name":"Yakan","language_family_english":"Yakan","language_family_iso":"yka","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-23 18:47:40","created_on":"2018-07-23 16:52:37","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YKAWYIN2ET\/YKAWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"YLEWBTN2ET","fcbh_id":"YLEWBTN2ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YLE","language_name":"Yele","language_english":"Yele","language_iso":"yle","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yele","language_family_code":"YLE","language_family_name":"Yele","language_family_english":"Yele","language_family_iso":"yle","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-12-06 19:45:52","created_on":"2014-09-26 18:37:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YLEWBTN2ET\/YLEWBTN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"YLILAIN2DA","fcbh_id":"YLILAIN2DA","volume_name":"Today's Yali Angguruk Version, 1998","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YLI","language_name":"Yali, Angguruk","language_english":"Yali, Angguruk","language_iso":"yli","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Angguruk Yali","language_family_code":"YLI","language_family_name":"Yali, Angguruk","language_family_english":"Yali, Angguruk","language_family_iso":"yli","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-07-21 19:55:12","created_on":"2014-07-18 20:23:11","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"YLILAIN2DA\/YLILAIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"YLILAIN2ET","fcbh_id":"YLILAIN2ET","volume_name":"Today's Yali Angguruk Version, 1998","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YLI","language_name":"Yali, Angguruk","language_english":"Yali, Angguruk","language_iso":"yli","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Angguruk Yali","language_family_code":"YLI","language_family_name":"Yali, Angguruk","language_family_english":"Yali, Angguruk","language_family_iso":"yli","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"LAI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:21","created_on":"2011-08-16 19:24:21","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YLILAIN2ET\/YLILAIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YMLTBLN2ET","fcbh_id":"YMLTBLN2ET","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YML","language_name":"Iamalele","language_english":"Iamalele","language_iso":"yml","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Iamalele","language_family_code":"YML","language_family_name":"Iamalele","language_family_english":"Iamalele","language_family_iso":"yml","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-11-21 18:42:19","created_on":"2014-06-24 23:12:08","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YMLTBLN2ET\/YMLTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YOCASIN1DA","fcbh_id":"YOCASIN1DA","volume_name":"1990 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"YOC","language_name":"Iu Mien","language_english":"Iu Mien","language_iso":"ium","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Iu Mien","language_family_code":"YOC","language_family_name":"Iu Mien","language_family_english":"Iu Mien","language_family_iso":"ium","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"ASI","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:29","created_on":"2010-09-14 16:59:53","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1YOCASI","audio_zip_path":"YOCASIN1DA\/YOCASIN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"YORBSNN2DA","fcbh_id":"YORBSNN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"YOR","language_name":"Yoruba","language_english":"Yoruba","language_iso":"yor","language_iso_2B":"yor","language_iso_2T":"yor","language_iso_1":"yo","language_iso_name":"Yoruba","language_family_code":"YOR","language_family_name":"Yoruba","language_family_english":"Yoruba","language_family_iso":"yor","language_family_iso_2B":"yor","language_family_iso_2T":"yor","language_family_iso_1":"yo","version_code":"BSN","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:45","created_on":"2010-09-14 17:00:56","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2YORBSN","audio_zip_path":"YORBSNN2DA\/YORBSNN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"YORUBSN2DA","fcbh_id":"YORUBSN2DA","volume_name":"1960 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"YOR","language_name":"Yoruba","language_english":"Yoruba","language_iso":"yor","language_iso_2B":"yor","language_iso_2T":"yor","language_iso_1":"yo","language_iso_name":"Yoruba","language_family_code":"YOR","language_family_name":"Yoruba","language_family_english":"Yoruba","language_family_iso":"yor","language_family_iso_2B":"yor","language_family_iso_2T":"yor","language_family_iso_1":"yo","version_code":"UBS","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:35","created_on":"2010-09-14 17:00:56","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2YORUBS","audio_zip_path":"YORUBSN2DA\/YORUBSN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"YRBTBLN2ET","fcbh_id":"YRBTBLN2ET","volume_name":"1987 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YRB","language_name":"Yareba","language_english":"Yareba","language_iso":"yrb","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yareba","language_family_code":"YRB","language_family_name":"Yareba","language_family_english":"Yareba","language_family_iso":"yrb","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 17:14:49","created_on":"2014-06-26 16:32:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YRBTBLN2ET\/YRBTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YRESCBN1DA","fcbh_id":"YRESCBN1DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YRE","language_name":"Yaour\u00e9","language_english":"Yaouré","language_iso":"yre","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yaour\u00e9","language_family_code":"YRE","language_family_name":"Yaour\u00e9","language_family_english":"Yaouré","language_family_iso":"yre","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SCB","version_name":"SCB","version_english":"SCB","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-26 20:21:10","created_on":"2018-07-25 21:02:26","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"YRESCBN1DA\/YRESCBN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"YRESCBN1ET","fcbh_id":"YRESCBN1ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YRE","language_name":"Yaour\u00e9","language_english":"Yaouré","language_iso":"yre","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yaour\u00e9","language_family_code":"YRE","language_family_name":"Yaour\u00e9","language_family_english":"Yaouré","language_family_iso":"yre","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SCB","version_name":"SCB","version_english":"SCB","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-26 20:37:16","created_on":"2018-07-25 21:57:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YRESCBN1ET\/YRESCBN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"YRESCBN2DA","fcbh_id":"YRESCBN2DA","volume_name":"1999 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YRE","language_name":"Yaour\u00e9","language_english":"Yaouré","language_iso":"yre","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yaour\u00e9","language_family_code":"YRE","language_family_name":"Yaour\u00e9","language_family_english":"Yaouré","language_family_iso":"yre","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SCB","version_name":"SCB","version_english":"SCB","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-26 20:36:59","created_on":"2018-07-25 20:58:51","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"YRESCBN2DA\/YRESCBN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"YRESCBN2ET","fcbh_id":"YRESCBN2ET","volume_name":"1999 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"YRE","language_name":"Yaour\u00e9","language_english":"Yaoure","language_iso":"yre","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yaour\u00e9","language_family_code":"YRE","language_family_name":"Yaour\u00e9","language_family_english":"Yaouré","language_family_iso":"yre","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SCB","version_name":"SCB","version_english":"SCB","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-07-23 16:38:18","created_on":"2017-09-01 20:49:58","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YRESCBN2ET\/YRESCBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"YSSYYVN2ET","fcbh_id":"YSSYYVN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YSS","language_name":"Yessan-Mayo Yamano","language_english":"Yessan-Mayo Yamano","language_iso":"yss","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yessan-Mayo","language_family_code":"YSS","language_family_name":"Yessan-Mayo Yamano","language_family_english":"Yessan-Mayo Yamano","language_family_iso":"yss","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"YYV","version_name":"Yessan-Mayo Yamano Version","version_english":"Yessan-Mayo Yamano Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 17:31:37","created_on":"2014-06-26 16:38:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YSSYYVN2ET\/YSSYYVN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YUASBMN2DA","fcbh_id":"YUASBMN2DA","volume_name":"1992 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"YUA","language_name":"Maya, Yucatan","language_english":"Maya, Yucatan","language_iso":"yua","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yucateco","language_family_code":"YUA","language_family_name":"Maya, Yucatan","language_family_english":"Maya, Yucatan","language_family_iso":"yua","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"SBM","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-10-27 21:18:40","created_on":"2010-09-14 17:00:56","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2YUASBM","audio_zip_path":"YUASBMN2DA\/YUASBMN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","download","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"YUHRUVN2DA","fcbh_id":"YUHRUVN2DA","volume_name":"Drama Revised Union Version","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"YUH","language_name":"\u5ee3\u6771\u8a71","language_english":"Chinese, Cantonese","language_iso":"yue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yue Chinese","language_family_code":"YUH","language_family_name":"\u5ee3\u6771\u8a71","language_family_english":"Chinese, Cantonese","language_family_iso":"yue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"RUV","version_name":"Revised Union Version","version_english":"Revised Union Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:41:58","created_on":"2010-09-14 17:01:17","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2YUHRUV","audio_zip_path":"YUHRUVN2DA\/YUHRUVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"YUHUN2N1DA","fcbh_id":"YUHUN2N1DA","volume_name":"Non Drama Union Version (Simplified)","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"YUH","language_name":"\u5ee3\u6771\u8a71","language_english":"Chinese, Cantonese","language_iso":"yue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yue Chinese","language_family_code":"YUH","language_family_name":"\u5ee3\u6771\u8a71","language_family_english":"Chinese, Cantonese","language_family_iso":"yue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UN2","version_name":"\u8054\u76df\u7248","version_english":"Union Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-14 17:21:13","created_on":"2015-07-23 17:14:20","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"YUHUN2N1DA\/YUHUN2N1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","mp3_cd","bible_stick","subsplash"],"resolution":[]},{"dam_id":"YUHUN2N1ET","fcbh_id":"YUHUN2N1ET","volume_name":"Non Drama Union Version (Simplified)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YUH","language_name":"\u5ee3\u6771\u8a71","language_english":"Chinese, Cantonese","language_iso":"yue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yue Chinese","language_family_code":"YUH","language_family_name":"\u5ee3\u6771\u8a71","language_family_english":"Chinese, Cantonese","language_family_iso":"yue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UN2","version_name":"\u8054\u76df\u7248","version_english":"Union Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-14 17:20:44","created_on":"2015-07-23 18:41:32","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YUHUN2N1ET\/YUHUN2N1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YUHUN2N2DA","fcbh_id":"YUHUN2N2DA","volume_name":"Drama Union Version (Simplified)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YUH","language_name":"\u5ee3\u6771\u8a71","language_english":"Chinese, Cantonese","language_iso":"yue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yue Chinese","language_family_code":"YUH","language_family_name":"\u5ee3\u6771\u8a71","language_family_english":"Chinese, Cantonese","language_family_iso":"yue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UN2","version_name":"\u8054\u76df\u7248","version_english":"Union Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-14 17:12:39","created_on":"2011-08-02 18:58:26","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YUHUN2N2DA\/YUHUN2N2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","mp3_cd","bible_stick","subsplash"],"resolution":[]},{"dam_id":"YUHUN2N2ET","fcbh_id":"YUHUN2N2ET","volume_name":"Drama Union Version (Simplified)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YUH","language_name":"\u5ee3\u6771\u8a71","language_english":"Chinese, Cantonese","language_iso":"yue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yue Chinese","language_family_code":"YUH","language_family_name":"\u5ee3\u6771\u8a71","language_family_english":"Chinese, Cantonese","language_family_iso":"yue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UN2","version_name":"\u8054\u76df\u7248","version_english":"Union Version","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-14 17:19:58","created_on":"2011-08-02 20:31:51","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YUHUN2N2ET\/YUHUN2N2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YUHUN2O1ET","fcbh_id":"YUHUN2O1ET","volume_name":"Non Drama Union Version (Simplified))","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YUH","language_name":"\u5ee3\u6771\u8a71","language_english":"Chinese, Cantonese","language_iso":"yue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yue Chinese","language_family_code":"YUH","language_family_name":"\u5ee3\u6771\u8a71","language_family_english":"Chinese, Cantonese","language_family_iso":"yue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UN2","version_name":"\u8054\u76df\u7248","version_english":"Union Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-11-14 17:21:41","created_on":"2015-07-23 18:51:33","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YUHUN2O1ET\/YUHUN2O1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YUHUN2O2ET","fcbh_id":"YUHUN2O2ET","volume_name":"Drama Union Version (Simplified)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YUH","language_name":"\u5ee3\u6771\u8a71","language_english":"Chinese, Cantonese","language_iso":"yue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yue Chinese","language_family_code":"YUH","language_family_name":"\u5ee3\u6771\u8a71","language_family_english":"Chinese, Cantonese","language_family_iso":"yue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UN2","version_name":"\u8054\u76df\u7248","version_english":"Union Version","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-11-14 17:20:20","created_on":"2011-08-02 21:01:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YUHUN2O2ET\/YUHUN2O2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YUHUNVN1DA","fcbh_id":"YUHUNVN1DA","volume_name":"Non Drama Union Version (Traditional)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YUH","language_name":"\u5ee3\u6771\u8a71","language_english":"Chinese, Cantonese","language_iso":"yue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yue Chinese","language_family_code":"YUH","language_family_name":"\u5ee3\u6771\u8a71","language_family_english":"Chinese, Cantonese","language_family_iso":"yue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UNV","version_name":"Union Version = \u548c\u5408\u672c","version_english":"Union Version = \u548c\u5408\u672c","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-14 17:24:14","created_on":"2015-05-27 20:59:47","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"YUHUNVN1DA\/YUHUNVN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"YUHUNVN1ET","fcbh_id":"YUHUNVN1ET","volume_name":"Non Drama Union Version (Traditional)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YUH","language_name":"\u5ee3\u6771\u8a71","language_english":"Chinese, Cantonese","language_iso":"yue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yue Chinese","language_family_code":"YUH","language_family_name":"\u5ee3\u6771\u8a71","language_family_english":"Chinese, Cantonese","language_family_iso":"yue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UNV","version_name":"Union Version = \u548c\u5408\u672c","version_english":"Union Version = \u548c\u5408\u672c","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-10 16:18:35","created_on":"2015-06-03 20:29:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YUHUNVN1ET\/YUHUNVN1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YUHUNVN2DA","fcbh_id":"YUHUNVN2DA","volume_name":"Drama Union Version (Traditional)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YUH","language_name":"\u5ee3\u6771\u8a71","language_english":"Chinese, Cantonese","language_iso":"yue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yue Chinese","language_family_code":"YUH","language_family_name":"\u5ee3\u6771\u8a71","language_family_english":"Chinese, Cantonese","language_family_iso":"yue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UNV","version_name":"Union Version = \u548c\u5408\u672c","version_english":"Union Version = \u548c\u5408\u672c","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-14 17:23:14","created_on":"2010-09-14 17:00:56","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N2YUHUNV","audio_zip_path":"YUHUNVN2DA\/YUHUNVN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"YUHUNVN2ET","fcbh_id":"YUHUNVN2ET","volume_name":"Drama Union Version (Traditional)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YUH","language_name":"\u5ee3\u6771\u8a71","language_english":"Chinese, Cantonese","language_iso":"yue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yue Chinese","language_family_code":"YUH","language_family_name":"\u5ee3\u6771\u8a71","language_family_english":"Chinese, Cantonese","language_family_iso":"yue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UNV","version_name":"Union Version = \u548c\u5408\u672c","version_english":"Union Version = \u548c\u5408\u672c","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-11-14 17:25:59","created_on":"2010-09-14 17:00:57","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2YUHUNV","audio_zip_path":"YUHUNVN2ET\/YUHUNVN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"YUHUNVO1ET","fcbh_id":"YUHUNVO1ET","volume_name":"Non Drama Union Version (Traditional)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YUH","language_name":"\u5ee3\u6771\u8a71","language_english":"Chinese, Cantonese","language_iso":"yue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yue Chinese","language_family_code":"YUH","language_family_name":"\u5ee3\u6771\u8a71","language_family_english":"Chinese, Cantonese","language_family_iso":"yue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UNV","version_name":"Union Version = \u548c\u5408\u672c","version_english":"Union Version = \u548c\u5408\u672c","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2018-05-10 16:33:33","created_on":"2015-07-23 17:06:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YUHUNVO1ET\/YUHUNVO1ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YUHUNVO2ET","fcbh_id":"YUHUNVO2ET","volume_name":"Drama Union Version (Traditional)","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YUH","language_name":"\u5ee3\u6771\u8a71","language_english":"Chinese, Cantonese","language_iso":"yue","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yue Chinese","language_family_code":"YUH","language_family_name":"\u5ee3\u6771\u8a71","language_family_english":"Chinese, Cantonese","language_family_iso":"yue","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"UNV","version_name":"Union Version = \u548c\u5408\u672c","version_english":"Union Version = \u548c\u5408\u672c","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-11-14 17:25:01","created_on":"2010-09-14 17:01:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"O2YUHUNV","audio_zip_path":"YUHUNVO2ET\/YUHUNVO2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","local_bundled","subsplash"],"resolution":[]},{"dam_id":"YUJWBTN2ET","fcbh_id":"YUJWBTN2ET","volume_name":"1994 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YUJ","language_name":"Karkar-Yuri","language_english":"Karkar-Yuri","language_iso":"yuj","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Karkar-Yuri","language_family_code":"YUJ","language_family_name":"Karkar-Yuri","language_family_english":"Karkar-Yuri","language_family_iso":"yuj","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:52","created_on":"2014-06-25 19:13:25","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YUJWBTN2ET\/YUJWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YUTWBTN2ET","fcbh_id":"YUTWBTN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YUT","language_name":"Yopno","language_english":"Yopno","language_iso":"yut","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yopno","language_family_code":"YUT","language_family_name":"Yopno","language_family_english":"Yopno","language_family_iso":"yut","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-08-03 18:03:23","created_on":"2014-06-26 17:03:38","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YUTWBTN2ET\/YUTWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YUWPNGN2ET","fcbh_id":"YUWPNGN2ET","volume_name":"1997 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YUW","language_name":"Yau (Morobe Province)","language_english":"Yau (Morobe Province)","language_iso":"yuw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yau (Morobe Province)","language_family_code":"YUW","language_family_name":"Yau (Morobe Province)","language_family_english":"Yau (Morobe Province)","language_family_iso":"yuw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PNG","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:23:03","created_on":"2014-05-08 19:07:06","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YUWPNGN2ET\/YUWPNGN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"YVATBLN2DA","fcbh_id":"YVATBLN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YVA","language_name":"Yawa","language_english":"Yawa","language_iso":"yva","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yawa","language_family_code":"YVA","language_family_name":"Yawa","language_family_english":"Yawa","language_family_iso":"yva","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-04-21 20:51:04","created_on":"2014-04-16 22:06:21","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"YVATBLN2DA\/YVATBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"YVATBLN2ET","fcbh_id":"YVATBLN2ET","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"YVA","language_name":"Yawa","language_english":"Yawa","language_iso":"yva","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yawa","language_family_code":"YVA","language_family_name":"Yawa","language_family_english":"Yawa","language_family_iso":"yva","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:16","created_on":"2014-03-11 20:09:27","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"YVATBLN2ET\/YVATBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","streaming_url","subsplash"],"resolution":[]},{"dam_id":"ZAATBLN2DA","fcbh_id":"ZAATBLN2DA","volume_name":"1970 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZAA","language_name":"Zapoteco, Sierra Ju\u00e1rez","language_english":"Zapoteco, Sierra Juarez","language_iso":"zaa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sierra de Ju\u00e1rez Zapotec","language_family_code":"ZAA","language_family_name":"Zapoteco, Sierra Ju\u00e1rez","language_family_english":"Zapoteco, Sierra Juarez","language_family_iso":"zaa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-06-05 21:58:15","created_on":"2014-05-16 18:09:18","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"ZAATBLN2DA\/ZAATBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZAATBLN2ET","fcbh_id":"ZAATBLN2ET","volume_name":"1970 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZAA","language_name":"Zapoteco, Sierra Ju\u00e1rez","language_english":"Zapoteco, Sierra Juarez","language_iso":"zaa","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Sierra de Ju\u00e1rez Zapotec","language_family_code":"ZAA","language_family_name":"Zapoteco, Sierra Ju\u00e1rez","language_family_english":"Zapoteco, Sierra Juarez","language_family_iso":"zaa","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:22","created_on":"2014-03-31 17:08:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZAATBLN2ET\/ZAATBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZABTBLN1DA","fcbh_id":"ZABTBLN1DA","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZAB","language_name":"Zapoteco de San Juan Guelavia","language_english":"Zapoteco de San Juan Guelavia","language_iso":"zab","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Juan Guelav\u00eda Zapotec","language_family_code":"ZAB","language_family_name":"Zapoteco de San Juan Guelavia","language_family_english":"Zapoteco de San Juan Guelavia","language_family_iso":"zab","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:40","created_on":"2011-12-21 17:29:16","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"ZABTBLN1DA\/ZABTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZABTBLN1ET","fcbh_id":"ZABTBLN1ET","volume_name":"1995 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZAB","language_name":"Zapoteco de San Juan Guelavia","language_english":"Zapoteco de San Juan Guelavia","language_iso":"zab","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Juan Guelav\u00eda Zapotec","language_family_code":"ZAB","language_family_name":"Zapoteco de San Juan Guelavia","language_family_english":"Zapoteco de San Juan Guelavia","language_family_iso":"zab","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:54","created_on":"2013-03-05 22:30:48","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZABTBLN1ET\/ZABTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZAEWBTN2DA","fcbh_id":"ZAEWBTN2DA","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZAE","language_name":"Zapotec, Yareni","language_english":"Zapotec, Yareni","language_iso":"zae","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yareni Zapotec","language_family_code":"ZAE","language_family_name":"Zapotec, Yareni","language_family_english":"Zapotec, Yareni","language_family_iso":"zae","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-07-11 19:40:50","created_on":"2014-06-18 18:27:25","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"ZAEWBTN2DA\/ZAEWBTN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZAEWBTN2ET","fcbh_id":"ZAEWBTN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZAE","language_name":"Zapotec, Yareni","language_english":"Zapotec, Yareni","language_iso":"zae","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yareni Zapotec","language_family_code":"ZAE","language_family_name":"Zapotec, Yareni","language_family_english":"Zapotec, Yareni","language_family_iso":"zae","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:37","created_on":"2014-03-31 17:06:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZAEWBTN2ET\/ZAEWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZAIMSVS1DA","fcbh_id":"ZAIMSVS1DA","volume_name":"Story - OT Selections - 2013 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZAI","language_name":"Zapoteco del Istmo","language_english":"Zapoteco del Istmo","language_iso":"zai","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Isthmus Zapotec","language_family_code":"ZAI","language_family_name":"Zapoteco del Istmo","language_family_english":"Zapoteco del Istmo","language_family_iso":"zai","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MSV","version_name":"Mitla Studios Version","version_english":"Mitla Studios Version","collection_code":"AL","rich":"0","collection_name":"","updated_on":"2018-01-22 20:41:58","created_on":"2017-06-16 15:50:33","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ZAIMSVS1DA\/ZAIMSVS1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ZAITBLN2DA","fcbh_id":"ZAITBLN2DA","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZAI","language_name":"Zapoteco del Istmo","language_english":"Zapoteco del Istmo","language_iso":"zai","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Isthmus Zapotec","language_family_code":"ZAI","language_family_name":"Zapoteco del Istmo","language_family_english":"Zapoteco del Istmo","language_family_iso":"zai","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 21:42:29","created_on":"2010-09-14 17:01:22","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2ZAITBL","audio_zip_path":"ZAITBLN2DA\/ZAITBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZAITBLN2ET","fcbh_id":"ZAITBLN2ET","volume_name":"1988 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZAI","language_name":"Zapoteco del Istmo","language_english":"Zapoteco del Istmo","language_iso":"zai","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Isthmus Zapotec","language_family_code":"ZAI","language_family_name":"Zapoteco del Istmo","language_family_english":"Zapoteco del Istmo","language_family_iso":"zai","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:22","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2ZAITBL","audio_zip_path":"ZAITBLN2ET\/ZAITBLN2ET.zip","font":null,"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZAOTBLN1DA","fcbh_id":"ZAOTBLN1DA","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZAO","language_name":"Zapoteco de Ozolotepec","language_english":"Zapoteco de Ozolotepec","language_iso":"zao","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ozolotepec Zapotec","language_family_code":"ZAO","language_family_name":"Zapoteco de Ozolotepec","language_family_english":"Zapoteco de Ozolotepec","language_family_iso":"zao","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 21:27:18","created_on":"2010-09-14 17:01:25","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1ZAOTBL","audio_zip_path":"ZAOTBLN1DA\/ZAOTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZAOTBLN1ET","fcbh_id":"ZAOTBLN1ET","volume_name":"2007 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZAO","language_name":"Zapoteco de Ozolotepec","language_english":"Zapoteco de Ozolotepec","language_iso":"zao","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Ozolotepec Zapotec","language_family_code":"ZAO","language_family_name":"Zapoteco de Ozolotepec","language_family_english":"Zapoteco de Ozolotepec","language_family_iso":"zao","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:34:21","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1ZAOTBL","audio_zip_path":"ZAOTBLN1ET\/ZAOTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZARTBLN1DA","fcbh_id":"ZARTBLN1DA","volume_name":"1971 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZAR","language_name":"Zapotec del Rinc\u00f3n","language_english":"Zapotec del Rincon","language_iso":"zar","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rinc\u00f3n Zapotec","language_family_code":"ZAR","language_family_name":"Zapotec del Rinc\u00f3n","language_family_english":"Zapotec del Rincon","language_family_iso":"zar","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-11-01 20:09:35","created_on":"2013-10-22 15:35:23","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"ZARTBLN1DA\/ZARTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","television","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZARTBLN1ET","fcbh_id":"ZARTBLN1ET","volume_name":"1971 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZAR","language_name":"Zapotec del Rinc\u00f3n","language_english":"Zapotec del Rincon","language_iso":"zar","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Rinc\u00f3n Zapotec","language_family_code":"ZAR","language_family_name":"Zapotec del Rinc\u00f3n","language_family_english":"Zapotec del Rincon","language_family_iso":"zar","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:47","created_on":"2015-04-15 16:00:04","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZARTBLN1ET\/ZARTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZASWYIN2DA","fcbh_id":"ZASWYIN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZAS","language_name":"Zapoteco de Albarradas","language_english":"Zapoteco de Albarradas","language_iso":"zas","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Santo Domingo Albarradas Zapotec","language_family_code":"ZAS","language_family_name":"Zapoteco de Albarradas","language_family_english":"Zapoteco de Albarradas","language_family_iso":"zas","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 21:21:25","created_on":"2010-12-07 15:00:34","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2ZASWYI","audio_zip_path":"ZASWYIN2DA\/ZASWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZASWYIN2ET","fcbh_id":"ZASWYIN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZAS","language_name":"Zapoteco de Albarradas","language_english":"Zapoteco de Albarradas","language_iso":"zas","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Santo Domingo Albarradas Zapotec","language_family_code":"ZAS","language_family_name":"Zapoteco de Albarradas","language_family_english":"Zapoteco de Albarradas","language_family_iso":"zas","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:20","created_on":"2011-10-10 18:24:45","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZASWYIN2ET\/ZASWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZAWMVRN2DA","fcbh_id":"ZAWMVRN2DA","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZAW","language_name":"Zapoteco, Mitla","language_english":"Zapoteco, Mitla","language_iso":"zaw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mitla Zapotec","language_family_code":"ZAW","language_family_name":"Zapoteco, Mitla","language_family_english":"Zapoteco, Mitla","language_family_iso":"zaw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MVR","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:41","created_on":"2011-07-12 23:06:11","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"ZAWMVRN2DA\/ZAWMVRN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZAWMVRN2ET","fcbh_id":"ZAWMVRN2ET","volume_name":"2006 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZAW","language_name":"Zapoteco, Mitla","language_english":"Zapoteco, Mitla","language_iso":"zaw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mitla Zapotec","language_family_code":"ZAW","language_family_name":"Zapoteco, Mitla","language_family_english":"Zapoteco, Mitla","language_family_iso":"zaw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"MVR","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:18","created_on":"2011-08-04 15:24:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZAWMVRN2ET\/ZAWMVRN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZCAWYIN2DA","fcbh_id":"ZCAWYIN2DA","volume_name":"WBT Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZCA","language_name":"Zapotec Coatecas Altas","language_english":"Zapotec Coatecas Altas","language_iso":"zca","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Coatecas Altas Zapotec","language_family_code":"ZCA","language_family_name":"Zapotec Coatecas Altas","language_family_english":"Zapotec Coatecas Altas","language_family_iso":"zca","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:42","created_on":"2013-02-25 17:49:45","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"ZCAWYIN2DA\/ZCAWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZCAWYIN2ET","fcbh_id":"ZCAWYIN2ET","volume_name":"WBT Version","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZCA","language_name":"Zapotec Coatecas Altas","language_english":"Zapotec Coatecas Altas","language_iso":"zca","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Coatecas Altas Zapotec","language_family_code":"ZCA","language_family_name":"Zapotec Coatecas Altas","language_family_english":"Zapotec Coatecas Altas","language_family_iso":"zca","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:36:34","created_on":"2013-07-11 21:33:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZCAWYIN2ET\/ZCAWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZIATBLN2ET","fcbh_id":"ZIATBLN2ET","volume_name":"1982 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZIA","language_name":"Zia","language_english":"Zia","language_iso":"zia","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zia","language_family_code":"ZIA","language_family_name":"Zia","language_family_english":"Zia","language_family_iso":"zia","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-02 17:36:24","created_on":"2014-05-08 19:17:36","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZIATBLN2ET\/ZIATBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZIWPBTN1ET","fcbh_id":"ZIWPBTN1ET","volume_name":"2014 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ZIW","language_name":"Zigula","language_english":"Zigula","language_iso":"ziw","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zigula","language_family_code":"ZIW","language_family_name":"Zigula","language_family_english":"Zigula","language_family_iso":"ziw","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"PBT","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-03-21 16:43:04","created_on":"2018-03-21 15:45:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZIWPBTN1ET\/ZIWPBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ZLMAVBN1DA","fcbh_id":"ZLMAVBN1DA","volume_name":"Alkitab Versi Borneo","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZLM","language_name":"Malay","language_english":"Malay","language_iso":"zlm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Malay (individual language)","language_family_code":"ZLM","language_family_name":"Malay","language_family_english":"Malay","language_family_iso":"zlm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AVB","version_name":"Alkitab Versi Borneo","version_english":"Alkitab Versi Borneo","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-24 21:29:20","created_on":"2017-05-26 16:50:49","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ZLMAVBN1DA\/ZLMAVBN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ZLMAVBN1ET","fcbh_id":"ZLMAVBN1ET","volume_name":"Alkitab Versi Borneo","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZLM","language_name":"Malay","language_english":"Malay","language_iso":"zlm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Malay (individual language)","language_family_code":"ZLM","language_family_name":"Malay","language_family_english":"Malay","language_family_iso":"zlm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AVB","version_name":"Alkitab Versi Borneo","version_english":"Alkitab Versi Borneo","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-08 16:13:35","created_on":"2017-05-26 16:52:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZLMAVBN1ET\/ZLMAVBN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ZLMAVBN2DA","fcbh_id":"ZLMAVBN2DA","volume_name":"Alkitab Versi Borneo","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZLM","language_name":"Malay","language_english":"Malay","language_iso":"zlm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Malay (individual language)","language_family_code":"ZLM","language_family_name":"Malay","language_family_english":"Malay","language_family_iso":"zlm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AVB","version_name":"Alkitab Versi Borneo","version_english":"Alkitab Versi Borneo","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-10-24 21:21:54","created_on":"2017-05-26 16:42:11","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ZLMAVBN2DA\/ZLMAVBN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ZLMAVBN2ET","fcbh_id":"ZLMAVBN2ET","volume_name":"Alkitab Versi Borneo","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZLM","language_name":"Malay","language_english":"Malay","language_iso":"zlm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Malay (individual language)","language_family_code":"ZLM","language_family_name":"Malay","language_family_english":"Malay","language_family_iso":"zlm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AVB","version_name":"Alkitab Versi Borneo","version_english":"Alkitab Versi Borneo","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-06-16 16:48:38","created_on":"2016-08-23 20:03:30","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZLMAVBN2ET\/ZLMAVBN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ZLMAVBO1ET","fcbh_id":"ZLMAVBO1ET","volume_name":"Alkitab Versi Borneo","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZLM","language_name":"Malay","language_english":"Malay","language_iso":"zlm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Malay (individual language)","language_family_code":"ZLM","language_family_name":"Malay","language_family_english":"Malay","language_family_iso":"zlm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AVB","version_name":"Alkitab Versi Borneo","version_english":"Alkitab Versi Borneo","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-06-16 16:51:12","created_on":"2017-05-26 16:58:55","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZLMAVBO1ET\/ZLMAVBO1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ZLMAVBO2ET","fcbh_id":"ZLMAVBO2ET","volume_name":"Alkitab Versi Borneo","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZLM","language_name":"Malay","language_english":"Malay","language_iso":"zlm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Malay (individual language)","language_family_code":"ZLM","language_family_name":"Malay","language_family_english":"Malay","language_family_iso":"zlm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"AVB","version_name":"Alkitab Versi Borneo","version_english":"Alkitab Versi Borneo","collection_code":"OT","rich":"0","collection_name":"","updated_on":"2017-06-16 16:48:38","created_on":"2016-08-31 19:00:59","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZLMAVBO2ET\/ZLMAVBO2ET.zip","font":{"id":"38","name":"Verdana","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Verdana","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":null,"url":null},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ZNEBSSN1DA","fcbh_id":"ZNEBSSN1DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZNE","language_name":"Zande","language_english":"Zande","language_iso":"zne","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zande (individual language)","language_family_code":"ZNE","language_family_name":"Zande","language_family_english":"Zande","language_family_iso":"zne","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-03 21:04:26","created_on":"2017-07-21 17:19:50","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ZNEBSSN1DA\/ZNEBSSN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ZNEBSSN2DA","fcbh_id":"ZNEBSSN2DA","volume_name":"2011 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZNE","language_name":"Zande","language_english":"Zande","language_iso":"zne","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zande (individual language)","language_family_code":"ZNE","language_family_name":"Zande","language_family_english":"Zande","language_family_iso":"zne","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"BSS","version_name":"BSS","version_english":"BSS","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-08-03 21:04:26","created_on":"2017-07-21 17:04:46","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ZNEBSSN2DA\/ZNEBSSN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ZOSTBLN1DA","fcbh_id":"ZOSTBLN1DA","volume_name":"1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZOS","language_name":"Zoque de Francisco Le\u00f3n","language_english":"Zoque de Francisco Leon","language_iso":"zos","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Francisco Le\u00f3n Zoque","language_family_code":"ZOS","language_family_name":"Zoque de Francisco Le\u00f3n","language_family_english":"Zoque de Francisco Leon","language_family_iso":"zos","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-12-26 16:25:20","created_on":"2013-12-23 21:11:11","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"ZOSTBLN1DA\/ZOSTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZOSTBLN1ET","fcbh_id":"ZOSTBLN1ET","volume_name":"1984 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZOS","language_name":"Zoque de Francisco Le\u00f3n","language_english":"Zoque de Francisco Leon","language_iso":"zos","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Francisco Le\u00f3n Zoque","language_family_code":"ZOS","language_family_name":"Zoque de Francisco Le\u00f3n","language_family_english":"Zoque de Francisco Leon","language_family_iso":"zos","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 19:26:49","created_on":"2013-08-19 20:08:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZOSTBLN1ET\/ZOSTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZPCTBLN1DA","fcbh_id":"ZPCTBLN1DA","volume_name":"1986 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPC","language_name":"Zapotec Choapan","language_english":"Zapotec Choapan","language_iso":"zpc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Choapan Zapotec","language_family_code":"ZPC","language_family_name":"Zapotec Choapan","language_family_english":"Zapotec Choapan","language_family_iso":"zpc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-23 16:27:58","created_on":"2016-08-16 17:28:39","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ZPCTBLN1DA\/ZPCTBLN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ZPCTBLN1ET","fcbh_id":"ZPCTBLN1ET","volume_name":"1986 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPC","language_name":"Zapotec Choapan","language_english":"Zapotec Choapan","language_iso":"zpc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Choapan Zapotec","language_family_code":"ZPC","language_family_name":"Zapotec Choapan","language_family_english":"Zapotec Choapan","language_family_iso":"zpc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-16 17:31:54","created_on":"2016-08-16 17:23:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZPCTBLN1ET\/ZPCTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ZPCTBLN2DA","fcbh_id":"ZPCTBLN2DA","volume_name":"1986 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPC","language_name":"Zapotec Choapan","language_english":"Zapotec Choapan","language_iso":"zpc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Choapan Zapotec","language_family_code":"ZPC","language_family_name":"Zapotec Choapan","language_family_english":"Zapotec Choapan","language_family_iso":"zpc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-23 16:28:25","created_on":"2016-08-16 17:30:03","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZPCTBLN2DA\/ZPCTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick"],"resolution":[]},{"dam_id":"ZPCTBLN2ET","fcbh_id":"ZPCTBLN2ET","volume_name":"1986 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPC","language_name":"Zapotec Choapan","language_english":"Zapotec Choapan","language_iso":"zpc","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Choapan Zapotec","language_family_code":"ZPC","language_family_name":"Zapotec Choapan","language_family_english":"Zapotec Choapan","language_family_iso":"zpc","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2016-08-23 16:23:42","created_on":"2014-11-10 17:40:11","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZPCTBLN2ET\/ZPCTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ZPIWYIN2DA","fcbh_id":"ZPIWYIN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPI","language_name":"Zapoteco de Santa Mar\u00eda Quiegolani","language_english":"Zapoteco de Santa Mar\u00eda Quiegolani","language_iso":"zpi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Santa Mar\u00eda Quiegolani Zapotec","language_family_code":"ZPI","language_family_name":"Zapoteco de Santa Mar\u00eda Quiegolani","language_family_english":"Zapoteco de Santa Mar\u00eda Quiegolani","language_family_iso":"zpi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 21:34:05","created_on":"2010-09-14 17:01:29","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N2ZPIWYI","audio_zip_path":"ZPIWYIN2DA\/ZPIWYIN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZPIWYIN2ET","fcbh_id":"ZPIWYIN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPI","language_name":"Zapoteco de Santa Mar\u00eda Quiegolani","language_english":"Zapoteco de Santa Mar\u00eda Quiegolani","language_iso":"zpi","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Santa Mar\u00eda Quiegolani Zapotec","language_family_code":"ZPI","language_family_name":"Zapoteco de Santa Mar\u00eda Quiegolani","language_family_english":"Zapoteco de Santa Mar\u00eda Quiegolani","language_family_iso":"zpi","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WYI","version_name":"Wycliffe Bible Translators Inc. ","version_english":"Wycliffe Bible Translators Inc. ","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:21","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N2ZPIWYI","audio_zip_path":"ZPIWYIN2ET\/ZPIWYIN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZPLTBLN1DA","fcbh_id":"ZPLTBLN1DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPL","language_name":"Zapoteco de Lachixio ","language_english":"Zapoteco de Lachixio ","language_iso":"zpl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lachix\u00edo Zapotec","language_family_code":"ZPL","language_family_name":"Zapoteco de Lachixio","language_family_english":"Zapoteco de Lachixio","language_family_iso":"zpl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"tbl","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:42","created_on":"2011-02-02 03:45:23","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1ZPLTBL","audio_zip_path":"ZPLTBLN1DA\/ZPLTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZPLTBLN1ET","fcbh_id":"ZPLTBLN1ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPL","language_name":"Zapoteco de Lachixio ","language_english":"Zapoteco de Lachixio ","language_iso":"zpl","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Lachix\u00edo Zapotec","language_family_code":"ZPL","language_family_name":"Zapoteco de Lachixio","language_family_english":"Zapoteco de Lachixio","language_family_iso":"zpl","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-22 20:04:18","created_on":"2013-06-25 17:39:56","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZPLTBLN1ET\/ZPLTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZPMTBLN1DA","fcbh_id":"ZPMTBLN1DA","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPM","language_name":"Zapoteco de Mixtepec","language_english":"Zapoteco de Mixtepec","language_iso":"zpm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mixtepec Zapotec","language_family_code":"ZPM","language_family_name":"Zapoteco de Mixtepec","language_family_english":"Zapoteco de Mixtepec","language_family_iso":"zpm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:43","created_on":"2012-11-05 22:35:59","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"ZPMTBLN1DA\/ZPMTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZPMTBLN1ET","fcbh_id":"ZPMTBLN1ET","volume_name":"1998 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPM","language_name":"Zapoteco de Mixtepec","language_english":"Zapoteco de Mixtepec","language_iso":"zpm","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Mixtepec Zapotec","language_family_code":"ZPM","language_family_name":"Zapoteco de Mixtepec","language_family_english":"Zapoteco de Mixtepec","language_family_iso":"zpm","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:23:03","created_on":"2013-03-05 22:39:40","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZPMTBLN1ET\/ZPMTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZPOTBLN1DA","fcbh_id":"ZPOTBLN1DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPO","language_name":"Zapoteco de Amatlan","language_english":"Zapoteco de Amatlan","language_iso":"zpo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Amatl\u00e1n Zapotec","language_family_code":"ZPO","language_family_name":"Zapoteco de Amatlan","language_family_english":"Zapoteco de Amatlan","language_family_iso":"zpo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 21:22:17","created_on":"2010-09-14 17:01:22","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1ZPOTBL","audio_zip_path":"ZPOTBLN1DA\/ZPOTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZPOTBLN1ET","fcbh_id":"ZPOTBLN1ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPO","language_name":"Zapoteco de Amatlan","language_english":"Zapoteco de Amatlan","language_iso":"zpo","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Amatl\u00e1n Zapotec","language_family_code":"ZPO","language_family_name":"Zapoteco de Amatlan","language_family_english":"Zapoteco de Amatlan","language_family_iso":"zpo","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:00","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1ZPOTBL","audio_zip_path":"ZPOTBLN1ET\/ZPOTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZPQTBLN2DA","fcbh_id":"ZPQTBLN2DA","volume_name":"1987 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPQ","language_name":"Zapoteco de Zoogocho","language_english":"Zapoteco de Zoogocho","language_iso":"zpq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zoogocho Zapotec","language_family_code":"ZPQ","language_family_name":"Zapoteco de Zoogocho","language_family_english":"Zapoteco de Zoogocho","language_family_iso":"zpq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-08-17 16:19:43","created_on":"2013-08-02 16:19:27","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"ZPQTBLN2DA\/ZPQTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZPQTBLN2ET","fcbh_id":"ZPQTBLN2ET","volume_name":"1987 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPQ","language_name":"Zapoteco de Zoogocho","language_english":"Zapoteco de Zoogocho","language_iso":"zpq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zoogocho Zapotec","language_family_code":"ZPQ","language_family_name":"Zapoteco de Zoogocho","language_family_english":"Zapoteco de Zoogocho","language_family_iso":"zpq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:22","created_on":"2013-04-17 16:46:18","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZPQTBLN2ET\/ZPQTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZPTTBLN1DA","fcbh_id":"ZPTTBLN1DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPT","language_name":"Zapoteco de San Vicente Coatl\u00e1n","language_english":"Zapoteco de San Vicente Coatlan","language_iso":"zpt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Vicente Coatl\u00e1n Zapotec","language_family_code":"ZPT","language_family_name":"Zapoteco de San Vicente Coatl\u00e1n","language_family_english":"Zapoteco de San Vicente Coatlan","language_family_iso":"zpt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-03-12 19:52:35","created_on":"2015-03-11 19:49:10","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"ZPTTBLN1DA\/ZPTTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZPTTBLN1ET","fcbh_id":"ZPTTBLN1ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPT","language_name":"Zapoteco de San Vicente Coatl\u00e1n","language_english":"Zapoteco de San Vicente Coatlan","language_iso":"zpt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Vicente Coatl\u00e1n Zapotec","language_family_code":"ZPT","language_family_name":"Zapoteco de San Vicente Coatl\u00e1n","language_family_english":"Zapoteco de San Vicente Coatlan","language_family_iso":"zpt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:22","created_on":"2015-06-03 19:10:20","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZPTTBLN1ET\/ZPTTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZPTTBLN2DA","fcbh_id":"ZPTTBLN2DA","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPT","language_name":"Zapoteco de San Vicente Coatl\u00e1n","language_english":"Zapoteco de San Vicente Coatlan","language_iso":"zpt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Vicente Coatl\u00e1n Zapotec","language_family_code":"ZPT","language_family_name":"Zapoteco de San Vicente Coatl\u00e1n","language_family_english":"Zapoteco de San Vicente Coatlan","language_family_iso":"zpt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2015-07-28 20:05:07","created_on":"2014-09-29 20:08:05","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"","audio_zip_path":"ZPTTBLN2DA\/ZPTTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZPTTBLN2ET","fcbh_id":"ZPTTBLN2ET","volume_name":"2015 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPT","language_name":"Zapoteco de San Vicente Coatl\u00e1n","language_english":"Zapoteco de San Vicente Coatlan","language_iso":"zpt","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"San Vicente Coatl\u00e1n Zapotec","language_family_code":"ZPT","language_family_name":"Zapoteco de San Vicente Coatl\u00e1n","language_family_english":"Zapoteco de San Vicente Coatlan","language_family_iso":"zpt","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-15 20:25:22","created_on":"2015-06-01 18:03:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZPTTBLN2ET\/ZPTTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZPUTBLN1DA","fcbh_id":"ZPUTBLN1DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPU","language_name":"Zapoteco de Yalalag","language_english":"Zapoteco de Yalalag","language_iso":"zpu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yal\u00e1lag Zapotec","language_family_code":"ZPU","language_family_name":"Zapoteco de Yalalag","language_family_english":"Zapoteco de Yalalag","language_family_iso":"zpu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-05-24 20:20:32","created_on":"2010-09-14 17:01:25","right_to_left":"false","num_art":"4","num_sample_audio":"1","sku":"N1ZPUTBL","audio_zip_path":"ZPUTBLN1DA\/ZPUTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZPUTBLN1ET","fcbh_id":"ZPUTBLN1ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPU","language_name":"Zapoteco de Yalalag","language_english":"Zapoteco de Yalalag","language_iso":"zpu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yal\u00e1lag Zapotec","language_family_code":"ZPU","language_family_name":"Zapoteco de Yalalag","language_family_english":"Zapoteco de Yalalag","language_family_iso":"zpu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:02","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1ZPUTBL","audio_zip_path":"ZPUTBLN1ET\/ZPUTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZPUTBLN2DA","fcbh_id":"ZPUTBLN2DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPU","language_name":"Zapoteco de Yalalag","language_english":"Zapoteco de Yalalag","language_iso":"zpu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yal\u00e1lag Zapotec","language_family_code":"ZPU","language_family_name":"Zapoteco de Yalalag","language_family_english":"Zapoteco de Yalalag","language_family_iso":"zpu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-01 18:26:56","created_on":"2018-05-24 19:40:16","right_to_left":"false","num_art":"1","num_sample_audio":"0","sku":"","audio_zip_path":"ZPUTBLN2DA\/ZPUTBLN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download"],"resolution":[]},{"dam_id":"ZPUTBLN2ET","fcbh_id":"ZPUTBLN2ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPU","language_name":"Zapoteco de Yalalag","language_english":"Zapoteco de Yalalag","language_iso":"zpu","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yal\u00e1lag Zapotec","language_family_code":"ZPU","language_family_name":"Zapoteco de Yalalag","language_family_english":"Zapoteco de Yalalag","language_family_iso":"zpu","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-06-01 18:27:16","created_on":"2018-05-24 20:13:52","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZPUTBLN2ET\/ZPUTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ZPZTBLN1DA","fcbh_id":"ZPZTBLN1DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPZ","language_name":"Zapoteco de Texmelucan","language_english":"Zapoteco de Texmelucan","language_iso":"zpz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Texmelucan Zapotec","language_family_code":"ZPZ","language_family_name":"Zapoteco de Texmelucan","language_family_english":"Zapoteco de Texmelucan","language_family_iso":"zpz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"","version_english":"","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:44","created_on":"2010-10-05 19:34:25","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1ZPZTBL","audio_zip_path":"ZPZTBLN1DA\/ZPZTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZPZTBLN1ET","fcbh_id":"ZPZTBLN1ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPZ","language_name":"Zapoteco de Texmelucan","language_english":"Zapoteco de Texmelucan","language_iso":"zpz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Texmelucan Zapotec","language_family_code":"ZPZ","language_family_name":"Zapoteco de Texmelucan","language_family_english":"Zapoteco de Texmelucan","language_family_iso":"zpz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:23","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1ZPZTBL","audio_zip_path":"ZPZTBLN1ET\/ZPZTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZPZTBLN2DA","fcbh_id":"ZPZTBLN2DA","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPZ","language_name":"Zapoteco de Texmelucan","language_english":"Zapoteco de Texmelucan","language_iso":"zpz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Texmelucan Zapotec","language_family_code":"ZPZ","language_family_name":"Zapoteco de Texmelucan","language_family_english":"Zapoteco de Texmelucan","language_family_iso":"zpz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2013-10-26 00:00:45","created_on":"2013-02-25 17:53:52","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"","audio_zip_path":"ZPZTBLN2DA\/ZPZTBLN2DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZPZTBLN2ET","fcbh_id":"ZPZTBLN2ET","volume_name":"2004 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZPZ","language_name":"Zapoteco de Texmelucan","language_english":"Zapoteco de Texmelucan","language_iso":"zpz","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Texmelucan Zapotec","language_family_code":"ZPZ","language_family_name":"Zapoteco de Texmelucan","language_family_english":"Zapoteco de Texmelucan","language_family_iso":"zpz","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-25 21:43:23","created_on":"2012-05-09 22:19:46","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZPZTBLN2ET\/ZPZTBLN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZTQTBLN1DA","fcbh_id":"ZTQTBLN1DA","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZTQ","language_name":"Zapoteco de Quioquitani","language_english":"Zapoteco de Quioquitani","language_iso":"ztq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Quioquitani-Quier\u00ed Zapotec","language_family_code":"ZTQ","language_family_name":"Zapoteco de Quioquitani","language_family_english":"Zapoteco de Quioquitani","language_family_iso":"ztq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 21:28:29","created_on":"2010-09-14 17:01:28","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1ZTQTBL","audio_zip_path":"ZTQTBLN1DA\/ZTQTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZTQTBLN1ET","fcbh_id":"ZTQTBLN1ET","volume_name":"2000 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZTQ","language_name":"Zapoteco de Quioquitani","language_english":"Zapoteco de Quioquitani","language_iso":"ztq","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Quioquitani-Quier\u00ed Zapotec","language_family_code":"ZTQ","language_family_name":"Zapoteco de Quioquitani","language_family_english":"Zapoteco de Quioquitani","language_family_iso":"ztq","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:02","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1ZTQTBL","audio_zip_path":"ZTQTBLN1ET\/ZTQTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZTYTBLN1DA","fcbh_id":"ZTYTBLN1DA","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZTY","language_name":"Zapoteco de Yatee","language_english":"Zapoteco de Yatee","language_iso":"zty","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yatee Zapotec","language_family_code":"ZTY","language_family_name":"Zapoteco de Yatee","language_family_english":"Zapoteco de Yatee","language_family_iso":"zty","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2014-01-03 21:36:32","created_on":"2010-09-14 17:01:29","right_to_left":"false","num_art":"3","num_sample_audio":"1","sku":"N1ZTYTBL","audio_zip_path":"ZTYTBLN1DA\/ZTYTBLN1DA.zip","font":null,"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","web_streaming","streaming_url","mp3_cd","digital_download","bible_stick","subsplash"],"resolution":[]},{"dam_id":"ZTYTBLN1ET","fcbh_id":"ZTYTBLN1ET","volume_name":"2002 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZTY","language_name":"Zapoteco de Yatee","language_english":"Zapoteco de Yatee","language_iso":"zty","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Yatee Zapotec","language_family_code":"ZTY","language_family_name":"Zapoteco de Yatee","language_family_english":"Zapoteco de Yatee","language_family_iso":"zty","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"TBL","version_name":"The Bible League","version_english":"The Bible League","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-01-31 20:01:00","created_on":"2011-00-00 00:00:00","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"N1ZTYTBL","audio_zip_path":"ZTYTBLN1ET\/ZTYTBLN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web","subsplash"],"resolution":[]},{"dam_id":"ZYPWBTN1DA","fcbh_id":"ZYPWBTN1DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ZYP","language_name":"Zyphe","language_english":"Zyphe","language_iso":"zyp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zyphe","language_family_code":"ZYP","language_family_name":"Zyphe","language_family_english":"Zyphe","language_family_iso":"zyp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 19:36:18","created_on":"2018-10-16 15:36:05","right_to_left":"false","num_art":"4","num_sample_audio":"0","sku":"","audio_zip_path":"ZYPWBTN1DA\/ZYPWBTN1DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Non-Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"ZYPWBTN1ET","fcbh_id":"ZYPWBTN1ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ZYP","language_name":"Zyphe","language_english":"Zyphe","language_iso":"zyp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zyphe","language_family_code":"ZYP","language_family_name":"Zyphe","language_family_english":"Zyphe","language_family_iso":"zyp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 19:49:41","created_on":"2018-10-16 15:34:34","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZYPWBTN1ET\/ZYPWBTN1ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Non-Drama","delivery":["mobile","web"],"resolution":[]},{"dam_id":"ZYPWBTN2DA","fcbh_id":"ZYPWBTN2DA","volume_name":"2010 Edition","status":"live","dbp_agreement":"false","expiration":"0000-00-00","language_code":"ZYP","language_name":"Zyphe","language_english":"Zyphe","language_iso":"zyp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zyphe","language_family_code":"ZYP","language_family_name":"Zyphe","language_family_english":"Zyphe","language_family_iso":"zyp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2018-10-17 19:50:06","created_on":"2018-10-15 22:37:54","right_to_left":"false","num_art":"3","num_sample_audio":"0","sku":"","audio_zip_path":"ZYPWBTN2DA\/ZYPWBTN2DA.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"audio","media_type":"Drama","delivery":["mobile","web","streaming_url","digital_download"],"resolution":[]},{"dam_id":"ZYPWBTN2ET","fcbh_id":"ZYPWBTN2ET","volume_name":"2010 Edition","status":"live","dbp_agreement":"true","expiration":"0000-00-00","language_code":"ZYP","language_name":"Zyphe","language_english":"Zyphe","language_iso":"zyp","language_iso_2B":"","language_iso_2T":"","language_iso_1":"","language_iso_name":"Zyphe","language_family_code":"ZYP","language_family_name":"Zyphe","language_family_english":"Zyphe","language_family_iso":"zyp","language_family_iso_2B":"","language_family_iso_2T":"","language_family_iso_1":"","version_code":"WBT","version_name":"Wycliffe Bible Translators, Inc.","version_english":"Wycliffe Bible Translators, Inc.","collection_code":"NT","rich":"0","collection_name":"","updated_on":"2017-07-17 20:52:19","created_on":"2017-07-17 20:45:01","right_to_left":"false","num_art":"0","num_sample_audio":"0","sku":"","audio_zip_path":"ZYPWBTN2ET\/ZYPWBTN2ET.zip","font":{"id":"12","name":"Charis SIL","base_url":"http:\/\/cloud.faithcomesbyhearing.com\/fonts\/Charis_SIL","files":{"zip":"all.zip","ttf":"font.ttf"},"platforms":{"android":true,"ios":true,"web":true},"copyright":"© 2000-2013, SIL International ","url":"http:\/\/bit.ly\/1uKBBMx"},"arclight_language_id":"","media":"text","media_type":"Drama","delivery":["mobile","web"],"resolution":[]}] \ No newline at end of file diff --git a/lol/meta/biblecom.tsv b/lol/meta/biblecom.tsv deleted file mode 100755 index d45dad7a8..000000000 --- a/lol/meta/biblecom.tsv +++ /dev/null @@ -1,1811 +0,0 @@ -url language_iso Description Year language_name trans_ID -https://www.bible.com/bible/1643/jhn.1.blnt74 bci blnt74 nyanmien nde ufle 1643 Baoulé 1643 -https://www.bible.com/bible/970/jhn.1.bbbntpo bbb bbbntpo godido vua maeje 970 Barai 970 -https://www.bible.com/bible/571/jhn.1.bsnnt bsn bsnnt dios oca gotirituti 571 Barasana-Eduria 571 -https://www.bible.com/bible/1084/jhn.1.mlpnt mlp mlpnt god ago maror muturta agamukan 1084 Bargam 1084 -https://www.bible.com/bible/960/jhn.1.bchntpo bch bchntpo deo ele posanga 960 Bariai 960 -https://www.bible.com/bible/994/jhn.1.byrntpo byr byrntpo gotiyare yagaala mudike 994 Baruya 994 -https://www.bible.com/bible/248/jhn.1.jav jav jav kitab sutji 248 Javanese - Basa Jawa 248 -https://www.bible.com/bible/250/jhn.1.jvnnt jvn jvnnt kitab sutyi prejanjian anyar ing basa jawa suriname sing gampang 250 Caribbean Javanese - Basa Jawa Suriname 250 -https://www.bible.com/bible/1556/jhn.1.bscdbl bsc bscdbl akayeta and eter ekasax ang dot akayeta ananar ang 1556 Bassari 1556 -https://www.bible.com/bible/35/jhn.1.btx btx btx pustaka si badia 35 Batak Karo 35 -https://www.bible.com/bible/34/jhn.1.bts bts bts bibel 34 Batak Simalungun 34 -https://www.bible.com/bible/17/jhn.1.bbc bbc bbc bibel 17 Batak Toba 17 -https://www.bible.com/bible/1945/jhn.1.bclbv bgr bclbv bawm common language bible version 1945 Bawm Chin - Bawm 1945 -https://www.bible.com/bible/1019/jhn.1.befnt bef befnt ka lamana a mono i lu mu tifi ehina ka yabe 1019 Benabena 1019 -https://www.bible.com/bible/1591/jhn.1.bombi bom bombi bwok basa dagwi wuna na sira roso tanga pas 1591 Berom 1591 -https://www.bible.com/bible/362/jhn.1.chiqb cax chiqb manityanati tupax 362 Chiquitano - Besiro (Chiquitano) 362 -https://www.bible.com/bible/534/jhn.1.caxnt cax caxnt manitanati tuparru 534 Chiquitano - Besiro (Chiquitano) 534 -https://www.bible.com/bible/965/jhn.1.bignt big bignt anotogi ngago wikta 965 Biangai 965 -https://www.bible.com/bible/18/jhn.1.tbv bth tbv simanya bauh 18 Biatah Bidayuh 18 -https://www.bible.com/bible/1532/jhn.1.biat-bsi biu biat bsi pathian lekhabu rithiang bsi 1532 Biete - Biate 1532 -https://www.bible.com/bible/110/jhn.1.nirv eng nirv new international readers version 110 English 110 -https://www.bible.com/bible/107/jhn.1.net eng net new english translation 107 English 107 -https://www.bible.com/bible/105/jhn.1.ncv eng ncv new century version 105 English 105 -https://www.bible.com/bible/100/jhn.1.nasb eng nasb new american standard bible 100 English 100 -https://www.bible.com/bible/463/jhn.1.nabre eng nabre new american bible revised edition 463 English 463 -https://www.bible.com/bible/97/jhn.1.msg eng msg the message 97 English 97 -https://www.bible.com/bible/1365/jhn.1.mp1650 eng mp1650 metrical psalms 1650 1365 English 1365 -https://www.bible.com/bible/1171/jhn.1.mev eng mev modern english version 1171 English 1171 -https://www.bible.com/bible/90/jhn.1.leb eng leb lexham english bible 90 English 90 -https://www.bible.com/bible/547/jhn.1.kjva eng kjva king james version american edition 547 English 547 -https://www.bible.com/bible/546/jhn.1.kjva eng kjva king james version with apocrypha american edition 546 English 546 -https://www.bible.com/bible/1/jhn.1.kjv eng kjv king james version 1 English 1 -https://www.bible.com/bible/1077/jhn.1.jub eng jub jubilee bible 1077 English 1077 -https://www.bible.com/bible/1359/jhn.1.icb eng icb international childrens bible 1359 English 1359 -https://www.bible.com/bible/72/jhn.1.hcsb eng hcsb holman christian standard bible 72 English 72 -https://www.bible.com/bible/1047/jhn.1.gwc eng gwc st paul from the trenches 1916 1047 English 1047 -https://www.bible.com/bible/70/jhn.1.gw eng gw gods word translation 70 English 70 -https://www.bible.com/bible/2163/jhn.1.gnv eng gnv geneva bible 2163 English 2163 -https://www.bible.com/bible/69/jhn.1.gntd eng gntd good news translation us version 69 English 69 -https://www.bible.com/bible/68/jhn.1.gnt eng gnt good news translation 68 English 68 -https://www.bible.com/bible/1984/jhn.1.ps1873 bre ps1873 levr ar psalmou 1873 1984 Breton - Brezhoneg 1984 -https://www.bible.com/bible/1231/jhn.1.k21 bre k21 koad 21 1231 Breton - Brezhoneg 1231 -https://www.bible.com/bible/1799/jhn.1.jen1897 bre jen1897 ar bibl santel jenkins 1897 1799 Breton - Brezhoneg 1799 -https://www.bible.com/bible/234/jhn.1.bzdntpo bzd bzdntpo tte pa ali me skekol to se a 234 Bribri 234 -https://www.bible.com/bible/1358/jhn.1.plw plw plw bagung pinegsulutan et empu 1358 Brooke's Point Palawano 1358 -https://www.bible.com/bible/1039/jhn.1.buknt buk buknt anoto nde yom lengsem wakuc 1039 Bugawac 1039 -https://www.bible.com/bible/1900/jhn.1.bgt bgt bgt na rorongo ke toke eigna a jisas krais 1900 Bughotu 1900 -https://www.bible.com/bible/671/jhn.1.sabnt sab sabnt chube gerua jagere jesucristo giti degaba kwian ulita alin el nuevo testamento de nuestro senor jesucristo en el idioma buglere 671 Buglere 671 -https://www.bible.com/bible/934/jhn.1.apebnt ape apebnt god ananin balan 934 Bukiyip 934 -https://www.bible.com/bible/1005/jhn.1.apeant ape apeant iruhin ananin baraen 1005 Bukiyip 1005 -https://www.bible.com/bible/2176/jhn.1.bwuhf bwu bwuhf naawen gbang paalika 2176 Buli (Ghana) 2176 -https://www.bible.com/bible/856/jhn.1.bum09 bum bum09 bible en langue bulu 856 Bulu (Cameroon) 856 -https://www.bible.com/bible/2175/jhn.1.bmv bmv bmv ngwaklu fuyen kan mu fe cameron 2175 Bum 2175 -https://www.bible.com/bible/2160/jhn.1.aon aon aon iruhin ananin baraen 2160 Bumbita Arapesh 2160 -https://www.bible.com/bible/1007/jhn.1.bddnt bdd bddnt loina nuahuana 1007 Bunama 1007 -https://www.bible.com/bible/1657/jhn.1.cmoltnt cmo cmoltnt nau koranh brah ngoi nau tam rnglap mhe 1657 Bunong 1657 -https://www.bible.com/bible/1758/jhn.1.cmokhnt cmo cmokhnt naavkooraanyssraasngoeynaavtymraanglaapmhae 1758 Bunong 1758 -https://www.bible.com/bible/1291/jhn.1.bvrnt bvr bvrnt nyanyapa arrku gun nika gun molamola janguny minypa jesus christ guna ganyja arrburrwa gun geka rum 1291 Burarra 1291 -https://www.bible.com/bible/243/jhn.1.djknt djk djknt beibel okanisi tongo 243 Eastern Maroon Creole - Businenge Tongo 243 -https://www.bible.com/bible/1700/jhn.1.bwd bwd bwd ebavevuvu mosese yana buki nagona 1700 Bwaidoka 1700 -https://www.bible.com/bible/2080/jhn.1.agu agx agu lukaiin kitab miesigh iisaiikhas idzhie khabar 2080 Aghul 2080 -https://www.bible.com/bible/515/jhn.1.agrnt agr agrnt yamajam chicham apajuinu 515 Aguaruna 515 -https://www.bible.com/bible/979/jhn.1.msmnt msm msmnt kasuyatan to diyus 979 Agusan Manobo 979 -https://www.bible.com/bible/1124/jhn.1.agnnt agn agnnt ang bitala tang dios ba long inigoan ang bagong magandang balita bagong tipan 1124 Agutaynen 1124 -https://www.bible.com/bible/1533/jhn.1.aimol-bsi aim aimol bsi rabu athar nt bsi 1533 Aimol 1533 -https://www.bible.com/bible/1944/jhn.1.ainu ain ainu ashiri aeuitaknup 1897 1944 Ainu (Japan) 1944 -https://www.bible.com/bible/579/jhn.1.cpcnt cpc cpcnt kamiithari naantsi 579 Ajyíninka Apurucayali 579 -https://www.bible.com/bible/308/jhn.1.ake ake ake waku itekare 308 Akawaio 308 -https://www.bible.com/bible/2166/jhn.1.aka ahk aka yawshawr yaerbof dawqma sarjax yawshuif jaceuq eu hawr eu dawqdaq 2166 Akha 2166 -https://www.bible.com/bible/1722/jhn.1.ahk ahk ahk akha 1722 Akha 1722 -https://www.bible.com/bible/336/jhn.1.bssnt bss bssnt mele mekoole 336 Akoose 336 -https://www.bible.com/bible/1823/jhn.1.akg-mkac spm akg mkac mak osirisira akaman aghuung ko iesusim mbisevisir gumasi 1823 Akukem - Akɨghɨman Akam 1823 -https://www.bible.com/bible/986/jhn.1.ampnt amp ampnt bro nkifrarhu mrokfot 986 Alamblak 986 -https://www.bible.com/bible/954/jhn.1.gahnt gah gahnt mono gotola gosoha 954 Alekano 954 -https://www.bible.com/bible/1487/jhn.1.%C6%90aa03 ald aa03 emewi anka ankrankran 2003 1487 Alladian 1487 -https://www.bible.com/bible/323/jhn.1.alpnt alp alpnt janji beluke 323 Alune 323 -https://www.bible.com/bible/991/jhn.1.ammnt amm ammnt kotoni imo itouniyaimo 991 Ama (Papua New Guinea) 991 -https://www.bible.com/bible/980/jhn.1.amnnt amn amnnt godna mo awai mona go 980 Amanab 980 -https://www.bible.com/bible/511/jhn.1.amrnt amr amrnt jesucristo oy oapak kenda jesucristoa monigkauyatenok diostaj momanopoyareaikane 511 Amarakaeri 511 -https://www.bible.com/bible/1320/jhn.1.aazntpo aaz aazntpo uisneno in kabin ma prenat rais manbaan feu nok reta ahun hunut 1320 Amarasi 1320 -https://www.bible.com/bible/1800/jhn.1.lekjot dks lekjot lek jot de jecu kritho 1940 1800 Dinka, Southeastern - Dinka Bor 1800 -https://www.bible.com/bible/2021/jhn.1.di%C6%90t dks di t diet ke dabid 1956 2021 Dinka, Southeastern - Dinka Bor 2021 -https://www.bible.com/bible/242/jhn.1.dik dik dik lek yam 242 Dinka Southwestern - Dinka Rek 242 -https://www.bible.com/bible/719/jhn.1.xtdnt xtd xtdnt tnu u va a tnu u jesucristo 719 Diuxi-Tilantongo Mixtec 719 -https://www.bible.com/bible/244/jhn.1.djnt djr djnt djambarrpuyngu new testament 244 Djambarrpuyngu 244 -https://www.bible.com/bible/926/jhn.1.dobnt dob dobnt loina tabu auwauna 926 Dobu 926 -https://www.bible.com/bible/1033/jhn.1.kqc kqc kqc sei di uka ago ruaka di buka bedakai 1033 Doromu-Koki 1033 -https://www.bible.com/bible/880/jhn.1.ntd dow ntd nouveau testament doyayo 880 Doyayo 880 -https://www.bible.com/bible/1312/jhn.1.duont duo duont inaamakan a baheta na dios 1312 Dupaninan Agta 1312 -https://www.bible.com/bible/1728/jhn.1.dyu dyu dyu jula nt of cote divoire 1728 Dyula 1728 -https://www.bible.com/bible/1754/jhn.1.akkdc08 dyu akkdc08 ala ka kuma 1754 Dyula 1754 -https://www.bible.com/bible/1522/jhn.1.rrb rad rrb rade revised bible 1522 Rade - E-De 1522 -https://www.bible.com/bible/2077/jhn.1.hnt omb hnt havai niu testamen 2077 East Ambae 2077 -https://www.bible.com/bible/1012/jhn.1.kjsnt kjs kjsnt gotena epe agale 1012 East Kewa 1012 -https://www.bible.com/bible/667/jhn.1.qvent qve qvent mosoq testamento 667 Eastern Apurímac Quechua 667 -https://www.bible.com/bible/1746/jhn.1.aerntotpo aer aerntotpo angkentye mwerre 1746 Eastern Arrernte 1746 -https://www.bible.com/bible/1114/jhn.1.ebknt ebk ebknt nan kalen apo dios nan fiaru ay turag 1114 Eastern Bontok 1114 -https://www.bible.com/bible/833/jhn.1.otmnt otm otmnt ra da yonhogui nangue ma hmuhu ra jesucristo 833 Eastern Highland Otomi 833 -https://www.bible.com/bible/1941/jhn.1.xrbnt xrb xrbnt yaha naambiyarfan saba 1941 Eastern Karaboro 1941 -https://www.bible.com/bible/1297/jhn.1.edolo etr edolo etr 1297 Edolo 1297 -https://www.bible.com/bible/381/jhn.1.boxnt box boxnt donbeeni paanii finle vuahu 381 Buamu - Bwamu 381 -https://www.bible.com/bible/1220/jhn.1.ttent tte ttent buki tabu waluwaluna 1220 Bwanabwana 1220 -https://www.bible.com/bible/777/jhn.1.cbvnt cbv cbvnt dios a jaap naawat tolih 777 Cacua 777 -https://www.bible.com/bible/1057/jhn.1.cbvnt cbv cbvnt dios a jaap naawat tolih 1057 Cacua 1057 -https://www.bible.com/bible/648/jhn.1.qvcnt qvc qvcnt mushuq tistamintu 648 Cajamarca Quechua 648 -https://www.bible.com/bible/462/jhn.1.zadnt zad zadnt dill wen dill kob che jesucristona 462 Cajonos Zapotec 462 -https://www.bible.com/bible/1438/jhn.1.tbknt tbk tbknt yang baklung ipinagpakigpaigu 1438 Calamian Tagbanwa 1438 -https://www.bible.com/bible/1128/jhn.1.clunt clu clunt anang ambal ang dios magandang balita biblia 1128 Caluyanun 1128 -https://www.bible.com/bible/1085/jhn.1.kbhnt kbh kbhnt bengbe betsa cabengaftaca entsoyebuambna 1085 Camsá 1085 -https://www.bible.com/bible/213/jhn.1.cbunt cbu cbunt apanlli kuku 213 Candoshi-Shapra 213 -https://www.bible.com/bible/586/jhn.1.kaqnt kaq kaqnt noquen hihbaan joi 586 Capanahua 586 -https://www.bible.com/bible/566/jhn.1.cotnt cot cotnt iroaquerari itioncacaantaqueca aapani irioshi tsavetacoquerica amajirote jesoquirishito 566 Caquinte 566 -https://www.bible.com/bible/1060/jhn.1.nbre caq nbre nicobarese bible 1060 Car Nicobarese 1060 -https://www.bible.com/bible/533/jhn.1.cbcnt cbc cbcnt dios cu cauetibuju curica tuti 533 Carapana 533 -https://www.bible.com/bible/237/jhn.1.carnt car carnt asery tamusi karetary 237 Galibi Carib - Carib 237 -https://www.bible.com/bible/593/jhn.1.hnsnt hns hnsnt parmeswar ke naawa poestak 593 Caribbean Hindustani 593 -https://www.bible.com/bible/603/jhn.1.crxntpo crx crxntpo yakusda ooghuni 603 Carrier 603 -https://www.bible.com/bible/541/jhn.1.cbrnt cbr cbrnt nuken ibu diosan ain unikama inan ain bana 541 Cashibo-Cacataibo 541 -https://www.bible.com/bible/540/jhn.1.cbsnt cbs cbsnt diosun jesuswen taexun yuba bena yiniki 540 Cashinahua 540 -https://www.bible.com/bible/1488/jhn.1.cbsbr cbs cbsbr kaxinawa biblia br 1488 Cashinahua 1488 -https://www.bible.com/bible/1069/jhn.1.kudnt kud kudnt yaubada yana walo yemidi vauvauna 1069 'Auhelawa 1069 -https://www.bible.com/bible/1015/jhn.1.aaunt aau aaunt god so sokior ok iwon 1015 Abau 1015 -https://www.bible.com/bible/1418/jhn.1.acapor aca acapor lia a chuanshi dios shinaa 1418 Achagua 1418 -https://www.bible.com/bible/513/jhn.1.acrtnt acr acrtnt ri utzilaj tzij re ri kanimajawal jesucristo 513 Achi 513 -https://www.bible.com/bible/3/jhn.1.acrnt acr acrnt i utz laj tzij re i dios 3 Achi 3 -https://www.bible.com/bible/517/jhn.1.acrnnt acr acrnnt ri utzilaj tzij re ri kanimajawal jesucristo 517 Achi 517 -https://www.bible.com/bible/1295/jhn.1.acupb acu acupb yuse chichame aarmauri 1295 Achuar-Shiwiar - Achuar 1295 -https://www.bible.com/bible/4/jhn.1.acunt acu acunt yuse chichame aarmauri yaanchuik chicham yamaram chicham 4 Achuar-Shiwiar - Achuar 4 -https://www.bible.com/bible/2186/jhn.1.dhope adh dhope kitawo maleng 2186 Adhola 2186 -https://www.bible.com/bible/2185/jhn.1.dhocdc adh dhocdc kitawo maleng catholic 2185 Adhola 2185 -https://www.bible.com/bible/1530/jhn.1.adi-bsi adi adi bsi deena baibel bsi 1530 Adi 1530 -https://www.bible.com/bible/2019/jhn.1.wsgnt wsg wsgnt aadilaabaad goonddi puun niym 2019 Adilabad Gondi 2019 -https://www.bible.com/bible/1462/jhn.1.adjnt adj adjnt adioukrou nt 1462 Adioukrou - Adjukru 1462 -https://www.bible.com/bible/1229/jhn.1.adz adz adz miamun 1229 Adzera 1229 -https://www.bible.com/bible/117/jhn.1.nlv afr nlv nuwe lewende vertaling 117 Afrikaans 117 -https://www.bible.com/bible/50/jhn.1.db afr db die boodskap 50 Afrikaans 50 -https://www.bible.com/bible/6/jhn.1.afr83 afr afr83 afrikaans 1983 6 Afrikaans 6 -https://www.bible.com/bible/5/jhn.1.afr53 afr afr53 afrikaans 1933 slash 1953 5 Afrikaans 5 -https://www.bible.com/bible/2/jhn.1.aba afr aba bybel vir almal 2 Afrikaans 2 -https://www.bible.com/bible/935/jhn.1.agdnt agd agdnt yisasini kama vaya 935 Agarabi 935 -https://www.bible.com/bible/1450/jhn.1.ify ify ify keley i bible antipolo ifugao 1450 Keley-I Kallahan - Antipolo Ifugao 1450 -https://www.bible.com/bible/2168/jhn.1.ckou cko ckou nyeme jore kadasi 2168 Anufo 2168 -https://www.bible.com/bible/1413/jhn.1.aui aui aui god warana miisena mak igirumi 1413 Anuki 1413 -https://www.bible.com/bible/1731/jhn.1.any any any the agni sanvi nt of cote divoire 1731 Anyin 1731 -https://www.bible.com/bible/1008/jhn.1.aonaga-bsi njo aonaga bsi ao naga cl bible bsi 1008 Ao Naga 1008 -https://www.bible.com/bible/865/jhn.1.apyb apy apyb ritonopo omiry 865 Apalaí 865 -https://www.bible.com/bible/1529/jhn.1.apat-bsi apt apat bsi niti gontu nt bsi 1529 Apatani 1529 -https://www.bible.com/bible/514/jhn.1.apnnt apn apnnt tirtum kaper a kaga nyw 514 Apinayé 514 -https://www.bible.com/bible/864/jhn.1.apunt apu apunt teoso sakire amaneri 864 Apurinã 864 -https://www.bible.com/bible/501/jhn.1.shulatn shu shulatn arabe tchadien alphabet latin 501 Chadian Arabic (Roman script) - Arabe tchadien 501 -https://www.bible.com/bible/519/jhn.1.arlnt arl arlnt quiarinio pueyaso rupaa pa jiyaniijia jesucristojiniji pueyano rupaajinia 519 Arabela 519 -https://www.bible.com/bible/1369/jhn.1.arp arp arp hethadenee waunauyaunee vadan luke vanenana 1369 Arapaho 1369 -https://www.bible.com/bible/1404/jhn.1.areluke mwc areluke god wonana kaoaobaisiyena 1404 Are 1404 -https://www.bible.com/bible/407/jhn.1.aai aai aai tur gewasin o baibasit boubun 407 Arifama-Miniafia 407 -https://www.bible.com/bible/1559/jhn.1.arum rup arum evanghelu pi dupi luka 2013 1559 Aromanian - Armãneashti/Arumanisht 1559 -https://www.bible.com/bible/1655/jhn.1.arom rup arom vangheilu al matheu 1889 1655 Aromanian - Armãneashti/Arumanisht 1655 -https://www.bible.com/bible/1409/jhn.1.apr apr apr rau ke maro 1409 Arop-Lokep 1409 -https://www.bible.com/bible/1639/jhn.1.aiant aia aiant taroha goro mana usuusu maea 1639 Arosi 1639 -https://www.bible.com/bible/913/jhn.1.arunt msy arunt godin akar aghuim akar dikirizir gavgavir igiam 913 Aruamu 913 -https://www.bible.com/bible/575/jhn.1.cnint cni cnint irineane tasorentsi oquenquetsatacotaqueri avincatsarite jesoquirishito 575 Asháninka 575 -https://www.bible.com/bible/876/jhn.1.bafnt ksf bafnt bafia new testament 876 Bafia 876 -https://www.bible.com/bible/2147/jhn.1.nfd bfd nfd ntoo kristo yi nsigin at mikaa yi mfii 2147 Bafut 2147 -https://www.bible.com/bible/1557/jhn.1.kkk bsp kkk kitabu ka kanu 1557 Baga Sitemu 1557 -https://www.bible.com/bible/320/jhn.1.tsi ind tsi perjanjian baru dalam terjemahan sederhana indonesia edisi 2 dot 3 320 Indonesian - Bahasa Indonesia 320 -https://www.bible.com/bible/306/jhn.1.tb ind tb alkitab terjemahan baru 306 Indonesian - Bahasa Indonesia 306 -https://www.bible.com/bible/27/jhn.1.bimk ind bimk alkitab dalam bahasa indonesia masa kini 27 Indonesian - Bahasa Indonesia 27 -https://www.bible.com/bible/199/jhn.1.amd ind amd perjanjian baru versi mudah dibaca 199 Indonesian - Bahasa Indonesia 199 -https://www.bible.com/bible/1859/jhn.1.keas msa keas kitab alkudus injil isa almasih 1866 keasberry 1859 Malay - Bahasa Melayu 1859 -https://www.bible.com/bible/377/jhn.1.bmdc msa bmdc alkitab berita baik plus deuterokanonika 377 Malay - Bahasa Melayu 377 -https://www.bible.com/bible/402/jhn.1.bm msa bm alkitab berita baik 402 Malay - Bahasa Melayu 402 -https://www.bible.com/bible/2137/jhn.1.bdq bdq bdq sop hlaboar nor bok kei dei 2137 Bahnar 2137 -https://www.bible.com/bible/1563/jhn.1.bdh bdh bdh mikanda loru bi lomo ki dosi eyi e 1563 Baka (Sudan) 1563 -https://www.bible.com/bible/408/jhn.1.bkqnt bkq bkqnt deus itaumbyry 408 Bakairí 408 -https://www.bible.com/bible/1115/jhn.1.blwnt blw blwnt hen alen apudyus 1115 Balangao 1115 -https://www.bible.com/bible/337/jhn.1.blznt blz blznt kitap molinas men ringkat na alaataala perjanjian baru 337 Balantak 337 -https://www.bible.com/bible/302/jhn.1.ban ban ban cakepan suci 302 Balinese - Bali, basa 302 -https://www.bible.com/bible/1147/jhn.1.inabam ptu inabam suha maseho kadadiam anna padandiam bakahu 1147 Bambam 1147 -https://www.bible.com/bible/1767/jhn.1.bcw bcw bcw zliya y at w at n kw at ma w at z at naa dz at k at n yes at w k at rist at w 1767 Bana 1767 -https://www.bible.com/bible/1300/jhn.1.bqjdbl2 bqj bqjdbl2 bqj firim fafu fal alaemit 1300 Bandial 1300 -https://www.bible.com/bible/2174/jhn.1.bnontgnex bno bnontgnex bag ong kasuyatan 2174 Bantoanon 2174 -https://www.bible.com/bible/1176/jhn.1.amknt amk amknt sempaisi ne kaiwo mirarebanai 1176 Ambai 1176 -https://www.bible.com/bible/1769/jhn.1.qvant qva qvant quechua ambo pasco new testament 1769 Ambo-Pasco Quechua 1769 -https://www.bible.com/bible/1006/jhn.1.abtwnt abt abtwnt gotna kundi 1006 Ambulas 1006 -https://www.bible.com/bible/927/jhn.1.abtnt abt abtnt gotna kudi 927 Ambulas 927 -https://www.bible.com/bible/978/jhn.1.aeyntpo aey aeyntpo bal cehec je haun 978 Amele 978 -https://www.bible.com/bible/1356/jhn.1.ifaont ifa ifaont nan hapit apu dios 1356 Amganad Ifugao 1356 -https://www.bible.com/bible/1535/jhn.1.amri-bsi ajz amri bsi akimi angton nt bsi 1535 Amri Karbi 1535 -https://www.bible.com/bible/229/jhn.1.amunt amu amunt n oom xco na tquen ty oots om cantxja naa jesucristo 229 Guerrero Amuzgo - Amuzgo 229 -https://www.bible.com/bible/1858/jhn.1.anal-bsi anm anal bsi ithiing thimbu bsi 1858 Anal 1858 -https://www.bible.com/bible/1011/jhn.1.abynt aby abynt godinu irau wake 1011 Aneme Wake 1011 -https://www.bible.com/bible/981/jhn.1.agmnt agm agmnt autaahaatihomi piwiha gaaha waniha 981 Angaataha 981 -https://www.bible.com/bible/988/jhn.1.akhnt akh akhnt angal heneng mbuk ngaoran angal bib hobau sao ngo wi o 988 Angal Heneng 988 -https://www.bible.com/bible/338/jhn.1.angami-bsi njm angami bsi ketholeshu bsi 338 Angami Naga - Angami 338 -https://www.bible.com/bible/589/jhn.1.kcb agw kcb buka apuna i lotu katolika 589 Kahua - Anganiwai 589 -https://www.bible.com/bible/592/jhn.1.kcb agw kcb buka apuna i lotu katolika 592 Kahua - Anganiwai 592 -https://www.bible.com/bible/1001/jhn.1.aggnt agg aggnt godindi hoafi 1001 Angor 1001 -https://www.bible.com/bible/487/jhn.1.algnt alq algnt kije manido odikido8in ocki mazinaigan 487 Algonquin - Anicinabemowin 487 -https://www.bible.com/bible/936/jhn.1.bojnt boj bojnt yesus aqa anjam bole 936 Anjam 936 -https://www.bible.com/bible/1743/jhn.1.boj2014 boj boj2014 yesus aqa anjam bole 1743 Anjam 1743 -https://www.bible.com/bible/985/jhn.1.aak aak aak ankave 985 Ankave 985 -https://www.bible.com/bible/394/jhn.1.bcnd cym bcnd beibl cymraeg newydd diwygiedig 2004 394 Welsh - Cymraeg 394 -https://www.bible.com/bible/1153/jhn.1.mpsbi mps mpsbi godigo dwagi yai po buku 1153 Dadibi 1153 -https://www.bible.com/bible/977/jhn.1.dgznt dgz dgznt nop ewakewa 977 Daga 977 -https://www.bible.com/bible/1830/jhn.1.dnjgw daf dnjgw nao se seedhe 1830 Dan 1830 -https://www.bible.com/bible/1831/jhn.1.dnjbl dnj dnjbl dan blowo yacouba nouveau testament 1831 Dan - Dan (Blowo) 1831 -https://www.bible.com/bible/1664/jhn.1.beav bea beav ootech oochu takehniya tinkles st mark 1664 Beaver (Canada) - Dane-zaa 1664 -https://www.bible.com/bible/354/jhn.1.daant daa daant jamaw ta marbinto kabarre ta gala do bi ka iisa masi ing dangla 354 Dangaléat 354 -https://www.bible.com/bible/993/jhn.1.asont aso asont mono godolo gosoho 993 Dano 993 -https://www.bible.com/bible/49/jhn.1.da1871 dan da1871 danske bibel 1871 49 Danish - Dansk 49 -https://www.bible.com/bible/20/jhn.1.bph dan bph bibelen pa hverdagsdansk 20 Danish - Dansk 20 -https://www.bible.com/bible/1514/jhn.1.dnt tcc dnt datoga new testament 1514 Datooga 1514 -https://www.bible.com/bible/1017/jhn.1.dwwnt dww dwwnt vari verenama 1017 Dawawa 1017 -https://www.bible.com/bible/342/jhn.1.dwrnt dwr dwrnt ooratha caaquwaa 342 Dawro 342 -https://www.bible.com/bible/505/jhn.1.dwrent dwr dwrent ooratha caaquwaa 505 Dawro 505 -https://www.bible.com/bible/1672/jhn.1.dwnt dwr dwnt dawro new testament 1672 Dawro 1672 -https://www.bible.com/bible/983/jhn.1.dedntpo ded dedntpo yoak kekehagocac dzadzahac gboria nga mitiyegec 983 Dedua 983 -https://www.bible.com/bible/1564/jhn.1.ded ded ded deduamiti kibi 40 1564 Dedua 1564 -https://www.bible.com/bible/2012/jhn.1.mzw mzw mzw mzwdbl 2012 Deg 2012 -https://www.bible.com/bible/1795/jhn.1.ntrnt ntr ntrnt wurubure nombia kpaakpaa nookebakesee wole 1795 Delo 1795 -https://www.bible.com/bible/343/jhn.1.anvnt anv anvnt ngwe menomenyee meke 343 Denya 343 -https://www.bible.com/bible/821/jhn.1.ylt1898 eng ylt1898 youngs literal translation 3rd revision 1898 821 English 821 -https://www.bible.com/bible/1207/jhn.1.wmbbe eng wmbbe world messianic bible british edition 1207 English 1207 -https://www.bible.com/bible/1209/jhn.1.wmb eng wmb world messianic bible 1209 English 1209 -https://www.bible.com/bible/1204/jhn.1.webbe eng webbe world english bible british edition 1204 English 1204 -https://www.bible.com/bible/206/jhn.1.web eng web world english bible 206 English 206 -https://www.bible.com/bible/316/jhn.1.ts2009 eng ts2009 the scriptures 2009 316 English 316 -https://www.bible.com/bible/1849/jhn.1.tpt eng tpt the passion translation 1849 English 1849 -https://www.bible.com/bible/314/jhn.1.tlv eng tlv tree of life version 314 English 314 -https://www.bible.com/bible/1922/jhn.1.rv1895 eng rv1895 revised version with apocrypha 1895 1922 English 1922 -https://www.bible.com/bible/477/jhn.1.rv1885 eng rv1885 revised version 1885 477 English 477 -https://www.bible.com/bible/2017/jhn.1.rsv-ci eng rsv ci revised standard version 2017 English 2017 -https://www.bible.com/bible/2020/jhn.1.rsv eng rsv revised standard version 2020 English 2020 -https://www.bible.com/bible/130/jhn.1.ojb eng ojb orthodox jewish bible 130 English 130 -https://www.bible.com/bible/2015/jhn.1.nrsv-ci eng nrsv ci new revised standard version catholic interconfessional 2015 English 2015 -https://www.bible.com/bible/2016/jhn.1.nrsv eng nrsv new revised standard version 2016 English 2016 -https://www.bible.com/bible/2135/jhn.1.nmv eng nmv new messianic version bible 2135 English 2135 -https://www.bible.com/bible/116/jhn.1.nlt eng nlt new living translation 116 English 116 -https://www.bible.com/bible/114/jhn.1.nkjv eng nkjv new king james version 114 English 114 -https://www.bible.com/bible/113/jhn.1.nivuk eng nivuk new international version anglicised 113 English 113 -https://www.bible.com/bible/111/jhn.1.niv eng niv new international version 111 English 111 -https://www.bible.com/bible/32/jhn.1.bdsc sna bdsc bhaibheri dzvene muchishona chanhasi 32 Shona - chiShona 32 -https://www.bible.com/bible/984/jhn.1.ibbaib63 toi ibbaib63 ibbaibele 1963 984 Tonga (Zambia) - chiTonga 984 -https://www.bible.com/bible/1221/jhn.1.vidunda vid vidunda ilagano lwa sambi kwa wanhu wengha 1221 Vidunda - Chividunda 1221 -https://www.bible.com/bible/746/jhn.1.zpcnt zpc zpcnt xti idza diuzi 746 Choapan Zapotec 746 -https://www.bible.com/bible/1927/jhn.1.chtw cho chtw jesus isht annopa mark i holisso 1927 Choctaw 1927 -https://www.bible.com/bible/2128/jhn.1.ntch ctu ntch jini tsiji b wen tan 2128 Chol 2128 -https://www.bible.com/bible/795/jhn.1.ctunt ctu ctunt jini wen b t an 795 Chol 795 -https://www.bible.com/bible/859/jhn.1.ctubi ctu ctubi i tan dios 859 Chol 859 -https://www.bible.com/bible/371/jhn.1.chrnt crt chrnt nuevo testamento chorote 371 Iyojwa'ja Chorote - Chorote 371 -https://www.bible.com/bible/524/jhn.1.caant caa caant e ojroner xe imb utz tua cawinquirar jesucristo 524 Chortí 524 -https://www.bible.com/bible/1541/jhn.1.choe-bsi nct choe bsi atharkuthrou bsi 1541 Chothe Naga - Chothe 1541 -https://www.bible.com/bible/995/jhn.1.cjvnt cjv cjvnt yai guman gunom kam 995 Chuave 995 -https://www.bible.com/bible/494/jhn.1.css cac css chuj san sebastian bible 494 Chuj 494 -https://www.bible.com/bible/492/jhn.1.csm cac csm chuj san mateo bible 492 Chuj 492 -https://www.bible.com/bible/437/jhn.1.ncunt ncu ncunt abwareseng wore o 437 Chumburung 437 -https://www.bible.com/bible/564/jhn.1.gmn nse gmn uthenga uweme wa yesu kristu wolembewa na maliko 564 Nsenga - Cinsenga 564 -https://www.bible.com/bible/1308/jhn.1.gmn nse gmn chinsenga new testament 1308 Nsenga - Cinsenga 1308 -https://www.bible.com/bible/1293/jhn.1.asgnt asg asgnt uzuwakpani u savu n cishingini n abain a na a zagbai a uzukpani u kuku 1293 Cishingini 1293 -https://www.bible.com/bible/857/jhn.1.zcant zca zcant widizh chen jesukrist kwan kinu yalnaban 857 Coatecas Altas Zapotec 857 -https://www.bible.com/bible/713/jhn.1.miznt miz miznt tu un xuva ko vata o ntaka an na nuu coatzospan 713 Coatzospan Mixtec 713 -https://www.bible.com/bible/567/jhn.1.conntpo con conntpo chiga tevaenjema atesuja 1 aisheve canacho 567 Cofán 567 -https://www.bible.com/bible/1505/jhn.1.kognt kog kognt jatetshi muldigaba 1505 Cogui 1505 -https://www.bible.com/bible/565/jhn.1.cofnt cof cofnt diosichi pila 565 Colorado 565 -https://www.bible.com/bible/738/jhn.1.ccodbl cco ccodbl new testament in chinantec comaltepec 738 Comaltepec Chinantec 738 -https://www.bible.com/bible/2133/jhn.1.zcnt zoc zcnt nuevo testamento en zoque copainala 2133 Copainalá Zoque 2133 -https://www.bible.com/bible/742/jhn.1.trcnt trc trcnt se nana diose nana sa me ra catuu niman ni a 742 Copala Triqui 742 -https://www.bible.com/bible/239/jhn.1.crnnt crn crnnt i niuucari ti jejcua ti ajta jimeen raaxa aijna i tavastaraa i ciriistuu ti jii jesus ti tuirajtuaa 239 El Nayar Cora - Cora El Nayar 239 -https://www.bible.com/bible/1316/jhn.1.mtant mta mtant kagi nemula word of god 1316 Cotabato Manobo 1316 -https://www.bible.com/bible/752/jhn.1.tocnt toc tocnt xasasti talacaxlan 752 Coyutla Totonac 752 -https://www.bible.com/bible/2065/jhn.1.crls crl crls ci cimisini iikin kaa oskaac tistimint aatimaapiisimh aayimwoin aa ishi iiwtaastimaataakifalsewic 2065 Cree, Northern East 2065 -https://www.bible.com/bible/358/jhn.1.cubnt cub cubnt majepacu jumenijicui yavaiye mamaene coyuitucubo 358 Cubeo 358 -https://www.bible.com/bible/1036/jhn.1.cui cui cui nacom pejume diwesi po diwesi pena jume diwesi xua jesucristo yabara tinatsi 1036 Cuiba 1036 -https://www.bible.com/bible/1446/jhn.1.culnt cul culnt culina madija 1446 Culina 1446 -https://www.bible.com/bible/1364/jhn.1.scn cym scn salmau can newydd 2008 gwynn ap gwilym 1364 Welsh - Cymraeg 1364 -https://www.bible.com/bible/1363/jhn.1.sc cym sc salmau can 1621 1363 Welsh - Cymraeg 1363 -https://www.bible.com/bible/1781/jhn.1.sby1850 cym sby1850 testament newydd salesbury argraffiad 1850 1781 Welsh - Cymraeg 1781 -https://www.bible.com/bible/2000/jhn.1.sby1567 cym sby1567 testament newydd ar salmau salesbury 1567 2000 Welsh - Cymraeg 2000 -https://www.bible.com/bible/287/jhn.1.bwm cym bwm beibl william morgan argraffiad 1955 287 Welsh - Cymraeg 287 -https://www.bible.com/bible/329/jhn.1.bnet cym bnet beibl dot net 2015 329 Welsh - Cymraeg 329 -https://www.bible.com/bible/221/jhn.1.bcnda cym bcnda beibl cymraeg newydd diwygiedig yn cynnwys yr apocryffa 2004 221 Welsh - Cymraeg 221 -https://www.bible.com/bible/1170/jhn.1.dgcnt dgc dgcnt bigu a tipan i mahusay a baheta para ta panahun tam 1170 Casiguran Dumagat Agta 1170 -https://www.bible.com/bible/2010/jhn.1.bec cat bec biblia evangelica catalana 2010 Catalan - Català 2010 -https://www.bible.com/bible/335/jhn.1.bci cat bci biblia catalana traduccion interconfesional 335 Catalan - Català 335 -https://www.bible.com/bible/538/jhn.1.cavnt cav cavnt yusuja quisarati 538 Cavineña 538 -https://www.bible.com/bible/562/jhn.1.rcpv ceb rcpv ang bag ong maayong balita biblia 562 Cebuano 562 -https://www.bible.com/bible/9/jhn.1.apsd ceb apsd ang pulong sa dios 9 Cebuano 9 -https://www.bible.com/bible/890/jhn.1.bpv bcl bpv marahay na bareta biblia 890 Central Bikol 890 -https://www.bible.com/bible/1157/jhn.1.lbknt lbk lbknt nan kalin apo dios 1157 Central Bontok 1157 -https://www.bible.com/bible/1244/jhn.1.agtnt agt agtnt uhohug na namaratu gafu te hesus kristu 1244 Central Cagayan Agta 1244 -https://www.bible.com/bible/751/jhn.1.nchbi nch nchbi icamanal toteco santa biblia 751 Central Huasteca Nahuatl 751 -https://www.bible.com/bible/846/jhn.1.mazdbl maz mazdbl nu o jna mizhocjimi nu mama ja ga cja e jesucristo 846 Central Mazahua 846 -https://www.bible.com/bible/1325/jhn.1.syb syb syb kig begu pasad 1325 Central Subanen 1325 -https://www.bible.com/bible/1086/jhn.1.tufnt tuf tufnt sir chihta 1086 Central Tunebo 1086 -https://www.bible.com/bible/379/jhn.1.cment cme cment diilong nelma tobisifelenni 379 Cerma 379 -https://www.bible.com/bible/509/jhn.1.csp ces csp cesky studijni preklad 509 Czech - Čeština 509 -https://www.bible.com/bible/44/jhn.1.csbkr ces csbkr bible kralicka 1613 44 Czech - Čeština 44 -https://www.bible.com/bible/162/jhn.1.bcz ces bcz slovo na cestu 162 Czech - Čeština 162 -https://www.bible.com/bible/15/jhn.1.b21 ces b21 bible 21 15 Czech - Čeština 15 -https://www.bible.com/bible/535/jhn.1.cbintpo cbi cbintpo diosa kiika genesis exodo y el nuevo testamento 535 Chachi 535 -https://www.bible.com/bible/235/jhn.1.caont cao caont dios chani 235 Chácobo 235 -https://www.bible.com/bible/568/jhn.1.cjont cjo cjont iwaperite tajorentsi ikenkithatakoetziri awinkatharite jesokirishito owakirari inimotakiri tajorentsi 568 Ashéninka Pajonal 568 -https://www.bible.com/bible/2136/jhn.1.prqntpo prq prqntpo las escrituras en asheninka perene del peru 2136 Ashéninka Perené 2136 -https://www.bible.com/bible/238/jhn.1.cpunt cpu cpunt kameethari naantsi inaaventaitzirira avinkatharite jesucristo 238 Pichis Ashéninka - Ashéninka Pichis 238 -https://www.bible.com/bible/1003/jhn.1.atdnt atd atdnt kasulatan to magboboot 1003 Ata Manobo 1003 -https://www.bible.com/bible/851/jhn.1.mibnt mib mibnt nuevo testamento en mixteco 851 Atatláhuca Mixtec 851 -https://www.bible.com/bible/967/jhn.1.avtnt avt avtnt him yaaim me god 967 Au 967 -https://www.bible.com/bible/2086/jhn.1.avrnt ava avrnt inzhil 2086 Avaric 2086 -https://www.bible.com/bible/1982/jhn.1.avndblnt avn avndblnt kunyanya vuvu yo 1982 Avatime 1982 -https://www.bible.com/bible/1766/jhn.1.avu avu avu ta dri lele di vari ka 1766 Avokaya 1766 -https://www.bible.com/bible/932/jhn.1.awbnt awb awbnt manikane o ehwehne 932 Awa (Papua New Guinea) 932 -https://www.bible.com/bible/1092/jhn.1.kwint kwi kwint masas pit jesucristowa 1092 Awa-Cuaiquer 1092 -https://www.bible.com/bible/1335/jhn.1.awx awx awx awara baibel 1335 Awara 1335 -https://www.bible.com/bible/845/jhn.1.auynt auy auynt au aai simai kaaisamakain aai 845 Awiyaana 845 -https://www.bible.com/bible/556/jhn.1.rchq2 quy rchq2 chuya qellqa 1992 556 Ayacucho Quechua 556 -https://www.bible.com/bible/655/jhn.1.vmynt vmy vmynt el nuevo testamento mazateco de ayautla 655 Ayautla Mazatec 655 -https://www.bible.com/bible/293/jhn.1.ayop ayr ayop qullan arunaca 293 Central Aymara - Aymar 293 -https://www.bible.com/bible/1659/jhn.1.miynt miy miynt el nuevo testamento 1659 Ayutla Mixtec 1659 -https://www.bible.com/bible/1138/jhn.1.bar bba bar bibeli gusunon gari 1138 Baatonum 1138 -https://www.bible.com/bible/1983/jhn.1.bbkdblnt bbk bbkdblnt the new testament in the babanki language 1983 Babanki 1983 -https://www.bible.com/bible/1901/jhn.1.bvd bvd bvd na alangaia falu ana baea i baeguu 1901 Baeggu 1901 -https://www.bible.com/bible/1539/jhn.1.nag5-bsi nri nag5 bsi ketholesi kesao nt bsi 1539 Chokri Naga - Chakhesang Chokri 1539 -https://www.bible.com/bible/961/jhn.1.nagc nbc nagc saopobu lai 961 Chang Naga 961 -https://www.bible.com/bible/1129/jhn.1.cbknt cbk cbknt el nuevo testamento 1129 Chavacano 1129 -https://www.bible.com/bible/544/jhn.1.cbtntpo cbt cbtntpo yose nanamen 544 Chayahuita 544 -https://www.bible.com/bible/793/jhn.1.mihnt mih mihnt tuhun ndyoo sihin tyehen ni 793 Chayuco Mixtec 793 -https://www.bible.com/bible/1630/jhn.1.nnc hne nnc nvaan niym chttiisgddhii 1630 Chhattisgarhi 1630 -https://www.bible.com/bible/1097/jhn.1.ill15 bem ill15 ishiwi lyakwa lesa 2015 1097 Bemba (Zambia) - Chibemba 1097 -https://www.bible.com/bible/1618/jhn.1.ccl nya ccl mawu a mulungu mu chichewa chalero 1618 Nyanja - Chichewa 1618 -https://www.bible.com/bible/1708/jhn.1.blpb2014 nya blpb2014 chichewa buku lopatulika bible 2014 1708 Nyanja - Chichewa 1708 -https://www.bible.com/bible/1068/jhn.1.bl92 nya bl92 buku lopatulika 1992 1068 Nyanja - Chichewa 1068 -https://www.bible.com/bible/739/jhn.1.zpvnt zpv zpvnt xchi dxyi cuubi dxiohs nin bie galuu yi daada jesucristu el nuevo testamento en el zapoteco de chichicapan y en espanol 739 Chichicapan Zapotec 739 -https://www.bible.com/bible/915/jhn.1.lbv ruf lbv laghano lya sambi kwe iwanu wose 915 Luguru - Chilughuru 915 -https://www.bible.com/bible/326/jhn.1.syb csy syb siyin bible 326 Siyin Chin - Chin: Siyin 326 -https://www.bible.com/bible/368/jhn.1.tdb ctd tdb tedim bible 368 Tedim Chin - Chin: Tedim 368 -https://www.bible.com/bible/217/jhn.1.clent cle clent ja3la3 fah4dxa42dxu4 hi3mii32 chiah2 nuh3a2 jesucristo salmos 217 Lealao Chinantec - Chinantec Lealao 217 -https://www.bible.com/bible/219/jhn.1.cpant cpa cpant el nuevo testamento de nuestro senor jesucristo version chinanteca 219 Palantla Chinantec - Chinantec Palantla 219 -https://www.bible.com/bible/1125/jhn.1.kwere cwe kwere lagano da sambi kwa wanhu wose 1125 Kwere - Ching'hwele 1125 -https://www.bible.com/bible/735/jhn.1.maqnt maq maqnt compromisu xi majo xi casahmi nina cojo xuta 735 Chiquihuitlán Mazatec 735 -https://www.bible.com/bible/1931/jhn.1.sub1949 sna sub1949 baiberi magwaro mat ene amngari 1949 doke 1931 Shona - chiShona 1931 -https://www.bible.com/bible/1960/jhn.1.sna2002 sna sna2002 shona bible 1949 revised 2002 1960 Shona - chiShona 1960 -https://www.bible.com/bible/1583/jhn.1.des des des goamu yare wereripu 1583 Desano 1583 -https://www.bible.com/bible/158/jhn.1.sch51 deu sch51 schlachter 1951 158 German - Deutsch 158 -https://www.bible.com/bible/157/jhn.1.sch2000 deu sch2000 schlachter 2000 157 German - Deutsch 157 -https://www.bible.com/bible/108/jhn.1.ngu2011 deu ngu2011 neue genfer ubersetzung 108 German - Deutsch 108 -https://www.bible.com/bible/877/jhn.1.nbh deu nbh neu bibel dot heute 877 German - Deutsch 877 -https://www.bible.com/bible/73/jhn.1.hfa deu hfa hoffnung fur alle 73 German - Deutsch 73 -https://www.bible.com/bible/65/jhn.1.gantp deu gantp albrecht nt und psalmen 65 German - Deutsch 65 -https://www.bible.com/bible/58/jhn.1.elb71 deu elb71 elberfelder 1871 58 German - Deutsch 58 -https://www.bible.com/bible/57/jhn.1.elb deu elb elberfelder 1905 57 German - Deutsch 57 -https://www.bible.com/bible/51/jhn.1.delut deu delut lutherbibel 1912 51 German - Deutsch 51 -https://www.bible.com/bible/1374/jhn.1.dhgwgpo dhg dhgwgpo djesuwuruy nguwakurru dhawu makkung wukirriwuy mak 1374 Dhangu-Djangu - Dhangu 1374 -https://www.bible.com/bible/1402/jhn.1.nfantpo nfa nfantpo lii holo nori ama lamatua lii pajaji hiu dengelii lolo dhu uru teka 1402 Dhao 1402 -https://www.bible.com/bible/471/jhn.1.dbnt dhm dbnt etestamende epe moludhimba 471 Zemba - Dhimba (Zemba, Oludhimba) 471 -https://www.bible.com/bible/2134/jhn.1.%DE%86%DE%89 div kithaabul muqadhasaa 2134 Dhivehi 2134 -https://www.bible.com/bible/1810/jhn.1.dho15 luo dho15 muma maler 2015 1810 Luo (Kenya and Tanzania) - Dholuo 1810 -https://www.bible.com/bible/1326/jhn.1.mbdnt mbd mbdnt kasulatan to diyus 1326 Dibabawon Manobo 1326 -https://www.bible.com/bible/839/jhn.1.dnt gud dnt new testament 839 Yocoboué Dida - Dida 839 -https://www.bible.com/bible/1890/jhn.1.didntpo did didntpo buuk ci thooth ci nyekuci 1890 Didinga 1890 -https://www.bible.com/bible/1511/jhn.1.diint dur diint dii new testament 1511 Dii 1511 -https://www.bible.com/bible/1010/jhn.1.dima dis dima dara gadain 1010 Dimasa 1010 -https://www.bible.com/bible/409/jhn.1.bzjnt bzj bzjnt di nyoo testiment eena bileez kriol 409 Belize Creole English - Bileez Kriol 409 -https://www.bible.com/bible/1281/jhn.1.bhlnt bhl bhlnt sunbim got em kitakamin weng 1281 Bimin 1281 -https://www.bible.com/bible/1838/jhn.1.bim bim bim yennu gbounpaaung moor 1838 Bimoba 1838 -https://www.bible.com/bible/1748/jhn.1.bim bim bim yennu gboung moor 1748 Bimoba 1748 -https://www.bible.com/bible/1407/jhn.1.bhg bhg bhg yesu keriso da bino dave 1407 Binandere 1407 -https://www.bible.com/bible/975/jhn.1.bonnt bon bonnt ireclota mene 975 Bine 975 -https://www.bible.com/bible/413/jhn.1.smknt smk smknt si biblia 413 Bolinao - Binu-Bolinao 413 -https://www.bible.com/bible/1117/jhn.1.bkdnt bkd bkdnt lalang hu dios 1117 Binukid 1117 -https://www.bible.com/bible/842/jhn.1.bjrnt bjr bjrnt fuka moodaanaki kira ufa afaqinaasa ufa 842 Binumarien 842 -https://www.bible.com/bible/1923/jhn.1.bbr bis bbr baebol long bislama 1923 Bislama 1923 -https://www.bible.com/bible/1751/jhn.1.bib bib bib wosoci guaasibabaa daa nouveau testament en bissa 1751 Bissa 1751 -https://www.bible.com/bible/1705/jhn.1.bzint bzi bzint cchiiwiidmaamaa phrakhamphiir aangchuue biichuu taang 1705 Bisu 1705 -https://www.bible.com/bible/1121/jhn.1.muxnt mux muxnt pulu yili nga ung konale 1121 Bo-Ung 1121 -https://www.bible.com/bible/1155/jhn.1.bkb bqc bkb bibeli luayataala 1155 Boko (Benin) - Boko 1155 -https://www.bible.com/bible/333/jhn.1.bnpntpo bnp bnpntpo a nitana vure 333 Bola - Bola Bakovi 333 -https://www.bible.com/bible/578/jhn.1.boant boa boant piivyeebe ihjyu jetsocrijyodityu caatunuhaami 578 Bora 578 -https://www.bible.com/bible/610/jhn.1.kvnnt kvn kvnnt pab tummad karta pab jesucristobal igal pin mezhijad 610 Border Kuna 610 -https://www.bible.com/bible/1382/jhn.1.ksrntpo ksr ksrntpo uumeleembaa bunga tere soomonggo gbilia 1382 Borong 1382 -https://www.bible.com/bible/172/jhn.1.bdk dtp bdk buuk do kinorohingan 172 Kadazan Dusun - Boros Dusun 172 -https://www.bible.com/bible/1343/jhn.1.sblnt sbl sblnt hay halita nin diyos hay kawkanta boy kawkahalita an the new testament psalms and proverbs 1343 Botolan Sambal 1343 -https://www.bible.com/bible/431/jhn.1.gnbdk eng gnbdk good news bible catholic edition in septuagint order 431 English 431 -https://www.bible.com/bible/416/jhn.1.gnbdc eng gnbdc good news bible anglicised 416 English 416 -https://www.bible.com/bible/296/jhn.1.gnb eng gnb good news bible 296 English 296 -https://www.bible.com/bible/1932/jhn.1.fbvntpsalms eng fbvntpsalms free bible version new testament with psalms 1932 English 1932 -https://www.bible.com/bible/59/jhn.1.esv eng esv english standard version 59 English 59 -https://www.bible.com/bible/406/jhn.1.erv eng erv holy bible easy to read version 406 English 406 -https://www.bible.com/bible/2079/jhn.1.easy eng easy easyenglish bible 2018 2079 English 2079 -https://www.bible.com/bible/55/jhn.1.drc1752 eng drc1752 douay rheims challoner revision 1752 55 English 55 -https://www.bible.com/bible/478/jhn.1.darby eng darby darbys translation 1890 478 English 478 -https://www.bible.com/bible/1713/jhn.1.csb eng csb christian standard bible 1713 English 1713 -https://www.bible.com/bible/42/jhn.1.cpdv eng cpdv catholic public domain version 42 English 42 -https://www.bible.com/bible/1275/jhn.1.cjb eng cjb complete jewish bible 1275 English 1275 -https://www.bible.com/bible/294/jhn.1.cevuk eng cevuk contemporary english version anglicised 2012 294 English 294 -https://www.bible.com/bible/303/jhn.1.cevdc eng cevdc contemporary english version 303 English 303 -https://www.bible.com/bible/392/jhn.1.cev eng cev contemporary english version 392 English 392 -https://www.bible.com/bible/37/jhn.1.ceb eng ceb common english bible 37 English 37 -https://www.bible.com/bible/31/jhn.1.books eng books the books of the bible nt 31 English 31 -https://www.bible.com/bible/12/jhn.1.asv eng asv american standard version 12 English 12 -https://www.bible.com/bible/8/jhn.1.ampc eng ampc amplified bible classic edition 8 English 8 -https://www.bible.com/bible/1588/jhn.1.amp eng amp amplified bible 1588 English 1588 -https://www.bible.com/bible/309/jhn.1.eep est eep eesti piibel 309 Estonian - Eesti keel 309 -https://www.bible.com/bible/889/jhn.1.etunt etu etunt ejagham new testament 889 Ejagham 889 -https://www.bible.com/bible/1154/jhn.1.ekant eka ekant nwer esowo egbanngalung ji nfenfe 1154 Ekajuk 1154 -https://www.bible.com/bible/1476/jhn.1.enhl leg enhl enhlit bible 1476 Lengua Norte (Paraguay) - Enhlit (Enhlet) 1476 -https://www.bible.com/bible/1480/jhn.1.enxbi enx enxbi biblia enxet 1480 Lengua Sur (Paraguay) - Enxet 1480 -https://www.bible.com/bible/270/jhn.1.sjant sja sjant tachi akore pedee 270 Epena 270 -https://www.bible.com/bible/1351/jhn.1.sjab sja sjab tachi ak ore pedee chonaarawedapema 1351 Epena 1351 -https://www.bible.com/bible/1004/jhn.1.mcqnt mcq mcqnt godoni vu a maiu ina 1004 Ese 1004 -https://www.bible.com/bible/576/jhn.1.esent ese esent eyacuinajjija esohui 576 Ese Ejja 576 -https://www.bible.com/bible/1952/jhn.1.vbl spa vbl el nuevo testamento version biblia libre 1952 Spanish - Español (América Latina) 1952 -https://www.bible.com/bible/178/jhn.1.tlai spa tlai traduccion en lenguaje actual interconfesional 178 Spanish - Español (América Latina) 178 -https://www.bible.com/bible/176/jhn.1.tla spa tla traduccion en lenguaje actual 176 Spanish - Español (América Latina) 176 -https://www.bible.com/bible/150/jhn.1.rvr95 spa rvr95 biblia reina valera 1995 150 Spanish - Español (América Latina) 150 -https://www.bible.com/bible/149/jhn.1.rvr1960 spa rvr1960 biblia reina valera 1960 149 Spanish - Español (América Latina) 149 -https://www.bible.com/bible/1718/jhn.1.rvr09 spa rvr09 biblia reina valera 1909 1718 Spanish - Español (América Latina) 1718 -https://www.bible.com/bible/147/jhn.1.rves spa rves reina valera antigua 147 Spanish - Español (América Latina) 147 -https://www.bible.com/bible/146/jhn.1.rvc spa rvc reina valera contemporanea 146 Spanish - Español (América Latina) 146 -https://www.bible.com/bible/1782/jhn.1.rva2015 spa rva2015 reina valera actualizada 1782 Spanish - Español (América Latina) 1782 -https://www.bible.com/bible/197/jhn.1.pdt spa pdt la biblia la palabra de dios para todos 197 Spanish - Español (América Latina) 197 -https://www.bible.com/bible/128/jhn.1.nvi spa nvi nueva version internacional espanol 128 Spanish - Español (América Latina) 128 -https://www.bible.com/bible/907/jhn.1.gnt bbj gnt ghomala new testament 907 Ghomálá' 907 -https://www.bible.com/bible/1120/jhn.1.gdrnt gid gdrnt gidar new testament 1120 Gidar 1120 -https://www.bible.com/bible/1741/jhn.1.acd acd acd genth pobthrth gebono wurubuaare gi yege mo re anyamese me wora mo 1741 Gikyode 1741 -https://www.bible.com/bible/1892/jhn.1.knvb gil knvb te baibara 1892 Gilbertese 1892 -https://www.bible.com/bible/982/jhn.1.bbrnt bbr bbrnt anut nukan aman eposek 982 Girawa 982 -https://www.bible.com/bible/940/jhn.1.gvfnt gvf gvfnt god ka main buku 940 Golin 940 -https://www.bible.com/bible/1729/jhn.1.gjnb gjn gjnb ebore be kawol 1729 Gonja 1729 -https://www.bible.com/bible/435/jhn.1.gofrnt gof gofrnt ooratha caaquwa goofatho 435 Gofa - Goofa 435 -https://www.bible.com/bible/506/jhn.1.gofent gof gofent oraa chaaquwaa gofaa 506 Gofa - Goofa 506 -https://www.bible.com/bible/1173/jhn.1.gqrnt gqr gqrnt ta l at luw at kunmindi ki sigi 1173 Gor 1173 -https://www.bible.com/bible/1055/jhn.1.guhnt guh guhnt dios pejumelivaisibaxuto pejanalivaisibaxuto 1055 Guahibo 1055 -https://www.bible.com/bible/613/jhn.1.gubbi gub gubbi tupan zeeg 613 Guajajára 613 -https://www.bible.com/bible/1037/jhn.1.gum gum gum nacom pejume diwesi po diwesi pena jume diwesi xua jesucristo yabara tinatsi 1037 Guambiano 1037 -https://www.bible.com/bible/1056/jhn.1.gvcnt gvc gvcnt cohamacu yare yahari tjuel 1056 Guanano 1056 -https://www.bible.com/bible/805/jhn.1.grn1913 gug grn1913 tupa nandeyara 1913 805 Avañe'e - Guaraní paraguayo 805 -https://www.bible.com/bible/66/jhn.1.gpc2006 gug gpc2006 nandejara nee 66 Avañe'e - Guaraní paraguayo 66 -https://www.bible.com/bible/590/jhn.1.guint gui guint nuevo testamento guarani pe 590 Eastern Bolivian Guarani - Guaraní: Ava (Bolivia) 590 -https://www.bible.com/bible/972/jhn.1.guabd gui guabd biblia guarani tumpa inee 972 Eastern Bolivian Guarani - Guaraní: Ava (Bolivia) 972 -https://www.bible.com/bible/1739/jhn.1.gnwpb gnw gnwpb biblia 1739 Western Bolivian Guarani - Guaraní: Simba 1739 -https://www.bible.com/bible/606/jhn.1.gnwnt gnw gnwnt nuevo testamento guarani pe 606 Western Bolivian Guarani - Guaraní: Simba 606 -https://www.bible.com/bible/609/jhn.1.gyrnt gyr gyrnt tupa nehengaguer 609 Guarayu 609 -https://www.bible.com/bible/224/jhn.1.gyob0253 gyr gyob0253 tupa neengagwer 224 Guarayu 224 -https://www.bible.com/bible/359/jhn.1.gyob gyr gyob tupa neengagwer 359 Guarayu 359 -https://www.bible.com/bible/499/jhn.1.guont guo guont pajelwuajan dios pejjamechan 499 Guayabero 499 -https://www.bible.com/bible/1778/jhn.1.gde gde gde kura al at kawal at ngga at ntangf at 1778 Gude 1778 -https://www.bible.com/bible/1641/jhn.1.gue1863 nrf gue1863 l saint evangile sievant saint makyu 1863 1641 Guernsey Norman French - Guernésiais 1641 -https://www.bible.com/bible/749/jhn.1.ngunt ngu ngunt in yencuic iyectlajtoltzin dios itech ica toteco jesucristo 749 Guerrero Nahuatl 749 -https://www.bible.com/bible/1660/jhn.1.ngunt ngu ngunt el nuevo testamento 1660 Guerrero Nahuatl 1660 -https://www.bible.com/bible/953/jhn.1.ghsnt ghs ghsnt poro tongo usaqe 953 Guhu-Samane 953 -https://www.bible.com/bible/815/jhn.1.gul gvl gul gulei new testament 815 Gulay 815 -https://www.bible.com/bible/585/jhn.1.gul gul gul de nyew testament 585 Sea Island Creole English - Gullah 585 -https://www.bible.com/bible/2006/jhn.1.gnnntotpo gnn gnnntotpo gumatj shorter bible 2006 Gumatj 2006 -https://www.bible.com/bible/1837/jhn.1.rub rub rub lugungu bible 1837 Gungu 1837 -https://www.bible.com/bible/939/jhn.1.dahnt dah dahnt al kurungyen mere iging 939 Gwahatike 939 -https://www.bible.com/bible/600/jhn.1.gwint gwi gwint viteegwijyahchyaa vagwandak nizii 600 Gwichʼin 600 -https://www.bible.com/bible/327/jhn.1.hcl cnh hcl hakha common language bible 327 Hakha Chin - Hakha 327 -https://www.bible.com/bible/1862/jhn.1.hakachin-bsi cnh hakachin bsi haka chin nt with psa 7 pro bsi 1862 Hakha Chin - Hakha 1862 -https://www.bible.com/bible/955/jhn.1.hlant hla hlant u bulungana u niga 955 Halia 955 -https://www.bible.com/bible/1499/jhn.1.hag hag hag naawun yatogiri piiligu gbangngu selections 1499 Hanga 1499 -https://www.bible.com/bible/1570/jhn.1.tmd tmd tmd mono komo 1570 Haruai 1570 -https://www.bible.com/bible/906/jhn.1.fb fub fb fulfulde bible 906 Fulfulde (Adamawa) 906 -https://www.bible.com/bible/1032/jhn.1.fbfnt fuh fbfnt fulfulfe burkina dewtere laamdo amaana keso 1032 Fulfulde - Fulfulde (Burkina Faso) 1032 -https://www.bible.com/bible/1373/jhn.1.fuq fuq fuq alkawal kesal 1373 Fulfulde (Central-Eastern Niger) 1373 -https://www.bible.com/bible/1175/jhn.1.ffmnt ffm ffmnt aadi keyri linjiila iisaa almasiihu 1175 Maasina Fulfulde - Fulfulde (Maasinankoore) 1175 -https://www.bible.com/bible/1159/jhn.1.fuvnt fuv fuvnt alkawal kesal nder fulfulde caka naajeeriya 1159 Fulani - Fulfulde (Nigeria) 1159 -https://www.bible.com/bible/374/jhn.1.fb fao fb biblia 374 Faroese - Føroyskt 374 -https://www.bible.com/bible/1436/jhn.1.gdgnt gdg gdgnt ino sapiti dios bawuwa tulag 1436 Ga'dang 1436 -https://www.bible.com/bible/884/jhn.1.oc1970 gle oc1970 cuinn tiomna nua 1970 884 Irish Gaelic - Gaeilge 884 -https://www.bible.com/bible/883/jhn.1.bedell gle bedell bedell an biobla naomhtha 1817 883 Irish Gaelic - Gaeilge 883 -https://www.bible.com/bible/554/jhn.1.abn gle abn an biobla naofa 1981 554 Irish Gaelic - Gaeilge 554 -https://www.bible.com/bible/1809/jhn.1.ynapbr glv ynapbr yn apocrypha broderick 1979 1809 Manx Gaelic - Gaelg 1809 -https://www.bible.com/bible/1703/jhn.1.ynap glv ynap yn apocrypha 1772 1703 Manx Gaelic - Gaelg 1703 -https://www.bible.com/bible/2059/jhn.1.ps1765 glv ps1765 lioar ny psalmyn 1765 pointed 2059 Manx Gaelic - Gaelg 2059 -https://www.bible.com/bible/1366/jhn.1.ps1761 glv ps1761 psalmyn ghavid 1761 metrical 1366 Manx Gaelic - Gaelg 1366 -https://www.bible.com/bible/1985/jhn.1.nmian glv nmian noo mian 1748 1985 Manx Gaelic - Gaelg 1985 -https://www.bible.com/bible/1156/jhn.1.nean glv nean noo ean 1936 1156 Manx Gaelic - Gaelg 1156 -https://www.bible.com/bible/1780/jhn.1.con1810 glv con1810 yn conaant noa 1810 1780 Manx Gaelic - Gaelg 1780 -https://www.bible.com/bible/1702/jhn.1.bib1819 glv bib1819 yn vible casherick 1819 1702 Manx Gaelic - Gaelg 1702 -https://www.bible.com/bible/1516/jhn.1.scnt smo scnt samoan contemporary new testament 1516 Samoan - Gagana fa'a Sāmoa 1516 -https://www.bible.com/bible/599/jhn.1.rscb smo rscb o le tusi paia ekalesia katoliko roma 599 Samoan - Gagana fa'a Sāmoa 599 -https://www.bible.com/bible/1444/jhn.1.bkj hrv bkj novi zavjet i psalmi 1 izd 1444 Croatian - Hrvatski 1444 -https://www.bible.com/bible/1088/jhn.1.qubnt qub qubnt tayta diosninchi isquirbichishan 1088 Huallaga Huánuco Quechua 1088 -https://www.bible.com/bible/670/jhn.1.qvhnt qvh qvhnt mushog testamento 670 Huamalíes-Dos de Mayo Huánuco Quechua 670 -https://www.bible.com/bible/720/jhn.1.hubnt hub hubnt yuusa chichame yaunchukia tura yamaram chichamjai aarmau 720 Huambisa 720 -https://www.bible.com/bible/1347/jhn.1.var var var riosia warijio nayewani ahpo tisiwa kaaweruma tuuyewari 1347 Huarijio 1347 -https://www.bible.com/bible/698/jhn.1.husnt hus husnt nin tenek kawintal an ok oxlab 698 Huastec 698 -https://www.bible.com/bible/848/jhn.1.husnt hus husnt new testament in huastec san luis potosi 848 Huastec 848 -https://www.bible.com/bible/834/jhn.1.maudbl mau maudbl new testament in mazatec huautla 834 Huautla Mazatec 834 -https://www.bible.com/bible/734/jhn.1.qwhnt qwh qwhnt teyta diospa mushoq testamentun 734 Huaylas Ancash Quechua 734 -https://www.bible.com/bible/268/jhn.1.qxnnt qxn qxnnt senor jesucristopa alli willacuynin 268 Northern Conchucos Ancash Quechua - Huaylay 268 -https://www.bible.com/bible/849/jhn.1.teent tee teent ixchivinti dios 849 Huehuetla Tepehua 849 -https://www.bible.com/bible/830/jhn.1.hchnt hch hchnt kakaiyari niukieya 830 Huichol 830 -https://www.bible.com/bible/1027/jhn.1.yml yml yml youbada yana vonaawaufaufa ivauna 1027 Iamalele 1027 -https://www.bible.com/bible/968/jhn.1.iannt ian iannt god waa nyaangit 968 Iatmul 968 -https://www.bible.com/bible/171/jhn.1.bk iba bk bup kudus 171 Iban 171 -https://www.bible.com/bible/1322/jhn.1.ivbpotnt ivb ivbpotnt chirin ni apo dyos no bayo a tolag kan genesis naimbag a damag iti agdama a panawen 1322 Ibatan 1322 -https://www.bible.com/bible/947/jhn.1.aal59 lam aal59 amashiwi aba lesa 947 Lamba - Ichilamba 947 -https://www.bible.com/bible/1235/jhn.1.vivnt viv vivnt yaubada bonana veyao ivaguna 1235 Iduna 1235 -https://www.bible.com/bible/1759/jhn.1.ife ife ife iwe odaye im le ikaanyi 1759 Ifè 1759 -https://www.bible.com/bible/77/jhn.1.igbob ibo igbob bible nso 77 Igbo 77 -https://www.bible.com/bible/1528/jhn.1.sd1992 gla sd1992 sailm dhaibhidh 1992 ath sgrudaichte le litreachadh ur 1528 Scots Gaelic - Gàidhlig 1528 -https://www.bible.com/bible/1575/jhn.1.sd1826 gla sd1826 sailm dhaibhidh 1826 le litreachadh ur 2000 1575 Scots Gaelic - Gàidhlig 1575 -https://www.bible.com/bible/1807/jhn.1.macgap gla macgap apocripha macgriogair 1860 1807 Scots Gaelic - Gàidhlig 1807 -https://www.bible.com/bible/1914/jhn.1.macetn gla macetn tiomnadh nuadh maceachen 1875 1914 Scots Gaelic - Gàidhlig 1914 -https://www.bible.com/bible/2141/jhn.1.lsn1987 gla lsn1987 laoidhean o na sgriobtaran naomha 1987 2141 Scots Gaelic - Gàidhlig 2141 -https://www.bible.com/bible/1605/jhn.1.gld gla gld ann an gaidhlig an latha an diugh 1986 1605 Scots Gaelic - Gàidhlig 1605 -https://www.bible.com/bible/1562/jhn.1.atn2017 gla atn2017 an tiomnadh nuadh anns an eadar theangachadh ur gaidhlig 2017 1562 Scots Gaelic - Gàidhlig 1562 -https://www.bible.com/bible/1747/jhn.1.abig gla abig am bioball iomraidh gaidhlig 2017 1747 Scots Gaelic - Gàidhlig 1747 -https://www.bible.com/bible/1531/jhn.1.abg1992 gla abg1992 am bioball gaidhlig 1992 1531 Scots Gaelic - Gàidhlig 1531 -https://www.bible.com/bible/1534/jhn.1.galo-bsi adl galo bsi ali niitin bsi 1534 Galo 1534 -https://www.bible.com/bible/434/jhn.1.gmvrnt gmv gmvrnt ooratha caaqo maxaafa gamoththo 434 Gamo 434 -https://www.bible.com/bible/439/jhn.1.gmvnt gmv gmvnt oraa chaaqo maatzaafaa gaamo 439 Gamo 439 -https://www.bible.com/bible/1013/jhn.1.gang gnb gang pathien lekhabu thiengtho 1013 Gangte 1013 -https://www.bible.com/bible/1504/jhn.1.aeunt aeu aeunt jalliq aqsivq gaolkheel daoq 1504 Akeu - Gaolkheel 1504 -https://www.bible.com/bible/1180/jhn.1.pwgnt pwg pwgnt god vonana vovokaravina 1180 Gapapaiwa 1180 -https://www.bible.com/bible/1372/jhn.1.wrkpo wrk wrkpo garrwa mini bible 1372 Garrwa 1372 -https://www.bible.com/bible/1621/jhn.1.gaw gbr gaw alkawali woiwoyi 1621 Gbagyi 1621 -https://www.bible.com/bible/1906/jhn.1.nlg nlg nlg na rongorongo uto nina jesus christ 1906 Gela 1906 -https://www.bible.com/bible/1709/jhn.1.%E0%A4%B8%E0%A4%B0%E0%A5%8D%20%E0%A4%95%E0%A4%AC%E0%A5%81%E0%A4%B2 ghe ghle nyaan kraar 1709 Southern Ghale - Ghale 1709 -https://www.bible.com/bible/1102/jhn.1.bmk bmk bmk ghayavi mak 1102 Ghayavi 1102 -https://www.bible.com/bible/127/jhn.1.ntv spa ntv nueva traduccion viviente 127 Spanish - Español (América Latina) 127 -https://www.bible.com/bible/753/jhn.1.nbv spa nbv nueva biblia viva 753 Spanish - Español (América Latina) 753 -https://www.bible.com/bible/103/jhn.1.nblh spa nblh nueva biblia latinoamericana de hoy 103 Spanish - Español (América Latina) 103 -https://www.bible.com/bible/89/jhn.1.lbla spa lbla la biblia de las americas 89 Spanish - Español (América Latina) 89 -https://www.bible.com/bible/1076/jhn.1.jbs spa jbs biblia del jubileo 1076 Spanish - Español (América Latina) 1076 -https://www.bible.com/bible/1846/jhn.1.dhhs94 spa dhhs94 dios habla hoy estandar 1994 1846 Spanish - Español (América Latina) 1846 -https://www.bible.com/bible/1845/jhn.1.dhhdk spa dhhdk dios habla hoy dk 1845 Spanish - Español (América Latina) 1845 -https://www.bible.com/bible/411/jhn.1.dhh94pc spa dhh94pc biblia dios habla hoy 411 Spanish - Español (América Latina) 411 -https://www.bible.com/bible/52/jhn.1.dhh94i spa dhh94i biblia dios habla hoy 52 Spanish - Español (América Latina) 52 -https://www.bible.com/bible/28/jhn.1.blph spa blph la palabra version hispanoamericana 28 Spanish - Español (América Latina) 28 -https://www.bible.com/bible/222/jhn.1.bhti spa bhti la biblia hispanoamericana traduccion interconfesional version hispanoamericana 222 Spanish - Español (América Latina) 222 -https://www.bible.com/bible/1715/jhn.1.bdo1573 spa bdo1573 biblia del oso 1573 1715 Spanish - Español (América Latina) 1715 -https://www.bible.com/bible/1637/jhn.1.nvi spa nvi nueva version internacional castellano 1637 Spanish (Spain) - Español (España) 1637 -https://www.bible.com/bible/442/jhn.1.dhhed spa dhhed dios habla hoy con deuterocanonicos version espanola 442 Spanish (Spain) - Español (España) 442 -https://www.bible.com/bible/53/jhn.1.dhhe spa dhhe dios habla hoy version espanola 53 Spanish (Spain) - Español (España) 53 -https://www.bible.com/bible/214/jhn.1.bti spa bti la biblia traduccion interconfesional version espanola 214 Spanish (Spain) - Español (España) 214 -https://www.bible.com/bible/210/jhn.1.blp spa blp la palabra version espanola 210 Spanish (Spain) - Español (España) 210 -https://www.bible.com/bible/841/jhn.1.esp epo esp la sankta biblio 1926 841 Esperanto 841 -https://www.bible.com/bible/829/jhn.1.otsnt ots otsnt el nuevo testamento en otomi de san felipe santiago edo de mexico 829 Estado de México Otomi 829 -https://www.bible.com/bible/223/jhn.1.eabd eus eabd elizen arteko biblia biblia en euskara traduccion interconfesional 223 Basque - Euskara 223 -https://www.bible.com/bible/1624/jhn.1.bn ibo bn baibulu nso 1624 Igbo 1624 -https://www.bible.com/bible/1296/jhn.1.ikknt ikk ikknt elu ohun ekukwo nso azuun ohun rina 1296 Ika 1296 -https://www.bible.com/bible/241/jhn.1.huvnt huv huvnt jayats nanderac wux miteatiiuts jesucristo 241 San Mateo Del Mar Huave - Ikootz 241 -https://www.bible.com/bible/1190/jhn.1.ikwnt ikw ikwnt tesitamenti ikne nonu ikwere 1190 Ikwere 1190 -https://www.bible.com/bible/1599/jhn.1.ikwo iqw ikwo bayiburu ikwo 1599 Ikwo 1599 -https://www.bible.com/bible/888/jhn.1.cci ilb cci cizuminano cipya mu chi ila 888 Ila 888 -https://www.bible.com/bible/1310/jhn.1.mbint mbi mbint ke meupiya ne tudtul mekeatag ki hisu kristu 1310 Ilianen Manobo 1310 -https://www.bible.com/bible/782/jhn.1.ripv ilo ripv ti baro a naimbag a damag biblia 782 Iloko 782 -https://www.bible.com/bible/1009/jhn.1.imont imo imont goteni lino kinye opa peamili nimu ungu tukumemu 1009 Imbongu 1009 -https://www.bible.com/bible/1091/jhn.1.abxnt abx abxnt i bahao kasuratan 1091 Inabaknon 1091 -https://www.bible.com/bible/1103/jhn.1.inb inb inb kaipimi taita dius rimaku 1103 Inga 1103 -https://www.bible.com/bible/951/jhn.1.inont ino inont anumaya koti a saufa lami nea ke 951 Inoke-Yate 951 -https://www.bible.com/bible/1946/jhn.1.jbcnt crj jbcnt chishemanituu utayimuwin kaa uskaach testament 1946 Southern East Cree - Īnū Ayimūn 1946 -https://www.bible.com/bible/1947/jhn.1.jbcnt crj jbcnt cishemanitoo otayimwoin kaa oskaac testimint 1947 Southern East Cree - Īnū Ayimūn 1947 -https://www.bible.com/bible/1988/jhn.1.sperry ikt sperry godim ukauhiit gospelit hitamanguyun apostlit havaangillu 1988 Inuinnaqtun 1988 -https://www.bible.com/bible/1415/jhn.1.inupiaq esi inupiaq inupiatun mumiksat uqalugiksuat 1415 North Alaskan Inupiatun - Iñupiaq 1415 -https://www.bible.com/bible/304/jhn.1.esknt esk esknt ipqitchuat makpigaat agaayyutim uqalhi inupiatun 304 Northwest Alaska Inupiatun - Inupiatun Northwest Alaska 304 -https://www.bible.com/bible/803/jhn.1.lib ike lib gudib ukausingit 803 Inuktitut Labrador - Inuttitut: Labrador 803 -https://www.bible.com/bible/1020/jhn.1.ipint ipi ipint ipili nutestamene 1020 Ipili 1020 -https://www.bible.com/bible/1626/jhn.1.ibe nde ibe ibhayibhili elingcwele 1626 Ndebele - isiNdebele 1626 -https://www.bible.com/bible/1264/jhn.1.asnd tgl asnd ang salita ng dios 1264 Tagalog - Filipino 1264 -https://www.bible.com/bible/1184/jhn.1.ppont ppo ppont yesu kerisone so whi tao sere kisi fo wisi 1184 Folopa 1184 -https://www.bible.com/bible/813/jhn.1.fon fon fon bible fon 813 Fon 813 -https://www.bible.com/bible/817/jhn.1.fon fon fon fon bible 817 Fon 817 -https://www.bible.com/bible/2178/jhn.1.frd frd frd surat ralan naa vaidida 2178 Fordata 2178 -https://www.bible.com/bible/973/jhn.1.fornt for fornt mono agowe 973 Fore 973 -https://www.bible.com/bible/152/jhn.1.s21 fra s21 bible segond 21 152 French - Français 152 -https://www.bible.com/bible/133/jhn.1.pdv2017 fra pdv2017 parole de vie 2017 133 French - Français 133 -https://www.bible.com/bible/131/jhn.1.ost fra ost ostervald 131 French - Français 131 -https://www.bible.com/bible/2053/jhn.1.nvs78p fra nvs78p nouvelle segond revisee 2053 French - Français 2053 -https://www.bible.com/bible/106/jhn.1.neg79 fra neg79 nouvelle edition de geneve 1979 106 French - Français 106 -https://www.bible.com/bible/104/jhn.1.nbs fra nbs nouvelle bible segond 104 French - Français 104 -https://www.bible.com/bible/93/jhn.1.lsg fra lsg bible segond 1910 93 French - Français 93 -https://www.bible.com/bible/64/jhn.1.frdby fra frdby bible darby en francais 64 French - Français 64 -https://www.bible.com/bible/62/jhn.1.fmar fra fmar martin 1744 62 French - Français 62 -https://www.bible.com/bible/63/jhn.1.bfc fra bfc bible en francais courant 63 French - Français 63 -https://www.bible.com/bible/21/jhn.1.bds fra bds la bible du semeur 21 French - Français 21 -https://www.bible.com/bible/504/jhn.1.bcc1923 fra bcc1923 bible catholique crampon 1923 504 French - Français 504 -https://www.bible.com/bible/784/jhn.1.zosnt zos zosnt jomepo testamento 784 Francisco León Zoque 784 -https://www.bible.com/bible/905/jhn.1.fbdc fub fbdc fulfulde dc bible 905 Fulfulde (Adamawa) 905 -https://www.bible.com/bible/56/jhn.1.eab eus eab elizen arteko biblia biblia en euskara traduccion interconfesional 56 Basque - Euskara 56 -https://www.bible.com/bible/25/jhn.1.bhnt eus bhnt navarro labourdin basque 25 Basque - Euskara 25 -https://www.bible.com/bible/1199/jhn.1.nount nou nount binga ewamei isu keriso da jawo da 1199 Ewage-Notu 1199 -https://www.bible.com/bible/1854/jhn.1.ewo ewo ewo le nouveau testament en langue ewondo 1854 Ewondo 1854 -https://www.bible.com/bible/1600/jhn.1.ezaa eza ezaa bayiburu ezaa 1600 Ezaa 1600 -https://www.bible.com/bible/1613/jhn.1.bee ewe bee biblica ewe new testament 1613 Éwé - eʋegbe 1613 -https://www.bible.com/bible/923/jhn.1.faint fai faint got weng abem 923 Faiwol 923 -https://www.bible.com/bible/1428/jhn.1.fai fai fai got weng abem alokso abino kalin 1428 Faiwol 1428 -https://www.bible.com/bible/1869/jhn.1.molsom-bsi cfm molsom bsi dan thar nt bsi 1869 Falam Chin - Falam 1869 -https://www.bible.com/bible/389/jhn.1.fcl cfm fcl falam common language bible 389 Falam Chin - Falam 389 -https://www.bible.com/bible/1427/jhn.1.bjp bjp bjp fanamaket baibel 1427 Fanamaket 1427 -https://www.bible.com/bible/1323/jhn.1.gurdbl gur gurdbl gur nawenne yetoga la ninkare 1323 Farefare 1323 -https://www.bible.com/bible/956/jhn.1.faant faa faant kotimo kawe someaka masane oyapo 956 Fasu 956 -https://www.bible.com/bible/1902/jhn.1.far far far farongoe lea ana fataleka 1902 Fataleka 1902 -https://www.bible.com/bible/508/jhn.1.fov fij fov vakavakadewa makawa 508 Fijian 508 -https://www.bible.com/bible/675/jhn.1.fnvdc fij fnvdc vakavakadewa vou kei na ivola tale eso 675 Fijian 675 -https://www.bible.com/bible/676/jhn.1.fnv fij fnv ai vola tabu ena vakavakadewa vou 676 Fijian 676 -https://www.bible.com/bible/177/jhn.1.tlab tgl tlab ang biblia 177 Tagalog - Filipino 177 -https://www.bible.com/bible/399/jhn.1.rtpv05 tgl rtpv05 magandang balita bible revised 399 Tagalog - Filipino 399 -https://www.bible.com/bible/144/jhn.1.mbb05 tgl mbb05 magandang balita biblia 2005 144 Tagalog - Filipino 144 -https://www.bible.com/bible/555/jhn.1.kabi kbp kabi new testament 555 Kabiyè 555 -https://www.bible.com/bible/584/jhn.1.kbcnt kbc kbcnt gela liwai lotaganagaxi aneotedogoji 584 Kadiwéu 584 -https://www.bible.com/bible/1126/jhn.1.cgcnt cgc cgcnt pulong ta dyos genesis daw bag o na kasugtanan 1126 Kagayanen 1126 -https://www.bible.com/bible/1508/jhn.1.ddkww kki ddkww dilagano disha ku wanhu wose 1508 Kagulu 1508 -https://www.bible.com/bible/629/jhn.1.kgpnt kgp kgpnt tope vi ra 629 Kaingang 629 -https://www.bible.com/bible/611/jhn.1.kgknt kgk kgknt nhandejary nhee 611 Kaiwá 611 -https://www.bible.com/bible/1100/jhn.1.kakabai kqf kakabai kakabai mak 1100 Kakabai 1100 -https://www.bible.com/bible/489/jhn.1.kqc cak kqc kaqchiquel bible 489 Kaqchikel - Kakchikel 489 -https://www.bible.com/bible/531/jhn.1.cakynt cak cakynt re caca testamento pa kachabal 531 Kaqchikel - Kakchikel 531 -https://www.bible.com/bible/1519/jhn.1.cakx cak cakx ri dios ndich a a chaqe pa qach ab el wokami 1519 Kaqchikel - Kakchikel 1519 -https://www.bible.com/bible/570/jhn.1.cakwnt cak cakwnt ri cacac testamento pa kachabel 570 Kaqchikel - Kakchikel 570 -https://www.bible.com/bible/216/jhn.1.caksmnt cak caksmnt ri cacac testamento pa kachabal 216 Kaqchikel - Kakchikel 216 -https://www.bible.com/bible/949/jhn.1.caksc cak caksc gt cak kaqchikel 949 Kaqchikel - Kakchikel 949 -https://www.bible.com/bible/902/jhn.1.caknt cak caknt ri utzilaj rutzij ri dios pa kach abel 902 Kaqchikel - Kakchikel 902 -https://www.bible.com/bible/572/jhn.1.cakent cak cakent ri dios ncho pa kachabul cheke 572 Kaqchikel - Kakchikel 572 -https://www.bible.com/bible/530/jhn.1.cakcnt cak cakcnt ri caca trato ri xuben ri dios quiquin ri vinek 530 Kaqchikel - Kakchikel 530 -https://www.bible.com/bible/1768/jhn.1.kkj kkj kkj melepi me njambiye jonja mbon 1768 Kako 1768 -https://www.bible.com/bible/1399/jhn.1.mwpbiblepo mwp mwpbiblepo minar poelayzimayl 1399 Kala Lagaw Ya 1399 -https://www.bible.com/bible/1357/jhn.1.kqe-e kqe kqe e kitab injil 1357 Kalagan 1357 -https://www.bible.com/bible/950/jhn.1.kmhnt kmh kmhnt kalam baybol buk gor minim nuk kisen angayak 950 Kalam 950 -https://www.bible.com/bible/247/jhn.1.ixlcnt ixl ixlcnt viak la txumb al u tioxh 247 Ixil 247 -https://www.bible.com/bible/1763/jhn.1.ixl ixl ixl vika v iyol qub aal tiuxh quyolb alxhtu 1763 Ixil 1763 -https://www.bible.com/bible/1146/jhn.1.nca nca nca the new testament in the iyo language of papua new guinea 1146 Iyo 1146 -https://www.bible.com/bible/2070/jhn.1.izrnt izr izrnt izere new testament 2070 Izere 2070 -https://www.bible.com/bible/1601/jhn.1.izii izz izii bayiburu izii 1601 Izii 1601 -https://www.bible.com/bible/854/jhn.1.majnt maj majnt ehen ntiana 854 Jalapa De Díaz Mazatec 854 -https://www.bible.com/bible/1903/jhn.1.jaant jaa jaant deoso ka yama hani 1903 Jamamadí 1903 -https://www.bible.com/bible/476/jhn.1.jnt jam jnt di jamiekan nyuu testiment 476 Jamaican Creole English - Jamiekan 476 -https://www.bible.com/bible/775/jhn.1.mxtnt mxt mxtnt tuhun cha sanaha ra jesucristo chi yo 775 Jamiltepec Mixtec 775 -https://www.bible.com/bible/1095/jhn.1.jnt jra jnt jarai nt 1095 Jarai 1095 -https://www.bible.com/bible/894/jhn.1.jbsv jra jbsv hodrom hra rogoh hiam 894 Jarai 894 -https://www.bible.com/bible/1973/jhn.1.hoap jra hoap hra oi adai pohiap 1973 Jarai 1973 -https://www.bible.com/bible/348/jhn.1.jclb kac jclb jinghpaw common language bible 2009 348 Kachin - Jingpho 348 -https://www.bible.com/bible/1549/jhn.1.cskdbl csk cskdbl hulimahu hata ateemit 1549 Jola-Kasa 1549 -https://www.bible.com/bible/1744/jhn.1.bek bex bek buku ba tisaki ni todo to lomu la ja ba yesu kurisito ngere ze 1744 Jur Modo 1744 -https://www.bible.com/bible/490/jhn.1.quich1 quc quich1 quiche bible 490 K'iche' 490 -https://www.bible.com/bible/653/jhn.1.quctnt quc quctnt ru lok pixab ri dios 653 K'iche' 653 -https://www.bible.com/bible/657/jhn.1.qucnnt quc qucnnt ru loq pixab ri dios 657 K'iche' 657 -https://www.bible.com/bible/2023/jhn.1.gna gna gna kaansa nt ghana 2023 Kaansa 2023 -https://www.bible.com/bible/1485/jhn.1.kspdbl ksp kspdbl maketuru le lubba ke tar kabba 1485 Kaba - Kabba 1485 -https://www.bible.com/bible/1029/jhn.1.kmhmnt kmh kmhmnt minim koming 1029 Kalam 1029 -https://www.bible.com/bible/860/jhn.1.nmn kck nmn ndebo mbuya ne njimbo 860 Kalanga 860 -https://www.bible.com/bible/1585/jhn.1.kapr kln kapr bukuit ne tilil 1585 Kalenjin 1585 -https://www.bible.com/bible/1586/jhn.1.kaldc kln kaldc bukuit ne tiliil sireet ne dutero kanon 1586 Kalenjin 1586 -https://www.bible.com/bible/2089/jhn.1.xalnt xal xalnt shin bootsan 2089 Kalmyk 2089 -https://www.bible.com/bible/1298/jhn.1.bco bco bco kaluli baibel 1298 Kaluli 1298 -https://www.bible.com/bible/1236/jhn.1.kbqntpo kbq kbqntpo anumzamofo ruotage avontafere 1236 Kamano 1236 -https://www.bible.com/bible/971/jhn.1.kms kms kms nupela testamen long tokples kamasau long niugini 971 Kamasau 971 -https://www.bible.com/bible/1410/jhn.1.xlapb xla xlapb ka dle yu 1410 Kamula 1410 -https://www.bible.com/bible/1198/jhn.1.soqnt soq soqnt ina sanaa gagalowa 1198 Kanasi 1198 -https://www.bible.com/bible/1252/jhn.1.kqw kqw kqw buk baibel long tokples kandas 1252 Kandas 1252 -https://www.bible.com/bible/1137/jhn.1.gam gam gam jisas kandjiyebe wopake 1137 Kandawo 1137 -https://www.bible.com/bible/1653/jhn.1.moh1804 moh moh1804 nene karighwiyoston tsinihorighhoten ne saint john 1804 1653 Mohawk - Kanien’kéha 1653 -https://www.bible.com/bible/1473/jhn.1.wat wat wat buk baibel long tokples kaninuwa 1473 Kaninuwa 1473 -https://www.bible.com/bible/987/jhn.1.kmunt kmu kmunt anumayamo a haegafa alino hagelafilatenea kea 987 Kanite 987 -https://www.bible.com/bible/1329/jhn.1.knepotnt kne knepotnt kalin diyos 1329 Kankanaey 1329 -https://www.bible.com/bible/1368/jhn.1.kpg kpg kpg beebaa dabu 1368 Kapingamarangi 1368 -https://www.bible.com/bible/1354/jhn.1.kpg kpg kpg baebel kapingamarangi 1354 Kapingamarangi 1354 -https://www.bible.com/bible/1668/jhn.1.tfsp leu tfsp a turoxoian faui sina piran 1668 Kara (Papua New Guinea) 1668 -https://www.bible.com/bible/1107/jhn.1.leu leu leu a turoxoian fa ui sina piran 1107 Kara (Papua New Guinea) 1107 -https://www.bible.com/bible/725/jhn.1.kpjnt kpj kpjnt deuxu rybe tyyriti 725 Karajá 725 -https://www.bible.com/bible/997/jhn.1.karb mjw karb baibel kangthir 997 Karbi 997 -https://www.bible.com/bible/521/jhn.1.cabnt cab cabnt lererun bungiu to lanina iseri daradu 521 Garifuna - Karif 521 -https://www.bible.com/bible/998/jhn.1.yujnt yuj yujnt kwaromp kwapwe kare kar 998 Karkar-Yuri 998 -https://www.bible.com/bible/2018/jhn.1.krx krx krx hilim ha hiti putuun pa 2018 Karon 2018 -https://www.bible.com/bible/1303/jhn.1.xsmdbl xsm xsmdbl xsm we tono di kasim 1303 Kasem 1303 -https://www.bible.com/bible/1566/jhn.1.khs khs khs kokolo kao tesene solo 1566 Kasua 1566 -https://www.bible.com/bible/345/jhn.1.kyuntgen kyu kyuntgen 345 Western Kayah - Kaya Western 345 -https://www.bible.com/bible/1432/jhn.1.kyulnt kyu kyulnt lisase athe kaya ngo 1432 Western Kayah - Kaya Western 1432 -https://www.bible.com/bible/616/jhn.1.kyznt kyz kyznt janeruwarete ga jeeg 616 Kayabí 616 -https://www.bible.com/bible/691/jhn.1.txunt txu txunt metindjwynh kute mema kaben ny jarenh 691 Kayapó 691 -https://www.bible.com/bible/966/jhn.1.khz khz khz nupela testamen long tokples kalo long niugini 966 Keapara 966 -https://www.bible.com/bible/942/jhn.1.bmhnt bmh bmhnt uwait nugau ze naliu 942 Kein 942 -https://www.bible.com/bible/543/jhn.1.qqc kek qqc qeqchi bible 543 Kekchí 543 -https://www.bible.com/bible/545/jhn.1.qqc kek qqc qeqchi bible 545 Kekchí 545 -https://www.bible.com/bible/628/jhn.1.keknt kek keknt li santil hu 628 Kekchí 628 -https://www.bible.com/bible/2052/jhn.1.kbo kbo kbo u duko muke mungu ve ri 2052 Keliko 2052 -https://www.bible.com/bible/1158/jhn.1.kyqnt kyq kyqnt kitapm ken raa dooko kiji ute jeege 1158 Kenga 1158 -https://www.bible.com/bible/388/jhn.1.kennt ken kennt ekati nku nko 388 Kenyang 388 -https://www.bible.com/bible/1704/jhn.1.ask cor ask an sowter 1997 1704 Cornish - Kernewek 1704 -https://www.bible.com/bible/1079/jhn.1.abk cor abk an bibel kernewek 2017 1079 Cornish - Kernewek 1079 -https://www.bible.com/bible/1105/jhn.1.kyg2013 kyg kyg2013 the keyagana nt and 25 ot books 1105 Keyagana 1105 -https://www.bible.com/bible/1865/jhn.1.khasicl-bsi kha khasicl bsi khasi cl bible bsi 1865 Khasi 1865 -https://www.bible.com/bible/1058/jhn.1.khia kix khia asio thsamlai 1058 Khiamniungan Naga 1058 -https://www.bible.com/bible/548/jhn.1.kkg naq kkg elobmis 548 Khoekhoe - Khoekhoegowab 548 -https://www.bible.com/bible/1958/jhn.1.kcl02 cnk kcl02 khumi common language bible 1958 Khumi Chin 1958 -https://www.bible.com/bible/1827/jhn.1.kbnt kql kbnt mak kianing balang 1827 Kyenele - Kiañiŋ Balaŋ 1827 -https://www.bible.com/bible/812/jhn.1.ntb beq ntb musamu wamubwete 812 Beembe (Congo) - KiBeembe 812 -https://www.bible.com/bible/262/jhn.1.qchi04 qug qchi04 dios rimashca shimicunami 262 Chimborazo Highland Quichua - Kichwa: Chaupi urcucuna 262 -https://www.bible.com/bible/98/jhn.1.mtds qug mtds mushuj testamento diospaj shimi 98 Chimborazo Highland Quichua - Kichwa: Chaupi urcucuna 98 -https://www.bible.com/bible/264/jhn.1.quii qvi quii diospaj shimi 264 Imbabura Highland Quichua - Kichwa: Imbabura 264 -https://www.bible.com/bible/261/jhn.1.qca04 qxr qca04 dios rimashcata quillcashcami 261 Cañar Highland Quichua - Kichwa: Ura urcucuna 261 -https://www.bible.com/bible/1815/jhn.1.llnt heh llnt lufingano lupya 1815 Hehe - Kihehe 1815 -https://www.bible.com/bible/1622/jhn.1.gky kik gky kiugo githeru kia ngai kirikaniro kiria gikuru na kiria kieru 1622 Kikuyu 1622 -https://www.bible.com/bible/1202/jhn.1.gikdc kik gikdc gikuyu common language with dc 1202 Kikuyu 1202 -https://www.bible.com/bible/1201/jhn.1.gikcl kik gikcl ibuku ria uhoro uria mwega 1201 Kikuyu 1201 -https://www.bible.com/bible/1491/jhn.1.ntk50 ktu ntk50 le nouveau testament en kikwango 1950 1491 Kituba (Democratic Republic of Congo) - Kikwango 1491 -https://www.bible.com/bible/1022/jhn.1.bk kia bk bible kim 1022 Kim 1022 -https://www.bible.com/bible/810/jhn.1.bk kia bk bible kim 810 Kim 810 -https://www.bible.com/bible/1612/jhn.1.kqpnt kqp kqpnt magtubu too ton binare to korbi 1612 Kimré 1612 -https://www.bible.com/bible/71/jhn.1.hau hau hau littafi mai tsarki 71 Hausa 71 -https://www.bible.com/bible/1614/jhn.1.bha hau bha biblica hausa new testament 1614 Hausa 1614 -https://www.bible.com/bible/76/jhn.1.hwcnt hwc hwcnt hawaii pidgin 76 Hawai'i Creole English - Hawai’i Pidgin 76 -https://www.bible.com/bible/1149/jhn.1.xednt xed xednt deftera lfida dzratawi 1149 Hdi 1149 -https://www.bible.com/bible/1045/jhn.1.hegntpo heg hegntpo buk niu in hida balu nol dehet deng apan kloma ki in dadi ka 1045 Helong 1045 -https://www.bible.com/bible/721/jhn.1.chdnt chd chdnt lataiqui loya apa ile al c a lixpic epa landios 721 Highland Oaxaca Chontal 721 -https://www.bible.com/bible/781/jhn.1.azznt azz azznt in cuali tajtoltzin de dios 781 Highland Puebla Nahuatl 781 -https://www.bible.com/bible/10/jhn.1.hlgn hil hlgn ang pulong sang dios 10 Hiligaynon 10 -https://www.bible.com/bible/820/jhn.1.hhbr hin hhbr hindi holy bible 820 Hindi (Roman script) - Hindi (Roman Script) 820 -https://www.bible.com/bible/587/jhn.1.hixnt hix hixnt khoryenkom karyehtana 587 Hixkaryána 587 -https://www.bible.com/bible/1864/jhn.1.hmarmb-bsi hmr hmarmb bsi pathien lekhabu inthieng bsi 1864 Hmar 1864 -https://www.bible.com/bible/1863/jhn.1.hmarcl-bsi hmr hmarcl bsi pathien lekhabu inthieng bsi 1863 Hmar 1863 -https://www.bible.com/bible/1525/jhn.1.hwb mww hwb meo white hmong daw bible 1525 Hmong Daw - Hmong 1525 -https://www.bible.com/bible/1269/jhn.1.hmowsv mww hmowsv vajtswv txojlus lus hmoob dawb txhais tshiab xyoo 2004 1269 Hmong Daw - Hmong 1269 -https://www.bible.com/bible/1216/jhn.1.hmobsv hnj hmobsv vaajtswv txujlug lug moob ntsuab txhais tshab xyoo 2004 1216 Hmong Njua - Hmong Hoa 1216 -https://www.bible.com/bible/1726/jhn.1.hbb hnj hbb vietnam 1726 Hmong Njua - Hmong Hoa 1726 -https://www.bible.com/bible/595/jhn.1.hopnt hop hopnt god lavayiyat an puhuvasiwni 595 Hopi 595 -https://www.bible.com/bible/1026/jhn.1.hot hot hot wapombeng aneng abo matheng 1026 Hote 1026 -https://www.bible.com/bible/1018/jhn.1.hran hra hran pathian lekhabu irthiang 1018 Hrangkhol 1018 -https://www.bible.com/bible/39/jhn.1.kok hrv kok knjiga o kristu 39 Croatian - Hrvatski 39 -https://www.bible.com/bible/1489/jhn.1.krjnt krj krjnt ang bag o nga kasugtanan 1489 Kinaray-A 1489 -https://www.bible.com/bible/1226/jhn.1.kutu kdc kutu lagano da sambi kwa wanhu wose 1226 Kutu - King'hutu 1226 -https://www.bible.com/bible/1813/jhn.1.knt09 nim knt09 lyago nipia mpola nanziiza ku antu tulu kuntambo ya kinilyamba 2009 1813 Nilamba - Kĩnilyamba 1813 -https://www.bible.com/bible/430/jhn.1.kbnt kin kbnt bibiliya ntagatifu 430 Rwandan - Kinyarwanda 430 -https://www.bible.com/bible/351/jhn.1.bysb kin bysb bibiliya yera 351 Rwandan - Kinyarwanda 351 -https://www.bible.com/bible/387/jhn.1.bird kin bird bibiliya ijambo ryimana 387 Rwandan - Kinyarwanda 387 -https://www.bible.com/bible/395/jhn.1.bir kin bir bibiliya ijambo ryimana 395 Rwandan - Kinyarwanda 395 -https://www.bible.com/bible/1371/jhn.1.kirnt geb kirnt fhe bakimen kaman kameng 1371 Kire 1371 -https://www.bible.com/bible/301/jhn.1.rnt rim rnt kirimi new testament 301 Nyaturu - Kirimi 301 -https://www.bible.com/bible/948/jhn.1.kjent kje kjent makromod lalap lirna wawan 948 Kisar 948 -https://www.bible.com/bible/1811/jhn.1.kishnt05 ksb kishnt05 kishambala new testament 2005 1811 Shambala - Kishambala 1811 -https://www.bible.com/bible/496/jhn.1.kbq kss kbq bible 496 Southern Kisi - Kisi 496 -https://www.bible.com/bible/811/jhn.1.kbq kss kbq kisi bible 811 Southern Kisi - Kisi 811 -https://www.bible.com/bible/1394/jhn.1.bkg kqs bkg bii bila 1394 Kissi - Kisiei 1394 -https://www.bible.com/bible/1817/jhn.1.suvdc swh suvdc swahili revised union version 1817 Swahili - Kiswahili 1817 -https://www.bible.com/bible/164/jhn.1.suv swh suv swahili union version 164 Swahili - Kiswahili 164 -https://www.bible.com/bible/1818/jhn.1.suv swh suv swahili revised union version 1818 Swahili - Kiswahili 1818 -https://www.bible.com/bible/1627/jhn.1.nen swh nen neno bibilia takatifu 2014 1627 Swahili - Kiswahili 1627 -https://www.bible.com/bible/393/jhn.1.bhnd swh bhnd biblia habari njema 393 Swahili - Kiswahili 393 -https://www.bible.com/bible/74/jhn.1.bhn swh bhn biblia habari njema 74 Swahili - Kiswahili 74 -https://www.bible.com/bible/1920/jhn.1.tula tul tula bwaki kifwiyang 1920 Tula - Ki̱tule 1920 -https://www.bible.com/bible/1812/jhn.1.kivnt99 vun kivnt99 kivunjo new testament 1999 1812 Vunjo - Kivunjo 1812 -https://www.bible.com/bible/1617/jhn.1.nwm yom nwm nkanda wu moyo nguizani yimona ayi minkunga 1617 Yombe - Kiyombi 1617 -https://www.bible.com/bible/1576/jhn.1.kpw kpw kpw mano kaming 1576 Kobon 1576 -https://www.bible.com/bible/1540/jhn.1.kokborok-bsi trp kokborok bsi kokborok bible re edited bsi 1540 Kok Borok - Kokborok 1540 -https://www.bible.com/bible/1774/jhn.1.kma kmy kma ngming nvahaaling gbaning koming 1774 Koma 1774 -https://www.bible.com/bible/1292/jhn.1.xbiy xbi xbiy matyu sank wulapm weinkel ka matyu apulel 1292 Kombio 1292 -https://www.bible.com/bible/1299/jhn.1.xbiw xbi xbiw kambio wampukuamp bible portions 1299 Kombio 1299 -https://www.bible.com/bible/1542/jhn.1.kmm-bsi kmm kmm bsi lekharabu intheng bsi 1542 Kom (India) - Komrem 1542 -https://www.bible.com/bible/1567/jhn.1.kxw2014 kxw kxw2014 godiha ta bolofei 1567 Konai 1567 -https://www.bible.com/bible/1866/jhn.1.konkani-bsi gom konkani bsi novo korar nt 1866 Goan Konkani - Konkani 1866 -https://www.bible.com/bible/1150/jhn.1.xonb xon xonb uwumbor aagbang 1150 Konkomba 1150 -https://www.bible.com/bible/933/jhn.1.nage nbe nage ujao laitep 933 Konyak Naga 933 -https://www.bible.com/bible/1072/jhn.1.kprnt kpr kprnt god da geka seka 1072 Korafe-Yegha 1072 -https://www.bible.com/bible/1574/jhn.1.kpr kpr kpr god da geka seka 1574 Korafe-Yegha 1574 -https://www.bible.com/bible/1571/jhn.1.coe coe coe dios chuo kuaphuro 1571 Koreguaje 1571 -https://www.bible.com/bible/925/jhn.1.bprnt bpr bprnt i falami kasafne new testament 925 Koronadal Blaan 925 -https://www.bible.com/bible/1109/jhn.1.kzent kze kzent auna aimba simai tarumakain kwasai 1109 Kosena 1109 -https://www.bible.com/bible/1139/jhn.1.kyfnt kyf kyfnt wvsuslolue loluu sebhe 1139 Kouya 1139 -https://www.bible.com/bible/500/jhn.1.kwb gkp kwb bible 500 Guinea Kpelle - Kpèlèè 500 -https://www.bible.com/bible/450/jhn.1.snd12 nbl snd12 isindebele 2012 translation 450 South Ndebele - isiNdebele 450 -https://www.bible.com/bible/282/jhn.1.xho96 xho xho96 ibhayibhile 282 Xhosa - isiXhosa 282 -https://www.bible.com/bible/281/jhn.1.xho75 xho xho75 izibhalo ezingcwele 281 Xhosa - isiXhosa 281 -https://www.bible.com/bible/286/jhn.1.zul59 zul zul59 ibhayibheli elingcwele 286 Zulu - isiZulu 286 -https://www.bible.com/bible/1451/jhn.1.ntic icr ntic the new testament in islander creole 1451 Islander Creole English 1451 -https://www.bible.com/bible/1915/jhn.1.biblian isl biblian biblian 2007 1915 Icelandic - Íslenska 1915 -https://www.bible.com/bible/1331/jhn.1.isdnt isd isdnt ya babanan ne dios nga nesurat kiya baru wa tulag genesis se exodus 1331 Isnag 1331 -https://www.bible.com/bible/740/jhn.1.mirnt mir mirnt el nuevo testamento en mixe de guichicovi 740 Isthmus Mixe 740 -https://www.bible.com/bible/824/jhn.1.zaint zai zaint stiidxa dios didxaza el nuevo testamento de nuestro senor jesucristo en el zapoteco del istmo 824 Isthmus Zapotec 824 -https://www.bible.com/bible/1661/jhn.1.nhxtnt nhx nhxtnt el nuevo testamento 1661 Isthmus-Mecayapan Nahuatl 1661 -https://www.bible.com/bible/1654/jhn.1.nhxmnt nhx nhxmnt el nuevo testamento 1654 Isthmus-Mecayapan Nahuatl 1654 -https://www.bible.com/bible/141/jhn.1.rdv24 ita rdv24 versione diodati riveduta 141 Italian - Italiano 141 -https://www.bible.com/bible/123/jhn.1.nr94 ita nr94 nuova riveduta 1994 123 Italian - Italiano 123 -https://www.bible.com/bible/122/jhn.1.nr06 ita nr06 nuova riveduta 2006 122 Italian - Italiano 122 -https://www.bible.com/bible/1196/jhn.1.icl00d ita icl00d traduzione interconfessionale in lingua corrente 1196 Italian - Italiano 1196 -https://www.bible.com/bible/1197/jhn.1.icl00 ita icl00 traduzione interconfessionale in lingua corrente 1197 Italian - Italiano 1197 -https://www.bible.com/bible/54/jhn.1.do885 ita do885 diodati bible 54 Italian - Italiano 54 -https://www.bible.com/bible/1315/jhn.1.ivvnt ivv ivvnt no vayo a testamento 1315 Ivatan 1315 -https://www.bible.com/bible/1073/jhn.1.kbmnt kbm kbmnt yisu kilisi ane binge vie giengk iwal avos 1073 Iwal 1073 -https://www.bible.com/bible/608/jhn.1.ixlnnt ixl ixlnnt u ak testamento tu kuyobal 608 Ixil 608 -https://www.bible.com/bible/1395/jhn.1.bkpg gkp bkpg yala laawoo hebe 1395 Guinea Kpelle - Kpèlèè 1395 -https://www.bible.com/bible/1393/jhn.1.bkpdcg gkp bkpdcg yala laawoo hebe dc 1393 Guinea Kpelle - Kpèlèè 1393 -https://www.bible.com/bible/1479/jhn.1.kwb xpe kwb ngala kolo maa waai 1479 Liberia Kpelle - Kpelle Liberia 1479 -https://www.bible.com/bible/1957/jhn.1.hat98 hat hat98 1998 haitienne 1957 Haitian Creole - Kreyòl Ayisyen 1957 -https://www.bible.com/bible/1362/jhn.1.ropotnt rop ropotnt holi baibul 1362 Australian Creole - Kriol 1362 -https://www.bible.com/bible/1301/jhn.1.kgf kgf kgf sisipac ac elia 1301 Kube 1301 -https://www.bible.com/bible/1375/jhn.1.gvnntotpo gvn gvnntotpo godumu kuku 1375 Kuku-Yalanji 1375 -https://www.bible.com/bible/1441/jhn.1.bilk kdi bilk baibuli i leb kumam 1441 Kumam 1441 -https://www.bible.com/bible/1334/jhn.1.kue kue kue yesus kamo wakai 1334 Kuman (Papua New Guinea) - Kuman 1334 -https://www.bible.com/bible/240/jhn.1.cuknt cuk cuknt bab dummad jesucristoba igar mesisad garda 240 San Blas Kuna - Kuna San Blas 240 -https://www.bible.com/bible/1028/jhn.1.cuk cuk cuk bab dummad garda islidikid 1028 San Blas Kuna - Kuna San Blas 1028 -https://www.bible.com/bible/2085/jhn.1.kvg kvg kvg mbumbukiam qa manqat mbomambaqape 2085 Kuni-Boazi 2085 -https://www.bible.com/bible/1067/jhn.1.kupnt kup kupnt bainetinavoz tep tokatit 1067 Kunimaipa 1067 -https://www.bible.com/bible/1178/jhn.1.xuont xuo xuont mbede saka kuni fie 1178 Kuo 1178 -https://www.bible.com/bible/996/jhn.1.ktont kto ktont bais ula mumuru aime iesu 996 Kuot 996 -https://www.bible.com/bible/1287/jhn.1.mknntpo mkn mknntpo tuhan pung kata kata 1287 Kupang Malay 1287 -https://www.bible.com/bible/1814/jhn.1.ee95 kuj ee95 endagano ehea 1995 1814 Kuria 1814 -https://www.bible.com/bible/1948/jhn.1.mkrpro kmr mkrpro metheloken hezrete sileman 1947 1948 Kurmanji Kurdish - Kurmancî 1948 -https://www.bible.com/bible/251/jhn.1.kurnt kmr kurnt kurmanji incil 251 Kurmanji Kurdish - Kurmancî 251 -https://www.bible.com/bible/1644/jhn.1.ktm ktm ktm kurti baibel 1644 Kurti 1644 -https://www.bible.com/bible/1867/jhn.1.kurux-bsi kru kurux bsi punaa gcchrnaa nt bsi 1867 Kurukh - Kurux 1867 -https://www.bible.com/bible/2071/jhn.1.kubnt kub kubnt kutsingken ira rimam ti saen kyag 2071 Kutep 2071 -https://www.bible.com/bible/1248/jhn.1.kwau kwd kwau fatalana god 1248 Kwaio 1248 -https://www.bible.com/bible/1447/jhn.1.tnk tnk tnk n at nimwi nari me 1447 Kwamera 1447 -https://www.bible.com/bible/1164/jhn.1.kwjnt kwj kwjnt kwanga new testament 1164 Kwanga 1164 -https://www.bible.com/bible/1904/jhn.1.kwf kwf kwf fau alangainga faolu ana alaanga kwaraae 1904 Kwara'ae 1904 -https://www.bible.com/bible/990/jhn.1.kmont kmo kmont god riiti maji kepi 990 Kwoma 990 -https://www.bible.com/bible/1396/jhn.1.mak lbb mak buk mak long tokples label long niugini 1396 Label 1396 -https://www.bible.com/bible/786/jhn.1.lacnt lac lacnt a quet u t no a ric beno 786 Lacandon 786 -https://www.bible.com/bible/458/jhn.1.zplnt zpl zplnt stichia diose dialu 458 Lachixío Zapotec 458 -https://www.bible.com/bible/1458/jhn.1.lbj lbj lbj ladakhi 1458 Ladakhi - ladakhspa 1458 -https://www.bible.com/bible/91/jhn.1.lhbr lhu lhbr lahu bible 91 Lahu - Ladhof 91 -https://www.bible.com/bible/1603/jhn.1.lhint lhi lhint lad hur si liq phu awg suhx 1603 Lahu Shi 1603 -https://www.bible.com/bible/2067/jhn.1.kl1960 lap kl1960 testament ke siki 1960 kabba laka 2067 Laka (Chad) 2067 -https://www.bible.com/bible/836/jhn.1.cnlnt cnl cnlnt juu2 miin32 e3 ca23ngin2 dios 836 Lalana Chinantec 836 -https://www.bible.com/bible/650/jhn.1.qufnt quf qufnt mushuq testamento 650 Lambayeque Quechua 650 -https://www.bible.com/bible/1607/jhn.1.lmbnt2016 lai lmbnt2016 lambya new testament 1607 Lambya 1607 -https://www.bible.com/bible/1024/jhn.1.nag1 lmk nag1 ren pauriina 1024 Lamkang 1024 -https://www.bible.com/bible/1974/jhn.1.lango laj lango buk obanga acil ame olwongo ni baibul ame ogeo loko i leb lango 1974 Lango (Uganda) - Lango 1974 -https://www.bible.com/bible/472/jhn.1.la79 laj la79 baibul 1979 472 Lango (Uganda) - Lango 472 -https://www.bible.com/bible/390/jhn.1.lcl lsi lcl lacid common language bible 390 Lashi 390 -https://www.bible.com/bible/823/jhn.1.vulg lat vulg vulgata latina 823 Latin - Latina 823 -https://www.bible.com/bible/488/jhn.1.rt65 lav rt65 1965 gada bibeles izdevuma revidetais teksts 488 Latvian - Latviešu Valoda 488 -https://www.bible.com/bible/1669/jhn.1.ltv1965 lav ltv1965 latvijas bibeles biedriba 1669 Latvian - Latviešu Valoda 1669 -https://www.bible.com/bible/318/jhn.1.ljd lav ljd latviesu jauna deriba 318 Latvian - Latviešu Valoda 318 -https://www.bible.com/bible/1307/jhn.1.tmb ton tmb ko e tohitapu katoa 1307 Tonga (Tonga Islands) - lea fakatonga 1307 -https://www.bible.com/bible/1070/jhn.1.tcnt ton tcnt ko e fuakava foou ko e taulua 1070 Tonga (Tonga Islands) - lea fakatonga 1070 -https://www.bible.com/bible/1497/jhn.1.ntki57 lgm ntki57 nouveau testament en kilega 1497 Lega-Mwenga 1497 -https://www.bible.com/bible/1853/jhn.1.ceknt cek ceknt caekacai kangthae lemi 1853 Eastern Khumi Chin - Lemi 1853 -https://www.bible.com/bible/552/jhn.1.bb03 leh bb03 baibo 2003 552 Lenje 552 -https://www.bible.com/bible/1606/jhn.1.lww lww lww lologena wo kienane yesu kristo 1606 Lewo 1606 -https://www.bible.com/bible/356/jhn.1.lhcl mhx lhcl lhaovo common language bible 356 Maru - Lhao Vo 356 -https://www.bible.com/bible/109/jhn.1.nia nia nia soera niamonio 109 Nias - Li Niha 109 -https://www.bible.com/bible/1537/jhn.1.nagh-bsi njn nagh bsi masanbo bible bsi 1537 Liangmai Naga 1537 -https://www.bible.com/bible/310/jhn.1.ltzb lit ltzb biblija senasis testamentas naujasis testamentas 310 Lithuanian - Lietuvių 310 -https://www.bible.com/bible/321/jhn.1.ltb lit ltb k burbulio vertimas 321 Lithuanian - Lietuvių 321 -https://www.bible.com/bible/419/jhn.1.lbd-kan lit lbd kan a rubsio ir c kavaliausko vertimas be antrojo kanono knygu 419 Lithuanian - Lietuvių 419 -https://www.bible.com/bible/420/jhn.1.lbd-eku lit lbd eku a rubsio ir c kavaliausko vertimas su antrojo kanono knygomis 420 Lithuanian - Lietuvių 420 -https://www.bible.com/bible/1460/jhn.1.kugl kpf kugl uwonbor a gbonpong likoonl 1460 Komba - Likɔɔnl 1460 -https://www.bible.com/bible/1238/jhn.1.kpfnt kpf kpfnt singgi alip ekap 1238 Komba - Likɔɔnl 1238 -https://www.bible.com/bible/559/jhn.1.aco85 ach aco85 baibul 1985 559 Acholi (Acoli) - Lwo 559 -https://www.bible.com/bible/1772/jhn.1.lee lee lee yi dobre nandul le sebe re 1772 Lyélé 1772 -https://www.bible.com/bible/1380/jhn.1.gs tod gs gala sevei 1380 Toma - Lɔɠɔma 1380 -https://www.bible.com/bible/1689/jhn.1.mnt mdy mnt maale new testament 1689 Maale 1689 -https://www.bible.com/bible/1688/jhn.1.mb mdy mb geeeezho maatzaaaapo 1688 Maale 1688 -https://www.bible.com/bible/1816/jhn.1.mbs mas mbs biblia sinyati 1816 Masai - Maasai 1816 -https://www.bible.com/bible/324/jhn.1.mayabi yua mayabi biblia maya 324 Yucateco - Màaya 324 -https://www.bible.com/bible/1108/jhn.1.mca mca mca intata e ijei 1108 Maca 1108 -https://www.bible.com/bible/633/jhn.1.mcbnt mcb mcbnt iriniane tasorintsi 633 Machiguenga 633 -https://www.bible.com/bible/1090/jhn.1.myynt myy myynt dios oca tuti 1090 Macuna 1090 -https://www.bible.com/bible/618/jhn.1.mbcnt mbc mbcnt amenan pe paapaya uyetatokon 618 Macushi 618 -https://www.bible.com/bible/1802/jhn.1.madant mda madant ren kpan nyu suswe 1802 Mada (Nigeria) - Mada 1802 -https://www.bible.com/bible/1099/jhn.1.mmxntps mmx mmxntps lenavolo lovoang kaala maxat la sam 1099 Madak 1099 -https://www.bible.com/bible/908/jhn.1.ntmof maf ntmof nouveau testament mofa 908 Mafa 908 -https://www.bible.com/bible/1282/jhn.1.sgb sgb sgb ya habi ni apo namalyari bayon tsipan ayta mag antsi 1282 Mag-antsi Ayta 1282 -https://www.bible.com/bible/847/jhn.1.xtmntpp xtm xtmntpp tnuu vii tnuu vaa susi ma 847 Magdalena Peñasco Mixtec 847 -https://www.bible.com/bible/920/jhn.1.r%C3%9Af hun ruf revised hungarian bible 920 Hungarian - Magyar 920 -https://www.bible.com/bible/84/jhn.1.hunk hun hunk karoli bible 1908 84 Hungarian - Magyar 84 -https://www.bible.com/bible/1239/jhn.1.hunb hun hunb magyar bibliatarsulat uj forditasu bibliaja 1239 Hungarian - Magyar 1239 -https://www.bible.com/bible/26/jhn.1.eiv hun eiv ujszovetseg elet igazsag es vilagossag 26 Hungarian - Magyar 26 -https://www.bible.com/bible/252/jhn.1.lifnt lif lifnt 252 Limbu 252 -https://www.bible.com/bible/364/jhn.1.lifnt lif lifnt yesu khristare kunisaam 364 Limbu (Devanagari) 364 -https://www.bible.com/bible/1240/jhn.1.lnt lmp lnt limbum new testament 1240 Limbum 1240 -https://www.bible.com/bible/1274/jhn.1.kmknt kmk kmknt ugud apudyus equals ti baro tulag 1274 Limos Kalinga 1274 -https://www.bible.com/bible/1964/jhn.1.mnb lin mnb mokanda na bomoi boyokani ya sika mpe banzembo 1964 Lingala 1964 -https://www.bible.com/bible/1294/jhn.1.loqnt loq loqnt sangola eenyakune 1294 Lobala 1294 -https://www.bible.com/bible/1834/jhn.1.log log log buku ta tidhi slash slash ru yizo dhi adhya 1834 Logoti - Logo 1834 -https://www.bible.com/bible/1496/jhn.1.ntke58 khy ntke58 le nouveau testament in kele lokele 1958 1496 Kele (Democratic Republic of Congo) - Lokele 1496 -https://www.bible.com/bible/1456/jhn.1.lnt71 lom lnt71 deve niinei 1456 Loma (Liberia) 1456 -https://www.bible.com/bible/1492/jhn.1.bby62 nxd bby62 bokanda bona yacomba 1492 Ngando (Democratic Republic of Congo) - Longando 1492 -https://www.bible.com/bible/1255/jhn.1.uvlnt uvl uvlnt tomunga hel heueu ngana 1255 Lote 1255 -https://www.bible.com/bible/787/jhn.1.tacnt tac tacnt onorugame nila raichali 787 Lowland Tarahumara 787 -https://www.bible.com/bible/825/jhn.1.byk09 loz byk09 bibele ye kenile catholic edition 825 Lozi 825 -https://www.bible.com/bible/1169/jhn.1.lng lex lng puka lululi 1169 Luang 1169 -https://www.bible.com/bible/1494/jhn.1.ntlk52 sop ntlk52 kilombeno kihya kia nfumwetu yesu kidisitu 1494 Songe - Luba-Kalebwe 1494 -https://www.bible.com/bible/1829/jhn.1.lug68 lug lug68 ekitabo ekitukuvu ekiyitibwa baibuli endagaano enkadde nempya 1829 Ganda - Luganda 1829 -https://www.bible.com/bible/1625/jhn.1.lcb lug lcb luganda contemporary bible 1625 Ganda - Luganda 1625 -https://www.bible.com/bible/1423/jhn.1.lbr lug lbr ekitabo ekitukuvu baibuli 1423 Ganda - Luganda 1423 -https://www.bible.com/bible/2182/jhn.1.bibu1 lug bibu1 bibuliya entukuvu 2182 Ganda - Luganda 2182 -https://www.bible.com/bible/1783/jhn.1.lwo lwo lwo anweehd me nyaahn 1783 Luwo 1783 -https://www.bible.com/bible/1756/jhn.1.ayl13 mgr ayl13 amazwi yakwe leza 2013 1756 Mambwe (ichi-): Lungu - Mambwe-Lungu 1756 -https://www.bible.com/bible/1784/jhn.1.maw maw maw naawunni kunni paalli 1784 Mampruli 1784 -https://www.bible.com/bible/1232/jhn.1.mvant mva mvant testamen oauoau 1232 Manam 1232 -https://www.bible.com/bible/2074/jhn.1.kby kby kby linjila 2074 Manga Kanuri 2074 -https://www.bible.com/bible/1089/jhn.1.mmont mmo mmont vakasin moos 1089 Mangga Buang 1089 -https://www.bible.com/bible/761/jhn.1.bmnt mqy bmnt bahasa manggarai new testament 761 Manggarai 761 -https://www.bible.com/bible/1122/jhn.1.mhbnt mbh mhbnt god ile riong kinnga ponganga nge mangsengre okei 1122 Mangseng 1122 -https://www.bible.com/bible/1214/jhn.1.knf knf knf ulibra wi nasibati 1214 Mankanya 1214 -https://www.bible.com/bible/1246/jhn.1.msknt msk msknt yang bago na togon kanatu 1246 Mansaka 1246 -https://www.bible.com/bible/94/jhn.1.mri1952 mri mri1952 te paipera tapu 1952 94 Maori - Māori 94 -https://www.bible.com/bible/1127/jhn.1.cimrnt rar cimrnt te koreromotu ou reo maori kuki airani 1127 Cook Islands Maori (Rarotongan) - Māori Kūki 'Āirani 1127 -https://www.bible.com/bible/1847/jhn.1.cimb rar cimb bibilia tapu 1847 Cook Islands Maori (Rarotongan) - Māori Kūki 'Āirani 1847 -https://www.bible.com/bible/1386/jhn.1.mlhnt mlh mlhnt mangkekerisiere binge qurang jojofo gariine 1386 Mape 1386 -https://www.bible.com/bible/945/jhn.1.bzhnt bzh bzhnt mehobop yesu kerisi yi gagek mewis sen vong yam vu hil 945 Mapos Buang 945 -https://www.bible.com/bible/520/jhn.1.arnnt arn arnnt ngunechen ni kume dungu 520 Mapudungun 520 -https://www.bible.com/bible/355/jhn.1.arn arn arn ngunechen tani kume dungu 355 Mapudungun 355 -https://www.bible.com/bible/1023/jhn.1.nag2 nma nag2 karanu kabi samtam 1023 Maram Naga 1023 -https://www.bible.com/bible/855/jhn.1.ba mpg ba bible azumeina 855 Marba 855 -https://www.bible.com/bible/349/jhn.1.dadnt dad dadnt mata ifeneya ne od 349 Marik 349 -https://www.bible.com/bible/1544/jhn.1.maring-bsi nng maring bsi khyingei putlou bsi 1544 Maring Naga 1544 -https://www.bible.com/bible/2183/jhn.1.lpe myx lpe ibayibuli ingwalaafu 2183 Masaaba 2183 -https://www.bible.com/bible/2184/jhn.1.lce myx lce ibayibuli ingwalaafu 2184 Masaaba 2184 -https://www.bible.com/bible/557/jhn.1.massana mcn massana bibalda ta peldetta 557 Masana 557 -https://www.bible.com/bible/1222/jhn.1.msb msb msb an maayo na barita hali sa dios 1222 Masbatenyo 1222 -https://www.bible.com/bible/1247/jhn.1.klv klv klv na kel gati an veveu nasoruan sigot len nasoruan ta uluveu 1247 Maskelynes 1247 -https://www.bible.com/bible/1771/jhn.1.klv klv klv na kel gati an veveu nasoruan sigot len nasoruan ta uluveu 1771 Maskelynes 1771 -https://www.bible.com/bible/1002/jhn.1.mbtnt mbt mbtnt meupiya ne panugtulen bibliya ne matigsalug 1002 Matigsalug Manobo 1002 -https://www.bible.com/bible/631/jhn.1.mcfnt mcf mcfnt esuquidistu chuiquin tantiamete 631 Matsés 631 -https://www.bible.com/bible/1376/jhn.1.mphpo mph mphpo maung mark 1376 Maung 1376 -https://www.bible.com/bible/1405/jhn.1.mhlnt mhl mhlnt yeesus opor eliwa 1405 Mauwake 1405 -https://www.bible.com/bible/612/jhn.1.mblnt mbl mblnt topa yog tappet 612 Maxakalí 612 -https://www.bible.com/bible/285/jhn.1.sumu yan sumu papang yulni 285 Mayangna 285 -https://www.bible.com/bible/1348/jhn.1.mfy mfy mfy diosta nooki yorem nokpo 1348 Mayo 1348 -https://www.bible.com/bible/1330/jhn.1.duent ifu duent i bowon a pagpakikasungdu 1330 Mayoyao Ifugao 1330 -https://www.bible.com/bible/444/jhn.1.bm80 myb bm80 bible mbai 1980 444 Mbay 444 -https://www.bible.com/bible/1779/jhn.1.mbkamnt gai mbkamnt rarang aetaniacna kam wembang lang 1779 Borei - Mborena Kam 1779 -https://www.bible.com/bible/456/jhn.1.mqb mqb mqb aban am wiya awan 456 Mbuko 456 -https://www.bible.com/bible/1340/jhn.1.mnant mna mnant anutu sua kini potomaxana 1340 Mbula 1340 -https://www.bible.com/bible/627/jhn.1.mbb mck mbb livulu lya shukulu kalunga 627 Mbunda 627 -https://www.bible.com/bible/1066/jhn.1.gunnt gun gunnt nhanderuete ayvu ikya ey vae 1066 Guaraní: Mbyá - Mbyá Guaraní 1066 -https://www.bible.com/bible/1217/jhn.1.ssdc98 mos ssdc98 sebr sngo 1217 Mossi 1217 -https://www.bible.com/bible/1074/jhn.1.kpxnt kpx kpxnt iesu keliso hotoe tumu 1074 Mountain Koiali 1074 -https://www.bible.com/bible/788/jhn.1.ignnt ign ignnt eta taurinaquene maechajiriruvahi ema viya eta viyehe ticaijare puito eta nuevo testamento 788 Ignaciano - Moxos 788 -https://www.bible.com/bible/245/jhn.1.igb ign igb taurinakene maechejiriruwai ema viya tikaijare 245 Ignaciano - Moxos 245 -https://www.bible.com/bible/1046/jhn.1.moyon-bsi nmo moyon bsi ithar chonghak bsi 1046 Moyon Naga 1046 -https://www.bible.com/bible/952/jhn.1.aojmnt aoj aojmnt basef bu wami godi 952 Mufian 952 -https://www.bible.com/bible/958/jhn.1.aojfnt aoj aojfnt basef bu wami godi 958 Mufian 958 -https://www.bible.com/bible/523/jhn.1.bmrnt bmr bmrnt moocaani iiji 523 Muinane 523 -https://www.bible.com/bible/2076/jhn.1.mumnp18 kqa mumnp18 mum tok ples 2076 Mum 2076 -https://www.bible.com/bible/2069/jhn.1.mzmnt mzm mzmnt nyaa shoo boo laa a bee 2069 Mumuye 2069 -https://www.bible.com/bible/863/jhn.1.muar mua muar version revisee avec note explicatives 863 Mundang 863 -https://www.bible.com/bible/1792/jhn.1.muhntpo muh muhntpo to ngu muru ka me bete gina ngu s sudan 1792 Mündü 1792 -https://www.bible.com/bible/662/jhn.1.myunt myu myunt deus ekawentup kawen iisuat ekawen 662 Mundurukú 662 -https://www.bible.com/bible/596/jhn.1.huunt huu huunt jusinamui uai jusinamui jito rafue illa rabenico 596 Murui Huitoto 596 -https://www.bible.com/bible/99/jhn.1.tmt tih tmt tanou moonsoi timugon 99 Timugon Murut - Murut Timugon 99 -https://www.bible.com/bible/1130/jhn.1.bms mse bms boy lonana 1130 Musey 1130 -https://www.bible.com/bible/1855/jhn.1.musgum mug musgum du na sdik na wiini alaw 1855 Mousgoum - Musgu 1855 -https://www.bible.com/bible/1123/jhn.1.emipor emi emipor mussau emira bible 1123 Mussau-Emira 1123 -https://www.bible.com/bible/473/jhn.1.tucont tuc tucont maaron saveeng toni patabuang 473 Mutu 473 -https://www.bible.com/bible/470/jhn.1.tucnt tuc tucnt maaron saveeng tooni patabuyaang 470 Mutu 470 -https://www.bible.com/bible/1142/jhn.1.muynt muy muynt ma muweni sulumani ge melefit 1142 Muyang 1142 -https://www.bible.com/bible/1342/jhn.1.myw myw myw nupela testamen long tokples muyuw long niugini 1342 Muyuw 1342 -https://www.bible.com/bible/1789/jhn.1.moant moa moant jan nrale sewe 1789 Mwan 1789 -https://www.bible.com/bible/1148/jhn.1.wmwbi wmw wmwbi habari ngema 1148 Mwani 1148 -https://www.bible.com/bible/1338/jhn.1.nasntpo nas nasntpo kara naroong anta nerakung kongarana 1338 Naasioi 1338 -https://www.bible.com/bible/1132/jhn.1.nafnt naf nafnt kawawanggalen tata alakngang 1132 Nabak 1132 -https://www.bible.com/bible/452/jhn.1.mbjnt mbj mbjnt p op haga do panyyg hanam do hahyyh 452 Nadëb 452 -https://www.bible.com/bible/225/jhn.1.nhent nhe nhent ya ni nopa yancuic tlajtoli tlen toteco toca mocajtoc el nuevo testamento de nuestro senor jesucristo en el nahuatl de la huasteca oriental 225 Eastern Huasteca Nahuatl - Nahuat Eastern Huasteca 225 -https://www.bible.com/bible/747/jhn.1.nhebi nhe nhebi itlajtol toteco santa biblia 747 Eastern Huasteca Nahuatl - Nahuat Eastern Huasteca 747 -https://www.bible.com/bible/1725/jhn.1.nsunt nsu nsunt el nuevo testamento 1725 Sierra Negra Nahuatl - Nahuatl 1725 -https://www.bible.com/bible/366/jhn.1.nhint nhi nhint in yancuic tlahtolsintilil 366 Zacatlán-Ahuacatlán-Tepetzintla Nahuatl - Nahuatl Zacatlán-Ahuacatlán-Tepetzintla 366 -https://www.bible.com/bible/1133/jhn.1.naknt nak naknt la buk tabu ale halaba te la valolo ale taritigi te iesus kraist 1133 Nakanai 1133 -https://www.bible.com/bible/1113/jhn.1.ojbs ojb ojbs ocipwe kicimasinaikan 1113 Northwestern Ojibwa - Nakawēmowin 1113 -https://www.bible.com/bible/1119/jhn.1.ojbr ojb ojbr ojibwe kihcimasinaikan 1119 Northwestern Ojibwa - Nakawēmowin 1119 -https://www.bible.com/bible/1453/jhn.1.nssp nss nssp nongan hiyan 1453 Nali 1453 -https://www.bible.com/bible/1181/jhn.1.nvmnt nvm nvmnt godon vuak ma ijin 1181 Namiae 1181 -https://www.bible.com/bible/331/jhn.1.bjvnt bjv bjvnt kil at mindi ki sigi 331 Bedjond - Nangnda 331 -https://www.bible.com/bible/1445/jhn.1.bjvdbl bjv bjvdbl bjv makitibi l at luw at ki ta nanginda 1445 Bedjond - Nangnda 1445 -https://www.bible.com/bible/1136/jhn.1.nnt nhr nnt kabas qae xgae sa 1136 Naro 1136 -https://www.bible.com/bible/1908/jhn.1.ntu ntu ntu nzryrngrkxtr kc ate rut x sam 1908 Natügu 1908 -https://www.bible.com/bible/1336/jhn.1.meknt mek meknt mauni mamaga iifaga 1336 Mekeo 1336 -https://www.bible.com/bible/1000/jhn.1.med med med got nga nambu a ik kai 1000 Melpa 1000 -https://www.bible.com/bible/1345/jhn.1.sim sim sim nupela testamen long tokples mende long niugini 1345 Mende (Papua New Guinea) 1345 -https://www.bible.com/bible/1031/jhn.1.mee mee mee piunga ba bonga a pau 1031 Mengen 1031 -https://www.bible.com/bible/1168/jhn.1.meqnt meq meqnt dzam wedeye 1168 Merey 1168 -https://www.bible.com/bible/2179/jhn.1.mgo mgo mgo fiso fi 2179 Meta' 2179 -https://www.bible.com/bible/1790/jhn.1.mxvnt mxv mxvnt tuun na kindoo tata yo jesucristo xiin yo 1790 Metlatónoc Mixtec 1790 -https://www.bible.com/bible/802/jhn.1.miqnt mic miqnt gelulg glusuaqan gisiteget agnutmugsigw 802 Mi'kmaq 802 -https://www.bible.com/bible/861/jhn.1.zamnt zam zamnt testament cub co nac di s ndac che n tad jesucrist 861 Miahuatlán Zapotec 861 -https://www.bible.com/bible/1167/jhn.1.mptnt mpt mptnt gode dowan wengobe 1167 Mian 1167 -https://www.bible.com/bible/737/jhn.1.nclnt ncl nclnt ilajtulisli yancuic totata jesucristo 737 Michoacán Nahuatl 737 -https://www.bible.com/bible/870/jhn.1.mpppor mpp mpppor wapongte hibi luka salecebaicne nga galata 870 Migabac 870 -https://www.bible.com/bible/1261/jhn.1.mvn mvn mvn awaeha vovouna minaveha movia 1261 Minaveha 1261 -https://www.bible.com/bible/1061/jhn.1.htont hto htont juzinamui nuera uai 1061 Minica Huitoto 1061 -https://www.bible.com/bible/1764/jhn.1.em14 mwl em14 evangelhos em mirandes 1764 Mirandese - Mirandês 1764 -https://www.bible.com/bible/1482/jhn.1.mpx mpx mpx buki bwabwalena 1482 Misima-Panaeati 1482 -https://www.bible.com/bible/1078/jhn.1.mish mrg mish anu lugod 1078 Mising 1078 -https://www.bible.com/bible/433/jhn.1.msktu miq msktu dawan bila aiska 433 Mískito - Miskito 433 -https://www.bible.com/bible/298/jhn.1.msktu miq msktu dawan bila aiska 298 Mískito - Miskito 298 -https://www.bible.com/bible/774/jhn.1.zawnt zaw zawnt xtidxcoob dios ni biadna dad jesucrist 774 Mitla Zapotec 774 -https://www.bible.com/bible/1098/jhn.1.nvjob nav nvjob navajo bible 1098 Navajo 1098 -https://www.bible.com/bible/1836/jhn.1.naw naw naw ibwaare katowe kyula pvpwe 1836 Nawuri 1836 -https://www.bible.com/bible/1038/jhn.1.ndbv ndj ndbv lilaghanu lya shonu 1038 Ndamba 1038 -https://www.bible.com/bible/1493/jhn.1.ntn62 nnb ntn62 nouveau testament et psaumes en ndandi version 1962 1493 Nande - Ndandi 1493 -https://www.bible.com/bible/1833/jhn.1.kb80 nnb kb80 amasako aboytrtre wa nyamuhanga awakahulawa mo biblia 1833 Nande - Ndandi 1833 -https://www.bible.com/bible/1694/jhn.1.ndau ndc ndau bhaibheri rakachena muchindau 1694 Ndau 1694 -https://www.bible.com/bible/1793/jhn.1.ndznt ndz ndznt ngu ba toko nambee mi mbiri ta nda duu 1793 Ndogo 1793 -https://www.bible.com/bible/165/jhn.1.sv1750 nld sv1750 statenvertaling 165 Dutch - Nederlands 165 -https://www.bible.com/bible/328/jhn.1.nbg51 nld nbg51 nbg vertaling 1951 328 Dutch - Nederlands 328 -https://www.bible.com/bible/75/jhn.1.htb nld htb het boek 75 Dutch - Nederlands 75 -https://www.bible.com/bible/1990/jhn.1.hsv nld hsv herziene statenvertaling 1990 Dutch - Nederlands 1990 -https://www.bible.com/bible/1276/jhn.1.bb nld bb basisbijbel 1276 Dutch - Nederlands 1276 -https://www.bible.com/bible/428/jhn.1.nsnnt nsn nsnnt o uelhire uaia 428 Nehan 428 -https://www.bible.com/bible/483/jhn.1.mcnt crm mcnt oski tistemint 483 Cree: Moose - Nēhinawēwin 483 -https://www.bible.com/bible/1448/jhn.1.nifpnt nif nifpnt sampela hap nupela testamen long tokples nek long niugini 1448 Nek 1448 -https://www.bible.com/bible/601/jhn.1.gymnt gym gymnt kukwe kuin ngobokwe 601 Ngäbere 601 -https://www.bible.com/bible/516/jhn.1.bn89 sba bn89 bible ngambai 1989 516 Ngambay 516 -https://www.bible.com/bible/474/jhn.1.gngnt gng gngnt uwien ya jotiefenku ya gbonku 474 Ngangam 474 -https://www.bible.com/bible/1674/jhn.1.nnt2015 nnq nnt2015 ngindo new testament 2015 1674 Ngindo 1674 -https://www.bible.com/bible/1431/jhn.1.niy niy niy ungb ta ow ta to bhuku 1431 Ngiti 1431 -https://www.bible.com/bible/373/jhn.1.ngcl acn ngcl ngochang common language bible 373 Achang - Ngochang 373 -https://www.bible.com/bible/1490/jhn.1.ntng61 ngc ntng61 nouveau testament en ngombe 1961 1490 Ngombe (Democratic Republic of Congo) - Ngombe 1490 -https://www.bible.com/bible/1805/jhn.1.ndv dru ndv ngudradreadrekadhane ka sisiu lu kai yu sheng jing 1805 Rukai - Ngudradrekai 1805 -https://www.bible.com/bible/1043/jhn.1.ngbv ngp ngbv ndagano mpya kwa wanthu wose 1043 Ngulu 1043 -https://www.bible.com/bible/299/jhn.1.nbgm nnh nbgm new testament 299 Ngiemboon - Ngyemboon (Ngiemboon) 299 -https://www.bible.com/bible/134/jhn.1.rj pne rj rengah jian 134 Western Penan - Nibong 134 -https://www.bible.com/bible/1151/jhn.1.niint nii niint gos nge ek ka ei sinim kin ngolum 1151 Nii 1151 -https://www.bible.com/bible/1648/jhn.1.nmws nmw nmws metiu ge efeso 1648 Nimoa 1648 -https://www.bible.com/bible/367/jhn.1.ninnt nin ninnt ungbamvu ku abachi azhi ahehe ka 367 Ninzo 367 -https://www.bible.com/bible/1486/jhn.1.niva cag niva nivacle bible 1486 Nivaclé (Paraguay) - Niwaklé 1486 -https://www.bible.com/bible/255/jhn.1.nkont nko nkont bulu ntam popwe nkonya 255 Nkonya 255 -https://www.bible.com/bible/943/jhn.1.gawnt gaw gawnt kayaknu nai tituanak bau 943 Nobonob 943 -https://www.bible.com/bible/1051/jhn.1.nokt njb nokt niemnyan 1051 Nocte Naga 1051 -https://www.bible.com/bible/1775/jhn.1.lem lem lem yoosooso yi bumbenu cameroun 1775 Nomaande 1775 -https://www.bible.com/bible/647/jhn.1.notnt not notnt irinibare tosorintsi ocomantegoteri antigomi jesoquirisito 647 Nomatsiguenga 647 -https://www.bible.com/bible/1646/jhn.1.snfdbl snf snfdbl hewhewii winewiwii kooh kifiiliimunkii kiaskii 1646 Noon 1646 -https://www.bible.com/bible/461/jhn.1.nhunt nhu nhunt ngwa nyo mongkan mo monfem 461 Noone 461 -https://www.bible.com/bible/1249/jhn.1.cyant cya cyant el nuevo testamento 1249 Nopala Chatino 1249 -https://www.bible.com/bible/121/jhn.1.norsk nob norsk det norsk bibelselskap 1930 121 Norwegian Bokmål - Norsk: bokmål 121 -https://www.bible.com/bible/102/jhn.1.nb nob nb norsk bibel 88 slash 07 102 Norwegian Bokmål - Norsk: bokmål 102 -https://www.bible.com/bible/30/jhn.1.n78bm nob n78bm the bible in norwegian 1978 slash 85 bokmal 30 Norwegian Bokmål - Norsk: bokmål 30 -https://www.bible.com/bible/29/jhn.1.n11bm nob n11bm bibelen 2011 bokmal 29 Norwegian Bokmål - Norsk: bokmål 29 -https://www.bible.com/bible/115/jhn.1.elb nob elb en levende bok 115 Norwegian Bokmål - Norsk: bokmål 115 -https://www.bible.com/bible/120/jhn.1.n78nn nno n78nn bibelen 1978 slash 85 nynorsk 120 Norwegian Nynorsk - Norsk: nynorsk 120 -https://www.bible.com/bible/119/jhn.1.n11nn nno n11nn bibelen 2011 nynorsk 119 Norwegian Nynorsk - Norsk: nynorsk 119 -https://www.bible.com/bible/646/jhn.1.qulnt qul qulnt mosoj testamento 646 North Bolivian Quechua 646 -https://www.bible.com/bible/663/jhn.1.qvnnt qvn qvnnt tayta diospa guepacag testamentun 663 North Junín Quechua 663 -https://www.bible.com/bible/551/jhn.1.mof mfk mof mofu gudur new testament 551 North Mofu 551 -https://www.bible.com/bible/867/jhn.1.tbgntpo tbg tbgntpo qaraaka uva tivatora 867 North Tairora 867 -https://www.bible.com/bible/1228/jhn.1.tnnnt tnn tnnnt naoa r at ha uhgin n at ni at kis at n wi 1228 North Tanna 1228 -https://www.bible.com/bible/353/jhn.1.empntpo emp empntpo acore bedea 353 Northern Emberá 353 -https://www.bible.com/bible/1344/jhn.1.xnnnt xnn xnnnt kalin apo dios 1344 Northern Kankanay 1344 -https://www.bible.com/bible/2075/jhn.1.ncq ncq ncq prnaany eyyyaang echoaaraasii prkhn haaaim prnaany kaahaang phaasaakaahaang prnaany eyyyaang echoaaraasii prkhn haaaim prnaany kaahaang phaasaakaahaang 2075 Northern Katang 2075 -https://www.bible.com/bible/712/jhn.1.nhynt nhy nhynt itlajtol totajtzin dios equals el nuevo testamento 712 Northern Oaxaca Nahuatl 712 -https://www.bible.com/bible/658/jhn.1.paont pao paont te naa besa unnepu 658 Northern Paiute 658 -https://www.bible.com/bible/718/jhn.1.qvznt qvz qvznt diospa shimi 718 Northern Pastaza Quichua 718 -https://www.bible.com/bible/783/jhn.1.ncjnt ncj ncjnt in yancuic mononotzalistli ica totecohtzin jesucristo 783 Northern Puebla Nahuatl 783 -https://www.bible.com/bible/764/jhn.1.ntpnt ntp ntpnt diuusi niooquid utuducami oodamic d 764 Northern Tepehuan 764 -https://www.bible.com/bible/1907/jhn.1.nodthnt nod nodthnt phrakhristthrrmkhamphiir phaakhphanthsayyaaaihm 1907 Northern Thai 1907 -https://www.bible.com/bible/1561/jhn.1.xtnntplus xtn xtnntplus el nuevo testamento y unos libros del antiguo testamento 1561 Northern Tlaxiaco Mixtec 1561 -https://www.bible.com/bible/1183/jhn.1.opmnt opm opmnt got orhe meng brak ban 1183 Oksapmin 1183 -https://www.bible.com/bible/1187/jhn.1.ongnt ong ongnt il teingipe ma ili topwepe lapiri lirouku 1187 Olo 1187 -https://www.bible.com/bible/931/jhn.1.aomnt aom aomnt god are jogoru i oho 931 Ömie 931 -https://www.bible.com/bible/1569/jhn.1.onsnt ons onsnt yesu kristo wane kisi maep don 1569 Ono 1569 -https://www.bible.com/bible/1179/jhn.1.okvnt okv okvnt god ta duru javotoho 1179 Orokaiva 1179 -https://www.bible.com/bible/469/jhn.1.okyb kua okyb ombibeli iyapuki 469 Kuanyama - Oshikwanyama (Kwanyama) 469 -https://www.bible.com/bible/372/jhn.1.ondb ndo ondb ombiimbeli ondjapuki 372 Ndonga - OshiNdonga 372 -https://www.bible.com/bible/259/jhn.1.otqnt otq otqnt ar rayo nkohi jo har nhonho maxei ntongwi ar mahwifi har hai monda ne har nhomfo 259 Querétaro Otomi - Otom Querétaro 259 -https://www.bible.com/bible/258/jhn.1.otent ote otent ra rayo testamento 258 Mezquital Otomi - Otomi Mezquital 258 -https://www.bible.com/bible/707/jhn.1.zaont zao zaont diiz kuu ndyaadno yalnaban 707 Ozolotepec Zapotec 707 -https://www.bible.com/bible/710/jhn.1.chzntps chz chzntps new testament and psalms in chinantec ozumacin 710 Ozumacín Chinantec 710 -https://www.bible.com/bible/1939/jhn.1.uzlbc uzn uzlbc uzbek bible latin 1939 Uzbek - Oʻzbekcha (Ўзбекча) 1939 -https://www.bible.com/bible/1730/jhn.1.uzb uzn uzb mukaddas kitob 1730 Uzbek - Oʻzbekcha (Ўзбекча) 1730 -https://www.bible.com/bible/1435/jhn.1.pma pma pma paama bible 1435 Paama 1435 -https://www.bible.com/bible/1839/jhn.1.pma pma pma tus votut en selusien ten out voum 1839 Paama 1839 -https://www.bible.com/bible/1978/jhn.1.sigdblnt sig sigdblnt wiisi nyvvfalii teng ghana 1978 Paasaal 1978 -https://www.bible.com/bible/1349/jhn.1.pbbnnt pbb pbbnnt dyus yuwe u sesa 1349 Páez 1349 -https://www.bible.com/bible/486/jhn.1.print pri print tii pwiciri amu aamwari naa na ci 486 Paicî 486 -https://www.bible.com/bible/1870/jhn.1.paite-bsi pck paite bsi pathian laisiangthou bsi 1870 Paite Chin - Paite 1870 -https://www.bible.com/bible/2022/jhn.1.plupb plu plupb uhokri gahegbetawni nukune akak sawmus 2022 Palikúr 2022 -https://www.bible.com/bible/198/jhn.1.efo hun efo biblia egyszeru forditas 198 Hungarian - Magyar 198 -https://www.bible.com/bible/526/jhn.1.csia hun csia hungarian bible by lajos csia 526 Hungarian - Magyar 526 -https://www.bible.com/bible/1406/jhn.1.mzz mzz mzz maiadomu 1406 Maiadomu 1406 -https://www.bible.com/bible/1302/jhn.1.maint mai maint jiv at n s at ndesh 1302 Maithili 1302 -https://www.bible.com/bible/360/jhn.1.mtint mti mtint gae mataiwa 360 Maiwa (Papua New Guinea) 360 -https://www.bible.com/bible/1143/jhn.1.mcpnt mcp mcpnt kalaad zembi so a gugwaan 1143 Makaa 1143 -https://www.bible.com/bible/1673/jhn.1.mnt mgh mnt makua new testament 1673 Makhuwa-Meetto - Makua 1673 -https://www.bible.com/bible/1219/jhn.1.mrv plt mrv la bible en malgache 1219 Malgache - Malagasy (Madagascar) 1219 -https://www.bible.com/bible/96/jhn.1.mg1865 plt mg1865 malagasy bible 96 Malgache - Malagasy (Madagascar) 96 -https://www.bible.com/bible/873/jhn.1.mbp plt mbp malagasy bible protestante 873 Malgache - Malagasy (Madagascar) 873 -https://www.bible.com/bible/814/jhn.1.mbc plt mbc malagasy bible catholique 814 Malgache - Malagasy (Madagascar) 814 -https://www.bible.com/bible/384/jhn.1.diemdc plt diemdc malagasy interconfessional bible 384 Malgache - Malagasy (Madagascar) 384 -https://www.bible.com/bible/396/jhn.1.diem plt diem malagasy bible 396 Malgache - Malagasy (Madagascar) 396 -https://www.bible.com/bible/654/jhn.1.mamtnt mam mamtnt ac aj testamento el nuevo testamento in mam de todos santos 654 Mam 654 -https://www.bible.com/bible/561/jhn.1.mamo mam mamo biblia mam de quetzaltenango 561 Mam 561 -https://www.bible.com/bible/632/jhn.1.mamnt mam mamnt akaj tujil tyol qman 632 Mam 632 -https://www.bible.com/bible/491/jhn.1.mamh mam mamh mam de huehuetenango bible 491 Mam 491 -https://www.bible.com/bible/1327/jhn.1.mmnnt mmn mmnnt ya mga panaba na diyos 1327 Mamanwa 1327 -https://www.bible.com/bible/1140/jhn.1.mykntpo myk mykntpo karineege nomee nivono 1140 Mamara Senoufo 1140 -https://www.bible.com/bible/383/jhn.1.mqjnt mqj mqjnt buku masero padandi bakaru 383 Mamasa 383 -https://www.bible.com/bible/826/jhn.1.mcont mco mcont new testament in mixe coatlan 826 Coatlán Mixe - Mixe: Coatlán 826 -https://www.bible.com/bible/768/jhn.1.mxqnt mxq mxqnt ja jembyu kajxyatypyu mudu jesukristukyujxm el nuevo testamento de nuestro senor jesucristo en el mixe de juquila 768 Juquila Mixe - Mixe: Juquila 768 -https://www.bible.com/bible/357/jhn.1.mixe mzl mixe new testament in mixe of mazatlan 357 Mazatlán Mixe - Mixe: Mazatlán 357 -https://www.bible.com/bible/2130/jhn.1.mqb pxm mqb mixe quezaltepec bible 2130 Mixe: Quezaltepec 2130 -https://www.bible.com/bible/723/jhn.1.mtont mto mtont ya a tse e je nam kojtstan juu ve e je nte yam xyaktaajnjimdu je nmaj vintsanamda jesucristo kajx 723 Totontepec Mixe - Mixe: Totontepec 723 -https://www.bible.com/bible/254/jhn.1.mksnt mks mksnt tuhun saa na najandacoo jesucristo nu yo el nuevo testamento en el mixteco de silacayoapan 254 Silacayoapan Mixtec - Mixtec Silacayoapan 254 -https://www.bible.com/bible/745/jhn.1.zpmnt zpm zpmnt diidz ne rdeed guielmban 745 Mixtepec Zapotec 745 -https://www.bible.com/bible/1104/jhn.1.snt soy snt nkomine fal ritele 1104 Miyobe 1104 -https://www.bible.com/bible/1048/jhn.1.mizo lus mizo pathian lehkhabu thianghlim 1048 Lushai - Mizo ṭawng 1048 -https://www.bible.com/bible/253/jhn.1.miz lus miz old version bible 253 Lushai - Mizo ṭawng 253 -https://www.bible.com/bible/332/jhn.1.mcv moc mcv laqaatqa ni qotaolec qotaolec and qotaolec novita na qomyipi 332 Mocoví 332 -https://www.bible.com/bible/1785/jhn.1.mfi mif mfi mej at wey mey mawiya 1785 Mofu-Gudur 1785 -https://www.bible.com/bible/2049/jhn.1.mog mfg mog ala la kitabuenu mogofin kuma to 2049 Mogofin 2049 -https://www.bible.com/bible/1034/jhn.1.mnknt mkl mnknt akabuu titoi idei ilaao 1034 Mokole 1034 -https://www.bible.com/bible/1257/jhn.1.moxnt mox moxnt yaubada ena vona gwalagwalana 1257 Molima 1257 -https://www.bible.com/bible/1495/jhn.1.ntmn58 lol ntmn58 the new testament in mongo nkundu 1958 1495 Mongo - Mongo-Nkundu 1495 -https://www.bible.com/bible/1868/jhn.1.monsang-bsi nmh monsang bsi ethar ttongdeen nt bsi 1868 Monsang Naga 1868 -https://www.bible.com/bible/630/jhn.1.mopnt mop mopnt leec ada u tan a dios a tumulbene 630 Mopán Maya 630 -https://www.bible.com/bible/344/jhn.1.ntkm mfe ntkm nouvo testaman dan kreol morisien 344 Mauritian - Morisyen 344 -https://www.bible.com/bible/1377/jhn.1.mkd mgc mkd morokodo 1377 Morokodo 1377 -https://www.bible.com/bible/1165/jhn.1.plunt plu plunt uhokri gannasan 1165 Palikúr 1165 -https://www.bible.com/bible/1141/jhn.1.pmpv pam pmpv ing mayap a balita biblia 1141 Pampanga 1141 -https://www.bible.com/bible/1131/jhn.1.att att att yu bilin ni namaro nga meyannung ka apu kesu kiristu yu bagu nga taratu ni namaro su ira nga mangikatala ka apu kesu kiristu 1131 Pamplona Atta 1131 -https://www.bible.com/bible/457/jhn.1.qxhnt qxh qxhnt mushug testamento 457 Panao Huánuco Quechua 457 -https://www.bible.com/bible/1166/jhn.1.pnpv pag pnpv maung a balita biblia 1166 Pangasinan 1166 -https://www.bible.com/bible/779/jhn.1.topnt top topnt xasasti talaccaxlan 779 Papantla Totonac 779 -https://www.bible.com/bible/816/jhn.1.bpkd13 pap bpkd13 beibel na papiamentu koriente 2013 816 Papiamento - Papiamentu 816 -https://www.bible.com/bible/818/jhn.1.bpk13 pap bpk13 beibel na papiamentu koriente 2013 818 Papiamento - Papiamentu 818 -https://www.bible.com/bible/438/jhn.1.prfnt prf prfnt en maganda a bareta biblia 438 Paranan 438 -https://www.bible.com/bible/651/jhn.1.pabnt pab pabnt waitare wenati aho 651 Parecís 651 -https://www.bible.com/bible/1182/jhn.1.ptpnt ptp ptpnt yesu xolac 1182 Patep 1182 -https://www.bible.com/bible/1014/jhn.1.gfknt gfk gfknt no hinhinawas uta no sigar kunubus tano watong 1014 Patpatar 1014 -https://www.bible.com/bible/260/jhn.1.padnt pad padnt deus athi kapapirani hida 260 Paumarí 260 -https://www.bible.com/bible/1237/jhn.1.pere pfe pere peere nt and psalms 1237 Peere 1237 -https://www.bible.com/bible/969/jhn.1.atantpo ata atantpo vaikala noxou lataua 969 Pele-Ata 969 -https://www.bible.com/bible/1455/jhn.1.pdcb pdc pdcb di heilich shrift 1455 Pennsylvania German - Pennsilfaanisch Deitsch 1455 -https://www.bible.com/bible/792/jhn.1.milnt mil milnt tnuhu ni cahan ya ndioxi xito cuu uu 792 Peñoles Mixtec 792 -https://www.bible.com/bible/1050/jhn.1.nagp nph nagp daulangpu laihing 1050 Phom Naga 1050 -https://www.bible.com/bible/226/jhn.1.piont pio piont el nuevo testamento de nuestro senor jesucristo en el idioma piapoco 226 Piapoco 226 -https://www.bible.com/bible/615/jhn.1.sipb pis sipb pijin bible 615 Solomon Islands Pidgeon English - Pijin 615 -https://www.bible.com/bible/614/jhn.1.sidc pis sidc pijin deuterocanon 614 Solomon Islands Pidgeon English - Pijin 614 -https://www.bible.com/bible/482/jhn.1.tsn plg tsn nuevo testamento toba sombrero negro 482 Pilagá 482 -https://www.bible.com/bible/443/jhn.1.plgnt plg plgnt nuevo testamento pilaga 443 Pilagá 443 -https://www.bible.com/bible/776/jhn.1.miont mio miont tutu chaa cha iyo cuenda ra hahnu jesucristo el nuevo testamento de nuestro senor jesucristo 776 Pinotepa Nacional Mixtec 776 -https://www.bible.com/bible/2159/jhn.1.pnydbl pny pnydbl ikaan at ghu shwu at 2159 Pinyin 2159 -https://www.bible.com/bible/661/jhn.1.pirnt pir pirnt cohacju yere yahuducuri tju 661 Piratapuyo 661 -https://www.bible.com/bible/1610/jhn.1.tpp tpp tpp ixchiwinti dios 1610 Pisaflores Tepehua 1610 -https://www.bible.com/bible/1737/jhn.1.pitj pjt pitj tjukurpa palya 1737 Pitjantjatjara 1737 -https://www.bible.com/bible/2082/jhn.1.pcsbr crk pcsbr plains cree scripture portions 2082 Plains Cree 2082 -https://www.bible.com/bible/2083/jhn.1.mason crk mason kanaaci ki ci masinaa ikan 2083 Plains Cree 2083 -https://www.bible.com/bible/2084/jhn.1.kkmr crk kkmr kanaci kihci masinahikan 2084 Plains Cree 2084 -https://www.bible.com/bible/1518/jhn.1.ktj ktj ktj nyisva a haantitie 1518 Plapo Krumen 1518 -https://www.bible.com/bible/563/jhn.1.pb pdt pb de bibel 563 Low German - Plautdietsch 563 -https://www.bible.com/bible/1546/jhn.1.pochury-bsi npo pochury bsi pochury naga bible bsi 1546 Pochuri Naga - Pochuri 1546 -https://www.bible.com/bible/2095/jhn.1.snp pol snp biblia to jest pismo swiete starego i nowego przymierza wydanie pierwsze 2018 2095 Polish - Polski 2095 -https://www.bible.com/bible/138/jhn.1.pubg pol pubg uwspolczesniona biblia gdanska 138 Polish - Polski 138 -https://www.bible.com/bible/137/jhn.1.psz pol psz slowo zycia 137 Polish - Polski 137 -https://www.bible.com/bible/132/jhn.1.pbg pol pbg biblia gdanska 132 Polish - Polski 132 -https://www.bible.com/bible/319/jhn.1.nbg pol nbg nowa biblia gdanska 319 Polish - Polski 319 -https://www.bible.com/bible/1645/jhn.1.ppsnt pps ppsnt el nuevo testamento 1645 San Luís Temalacayuca Popoloca - Popoloca, San Luís Temalacayuca 1645 -https://www.bible.com/bible/227/jhn.1.point poi point jem jomipic trato jem iwatnewiip tanomi jesucristo 227 Highland Popoluca - Popoluca Highland 227 -https://www.bible.com/bible/724/jhn.1.jacnt jac jacnt nuevo testamento yin abxubal 724 Popti' 724 -https://www.bible.com/bible/495/jhn.1.pok poh pok pokomchi bible 495 Poqomchi' 495 -https://www.bible.com/bible/412/jhn.1.pohnt poh pohnt re lok laj huj wilic wi ribiral i jesus 412 Poqomchi' 412 -https://www.bible.com/bible/200/jhn.1.vfl por vfl perjanjian novo testamento versao facil de ler 200 Portuguese (Brazil) - Português (Brasil) 200 -https://www.bible.com/bible/277/jhn.1.tb por tb traducao brasileira 277 Portuguese (Brazil) - Português (Brasil) 277 -https://www.bible.com/bible/1930/jhn.1.nvt por nvt biblia sagrada nova versao transformadora 1930 Portuguese (Brazil) - Português (Brasil) 1930 -https://www.bible.com/bible/129/jhn.1.nvi por nvi nova versao internacional portugues 129 Portuguese (Brazil) - Português (Brasil) 129 -https://www.bible.com/bible/211/jhn.1.ntlh por ntlh nova traducao na linguagem de hoje 211 Portuguese (Brazil) - Português (Brasil) 211 -https://www.bible.com/bible/1966/jhn.1.nbv-p por nbv p nova biblia viva portugues 1966 Portuguese (Brazil) - Português (Brasil) 1966 -https://www.bible.com/bible/1840/jhn.1.naa por naa nova almeida atualizada 1840 Portuguese (Brazil) - Português (Brasil) 1840 -https://www.bible.com/bible/212/jhn.1.arc por arc almeida revista e corrigida 212 Portuguese (Brazil) - Português (Brasil) 212 -https://www.bible.com/bible/1608/jhn.1.ara por ara almeida revista e atualizada 1608 Portuguese (Brazil) - Português (Brasil) 1608 -https://www.bible.com/bible/1967/jhn.1.ol por ol o livro 1967 Portuguese (Portugal) - Português (Portugal) 1967 -https://www.bible.com/bible/228/jhn.1.bpt09dc por bpt09dc a biblia para todos edicao catolica 228 Portuguese (Portugal) - Português (Portugal) 228 -https://www.bible.com/bible/432/jhn.1.bpt09 por bpt09 a biblia para todos edicao comum 432 Portuguese (Portugal) - Português (Portugal) 432 -https://www.bible.com/bible/215/jhn.1.arc por arc almeida revista e corrigida portugal 215 Portuguese (Portugal) - Português (Portugal) 215 -https://www.bible.com/bible/135/jhn.1.potl pot potl matthew and acts 135 Potawatomi 135 -https://www.bible.com/bible/1049/jhn.1.pou pmx pou sheeyu baibel 1049 Poumei Naga 1049 -https://www.bible.com/bible/1515/jhn.1.kbdc kvj kbdc kapsiki bible with dc 1515 Psikye 1515 -https://www.bible.com/bible/868/jhn.1.gb11dc gya gb11dc kalata ko so dc 868 Northwest Gbaya 868 -https://www.bible.com/bible/871/jhn.1.gb11 gya gb11 kalata ko so 871 Northwest Gbaya 871 -https://www.bible.com/bible/937/jhn.1.klt klt klt rut yot mark kan miti papia 937 Nukna 937 -https://www.bible.com/bible/801/jhn.1.nopntpo nop nopntpo bepangwalang yofolok kobuli tinga kap 801 Numanggang 801 -https://www.bible.com/bible/1333/jhn.1.nuyntpo nuy nuyntpo ana manngulg ana wubiba anu gadhuwa ana lhaawu 1333 Nunggubuyu 1333 -https://www.bible.com/bible/1434/jhn.1.rr64 nyn rr64 baibuli erikwera 1964 1434 Nyankole 1434 -https://www.bible.com/bible/1106/jhn.1.lidntpo lid lidntpo sahou ta kindrei 1106 Nyindrou 1106 -https://www.bible.com/bible/1536/jhn.1.niss njz niss dvrwq pvvb 1536 Nyishi 1536 -https://www.bible.com/bible/425/jhn.1.obont obo obont moppiyon dinoggan moka atag ki disas krays 425 Obo Manobo 425 -https://www.bible.com/bible/1587/jhn.1.obolo ann obolo ikpa mbuban 1587 Obolo 1587 -https://www.bible.com/bible/1582/jhn.1.anna ann anna ikpa mbuban eyi katolik 1582 Obolo 1582 -https://www.bible.com/bible/785/jhn.1.mient mie mient nuevo testamento en mixteco de ocotepec 785 Ocotepec Mixtec 785 -https://www.bible.com/bible/766/jhn.1.zacnt zac zacnt diza que shte dios con dize 766 Ocotlán Zapotec 766 -https://www.bible.com/bible/1886/jhn.1.oryirv ory oryirv oddiaa baaibel 1886 Oriya - ODIA 1886 -https://www.bible.com/bible/1749/jhn.1.odiaov-bsi ory odiaov bsi pbitr baaibl re edited bsi 1749 Oriya - ODIA 1749 -https://www.bible.com/bible/1962/jhn.1.odia-cl-bsi ory odia cl bsi pbitr baaibl cl nt bsi 1962 Oriya - ODIA 1962 -https://www.bible.com/bible/1408/jhn.1.kkc kkc kkc odoodee baibel 1408 Odoodee 1408 -https://www.bible.com/bible/1671/jhn.1.eri eri eri itou nomo hilou beele 1671 Ogea 1671 -https://www.bible.com/bible/2127/jhn.1.chjnt chj chjnt nuevo testamento en chinantecoojitlan 2127 Ojitlán Chinantec 2127 -https://www.bible.com/bible/350/jhn.1.atgnt atg atgnt ebe no pfuase ishobo onogbo 350 Ivbie North-Okpela-Arhe - Okphela 350 -https://www.bible.com/bible/1798/jhn.1.vpfj fuf vpfj version pular fuuta jallon 1798 Pular 1798 -https://www.bible.com/bible/218/jhn.1.chipbo cap chipbo ew testamento chipay tawqkistan 218 Chipaya - Puquina 218 -https://www.bible.com/bible/236/jhn.1.capnt cap capnt ew testamento chipay tawkquiztan 236 Chipaya - Puquina 236 -https://www.bible.com/bible/549/jhn.1.pnt tsz pnt purepecha new testament 549 Purepecha 549 -https://www.bible.com/bible/1736/jhn.1.npkth pww npkth northern pwo karen thai bible 1736 Pwo Northern Karen 1736 -https://www.bible.com/bible/493/jhn.1.kanj kjb kanj kanjobal bible 493 Q'anjob'al 493 -https://www.bible.com/bible/941/jhn.1.agunt agu agunt yi antiw testament slash yi acaj testament 941 Aguacateco - Qa'yol 941 -https://www.bible.com/bible/518/jhn.1.agubi agu agubi yi antiw bible slash yi acaj testament 518 Aguacateco - Qa'yol 518 -https://www.bible.com/bible/1030/jhn.1.byxntpo byx byxntpo a slurlka aa langinka ama iameska 1030 Qaqet 1030 -https://www.bible.com/bible/1732/jhn.1.krknt kaa krknt zhana kielisim 1732 Karakalpak - Qaraqalpaqsha (Қарақалпақша) 1732 -https://www.bible.com/bible/267/jhn.1.qvwnt qvw qvwnt mushu limalicuy 267 Huaylla Wanca Quechua - Quechua Huaylla Wanca 267 -https://www.bible.com/bible/265/jhn.1.qvmnt qvm qvmnt mushog testamento 265 Margos-Yarowilca-Lauricocha Quechua - Quechua Margos-Yarowilca-Lauricocha 265 -https://www.bible.com/bible/266/jhn.1.qvsnt qvs qvsnt tata diospa mushuk rimanan 266 San Martín Quechua - Quechua San Martín 266 -https://www.bible.com/bible/290/jhn.1.qxont qxo qxont mushog testamento 290 Southern Conchucos Ancash Quechua - Quechua Southern Conchucos Ancash 290 -https://www.bible.com/bible/581/jhn.1.ztqnt ztq ztqnt tiits nii xnee kyalmban el nuevo testamento en el zapoteco de quioquitani 581 Quioquitani-Quierí Zapotec 581 -https://www.bible.com/bible/771/jhn.1.chqnt chq chqnt new testament in chinantec quiotepec 771 Quiotepec Chinantec 771 -https://www.bible.com/bible/1186/jhn.1.raint rai raint buk taabu matakin 1186 Ramoaaina 1186 -https://www.bible.com/bible/1871/jhn.1.ranglong-bsi rnl ranglong bsi dankit athar le sam bsi 1871 Ranglong 1871 -https://www.bible.com/bible/2164/jhn.1.rapnt rap rapnt he vananga o te atua 2164 Rapanui 2164 -https://www.bible.com/bible/1314/jhn.1.rwornt rwo rwornt rawa new testament 1314 Rawa 1314 -https://www.bible.com/bible/1189/jhn.1.rwornt rwo rwornt anutro mande keta 1189 Rawa 1189 -https://www.bible.com/bible/1192/jhn.1.rwoknt rwo rwoknt anutlo sumange mande keda 1192 Rawa 1192 -https://www.bible.com/bible/1872/jhn.1.rengma-bsi nre rengma bsi kenshun lesu cl bible bsi 1872 Southern Rengma Naga - Rengma Naga 1872 -https://www.bible.com/bible/1873/jhn.1.rengma-n-bsi nnl rengma n bsi kemethajuh n cl bible bsi 1873 Northern Rengma Naga - Rengma Naga (North) 1873 -https://www.bible.com/bible/1059/jhn.1.kaub ria kaub baibel kthar 1059 Riang (India) 1059 -https://www.bible.com/bible/1832/jhn.1.irint iri irint jee hwi na krrede bene a zhi rigwe 1832 Irigwe - Rigwe 1832 -https://www.bible.com/bible/669/jhn.1.rkbnt rkb rkbnt deus harere aibaky sesus mymyspirikpoko naha 669 Rikbaktsa 669 -https://www.bible.com/bible/2072/jhn.1.%D0%91%D0%94%D0%9A ron bibliia dumitru korniliesku 1924 2072 Romanian - Română 2072 -https://www.bible.com/bible/1996/jhn.1.vdcl ron vdcl traducere literala cornilescu 1931 1996 Romanian - Română 1996 -https://www.bible.com/bible/191/jhn.1.vdc ron vdc biblia sau sfanta scriptura cu trimiteri 1924 dumitru cornilescu 191 Romanian - Română 191 -https://www.bible.com/bible/1467/jhn.1.vbrc2013 ron vbrc2013 versiunea biblia romano catolica 2013 1467 Romanian - Română 1467 -https://www.bible.com/bible/126/jhn.1.ntr ron ntr noua traducere romaneasca 126 Romanian - Română 126 -https://www.bible.com/bible/1454/jhn.1.bva ron bva biblia in versiune actualizata 2018 1454 Romanian - Română 1454 -https://www.bible.com/bible/903/jhn.1.btf2015 ron btf2015 biblia traducerea fidela 2015 903 Romanian - Română 903 -https://www.bible.com/bible/1466/jhn.1.biv2014 ron biv2014 biblia in versuri 2014 1466 Romanian - Română 1466 -https://www.bible.com/bible/1506/jhn.1.bint09 ron bint09 romana noul testament interconfesional 2009 1506 Romanian - Română 1506 -https://www.bible.com/bible/1658/jhn.1.let1933 rml let1933 joannostir svencono lacopheniben 1933 latvia 1658 Romani: Baltic 1658 -https://www.bible.com/bible/1592/jhn.1.calo1872 rmq calo1872 criscote e majaro lucas 1872 1592 Romani: Calo (Iberia) - Romaní: Caló (Iberia) 1592 -https://www.bible.com/bible/1412/jhn.1.calo1837 rmq calo1837 embeo e majaro lucas 1837 1412 Romani: Calo (Iberia) - Romaní: Caló (Iberia) 1412 -https://www.bible.com/bible/1560/jhn.1.srom rmn srom o dzivdipe thaj buti e isus hristoski star evangeliumura 2014 srbija 1560 Romani: Gurbeti Arlija 1560 -https://www.bible.com/bible/1652/jhn.1.gurb1936 rmn gurb1936 o devlikano lil e sumnale lukahtar 1936 bosnia 1652 Romani: Gurbeti Arlija 1652 -https://www.bible.com/bible/1651/jhn.1.arl1912 rmn arl1912 e devleskoro sfjato lil e isus xristoskoro dziipe thai meribe e sfjatone lukestar 1912 bulharsko 1651 Romani: Gurbeti Arlija 1651 -https://www.bible.com/bible/1361/jhn.1.romcal rmy romcal evanghelia pala o marco 1996 caldararilor romania 1361 Romani: Kalderash - Romani: Kalderaš/căldărari 1361 -https://www.bible.com/bible/1425/jhn.1.kald rmy kald e nevi viasta o psalmo 2004 1425 Romani: Kalderash - Romani: Kalderaš/căldărari 1425 -https://www.bible.com/bible/1611/jhn.1.lov1930 rmy lov1930 predigimo a johannesko 1930 1611 Romani Lovari - Romani: Lovari 1611 -https://www.bible.com/bible/992/jhn.1.nzr rmc nzr e nevi zmluva pal o romanes 2014 992 Carpathian Romani - Romani: Romanes (Karpatský) 992 -https://www.bible.com/bible/1640/jhn.1.mor1936 rmc mor1936 o keriben pal e devleskre bichade 1936 morava 1640 Carpathian Romani - Romani: Romanes (Karpatský) 1640 -https://www.bible.com/bible/1604/jhn.1.sint1912 rmo sint1912 o evangelio jezus kristusester pala markus 1912 1604 Romani, Sinte - Romani: Sinte 1604 -https://www.bible.com/bible/1942/jhn.1.sint1875 rmo sint1875 i ghilengheri ghilia salomuneskero an i romani tcib italia 1875 1942 Romani, Sinte - Romani: Sinte 1942 -https://www.bible.com/bible/391/jhn.1.rom07 rmy rom07 nuevo testamento romane 2007 391 Vlax Romani - Chile - Romani: Vlax chileana 391 -https://www.bible.com/bible/1360/jhn.1.romurs rmy romurs evanghelia pala o matei 1996 ursarilor romania 1360 Romani: Vlax Ursari 1360 -https://www.bible.com/bible/1698/jhn.1.lov1984 rmy lov1984 o angluno lil anda o johannes 1984 noreg 1698 Romani: Vlax Ursari 1698 -https://www.bible.com/bible/1679/jhn.1.sgm1995 rme sgm1995 the drom 1995 1679 Romany - Romany: Angloromani 1679 -https://www.bible.com/bible/1697/jhn.1.sgm1985 rme sgm1985 kushti bokkengro 1985 1697 Romany - Romany: Angloromani 1697 -https://www.bible.com/bible/1044/jhn.1.arkl rme arkl kushti lavs romany selections 1981 1044 Romany - Romany: Angloromani 1044 -https://www.bible.com/bible/1421/jhn.1.arbos rme arbos wester boswell scripture selections 1874 1421 Romany - Romany: Angloromani 1421 -https://www.bible.com/bible/1874/jhn.1.rongmei-bsi nbu rongmei bsi nthanmei baibal revised bsi 1874 Rongmei Naga 1874 -https://www.bible.com/bible/1185/jhn.1.roont roo roont airepa vae reo ovoi 1185 Rotokas 1185 -https://www.bible.com/bible/1909/jhn.1.rov rug rov buka hope 1909 Roviana 1909 -https://www.bible.com/bible/1666/jhn.1.apbnt apb apbnt tataroha diana 1666 Sa'a 1666 -https://www.bible.com/bible/1227/jhn.1.splnt spl splnt yeshuat den pat alepnge 1227 Selepet 1227 -https://www.bible.com/bible/1378/jhn.1.sehnt seh sehnt cibverano cipsa 1378 Sena 1378 -https://www.bible.com/bible/1598/jhn.1.dyib dyi dyib bibulu yenngele li senre 1598 Djimini Senoufo - Sénoufo, Djimini 1598 -https://www.bible.com/bible/922/jhn.1.iwsnt iws iwsnt yai win kibiya 922 Sepik Iwam 922 -https://www.bible.com/bible/1053/jhn.1.bsk crs bsk labib an kreol seselwa 1053 Seselwa Creole French 1053 -https://www.bible.com/bible/1054/jhn.1.bsk crs bsk labib an kreol seselwa 1054 Seselwa Creole French 1054 -https://www.bible.com/bible/274/jhn.1.sso89so sot sso89so bibele 274 Southern Sotho - Sesotho 274 -https://www.bible.com/bible/273/jhn.1.sso61-so sot sso61 so sesotho 1909 slash 1961 so 273 Southern Sotho - Sesotho 273 -https://www.bible.com/bible/124/jhn.1.nso51 nso nso51 bibele 124 Pedi - Sesotho sa Leboa 124 -https://www.bible.com/bible/256/jhn.1.nso00 nso nso00 bibele taba yea botse 256 Pedi - Sesotho sa Leboa 256 -https://www.bible.com/bible/185/jhn.1.tsw70 tsn tsw70 setswana 1970 185 Tswana - Setswana 185 -https://www.bible.com/bible/278/jhn.1.tsw08no tsn tsw08no baebele e e boitshepo 278 Tswana - Setswana 278 -https://www.bible.com/bible/1290/jhn.1.shncl shn shncl sm m m li th wr 1290 Shan 1290 -https://www.bible.com/bible/522/jhn.1.mcd mcd mcd diospan tsain 522 Sharanahua 522 -https://www.bible.com/bible/1337/jhn.1.xsrnt xsr xsrnt konchyokkii sung 1337 Sherpa 1337 -https://www.bible.com/bible/1174/jhn.1.kdent kde kdent ibibiliya mu shimakonde imbodi yaambi na dimbande dya imbodi yakala 1174 Makonde - Shimakonde 1174 -https://www.bible.com/bible/673/jhn.1.shpntpo shp shpntpo diossen joi jatixonbi onanti joi 673 Shipibo-Conibo 673 -https://www.bible.com/bible/944/jhn.1.pbv poy pbv lipatanu lya syayi kwa wantu woseri 944 Pogolo - Shipogoro 944 -https://www.bible.com/bible/1825/jhn.1.pstokk1868 sqi pstokk1868 psalmet toskerisht konstandin kristoforidhi 1868 1825 Albanian - Shqip 1825 -https://www.bible.com/bible/1824/jhn.1.psgekk1872 sqi psgekk1872 psalmet gegerisht konstandin kristoforidhi 1872 1824 Albanian - Shqip 1824 -https://www.bible.com/bible/644/jhn.1.slb slk slb biblia evanjelicky preklad 644 Slovak - Slovenčina 644 -https://www.bible.com/bible/464/jhn.1.sebdt slk sebdt slovensky ekumenicky preklad s dt knihami 464 Slovak - Slovenčina 464 -https://www.bible.com/bible/465/jhn.1.seb slk seb slovensky ekumenicky preklad 465 Slovak - Slovenčina 465 -https://www.bible.com/bible/1636/jhn.1.znz slv znz ziva nova zaveza 1636 Slovenian - Slovenščina 1636 -https://www.bible.com/bible/1383/jhn.1.zj slv zj zivljenje z jezusom 1383 Slovenian - Slovenščina 1383 -https://www.bible.com/bible/376/jhn.1.sjv slv sjv jubilejni prevod nove zaveze 376 Slovenian - Slovenščina 376 -https://www.bible.com/bible/1733/jhn.1.prek28 slv prek28 prekmurska nz and psalmi 1928 1733 Slovenian - Slovenščina 1733 -https://www.bible.com/bible/2051/jhn.1.eku slv eku ekumenska izdaja 2051 Slovenian - Slovenščina 2051 -https://www.bible.com/bible/1925/jhn.1.sobp15 urw sobp15 profet yonab slash dora nama lukede feiaga 1925 Sop - Sob Dora 1925 -https://www.bible.com/bible/750/jhn.1.csodbl cso csodbl new testament in chinantec sochiapam 750 Sochiapam Chinantec 750 -https://www.bible.com/bible/1256/jhn.1.lsb xog lsb baibuli ekibono kya katonda 1256 Soga 1256 -https://www.bible.com/bible/963/jhn.1.bmuntpo bmu bmuntpo urumelenggo bunga kimbi johojoho dolokngi 963 Somba-Siawari 963 -https://www.bible.com/bible/1465/jhn.1.ses ses ses songhai de gao bible 1465 Koyraboro Senni Songhai - Songhai de Gao 1465 -https://www.bible.com/bible/87/jhn.1.somb som somb kitaabka quduuska ah 87 Somali - Soomaali 87 -https://www.bible.com/bible/2066/jhn.1.sus1816 sus sus1816 lingjili matthew ki nache 1816 2066 Susu (Roman script) - Sosoxui 2066 -https://www.bible.com/bible/893/jhn.1.soso sus soso soso kitaabuie tawureta yabura inyila 893 Susu (Roman script) - Sosoxui 893 -https://www.bible.com/bible/550/jhn.1.begdc giz begdc bible en langue guiziga 550 South Giziga 550 -https://www.bible.com/bible/1188/jhn.1.omwnt omw omwnt qaraakya qua timwatora 1188 South Tairora 1188 -https://www.bible.com/bible/1350/jhn.1.cpyb cpy cpyb las escrituras en asheninka ucayali del sur 1350 South Ucayali Ashéninka 1350 -https://www.bible.com/bible/1254/jhn.1.tvk tvk tvk vanuvei eo 1254 Southeast Ambrym 1254 -https://www.bible.com/bible/272/jhn.1.srmnt srm srmnt gadu buku 272 Saramaccan - Saamáka 272 -https://www.bible.com/bible/957/jhn.1.apznt apz apznt mpohwoe hungkuno songofoho 957 Safeyoka 957 -https://www.bible.com/bible/510/jhn.1.acfnt acf acfnt testeman nef la epi an posyon an liv samz la 510 Saint Lucian Creole French 510 -https://www.bible.com/bible/1770/jhn.1.qxlu qxl qxlu diosbuj shimi mushuj testamento 1770 Salasaca Highland Quichua - Salasakaguna 1770 -https://www.bible.com/bible/1452/jhn.1.sbep sbe sbep yaubada wasana buka hauhauna tupwana 1452 Saliba 1452 -https://www.bible.com/bible/1193/jhn.1.sllnt sll sllnt ha maing buku 1193 Salt-Yui 1193 -https://www.bible.com/bible/1118/jhn.1.slnt ndi slnt samba leko new testament 1118 Samba Leko 1118 -https://www.bible.com/bible/1318/jhn.1.xsb xsb xsb yay halita nan dios ba yon tipan 1318 Sambal 1318 -https://www.bible.com/bible/2120/jhn.1.sanve san sanve satyaveda dot h sanskrit bible nt in velthuis script 2120 Sanskrit - Saṃskṛtam 2120 -https://www.bible.com/bible/2109/jhn.1.sanur san sanur satyawydah sanskrit bible nt in urdu script 2109 Sanskrit - Saṃskṛtam 2109 -https://www.bible.com/bible/2102/jhn.1.santm san santm styveet3 slash sanskrit bible nt in tamil script 2102 Sanskrit - Saṃskṛtam 2102 -https://www.bible.com/bible/2112/jhn.1.santi san santi stywedh slash sanskrit bible nt in tibetan script 2112 Sanskrit - Saṃskṛtam 2112 -https://www.bible.com/bible/2115/jhn.1.santh san santh styewth sanskrit bible nt in thai script 2115 Sanskrit - Saṃskṛtam 2115 -https://www.bible.com/bible/2122/jhn.1.sante san sante styveedh slash sanskrit bible nt in telugu script 2122 Sanskrit - Saṃskṛtam 2122 -https://www.bible.com/bible/1875/jhn.1.sanskrit-bsi san sanskrit bsi sanskrit new testament bsi 1875 Sanskrit - Saṃskṛtam 1875 -https://www.bible.com/bible/2111/jhn.1.sansi san sansi styveedh slash sanskrit bible nt in sinhala script 2111 Sanskrit - Saṃskṛtam 2111 -https://www.bible.com/bible/2108/jhn.1.sanpn san sanpn styveed slash sanskrit bible nt in punjabi script 2108 Sanskrit - Saṃskṛtam 2108 -https://www.bible.com/bible/2118/jhn.1.sanor san sanor styy edh slash sanskrit bible nt in oriya script 2118 Sanskrit - Saṃskṛtam 2118 -https://www.bible.com/bible/2113/jhn.1.sanml san sanml styveedh slash sanskrit bible nt in malayalam script 2113 Sanskrit - Saṃskṛtam 2113 -https://www.bible.com/bible/2119/jhn.1.sankh san sankh styvedh sanskrit bible nt in khmer script 2119 Sanskrit - Saṃskṛtam 2119 -https://www.bible.com/bible/1285/jhn.1.mnf2010 sag mnf2010 mbeti ti nzapa tene so amu fini 1285 Sango - Sängö 1285 -https://www.bible.com/bible/1052/jhn.1.nags nsa nags amusa baibel 1052 Sangtam Naga 1052 -https://www.bible.com/bible/1210/jhn.1.snynt sny snynt owane sitewi lo peri tee naneiyei hei 1210 Saniyo-Hiyewe 1210 -https://www.bible.com/bible/1555/jhn.1.aks msc aks alla la kitabu seniman 1555 Sankaran Maninka - Sankaran 1555 -https://www.bible.com/bible/460/jhn.1.zpint zpi zpint xdiiz dedyuzh kon disa 460 Santa María Quiegolani Zapotec 460 -https://www.bible.com/bible/1385/jhn.1.mza mza mza el nuevo testamento en mixtec santa maria zacatepeco 1385 Santa María Zacatepec Mixtec 1385 -https://www.bible.com/bible/1701/jhn.1.coknt cok coknt el nuevo testamento y salmos 1701 Santa Teresa Cora 1701 -https://www.bible.com/bible/1538/jhn.1.sclnt sat sclnt santali common language new testament 1538 Santali 1538 -https://www.bible.com/bible/459/jhn.1.zasnt zas zasnt xtiidx dios 459 Santo Domingo Albarradas Zapotec 459 -https://www.bible.com/bible/1271/jhn.1.spsntpo sps spsntpo u vurungan rof foun ten gov nane jisas krais 1271 Saposa 1271 -https://www.bible.com/bible/445/jhn.1.bsdc mwm bsdc bible sar version cathoique 445 Sar 445 -https://www.bible.com/bible/446/jhn.1.bs mwm bs bible sar 446 Sar 446 -https://www.bible.com/bible/1245/jhn.1.bpsnt bps bpsnt i tnalu dwata 1245 Sarangani Blaan 1245 -https://www.bible.com/bible/1243/jhn.1.mbsnt mbs mbsnt se kaling peokit 1243 Sarangani Manobo 1243 -https://www.bible.com/bible/619/jhn.1.mavnt mav mavnt tupana ehay satere mawe pusupuo 619 Sateré-Mawé 619 -https://www.bible.com/bible/2129/jhn.1.psnt pos psnt popoluca sayula new testament 2129 Sayula Popoluca 2129 -https://www.bible.com/bible/664/jhn.1.seynt sey seynt maijaque huaje ca neosee 664 Secoya 664 -https://www.bible.com/bible/626/jhn.1.ssgnt ssg ssgnt kakai haeu 626 Seimat 626 -https://www.bible.com/bible/1773/jhn.1.lip lip lip onanto eto kakle fofo sekpele 1773 Sekpele 1773 -https://www.bible.com/bible/1796/jhn.1.snwnt snw snwnt yaa kanya ninii fole selee 1796 Selee 1796 -https://www.bible.com/bible/2121/jhn.1.sanka san sanka styveedh slash sanskrit bible nt in kannada script 2121 Sanskrit - Saṃskṛtam 2121 -https://www.bible.com/bible/2116/jhn.1.sanit san sanit satyavedah sanskrit bible nt in itrans script 2116 Sanskrit - Saṃskṛtam 2116 -https://www.bible.com/bible/2117/jhn.1.sanis san sanis satyavedah sanskrit bible nt in iso script 2117 Sanskrit - Saṃskṛtam 2117 -https://www.bible.com/bible/2110/jhn.1.sania san sania satyavedah sanskrit bible nt in iast script 2110 Sanskrit - Saṃskṛtam 2110 -https://www.bible.com/bible/2114/jhn.1.sanhk san sanhk satyavedah sanskrit bible nt in harvard kyoto script 2114 Sanskrit - Saṃskṛtam 2114 -https://www.bible.com/bible/2103/jhn.1.sangj san sangj styavedh slash sanskrit bible nt in gujarati script 2103 Sanskrit - Saṃskṛtam 2103 -https://www.bible.com/bible/2107/jhn.1.sanco san sanco satyavedah sanskrit bible nt in cologne script 2107 Sanskrit - Saṃskṛtam 2107 -https://www.bible.com/bible/2158/jhn.1.sanbu san sanbu stt wed slash sanskrit bible nt in burmese script 2158 Sanskrit - Saṃskṛtam 2158 -https://www.bible.com/bible/2106/jhn.1.sanbn san sanbn stybedh slash sanskrit bible nt in bengali script 2106 Sanskrit - Saṃskṛtam 2106 -https://www.bible.com/bible/2105/jhn.1.sanas san sanas styredh slash sanskrit bible nt in assamese script 2105 Sanskrit - Saṃskṛtam 2105 -https://www.bible.com/bible/2104/jhn.1.san-dn san san dn styvedh slash sanskrit nt in devanagari 2104 Sanskrit - Saṃskṛtam 2104 -https://www.bible.com/bible/832/jhn.1.maant maa maant new testament in mazatec san jeronimo tecoatl 832 San Jerónimo Tecóatl Mazatec 832 -https://www.bible.com/bible/1663/jhn.1.poentplus poe poentplus el nuevo testamento salmos y proverbios 1663 San Juan Atzingo Popoloca 1663 -https://www.bible.com/bible/765/jhn.1.poent poe poent ti nuevo testamento cuente incheni jesucristo c ona nquiva 765 San Juan Atzingo Popoloca 765 -https://www.bible.com/bible/732/jhn.1.mjcnt mjc mjcnt tuhun tsaa tsa nacoo jutu mani yo jesucristo tsi yo 732 San Juan Colorado Mixtec 732 -https://www.bible.com/bible/1662/jhn.1.plsnt pls plsnt el nuevo testamento mas genesis 1662 San Marcos Tlacoyalco Popoloca 1662 -https://www.bible.com/bible/770/jhn.1.plsnt pls plsnt tti jian joajne jesucristo 770 San Marcos Tlacoyalco Popoloca 770 -https://www.bible.com/bible/858/jhn.1.mignt mig mignt testamento jaa maa jitoho yo jesucristo 858 San Miguel El Grande Mixtec 858 -https://www.bible.com/bible/727/jhn.1.azgnt azg azgnt new testament in amuzgo 727 San Pedro Amuzgos Amuzgo 727 -https://www.bible.com/bible/1398/jhn.1.zpt zpt zpt zapoteco 1398 San Vicente Coatlán Zapotec 1398 -https://www.bible.com/bible/1208/jhn.1.suant sua suant e nut ka meer mang ka mokpom to a gunngar 1208 Sulka 1208 -https://www.bible.com/bible/1877/jhn.1.sumi-bsi nsm sumi bsi baibel bsi 1877 Sumi Naga 1877 -https://www.bible.com/bible/1745/jhn.1.finrk fin finrk raamattu kansalle 1745 Finnish - Suomi 1745 -https://www.bible.com/bible/61/jhn.1.finpr fin finpr finnish 1938 61 Finnish - Suomi 61 -https://www.bible.com/bible/60/jhn.1.fi1776 fin fi1776 finnish 1776 60 Finnish - Suomi 60 -https://www.bible.com/bible/330/jhn.1.fb92 fin fb92 kirkkoraamattu 1992 330 Finnish - Suomi 330 -https://www.bible.com/bible/365/jhn.1.fb38 fin fb38 kirkkoraamattu 1933 slash 38 365 Finnish - Suomi 365 -https://www.bible.com/bible/1145/jhn.1.sppnt spp sppnt kile jwumpe semengi jwumpe nintanmpe 1145 Supyire Senoufo 1145 -https://www.bible.com/bible/441/jhn.1.sgznt sgz sgznt hutngin kamkabat si kalau 441 Sursurunga 441 -https://www.bible.com/bible/1191/jhn.1.sgznt sgz sgznt hutngin kamkabat si klu 1191 Sursurunga 1191 -https://www.bible.com/bible/166/jhn.1.sven swe sven svenska 1917 166 Swedish - Svenska 166 -https://www.bible.com/bible/1111/jhn.1.skb swe skb svenska karnbibeln 1111 Swedish - Svenska 1111 -https://www.bible.com/bible/161/jhn.1.sk73 swe sk73 karl xii 1873 161 Swedish - Svenska 161 -https://www.bible.com/bible/160/jhn.1.sfb98 swe sfb98 svenska folkbibeln 160 Swedish - Svenska 160 -https://www.bible.com/bible/1223/jhn.1.sfb15 swe sfb15 svenska folkbibeln 2015 1223 Swedish - Svenska 1223 -https://www.bible.com/bible/542/jhn.1.sb swe sb svenskbibel 542 Swedish - Svenska 542 -https://www.bible.com/bible/916/jhn.1.nub swe nub nubibeln 916 Swedish - Svenska 916 -https://www.bible.com/bible/33/jhn.1.bsv swe bsv nya levande bibeln 33 Swedish - Svenska 33 -https://www.bible.com/bible/417/jhn.1.b2000d swe b2000d bible 2000 swedish translation 417 Swedish - Svenska 417 -https://www.bible.com/bible/154/jhn.1.b2000 swe b2000 bibel 2000 154 Swedish - Svenska 154 -https://www.bible.com/bible/424/jhn.1.nplnt npl nplnt itlajtol totajtsi dios 424 Southeastern Puebla Nahuatl 424 -https://www.bible.com/bible/708/jhn.1.stpnt stp stpnt gu niokin gu dios na bhaan tu aga guch xoikam 708 Southeastern Tepehuan 708 -https://www.bible.com/bible/1498/jhn.1.hpkb bcc hpkb hudyy pkhyn khtb bloechy zbn 1498 Southern Balochi 1498 -https://www.bible.com/bible/1500/jhn.1.hpkb bcc hpkb hodaay paken ketab balochi zobana 1500 Southern Balochi - Southern Balochi (Roman) 1500 -https://www.bible.com/bible/2148/jhn.1.biv biv biv a naangmin netir oaalaa gan birfuor 2148 Southern Birifor 2148 -https://www.bible.com/bible/1328/jhn.1.ksc ksc ksc na ukud apudyus 1328 Southern Kalinga 1328 -https://www.bible.com/bible/660/jhn.1.nabnt nab nabnt txa2wa1su3na2 wan3txa2 660 Southern Nambikuára 660 -https://www.bible.com/bible/1808/jhn.1.nnwnt nnw nnwnt yii svywangv sagi 1808 Southern Nuni 1808 -https://www.bible.com/bible/645/jhn.1.qupnt qup qupnt yaya diospa mushu killkachishkan shimi 645 Southern Pastaza Quechua 645 -https://www.bible.com/bible/796/jhn.1.mitnt mit mitnt ley saa ni nacoo jesucristu 796 Southern Puebla Mixtec 796 -https://www.bible.com/bible/736/jhn.1.zsrnt zsr zsrnt didza cub ruca n tsahui 736 Southern Rincon Zapotec 736 -https://www.bible.com/bible/1311/jhn.1.wibdbl wib wibdbl wib nouveau testament en toussian 1311 Southern Toussian 1311 -https://www.bible.com/bible/1367/jhn.1.ntgby gso ntgby takarata pe so mbombe mbon 1367 Southwest Gbaya 1367 -https://www.bible.com/bible/485/jhn.1.nwint nwi nwint n at kw at kw at im at rhak at kape kughen nirpenien vi 485 Southwest Tanna 485 -https://www.bible.com/bible/674/jhn.1.srnnt srn srnnt nyun testamenti 674 Sranan Tongo 674 -https://www.bible.com/bible/484/jhn.1.sxbnt sxb sxbnt endagano empia 484 Suba 484 -https://www.bible.com/bible/1649/jhn.1.tgo tgo tgo toto thovuye loi ghalingae 1649 Sudest 1649 -https://www.bible.com/bible/1206/jhn.1.suent sue suent tua yesu kristora oziga ewanana 1206 Suena 1206 -https://www.bible.com/bible/1517/jhn.1.sukbi15 suk sukbi15 bibilia ilagano lya kale 2015 1517 Sukuma 1517 -https://www.bible.com/bible/1512/jhn.1.snt00 suk snt00 sukuma new testament 2000 1512 Sukuma 1512 -https://www.bible.com/bible/1554/jhn.1.txqntpo txq txqntpo rote tii new testament and genesis 1554 Tii 1554 -https://www.bible.com/bible/1211/jhn.1.timnt tim timnt yusugat pat alep den 1211 Timbe 1211 -https://www.bible.com/bible/1218/jhn.1.tpznt tpz tpznt soe a toto 1218 Tinputz 1218 -https://www.bible.com/bible/1266/jhn.1.tiynt tiy tiynt i fiyowe uret 1266 Tiruray 1266 -https://www.bible.com/bible/709/jhn.1.tptnt tpt tptnt ixchivinti dios ni sast i chivinti yu dios jat atamakaul ixlapanakni laka lhimasipijni 709 Tlachichilco Tepehua 709 -https://www.bible.com/bible/743/jhn.1.mxpnt mxp mxpnt ja ogyajpxy ja omyadya aky midi xukpaajtimp ja nitso ok ajtin 743 Tlahuitoltepec Mixe 743 -https://www.bible.com/bible/1510/jhn.1.tbsnt tob tbsnt nuevo testamento toba sur 1510 Toba - Toba Qom 1510 -https://www.bible.com/bible/574/jhn.1.l%C3%91le tob lnle laaqtaqa nim loonatac enauacna 574 Toba - Toba Qom 574 -https://www.bible.com/bible/257/jhn.1.oodnt ood oodnt jiosh wechij oohana 257 Tohono O'odham 257 -https://www.bible.com/bible/844/jhn.1.tojnt toj tojnt ja yajc achil testamento sbaj ja cajualtic jesucristo 844 Tojolabal 844 -https://www.bible.com/bible/1381/jhn.1.toj toj toj ja yajcachil testamento sbaj ja cajualtic jesucristo 1381 Tojolabal 1381 -https://www.bible.com/bible/249/jhn.1.jicnt jic jicnt dios tjevele jupj usus la qjuisiji jesucristo mpes 249 Tol 249 -https://www.bible.com/bible/159/jhn.1.sda sda sda sura madatu 159 Toraja-Sa'dan 159 -https://www.bible.com/bible/1400/jhn.1.tcsntpo tcs tcsntpo baibol tores streit yumplatok 1400 Torres Strait Creole 1400 -https://www.bible.com/bible/276/jhn.1.tosnt tos tosnt nuevo testamento 276 Highland Totonac - Totonac Highland 276 -https://www.bible.com/bible/280/jhn.1.ven98 ven ven98 bivhili khethwa mafhungo madifha 280 Venda - Tshivenḓa 280 -https://www.bible.com/bible/426/jhn.1.kdlnt kdl kdlnt kazuwamgbani ka savu n tsikimba n abon a da a dangasai a kazuwamgbani ka cau 426 Tsikimba 426 -https://www.bible.com/bible/429/jhn.1.tswnt tsw tswnt nzuwulai n saavu na tsishingini na adiva a na a dangulai a nzuwulai mu ufaru 429 Tsishingini 429 -https://www.bible.com/bible/694/jhn.1.tuont tuo tuont aki hi yeere uukuri turi tukano 694 Tucano 694 -https://www.bible.com/bible/1572/jhn.1.tuoc tuo tuoc acu yere ucuri turi 1572 Tucano 1572 -https://www.bible.com/bible/692/jhn.1.urant ura urant cana coaunera ere 692 Urarina 692 -https://www.bible.com/bible/1475/jhn.1.urty urt urty urat new testament 1475 Urat 1475 -https://www.bible.com/bible/1553/jhn.1.urdr55 urd urdr55 injil i muqaddas 1955 1553 Urdu (Roman) - Urdū 1553 -https://www.bible.com/bible/1887/jhn.1.rgv urd rgv roman urdu geo bible 1887 Urdu (Roman) - Urdū 1887 -https://www.bible.com/bible/1650/jhn.1.uvh uvh uvh anutuning midi totangka inga ni 1650 Uri 1650 -https://www.bible.com/bible/1478/jhn.1.urik uri urik wurkapm a maur wailen 1478 Urim 1478 -https://www.bible.com/bible/525/jhn.1.unt upv unt naul on nga mimerr uripiv 525 Uripiv-Wala-Rano-Atchin 525 -https://www.bible.com/bible/688/jhn.1.urbnt urb urbnt tupa jeeha 688 Urubú-Kaapor 688 -https://www.bible.com/bible/1474/jhn.1.wnu wnu wnu qenu qob uber 1474 Usan 1474 -https://www.bible.com/bible/1233/jhn.1.usant usa usant augen anona anonaimma 1233 Usarufa 1233 -https://www.bible.com/bible/769/jhn.1.cucnt cuc cucnt jau23 hm23 i4ra3tya23 nei2 quieh1 re1 jesucristo quian4 1 769 Usila Chinantec 769 -https://www.bible.com/bible/684/jhn.1.uspnt usp uspnt loklaj jyolj kakaj dios 684 Uspanteco 684 -https://www.bible.com/bible/1977/jhn.1.dudnt dud dudnt ma to shir takurda o swor o nu pu o 1977 Hun-Saare - u̱t-Hun 1977 -https://www.bible.com/bible/1938/jhn.1.vagbi vag vagbi koraawiizi hong vagla 1938 Vagla 1938 -https://www.bible.com/bible/1062/jhn.1.vaip vap vaip pathian lekhabu thiangtho 1062 Vaiphei 1062 -https://www.bible.com/bible/1422/jhn.1.bru bru bru parnai yiang sursi kinh thanh tieng bru 1422 Eastern Bru - Van Kieu 1422 -https://www.bible.com/bible/1742/jhn.1.bav bav bav yigis at nwi m at kee m at fim at mang ghang vengoo 1742 Vengo 1742 -https://www.bible.com/bible/2056/jhn.1.vol vol vol pened balid yolianesa 1888 2056 Volapük 2056 -https://www.bible.com/bible/887/jhn.1.ntv vut ntv le nouveau testament en langue vute 887 Vute 887 -https://www.bible.com/bible/325/jhn.1.wcl wbm wcl wa common language translation 325 Wa 325 -https://www.bible.com/bible/1826/jhn.1.dhrgkk72 sqi dhrgkk72 dhiata e re gegnisht konstandin kristoforidhi 1872 1826 Albanian - Shqip 1826 -https://www.bible.com/bible/1821/jhn.1.altmk27 sqi altmk27 dhjata e re 1827 1821 Albanian - Shqip 1821 -https://www.bible.com/bible/7/jhn.1.albb sqi albb bibla shqip 7 Albanian - Shqip 7 -https://www.bible.com/bible/1822/jhn.1.al1884 sqi al1884 libra te dhiates se vjeter te perkthyera ne dialektin tosk nga konstandin kristoforidhi ne 1884 transliterim nga germat greke ne latine 1822 Albanian - Shqip 1822 -https://www.bible.com/bible/292/jhn.1.al sqi al bibla shqip 2018 se bashku 292 Albanian - Shqip 292 -https://www.bible.com/bible/597/jhn.1.jivnt jiv jivnt yus papi shuarjai yus yamaram chicham najanamu 597 Shuar 597 -https://www.bible.com/bible/1195/jhn.1.snplnt snp snplnt goti ukuwala hala 1195 Siane 1195 -https://www.bible.com/bible/1194/jhn.1.snpknt snp snpknt gotiki olu kutifi ledami ka kofawa 1194 Siane 1194 -https://www.bible.com/bible/852/jhn.1.zaant zaa zaant ca titsa de la labani para iyate ca enne 852 Sierra de Juárez Zapotec 852 -https://www.bible.com/bible/1897/jhn.1.bla1890 bla bla1890 okhs i tsin ik sin ni st matthew ot sin ai pi 1897 Siksika (Blackfoot) - Siksika 1897 -https://www.bible.com/bible/1876/jhn.1.simte-bsi smt simte bsi thuhun thah bsi 1876 Simte 1876 -https://www.bible.com/bible/1346/jhn.1.sncnt snc sncnt ginitago variguna 1346 Sinaugoro 1346 -https://www.bible.com/bible/974/jhn.1.xsi xsi xsi maro kindeni kawa nggua 974 Sio 974 -https://www.bible.com/bible/271/jhn.1.snnnt snn snnnt riusu cocabera mai ejague jesucristo baiyete toyani jocaseee 271 Siona 271 -https://www.bible.com/bible/1075/jhn.1.srint sri srint maripuya kerere wereri turi 1075 Siriano 1075 -https://www.bible.com/bible/705/jhn.1.srqnt srq srqnt mbia chee 705 Sirionó 705 -https://www.bible.com/bible/1280/jhn.1.ssdnt ssd ssdnt kuate tuku pasa 1280 Siroi 1280 -https://www.bible.com/bible/604/jhn.1.swt ssw swt siswati 1996 bible 604 Swazi - siSwati 604 -https://www.bible.com/bible/1738/jhn.1.akpnt akp akpnt gaa inyi gete siwu nt ghana 1738 Siwu 1738 -https://www.bible.com/bible/163/jhn.1.ssv slk ssv svate pismo katolicky preklad 163 Slovak - Slovenčina 163 -https://www.bible.com/bible/1918/jhn.1.sylr syl sylr siloti kitabul mukaddos 1918 Sylheti 1918 -https://www.bible.com/bible/1917/jhn.1.ssv syl ssv chiltti kitaabul mukaaddch 1917 Sylheti 1917 -https://www.bible.com/bible/1916/jhn.1.snv syl snv chiltti kitaabul mukaaddch naagri lipi 1916 Sylheti 1916 -https://www.bible.com/bible/772/jhn.1.zatntps zat zatntps xela wezria cube nen salmo ca 772 Tabaa Zapotec 772 -https://www.bible.com/bible/797/jhn.1.chfnt chf chfnt u ch u ul t an dios 797 Tabasco Chontal 797 -https://www.bible.com/bible/2081/jhn.1.%D0%A2%D0%B0%D0%B1%D0%A6%D0%99 tab tabassaran new testament 2081 Tabassaran 2081 -https://www.bible.com/bible/989/jhn.1.knvf knv knvf nupela testamen long tokples tabo fly river long niugini 989 Tabo 989 -https://www.bible.com/bible/959/jhn.1.knvant knv knvant godokono hido tabo 959 Tabo 959 -https://www.bible.com/bible/681/jhn.1.tnant tna tnant diusu sa mimi 681 Tacana 681 -https://www.bible.com/bible/1116/jhn.1.bgsntpo bgs bgsntpo kagi ka manama 1116 Tagabawa 1116 -https://www.bible.com/bible/1935/jhn.1.tbwont tbw tbwont kamatuudan nga ampang it ampuang diyus nga magpatantu pasar it kanya 1935 Tagbanwa 1935 -https://www.bible.com/bible/910/jhn.1.taynt taw taynt jisas klays takaw teplep ne 910 Tai 910 -https://www.bible.com/bible/1468/jhn.1.tbcnt tbc tbcnt anut san bilalung foun 1468 Takia 1468 -https://www.bible.com/bible/1552/jhn.1.takuu nho takuu na taratara teatua i naa taratara takuu 1552 Takuu 1552 -https://www.bible.com/bible/1426/jhn.1.tke tke tke bibiliya nadhu a mulugu 1426 Takwane 1426 -https://www.bible.com/bible/1797/jhn.1.tljnt tlj tljnt ndaghaano mpyaka mu lubwisi uganda 1797 Talinga-Bwisi 1797 -https://www.bible.com/bible/1144/jhn.1.taqnt taq taqnt al at nzil n gisa almasex kitab almuqaddas 1144 Tamasheq 1144 -https://www.bible.com/bible/1804/jhn.1.tpmnt tpm tpmnt koosa s at m ton fali 1804 Tampulma 1804 -https://www.bible.com/bible/1545/jhn.1.tangkhul-bsi nmf tangkhul bsi kathara bible bsi 1545 Tangkhul Naga (India) - Tangkhul 1545 -https://www.bible.com/bible/1225/jhn.1.tgpnt tgp tgpnt retitapu na leon tatangoa 1225 Tangoa 1225 -https://www.bible.com/bible/279/jhn.1.tzoznt tzo tzoznt scop riox ja li yaloj ti chac jcuxlejaltic ta sbatel osli ti cajvaltic jesucristoe 279 Tzotzil 279 -https://www.bible.com/bible/837/jhn.1.tzont tzo tzont ja ti ach testamento ja sc opilal ti jesucristoe ja ti jcoltavanej cu untique el nuevo testamento de nuestro senor jesucristo en tzotzil de huixtan 837 Tzotzil 837 -https://www.bible.com/bible/757/jhn.1.tzont tzo tzont ach testamento ja sc oplal ti ja cajcoltavanejtic li cajvaltic jesucristoe 757 Tzotzil 757 -https://www.bible.com/bible/382/jhn.1.tze97 tzo tze97 bible in tzotzil de chenalho with deuterocanon 382 Tzotzil 382 -https://www.bible.com/bible/334/jhn.1.tzc00 tzo tzc00 bible in tzotzil de chamula 334 Tzotzil 334 -https://www.bible.com/bible/800/jhn.1.dognt dgr dognt nohtsi nihtle 800 Dogrib (Tlinchon) - Tłı̨chǫ Yatıì 800 -https://www.bible.com/bible/1750/jhn.1.ksj ksj ksj uare bible 1750 Uare 1750 -https://www.bible.com/bible/1242/jhn.1.ubrntpo ubr ubrntpo god an dura bobaibasit boboun 1242 Ubir 1242 -https://www.bible.com/bible/569/jhn.1.cpbnt cpb cpbnt kameethari naantsi ikenkitha takoitziri awinkatharite jesucristo owakerari aapatziya wakagaantsi 569 Ucayali-Yurúa Ashéninka 569 -https://www.bible.com/bible/917/jhn.1.udk udu udk uduk new teatament and ot portions 917 Uduk 917 -https://www.bible.com/bible/885/jhn.1.usnt sco usnt guid wittins frae docter luik 885 Ullans - Ulster Scots 885 -https://www.bible.com/bible/962/jhn.1.gdnnt gdn gdnnt iya yonai 962 Umanakaina 962 -https://www.bible.com/bible/1251/jhn.1.ubunt ubu ubunt pulu yemonga ungu kondemo 1251 Umbu-Ungu 1251 -https://www.bible.com/bible/1234/jhn.1.ubunt ubu ubunt pulu yemonga ungu kondemo 1234 Umbu-Ungu 1234 -https://www.bible.com/bible/1417/jhn.1.ubunnt ubu ubunnt pulu yemonga ungu kondemo pulu yemone nimbe panjipe mi lerimu ungu kondemo 1417 Umbu-Ungu 1417 -https://www.bible.com/bible/1339/jhn.1.duent due duent i bowon a pagpakikasungdu 1339 Umiray Dumaget Agta 1339 -https://www.bible.com/bible/1670/jhn.1.unant mtg unant ukuryok ebdeibsou uram 1670 Una 1670 -https://www.bible.com/bible/729/jhn.1.tkunt tku tkunt xasasti testamento xatze tachihuin ixpalacata jesucristo 729 Upper Necaxa Totonac 729 -https://www.bible.com/bible/649/jhn.1.quhnt quh quhnt dios parlapawanchej 649 South Bolivian Quechua - Uralan Buliwya runasimi 649 -https://www.bible.com/bible/263/jhn.1.qnbnt quh qnbnt dios tatanchispaq musuq rimayninkuna 263 South Bolivian Quechua - Uralan Buliwya runasimi 263 -https://www.bible.com/bible/924/jhn.1.ant aji ant ajie new testament 924 Ajië - Waawilûû 924 -https://www.bible.com/bible/1253/jhn.1.wajnt waj wajnt karaasa yeena rau kioo kuaivovee 1253 Waffa 1253 -https://www.bible.com/bible/1565/jhn.1.fad fad fad lukri ne kena 1565 Wagi 1565 -https://www.bible.com/bible/918/jhn.1.knt whk knt kenyah new testament 918 Wahau Kenyah 918 -https://www.bible.com/bible/1472/jhn.1.rront rro rront abiuai apauana mahamahana 1472 Waima 1472 -https://www.bible.com/bible/231/jhn.1.baont bao baont umureco pacu wederique 231 Waimaha 231 -https://www.bible.com/bible/1905/jhn.1.lgl lgl lgl alafuuna faalu ala saena i wala 1905 Wala 1905 -https://www.bible.com/bible/1430/jhn.1.wmtotnt wmt wmtotnt wangki wulyi jirrkirlikanujuwal 1430 Walmajarri 1430 -https://www.bible.com/bible/1064/jhn.1.nagw nnp nagw otsao baibel 1064 Wancho Naga 1064 -https://www.bible.com/bible/1788/jhn.1.mfi mfi mfi namana a dadaamiya angwaslire cameroun 1788 Wandala 1788 -https://www.bible.com/bible/1470/jhn.1.wncb wnc wncb nupela testamen 1470 Wantoat 1470 -https://www.bible.com/bible/230/jhn.1.aucnt auc aucnt waengongui nano apaenegaino 230 Waorani 230 -https://www.bible.com/bible/451/jhn.1.wapnt wap wapnt kaimanao tominkaru paradan 451 Wapishana 451 -https://www.bible.com/bible/1469/jhn.1.wrspb wrs wrspb sesoana besal nemelmoa walsana moana 1469 Waris 1469 -https://www.bible.com/bible/1355/jhn.1.wbp wbp wbp walpiri new testament 1355 Warlpiri 1355 -https://www.bible.com/bible/1352/jhn.1.oymnt oym oymnt janejaree ayvukwera 1352 Wayampi 1352 -https://www.bible.com/bible/1584/jhn.1.guc guc guc tu nuchikimaajatkat jesucristo 1584 Wayuu 1584 -https://www.bible.com/bible/1940/jhn.1.wobnt wob wobnt dbeede dee 1940 Wè Northern 1940 -https://www.bible.com/bible/1414/jhn.1.wedw wed wedw wedau mark 1414 Wedau 1414 -https://www.bible.com/bible/1416/jhn.1.wedt wed wedt topura mark 1416 Wedau 1416 -https://www.bible.com/bible/866/jhn.1.iountpo iou iountpo anutu tango man 866 Tuma-Irumu 866 -https://www.bible.com/bible/1961/jhn.1.tumbuka tum tumbuka new tumbuka bible 1961 Tumbuka 1961 -https://www.bible.com/bible/999/jhn.1.lcmntpo lcm lcmntpo akus ro na palatung tanginang ani iesu karisto 999 Tungag 999 -https://www.bible.com/bible/892/jhn.1.tupb tui tupb le bible en tupurri 892 Tupuri 892 -https://www.bible.com/bible/170/jhn.1.tcl02 tur tcl02 kutsal kitap yeni ceviri 170 Turkish - Türkçe 170 -https://www.bible.com/bible/2028/jhn.1.kmeya tur kmeya kitabi mukaddes eski ve yeni ahit 2028 Turkish - Türkçe 2028 -https://www.bible.com/bible/1851/jhn.1.tuklat16 tuk tuklat16 mukaddes kitap 1851 Turkmen - Türkmençe 1851 -https://www.bible.com/bible/1937/jhn.1.tukcyr16 tuk tukcyr16 mukaddies kitap 1937 Turkmen - Türkmençe 1937 -https://www.bible.com/bible/2123/jhn.1.ifkwb ifk ifkwb nan kalin apu dios 2123 Tuwali Ifugao 2123 -https://www.bible.com/bible/1752/jhn.1.bov bov bov baguma apam voe a tuwuli 1752 Tuwuli 1752 -https://www.bible.com/bible/686/jhn.1.tuent tue tuent coamacu mecua wedesei 686 Tuyuca 686 -https://www.bible.com/bible/1631/jhn.1.nak twi nak nkwa asem apam foforo ne nnwom 1631 Twi 1631 -https://www.bible.com/bible/1461/jhn.1.aswdc twi aswdc twere kronkron 1461 Twi 1461 -https://www.bible.com/bible/1861/jhn.1.asw twi asw new revised asante twi bible 1861 Twi 1861 -https://www.bible.com/bible/1921/jhn.1.tyapnt kcg tyapnt alyiat agwaza na din tyap alikauli afai 1921 Tyap 1921 -https://www.bible.com/bible/687/jhn.1.tzjnt tzj tzjnt ja c ac a chominem 687 Tz'utujil 687 -https://www.bible.com/bible/690/jhn.1.tzjnt tzj tzjnt c ac chuminem 690 Tz'utujil 690 -https://www.bible.com/bible/363/jhn.1.tzoxch tzh tzoxch bible in tzeltal de oxchuc y tenejapa 363 Tzeltal 363 -https://www.bible.com/bible/361/jhn.1.tzh tzh tzh bible in tzeltal bachajon 361 Tzeltal 361 -https://www.bible.com/bible/2132/jhn.1.amannt tzh amannt nuevo testamento tzeltal de amatenango 2132 Tzeltal 2132 -https://www.bible.com/bible/703/jhn.1.ternt ter ternt emou itukooviti 703 Tereno 703 -https://www.bible.com/bible/682/jhn.1.tfrntpo tfr tfrntpo sbo tjlokwo 682 Teribe 682 -https://www.bible.com/bible/436/jhn.1.ate61 teo ate61 ebaibuli 1961 436 Teso 436 -https://www.bible.com/bible/767/jhn.1.nhgnt nhg nhgnt el nuevo testamento en nahuatl de tetelcingo 767 Tetelcingo Nahuatl 767 -https://www.bible.com/bible/1401/jhn.1.tetntpo tet tetntpo maromak manfatin 1401 Tetum 1401 -https://www.bible.com/bible/843/jhn.1.cutdbl cut cutdbl el nuevo testamento cuicateco de teutila 843 Teutila Cuicatec 843 -https://www.bible.com/bible/1215/jhn.1.tewnt tew tewnt na inbi sedo yoesivi tuu slash nanbi sedo joesivi tun 1215 Tewa (USA) 1215 -https://www.bible.com/bible/728/jhn.1.zpzntpp zpz zpzntpp de riidz ni trat cub nu bicy nu ngyoozh mbecy salmos proverbios 728 Texmelucan Zapotec 728 -https://www.bible.com/bible/711/jhn.1.mxbnt mxb mxbnt tuti yoo kuu to on ndios ta xio na kuenda saa jesus 711 Tezoatlán Mixtec 711 -https://www.bible.com/bible/1879/jhn.1.thadkuki-bsi tcz thadkuki bsi pathen thutheng bu bsi 1879 Thado Chin - Thadou Kuki 1879 -https://www.bible.com/bible/1880/jhn.1.thangkal-bsi nki thangkal bsi thukhun thak bsi 1880 Thangal Naga - Thangkhal 1880 -https://www.bible.com/bible/289/jhn.1.tcant tca tcant tupanaaru ore i toru cori ya ngechuchu ya cristuchiga 289 Ticuna 289 -https://www.bible.com/bible/193/jhn.1.vb1925 vie vb1925 kinh thanh ban truyen thong 1925 193 Vietnamese - tiếng Việt 193 -https://www.bible.com/bible/151/jhn.1.rvv11 vie rvv11 revised vietnamese version bible 151 Vietnamese - tiếng Việt 151 -https://www.bible.com/bible/449/jhn.1.nvb vie nvb kinh thanh ban dich moi 449 Vietnamese - tiếng Việt 449 -https://www.bible.com/bible/1638/jhn.1.kthd vie kthd kinh thanh hien dai 1638 Vietnamese - tiếng Việt 1638 -https://www.bible.com/bible/205/jhn.1.bpt vie bpt thanh kinh ban pho thong 205 Vietnamese - tiếng Việt 205 -https://www.bible.com/bible/19/jhn.1.bd2011 vie bd2011 ban dich 2011 19 Vietnamese - tiếng Việt 19 -https://www.bible.com/bible/1647/jhn.1.tif tif tif god ami alokso weng 1647 Tifal 1647 -https://www.bible.com/bible/1989/jhn.1.nzadblnt nza nzadblnt srakada mbochu epokwre 1989 Tigon Mbembe 1989 -https://www.bible.com/bible/1289/jhn.1.wernt wer wernt ngonen pepewer 1289 Weri 1289 -https://www.bible.com/bible/929/jhn.1.kewntpo kew kewntpo gotena epe agaa 929 West Kewa 929 -https://www.bible.com/bible/573/jhn.1.apwnt apw apwnt the new testament of our lord and saviour jesus christ 573 Western Apache 573 -https://www.bible.com/bible/928/jhn.1.mbbot mbb mbbot is lalag te megbevaya 928 Western Bukidnon Manobo 928 -https://www.bible.com/bible/1313/jhn.1.mbbnt mbb mbbnt is begu he paagi ang pulong sa dios 1313 Western Bukidnon Manobo 1313 -https://www.bible.com/bible/730/jhn.1.ctpnt ctp ctpnt cha su we nu nchkwi cha in jesucristo nu nka x naan 730 Western Highland Chatino 730 -https://www.bible.com/bible/748/jhn.1.nhwbi nhw nhwbi icamanal toteco santa biblia 748 Western Huasteca Nahuatl 748 -https://www.bible.com/bible/623/jhn.1.knjnt knj knjnt ja an nuevo testamento 623 Western Kanjobal 623 -https://www.bible.com/bible/2093/jhn.1.wlb lcp wlb phrakhamphiirlawaa 2093 Western Lawa 2093 -https://www.bible.com/bible/1324/jhn.1.sucnt suc sucnt kitab bogu pasad talu nog mikpongon 1324 Western Subanon 1324 -https://www.bible.com/bible/1420/jhn.1.tnp tnp tnp nau at u at asim r at ha uhgin n at mt at ti at n vi 1420 Whitesands 1420 -https://www.bible.com/bible/528/jhn.1.wchb mzh wchb biblia wichi 528 Wichí Lhamtés Güisnay - Wichí 528 -https://www.bible.com/bible/560/jhn.1.whyk mtp whyk silaat ta is ta noweenho wikyi 560 Wichí Lhamtés Nocten 560 -https://www.bible.com/bible/1332/jhn.1.wimnt wim wimnt wik inangan kan kanam god dot antama 1332 Wik-Mungkan 1332 -https://www.bible.com/bible/946/jhn.1.gdrnt gdr gdrnt wipi yit god ma yina sisil yina peba 946 Wipi 946 -https://www.bible.com/bible/1286/jhn.1.wiunt wiu wiunt weneya totono keraisu yesunomo 1286 Wiru 1286 -https://www.bible.com/bible/1081/jhn.1.noant noa noant hewandam hiek 1081 Woun Meu 1081 -https://www.bible.com/bible/1082/jhn.1.noaant noa noaant ewandam iek 1082 Woun Meu 1082 -https://www.bible.com/bible/1288/jhn.1.wuv wuv wuv wuvulu manufau fiugaia 1288 Wuvulu-Aua 1288 -https://www.bible.com/bible/683/jhn.1.xavnt xav xavnt re ihaimana uasi mono zadawa wasuu 683 Xavánte 683 -https://www.bible.com/bible/1543/jhn.1.tangsa-bsi nst tangsa bsi tangsa naga bible bsi 1543 Tase Naga - Tangsa 1543 -https://www.bible.com/bible/1110/jhn.1.tncpor tnc tncpor tu ara majaroka 1110 Tanimuca-Retuarã 1110 -https://www.bible.com/bible/1878/jhn.1.tarao-bsi tro tarao bsi akthar trongirhna bsi 1878 Tarao Naga - Tarao 1878 -https://www.bible.com/bible/773/jhn.1.ctant cta ctant new testament in chatino tataltepec 773 Tataltepec Chatino 773 -https://www.bible.com/bible/1087/jhn.1.tavnt tav tavnt dio wadarique 1087 Tatuyo 1087 -https://www.bible.com/bible/1258/jhn.1.tpa tpa tpa taupota mark 1258 Taupota 1258 -https://www.bible.com/bible/1319/jhn.1.tsg tsg tsg kitab injil 1319 Tausug 1319 -https://www.bible.com/bible/1213/jhn.1.tbont tbo tbont yaubada a wogatala wouna 1213 Tawala 1213 -https://www.bible.com/bible/1321/jhn.1.ttqtg ttq ttqtg 1321 Taureg - Tawallammat Tamajaq 1321 -https://www.bible.com/bible/1309/jhn.1.ttq ttq ttq 3linjil at n gaysa 3lm at six 1309 Taureg - Tawallammat Tamajaq 1309 -https://www.bible.com/bible/288/jhn.1.tbl tbl tbl the new testament in tboli 288 Tboli 288 -https://www.bible.com/bible/1680/jhn.1.tchkr kqo tchkr kuo dele 1680 Eastern Krahn - Tchien Krahn 1680 -https://www.bible.com/bible/689/jhn.1.ttcnt ttc ttcnt te ak a j tu jal tuj tu jal qtata dios 689 Tektiteko 689 -https://www.bible.com/bible/1230/jhn.1.tlfnt tlf tlfnt god imi weng 1230 Telefol 1230 -https://www.bible.com/bible/1384/jhn.1.kdhdbl kdh kdhdbl kdh isoo de tom tem daa 1384 Tem 1384 -https://www.bible.com/bible/850/jhn.1.otnnt otn otnnt ja ua ra da yo cohi bi gomi oja yo ja i 850 Tenango Otomi 850 -https://www.bible.com/bible/659/jhn.1.pahnt pah pahnt tupana ga nhi iga 659 Tenharim 659 -https://www.bible.com/bible/726/jhn.1.cntnt cnt cntnt jag1 mi2 a2ma2li 54 quian 54 diu4 726 Tepetotutla Chinantec 726 -https://www.bible.com/bible/831/jhn.1.cuxnt cux cuxnt nduudu n dai yen e ndyuus yen e cuicateco yen e tepeuxila 831 Tepeuxila Cuicatec 831 -https://www.bible.com/bible/1317/jhn.1.ted ted ted le nouveau testament en langue kroumen tepo 1317 Tepo Krumen 1317 -https://www.bible.com/bible/43/jhn.1.csbs zho csbs zhong wen biao zhun yi ben 43 Chinese (Simplified) - 简体中文 43 -https://www.bible.com/bible/41/jhn.1.cnvs zho cnvs xin yi ben 41 Chinese (Simplified) - 简体中文 41 -https://www.bible.com/bible/36/jhn.1.ccb zho ccb sheng jing dang dai yi ben xiu ding ban 36 Chinese (Simplified) - 简体中文 36 -https://www.bible.com/bible/1889/jhn.1.%E6%AC%A1%E7%B6%93 zho ci jing quan shu fan ti 1889 Chinese (Traditional) - 繁體中文 1889 -https://www.bible.com/bible/139/jhn.1.rcuv zho rcuv he he ben xiu ding ban 139 Chinese (Traditional) - 繁體中文 139 -https://www.bible.com/bible/46/jhn.1.cunp-%E7%A5%9E zho cunp xin biao dian he he ben shen ban 46 Chinese (Traditional) - 繁體中文 46 -https://www.bible.com/bible/414/jhn.1.cunp-%E4%B8%8A%E5%B8%9D zho cunp xin biao dian he he ben shang di ban 414 Chinese (Traditional) - 繁體中文 414 -https://www.bible.com/bible/312/jhn.1.csbt zho csbt zhong wen biao zhun yi ben 312 Chinese (Traditional) - 繁體中文 312 -https://www.bible.com/bible/40/jhn.1.cnv zho cnv xin yi ben 40 Chinese (Traditional) - 繁體中文 40 -https://www.bible.com/bible/1392/jhn.1.ccb zho ccb sheng jing dang dai yi ben xiu ding ban 1392 Chinese (Traditional) - 繁體中文 1392 -https://www.bible.com/bible/780/jhn.1.toont too toont huan xasasti testamento huan xatzey tachihuin ixpalacata jesucristo 780 Xicotepec De Juárez Totonac 780 -https://www.bible.com/bible/418/jhn.1.tso89 tso tso89 bibele mahungu lamanene 418 Tsonga - Xitsonga 418 -https://www.bible.com/bible/184/jhn.1.tso89 tso tso89 bibele mahungu lamanene 184 Tsonga - Xitsonga 184 -https://www.bible.com/bible/607/jhn.1.tso29no tso tso29no xitsonga bibele 607 Tsonga - Xitsonga 607 -https://www.bible.com/bible/680/jhn.1.yadnt yad yadnt judenu jto nijyanvamyu 680 Yagua 680 -https://www.bible.com/bible/1388/jhn.1.ykant yka ykant kitab injil 1388 Yakan 1388 -https://www.bible.com/bible/731/jhn.1.zpunt zpu zpunt di ll dan nsa a yel nban el nuevo testamento en el zapoteco de yalalag 731 Yalálag Zapotec 731 -https://www.bible.com/bible/620/jhn.1.kitabuna yal kitabuna kisin kiraan kitabuna 620 Yalunka 620 -https://www.bible.com/bible/1160/jhn.1.yamnt yam yamnt ngwak nwi ma ruk n at fi 1160 Yamba 1160 -https://www.bible.com/bible/679/jhn.1.yaant yaa yaant niospa meka fena jesucristoonoa 679 Yaminahua 679 -https://www.bible.com/bible/512/jhn.1.ament ame ament yompor po non nent atto yepartseshar jesucristo e ne etserra a poctaterrnay yomporesho 512 Yanesha' 512 -https://www.bible.com/bible/938/jhn.1.yrent yre yrent bali le fluba tre zozi blamin pli bali man e pee 938 Yaouré 938 -https://www.bible.com/bible/1919/jhn.1.yap yap yap bible ni thothup 1919 Yapese 1919 -https://www.bible.com/bible/799/jhn.1.yaqnt yaq yaqnt yo owe jesukrijtota itom ya ariaka u betchi bo ju u bemelaka liojta betana lutu uria ya ari el nuevo testamento en yaqui 799 Yaqui 799 -https://www.bible.com/bible/1025/jhn.1.yrb yrb yrb godinu dubu kobere sina 1025 Yareba 1025 -https://www.bible.com/bible/1353/jhn.1.zae zae zae ka tisa ge tata jesucristuha 1353 Yareni Zapotec 1353 -https://www.bible.com/bible/755/jhn.1.ztyntps zty ztyntps diza chawe kub len salmo ka 755 Yatee Zapotec 755 -https://www.bible.com/bible/828/jhn.1.zavnt zav zavnt testament cob at de en choe diz at che ancho jesocrist at n 828 Yatzachi Zapotec 828 -https://www.bible.com/bible/475/jhn.1.yvant yva yvant ayao amisy urairi wanyin 475 Yawa 475 -https://www.bible.com/bible/1387/jhn.1.ybynt yby ybynt monoka madona ohatama 1387 Yaweyuha 1387 -https://www.bible.com/bible/1437/jhn.1.yawo yao yawo chiyawo bible 1437 Yao - Yawo (Yaawo) 1437 -https://www.bible.com/bible/1241/jhn.1.yle yle yle nmi mi u k pu dyuu 1241 Yele 1241 -https://www.bible.com/bible/1093/jhn.1.yss-yawu yss yss yawu god eter agerke namderasem tuma yenbo 1093 Yessan-Mayo 1093 -https://www.bible.com/bible/1063/jhn.1.nagy yim nagy amusuh hum 1063 Yimchungru Naga 1063 -https://www.bible.com/bible/652/jhn.1.pibnt pib pibnt gerotu tokanchi gipiratkaluru 652 Yine 652 -https://www.bible.com/bible/1471/jhn.1.yonb yon yonb god ye weng karadmo 1471 Yongkom 1471 -https://www.bible.com/bible/468/jhn.1.yutnt yut yutnt pingkop gen 468 Yopno 468 -https://www.bible.com/bible/911/jhn.1.ycb yor ycb bibeli mimo ni ede yoruba de ni 911 Yoruba - Yorùbá 911 -https://www.bible.com/bible/207/jhn.1.bm yor bm yoruba bible 207 Yoruba - Yorùbá 207 -https://www.bible.com/bible/741/jhn.1.mpmnt mpm mpmnt nuevo testamento en mixteco de yosondua 741 Yosondúa Mixtec 741 -https://www.bible.com/bible/1101/jhn.1.ycnnt ycn ycnnt tupana puracaalo mari 1101 Yucuna 1101 -https://www.bible.com/bible/1390/jhn.1.ypk esu ypk yupik bible 1390 Central Yupik - Yup'ik 1390 -https://www.bible.com/bible/976/jhn.1.atbnt atb atbnt chyoiyung chyumlaika dangshikaq asik zaiwa 976 Zaiwa (Atsi) - Zaiwa 976 -https://www.bible.com/bible/2078/jhn.1.atb1951 atb atb1951 marku mau sau 1951 zaiwa 2078 Zaiwa (Atsi) - Zaiwa 2078 -https://www.bible.com/bible/291/jhn.1.zpont zpo zpont wdizh kwaan nyaadno yalnaban 291 Amatlán Zapotec - Zapotec Amatlán 291 -https://www.bible.com/bible/284/jhn.1.zarnt zar zarnt didza cubi rucaana tsahui 284 Rincón Zapotec - Zapotec Rincón 284 -https://www.bible.com/bible/283/jhn.1.zabnt zab zabnt xtiidx dios cun ditsa 283 Western Tlacolula Valley Zapotec - Zapotec San Juan Guelavía 283 -https://www.bible.com/bible/1071/jhn.1.nagz nzm nagz kemci bible 1071 Zeme Naga 1071 -https://www.bible.com/bible/1656/jhn.1.ybnt zyb ybnt gij baujcingq moq caeuq geij bonj gij baujcingq daeuzdaeuz 1656 Zhuang, Yongbei 1656 -https://www.bible.com/bible/625/jhn.1.ziant zia ziant tuwa yesu kristora bowi iwaing 625 Zia 625 -https://www.bible.com/bible/1443/jhn.1.%D0%A0%D0%98%20%D0%91%D0%91%D0%94 bul bibliia rievizirano izdaniie 1443 Bulgarian - български 1443 -https://www.bible.com/bible/901/jhn.1.%D0%9D%D0%9F bul bibliia nov prievod ot orighinalnitie iezitsi s niekanonichnitie knighi 901 Bulgarian - български 901 -https://www.bible.com/bible/1724/jhn.1.%D0%91%D0%9B%D0%91 bul biblieiski tiekst rievizirano izdaniie 2001 gh dot na rieviziranoto izdaniie ot 1924 gh na protiestantskiia prievod na bibliiata na blgharski iezik ot 1871gh 1724 Bulgarian - български 1724 -https://www.bible.com/bible/190/jhn.1.vbg bul vbg vierien 190 Bulgarian - български 190 -https://www.bible.com/bible/196/jhn.1.spb bul spb noviiat zaviet svriemienien prievod 196 Bulgarian - български 196 -https://www.bible.com/bible/23/jhn.1.bg1940 bul bg1940 rieviziran 23 Bulgarian - български 23 -https://www.bible.com/bible/22/jhn.1.bg1871 bul bg1871 tsarighradski 22 Bulgarian - български 22 -https://www.bible.com/bible/1503/jhn.1.%D0%9A%D1%8A%D1%83%D0%BCck kum ck syily kitap ianghy razilieshivniu 1503 Kumyk - къумукъ 1503 -https://www.bible.com/bible/1550/jhn.1.ctb crh ctb mukaddies kitap 1550 Crimean Tatar - Къырымтатарджа 1550 -https://www.bible.com/bible/322/jhn.1.mnt mkd mnt dinamichien prievod na noviot zaviet na makiedonski jazik 322 Macedonian - Македонски 322 -https://www.bible.com/bible/311/jhn.1.mkb mkd mkb biblija svieto pismo stariot i noviot zaviet 311 Macedonian - Македонски 311 -https://www.bible.com/bible/1706/jhn.1.mk2008 mkd mk2008 svieto ievanghieliie 2008 1706 Macedonian - Македонски 1706 -https://www.bible.com/bible/1272/jhn.1.mk2006d mkd mk2006d svieto pismo standardna biblija 2006 so dievtierokanonski knighi 1272 Macedonian - Македонски 1272 -https://www.bible.com/bible/1501/jhn.1.mk2006 mkd mk2006 svieto pismo standardna biblija 2006 66 knighi 1501 Macedonian - Македонски 1501 -https://www.bible.com/bible/1696/jhn.1.mk1990 mkd mk1990 svieto pismo gavrilova 1990 1696 Macedonian - Македонски 1696 -https://www.bible.com/bible/1590/jhn.1.%D0%90%D0%912013 khk 2013 ariun bibli 2013 1590 Mongolian - Монгол 1590 -https://www.bible.com/bible/369/jhn.1.%D0%90%D0%912004 khk 2004 ariun bibli 2004 369 Mongolian - Монгол 369 -https://www.bible.com/bible/1524/jhn.1.nog nog nog nogai new testament 1524 Nogai - Ногай тили 1524 -https://www.bible.com/bible/1513/jhn.1.che che che dielan iozanash 1513 Chechen - Нохчийн мотт 1513 -https://www.bible.com/bible/1999/jhn.1.%D0%A1%D0%A0%D0%9F-2 rus 2 sovriemiennyi russkii pierievod 2 ie izd dot 1999 Russian - Русский 1999 -https://www.bible.com/bible/481/jhn.1.dgv urd dgv kitaab e mukdds 481 Urdu (Devanagari) - उर्दू 481 -https://www.bible.com/bible/789/jhn.1.suzbi suz suzbi prmprbhu yaave aa lov 789 Sunwar - कोँइच 789 -https://www.bible.com/bible/1177/jhn.1.tajnt taj tajnt prmeshvrlaa bcn chaar kbul 1177 Eastern Tamang - तामाङ 1177 -https://www.bible.com/bible/1711/jhn.1.%E0%A4%B8%E0%A4%B0%E0%A4%B2%20%E0%A4%A8%E0%A5%87%E0%A4%AA%E0%A4%BE%E0%A4%B2%E0%A5%80 nep srl nepaalii pvitr baaibl 1711 Nepali - नेपाली 1711 -https://www.bible.com/bible/1483/jhn.1.nnrv nep nnrv nepali new revised version 1483 Nepali - नेपाली 1483 -https://www.bible.com/bible/1457/jhn.1.newnt nwx newnt nhuugu niym naapn bhjnsngrh v hitopdesh 1457 Newar - नेवाः भाय् 1457 -https://www.bible.com/bible/1910/jhn.1.marirv mar marirv mraatthii baaybl 1910 Marathi - मराठी 1910 -https://www.bible.com/bible/1686/jhn.1.marathi-bsi mar marathi bsi pvitr shaastr rv bsi 1686 Marathi - मराठी 1686 -https://www.bible.com/bible/2143/jhn.1.maracl-bsi mar maracl bsi marathi common language nt bsi 2143 Marathi - मराठी 2143 -https://www.bible.com/bible/1628/jhn.1.shb hin shb srl hindii baaibl 1628 Hindi - हिन्दी 1628 -https://www.bible.com/bible/1980/jhn.1.hinirv hin hinirv pvitr baaibil 1980 Hindi - हिन्दी 1980 -https://www.bible.com/bible/1682/jhn.1.hindicl-bsi hin hindicl bsi pvitr baaibil cl bsi 1682 Hindi - हिन्दी 1682 -https://www.bible.com/bible/1683/jhn.1.hindi-bsi hin hindi bsi hindi ov re edited bsi 1683 Hindi - हिन्दी 1683 -https://www.bible.com/bible/1953/jhn.1.hin2017 hin hin2017 nyaa niym 1953 Hindi - हिन्दी 1953 -https://www.bible.com/bible/819/jhn.1.hhbd hin hhbd hindi holy bible 819 Hindi - हिन्दी 819 -https://www.bible.com/bible/1979/jhn.1.asmirv asm asmirv asmiiyaa baaibel 1979 Assamese - অসমীয়া 1979 -https://www.bible.com/bible/1882/jhn.1.asmfb asm asmfb asmiiyaa baaibel 1882 Assamese - অসমীয়া 1882 -https://www.bible.com/bible/155/jhn.1.sbcl ben sbcl pobitro baibel 155 Bengali (Bangla) - বাংলা 155 -https://www.bible.com/bible/1791/jhn.1.rovu ben rovu pbitr baaibel kerii bhaarsn 1791 Bengali (Bangla) - বাংলা 1791 -https://www.bible.com/bible/95/jhn.1.mbcl ben mbcl kitabul mukkadas 95 Bengali (Bangla) - বাংলা 95 -https://www.bible.com/bible/1714/jhn.1.tma arb tma true meaning arabic 1714 Arabic (Standard) - العربية 1714 -https://www.bible.com/bible/195/jhn.1.sat arb sat lktb lmqds ltrjm at lrby at lmbst at 195 Arabic (Standard) - العربية 195 -https://www.bible.com/bible/153/jhn.1.sab arb sab sharif arabic bible 153 Arabic (Standard) - العربية 153 -https://www.bible.com/bible/101/jhn.1.keh arb keh ketab el hayat 101 Arabic (Standard) - العربية 101 -https://www.bible.com/bible/14/jhn.1.avddv arb avddv lktb lmqds tkhfyf tshkyl 14 Arabic (Standard) - العربية 14 -https://www.bible.com/bible/13/jhn.1.avd arb avd lktb lmqds 13 Arabic (Standard) - العربية 13 -https://www.bible.com/bible/1304/jhn.1.aeb aeb aeb lhd ljdyd blrby at ltwnsy at 1304 Tunisian Arabic - العربية التونسية 1304 -https://www.bible.com/bible/1719/jhn.1.tabs tuk tabs muqdwis khytb 1719 Iranian Turkmen - ترکمن 1719 -https://www.bible.com/bible/341/jhn.1.tdv08 prs tdv08 todays dari version 341 Dari - دری‎ 341 -https://www.bible.com/bible/1379/jhn.1.soso sus soso sunsun kitabuyyin tawurinta yabura inyila 1379 Susu (Arabic Script) - سٌسٌ 1379 -https://www.bible.com/bible/722/jhn.1.sclnt snd sclnt common language new testament 722 Sindhi - سنڌي 722 -https://www.bible.com/bible/181/jhn.1.tpv pes tpv mjdh bry sr jdyd 181 Farsi (Persian) - فارسی 181 -https://www.bible.com/bible/136/jhn.1.pov-fas pes pov fas persian old version 136 Farsi (Persian) - فارسی 136 -https://www.bible.com/bible/118/jhn.1.nmv pes nmv hzrhy nw 118 Farsi (Persian) - فارسی 118 -https://www.bible.com/bible/1619/jhn.1.fcb pes fcb khtb mqds trjmh tfsyry 1619 Farsi (Persian) - فارسی 1619 -https://www.bible.com/bible/453/jhn.1.hzut uig hzut hz rq zmn yuygurchae taerj m s 453 Uyghur - ئۇيغۇر تىلى‎ 453 -https://www.bible.com/bible/1852/jhn.1.pntzs ckb pntzs paeymny nwy w zaebwwraekhn bae soerny 1852 Sorani Kurdish - کوردیی ناوەندی 1852 -https://www.bible.com/bible/503/jhn.1.kss ckb kss kwrdy soerny stndhrd 503 Sorani Kurdish - کوردیی ناوەندی 503 -https://www.bible.com/bible/1094/jhn.1.glk glk glk khytb mqdws bh gylkhy 1094 Gilaki - گیلکی 1094 -https://www.bible.com/bible/1080/jhn.1.aii aii aii dytq hdt dmrn yshw mshyh wmzmwr blshn twry 1080 Assyrian Neo-Aramaic - ܐܬܘܪܝܐ ܣܘܪܝܝܐ 1080 -https://www.bible.com/bible/1883/jhn.1.benirv ben benirv baanlaa baaibel 1883 Bengali (Bangla) - বাংলা 1883 -https://www.bible.com/bible/1681/jhn.1.bengali-bsi ben bengali bsi pbitr baaibel ov bsi 1681 Bengali (Bangla) - বাংলা 1681 -https://www.bible.com/bible/1690/jhn.1.bcl ben bcl pbie baaibel cl bible 1690 Bengali (Bangla) - বাংলা 1690 -https://www.bible.com/bible/809/jhn.1.bacib ben bacib kitaabul mokaadds 809 Bengali (Bangla) - বাংলা 809 -https://www.bible.com/bible/1687/jhn.1.pov-bsi pan pov bsi pvihtr baaiibl ov bsi 1687 Panjabi - ਪੰਜਾਬੀ 1687 -https://www.bible.com/bible/1884/jhn.1.panirv pan panirv pnjaabii baaiibl 1884 Panjabi - ਪੰਜਾਬੀ 1884 -https://www.bible.com/bible/2013/jhn.1.cl-na pan cl na prmeeshr dii baannii snt yuuhnnaa duaaraa likhiaa subb smaacaar 2013 Panjabi - ਪੰਜਾਬੀ 2013 -https://www.bible.com/bible/1691/jhn.1.gujov-bsi guj gujov bsi pvitr baaibl ov bsi 1691 Gujarati - ગુજરાતી 1691 -https://www.bible.com/bible/1848/jhn.1.gujcl-bsi guj gujcl bsi pvitr baaibl cl 1848 Gujarati - ગુજરાતી 1848 -https://www.bible.com/bible/1911/jhn.1.gujbcs guj gujbcs gujraatii baaibl 1911 Gujarati - ગુજરાતી 1911 -https://www.bible.com/bible/1899/jhn.1.tamirv tam tamirv tmilll paipill 1899 Tamil - தமிழ் 1899 -https://www.bible.com/bible/339/jhn.1.tamilov-bsi tam tamilov bsi pricutt veetaakmm ov bsi 339 Tamil - தமிழ் 339 -https://www.bible.com/bible/1787/jhn.1.telov-bsi tel telov bsi prishuddh grnthmu ov bible bsi 1787 Telugu - తెలుగు 1787 -https://www.bible.com/bible/1895/jhn.1.telirv tel telirv telugu be plus bil 1895 Telugu - తెలుగు 1895 -https://www.bible.com/bible/1692/jhn.1.kcl-bsi kan kcl bsi knndd styveedvu cl bsi 1692 Kannada - ಕನ್ನಡ 1692 -https://www.bible.com/bible/1684/jhn.1.kanjv-bsi kan kanjv bsi knndd styveedvu jv bsi 1684 Kannada - ಕನ್ನಡ 1684 -https://www.bible.com/bible/1898/jhn.1.kanirv kan kanirv knndd be plus bl 1898 Kannada - ಕನ್ನಡ 1898 -https://www.bible.com/bible/1693/jhn.1.malov-bsi mal malov bsi styveedpustkn ov bsi 1693 Malayalam - മലയാളം 1693 -https://www.bible.com/bible/1912/jhn.1.malirv mal malirv mlyaalln baibill 1912 Malayalam - മലയാളം 1912 -https://www.bible.com/bible/1685/jhn.1.malcl-bsi mal malcl bsi styveedpustkn cl bsi 1685 Malayalam - മലയാളം 1685 -https://www.bible.com/bible/1794/jhn.1.srov sin srov sinhala revised old version 1794 Sinhala - සිංහල 1794 -https://www.bible.com/bible/1828/jhn.1.nrsv sin nrsv sinhala new revised version 1828 Sinhala - සිංහල 1828 -https://www.bible.com/bible/220/jhn.1.iumith ium iumith chbabaksraithy 220 Iu Mien - ภาษาอิวเมี่ยน 220 -https://www.bible.com/bible/233/jhn.1.iuminr ium iuminr chbabaksrormanaihm 233 Iu Mien - ภาษาอิวเมี่ยน 233 -https://www.bible.com/bible/232/jhn.1.iuminor ium iuminor chbabaksrormanobraan 232 Iu Mien - ภาษาอิวเมี่ยน 232 -https://www.bible.com/bible/246/jhn.1.iumilao ium iumilao chbabaksrlaaw 246 Iu Mien - ภาษาอิวเมี่ยน 246 -https://www.bible.com/bible/179/jhn.1.tncv tha tncv phrakhristthrrmkhamphiiraithy chbabmtthrrmrwmsmay 179 Thai - ภาษาไทย 179 -https://www.bible.com/bible/174/jhn.1.thsv11 tha thsv11 chbabmaatrthaan 174 Thai - ภาษาไทย 174 -https://www.bible.com/bible/203/jhn.1.tha-erv tha tha erv phrakhristthrrmkhamphiir chbabaanekhaaaicchngaay phaakhkhamsayyaaaihm 203 Thai - ภาษาไทย 203 -https://www.bible.com/bible/275/jhn.1.th1971 tha th1971 phrakhamphiiraithy chbab 1971 275 Thai - ภาษาไทย 275 -https://www.bible.com/bible/2046/jhn.1.th1940 tha th1940 phrakhristthrrmkhamphiir chbab 1940 2046 Thai - ภาษาไทย 2046 -https://www.bible.com/bible/175/jhn.1.kjv tha kjv phrakhamphiirphaasaaaithychbab kjv 175 Thai - ภาษาไทย 175 -https://www.bible.com/bible/1727/jhn.1.rlv15 lao rlv15 revised lao version 2015 1727 Lao - ລາວ 1727 -https://www.bible.com/bible/1712/jhn.1.tot11 bod tot11 tibetan old testament 2011 1712 Tibetan - པོད་སྐད་ 1712 -https://www.bible.com/bible/1933/jhn.1.gsar%20ma bod gsar ma bod gyur gsar ma 1933 Tibetan - པོད་སྐད་ 1933 -https://www.bible.com/bible/1391/jhn.1.msb mya msb m n maacnmiismmaak m 1391 Myanmar Burmese (Unicode) - မြန်မာယူနီကုတ် 1391 -https://www.bible.com/bible/386/jhn.1.bjb mya bjb judson bible 386 Myanmar Burmese (Unicode) - မြန်မာယူနီကုတ် 386 -https://www.bible.com/bible/404/jhn.1.bcl mya bcl common language bible 404 Myanmar Burmese (Unicode) - မြန်မာယူနီကုတ် 404 -https://www.bible.com/bible/1459/jhn.1.msbz mya msbz mnmaacnmiism aak m 1459 Myanmar Burmese (Zawgyi) - ျမန္မာေဇာ္ဂ်ီ 1459 -https://www.bible.com/bible/142/jhn.1.rnksv kor rnksv saebeonyeog 142 Korean - 한국어 142 -https://www.bible.com/bible/1035/jhn.1.zibt ziw zibt lagano hya 1035 Zigula 1035 -https://www.bible.com/bible/1065/jhn.1.zomi zom zomi laisiengthou 1065 Zou - Zo 1065 -https://www.bible.com/bible/208/jhn.1.ziv zom ziv zokam international version 208 Zou - Zo 208 -https://www.bible.com/bible/744/jhn.1.zpqnt zpq zpqnt diza guen che ancho jesucristo 744 Zoogocho Zapotec 744 -https://www.bible.com/bible/1959/jhn.1.zb16 czt zb16 zotung bible 2016 1959 Zotung Chin 1959 -https://www.bible.com/bible/930/jhn.1.zypnt zyp zypnt biahrai tha zyphe rei 930 Zyphe Chin - Zyphe 930 -https://www.bible.com/bible/346/jhn.1.tgvd ell tgvd h agia graphi me ta deuterokanonika palaia kai kaini diathiki 346 Modern Greek - Ελληνικά 346 -https://www.bible.com/bible/173/jhn.1.tgv ell tgv h agia graphi palaia kai kaini diathiki 173 Modern Greek - Ελληνικά 173 -https://www.bible.com/bible/423/jhn.1.ntv ell ntv h kaini diathiki tou kuriou kai sotiros imon iisou ksristou kata neoellinikin apodosin 423 Modern Greek - Ελληνικά 423 -https://www.bible.com/bible/921/jhn.1.fpb ell fpb h agia graphi sti dimotiki filos pergamos 921 Modern Greek - Ελληνικά 921 -https://www.bible.com/bible/183/jhn.1.tr1894 grc tr1894 scriveners textus receptus 1894 183 Koine Greek - Ελληνιστική Κοινή 183 -https://www.bible.com/bible/182/jhn.1.tr1624 grc tr1624 elzevir textus receptus 1624 182 Koine Greek - Ελληνιστική Κοινή 182 -https://www.bible.com/bible/156/jhn.1.sblg grc sblg sbl greek new testament 156 Koine Greek - Ελληνιστική Κοινή 156 -https://www.bible.com/bible/209/jhn.1.byz04 grc byz04 patriarxiko keimeno ekdosi antoniadi 1904 209 Koine Greek - Ελληνιστική Κοινή 209 -https://www.bible.com/bible/1850/jhn.1.altntbc alt altntbc jangy kierieies 1850 Southern Altai - Алтай тил 1850 -https://www.bible.com/bible/1929/jhn.1.bsknt14 bak bsknt14 inzhil 1929 Bashkir - Башҡортча 1929 -https://www.bible.com/bible/1573/jhn.1.%D0%9D%D0%97%D0%9F%D1%80%D0%BF bel novy zapaviet i prypoviestsi 1573 Belarusian - беларуская 1573 -https://www.bible.com/bible/1723/jhn.1.%D0%91%D0%91%D0%9B bel bibliia pieraklad v siomukhi 1723 Belarusian - беларуская 1723 -https://www.bible.com/bible/1881/jhn.1.%D0%A8%D0%A5 bxr shene khelseen 1881 Russia Buriat - буряад 1881 -https://www.bible.com/bible/1558/jhn.1.%D0%A1%D0%98 bul bibliia sinodalno izdaniie 1982 gh dot 1558 Bulgarian - български 1558 -https://www.bible.com/bible/88/jhn.1.krv kor krv gaeyeoghangeul 88 Korean - 한국어 88 -https://www.bible.com/bible/86/jhn.1.klb kor klb hyeondaeinyi seonggyeong 86 Korean - 한국어 86 -https://www.bible.com/bible/1260/jhn.1.nasv amh nasv matsehhafe qeduse adisu madabanyaa teregwime amharic bible new amharic standard version 1260 Amharic - አማርኛ 1260 -https://www.bible.com/bible/1926/jhn.1.chr chr chr itse kafalsehedv datlohisdv ugvwiyuhi igatseli tsisa galonedv utseliga 1926 Cherokee - ᏣᎳᎩ ᎦᏬᏂᎯᏍᏗ 1926 -https://www.bible.com/bible/455/jhn.1.eaib ike eaib aclaait ityorngnaaittot 455 Inuktitut: Eastern Arctic - ᐃᓄᒃᑎᑐᑦ 455 -https://www.bible.com/bible/537/jhn.1.cafnt caf cafnt yak usda bughunek kandit khunek neba lhaidinla 537 Southern Carrier - ᑕᗸᒡ 537 -https://www.bible.com/bible/85/jhn.1.%E1%9E%82%E1%9E%81%E1%9E%94 khm brhgmbiirkhmaerpccuppnn 85 Khmer - ភាសាខ្មែរ 85 -https://www.bible.com/bible/1270/jhn.1.khov khm khov brhgmbiirprisuddh 1270 Khmer - ភាសាខ្មែរ 1270 -https://www.bible.com/bible/315/jhn.1.kcb khm kcb khmer christian bible 315 Khmer - ភាសាខ្មែរ 315 -https://www.bible.com/bible/1806/jhn.1.thv12hdb hak thv12hdb ke yu sheng jing xian dai tai wan ke yu yi ben xin jiu yue quan shu ke yu sheng jing han zi ban 1806 Chinese, Hakka - 客家話‎ (Hakkafa) 1806 -https://www.bible.com/bible/1580/jhn.1.%E6%AD%A3%E6%95%99%E6%96%87%E7%90%86%E8%AD%AF%E6%9C%AC lzh e luo si zheng jiao wen li xi la yuan wen xin yue sheng jing fu guan hua sheng yong jing 1580 Chinese (Classical) - 文言(中文) 1580 -https://www.bible.com/bible/1578/jhn.1.cuhwv lzh cuhwv wen li he he yi ben 1578 Chinese (Classical) - 文言(中文) 1578 -https://www.bible.com/bible/1577/jhn.1.cuewv lzh cuewv qian wen li he he xin yue quan shu 1577 Chinese (Classical) - 文言(中文) 1577 -https://www.bible.com/bible/1819/jhn.1.%E6%96%B0%E5%85%B1%E5%90%8C%E8%A8%B3 jpn seisho shinkyoudoyaku sheng shu xin gong tong yi 1819 Japanese - 日本語 1819 -https://www.bible.com/bible/1820/jhn.1.%E5%8F%A3%E8%AA%9E%E8%A8%B3 jpn japanese sheng shu kou yu yi 1820 Japanese - 日本語 1820 -https://www.bible.com/bible/83/jhn.1.jcb jpn jcb ribingubaiburu 83 Japanese - 日本語 83 -https://www.bible.com/bible/81/jhn.1.ja1955 jpn ja1955 colloquial japanese 1955 81 Japanese - 日本語 81 -https://www.bible.com/bible/140/jhn.1.rcuvss zho rcuvss he he ben xiu ding ban 140 Chinese (Simplified) - 简体中文 140 -https://www.bible.com/bible/48/jhn.1.cunpss-%E7%A5%9E zho cunpss xin biao dian he he ben shen ban 48 Chinese (Simplified) - 简体中文 48 -https://www.bible.com/bible/47/jhn.1.cunpss-%E4%B8%8A%E5%B8%9D zho cunpss xin biao dian he he ben shang di ban 47 Chinese (Simplified) - 简体中文 47 -https://www.bible.com/bible/143/jhn.1.%D0%9D%D0%A0%D0%9F rus novyi russkii pierievod 143 Russian - Русский 143 -https://www.bible.com/bible/167/jhn.1.synod rus synod sinodalnyi pierievod 167 Russian - Русский 167 -https://www.bible.com/bible/400/jhn.1.syno rus syno sinodalnyi pierievod 400 Russian - Русский 400 -https://www.bible.com/bible/201/jhn.1.rsp rus rsp novyi zaviet sovriemiennyi pierievod 201 Russian - Русский 201 -https://www.bible.com/bible/45/jhn.1.cslav rus cslav bibliia na tsierkovnoslavianskom iazykie 45 Russian - Русский 45 -https://www.bible.com/bible/480/jhn.1.cass rus cass pierievod iep kassiana 480 Russian - Русский 480 -https://www.bible.com/bible/853/jhn.1.carst rus carst sviashchiennoie pisaniie vostochnyi pierievod 853 Russian - Русский 853 -https://www.bible.com/bible/840/jhn.1.carsa rus carsa sviashchiennoie pisaniie vostochnyi pierievod 840 Russian - Русский 840 -https://www.bible.com/bible/385/jhn.1.cars rus cars sviashchiennoie pisaniie vostochnyi pierievod 385 Russian - Русский 385 -https://www.bible.com/bible/313/jhn.1.bti rus bti bibliia pod ried mp kulakova i mm kulakova 313 Russian - Русский 313 -https://www.bible.com/bible/1888/jhn.1.rso sah rso bibliia 1888 Yakut - Саха тыла 1888 -https://www.bible.com/bible/202/jhn.1.sb-erv srp sb erv serbian bible easy to read version 202 Serbian - Српски Srpski 202 -https://www.bible.com/bible/1969/jhn.1.nspl srp nspl novi srpski prevod 1969 Serbian - Српски Srpski 1969 -https://www.bible.com/bible/1970/jhn.1.nsp srp nsp novi srpski prievod 1970 Serbian - Српски Srpski 1970 -https://www.bible.com/bible/1502/jhn.1.ttrbbl tat ttrbbl izghie iazma 1502 Tatar - Татарча 1502 -https://www.bible.com/bible/1152/jhn.1.%D0%9A%D0%9C%D0%9E tgk kitobi mukaddasi ommafakhm 1152 Tajiki - тоҷикӣ 1152 -https://www.bible.com/bible/1477/jhn.1.km92 tgk km92 kitobi mukaddas 1992 1477 Tajiki - тоҷикӣ 1477 -https://www.bible.com/bible/1520/jhn.1.tuv tyv tuv ydyktygh bibliia 1520 Tuvinian - Тыва дыл 1520 -https://www.bible.com/bible/1224/jhn.1.hzutcyr uig hzutcyr hazirki zaman uigurch at t at rzhimisi 1224 Uyghur Cyrillic - Уйғурчә 1224 -https://www.bible.com/bible/1755/jhn.1.utt ukr utt pierieklad r turkoniaka 1755 Ukrainian - Українська 1755 -https://www.bible.com/bible/204/jhn.1.umt ukr umt sviata bibliia novii zapovit suchasnoiu movoiu 204 Ukrainian - Українська 204 -https://www.bible.com/bible/188/jhn.1.ukrk ukr ukrk bibliia v pier pkulisha ta i dot puliuia 1905 188 Ukrainian - Українська 188 -https://www.bible.com/bible/186/jhn.1.ubio ukr ubio bibliia v pier ivana oghiienka 1962 186 Ukrainian - Українська 186 -https://www.bible.com/bible/1523/jhn.1.xksnt kjh xksnt naa molchag 1523 Khakas - Хакас тілі 1523 -https://www.bible.com/bible/1803/jhn.1.rso chv rso sinodalnyi nz 1803 Chuvash - Чӑвашла 1803 -https://www.bible.com/bible/1507/jhn.1.eve eve eve the gospel of luke 1507 Even - Эвэды төрэн 1507 -https://www.bible.com/bible/194/jhn.1.want hye want arewmtahayeren nor ktakaran harmartsowats 194 Armenian (Western) - հայերէն (Արեւմտահայերէն) 194 -https://www.bible.com/bible/1987/jhn.1.wa1853 hye wa1853 western armenian new testament 1853 1987 Armenian (Western) - հայերէն (Արեւմտահայերէն) 1987 -https://www.bible.com/bible/904/jhn.1.wlc heb wlc hebrew westminster leningrad codex 904 Hebrew - עברית 904 -https://www.bible.com/bible/380/jhn.1.hrnt heb hrnt modern hebrew new testament 380 Hebrew - עברית 380 -https://www.bible.com/bible/24/jhn.1.hd heb hd habrit hakhadasha slash haderekh 24 Hebrew - עברית 24 -https://www.bible.com/bible/1161/jhn.1.iab azb iab iranian azeri bible 1161 Azeri (Persian script) - آذری 1161 -https://www.bible.com/bible/1885/jhn.1.%E0%A4%89%E0%A4%B0%E0%A5%8D%E0%A4%A6%E0%A5%82%20%E0%A4%AC%E0%A4%BE%E0%A4%87%E0%A4%AC%E0%A4%BF%E0%A4%B2 urd urduu baaibil 1885 Urdu - اردو 1885 -https://www.bible.com/bible/189/jhn.1.urd urd urd revised urdu bible 189 Urdu - اردو 189 -https://www.bible.com/bible/187/jhn.1.ugv urd ugv rdw jyw wrjn 187 Urdu - اردو 187 -https://www.bible.com/bible/558/jhn.1.mstd ary mstd ltrjm at lmgrby at lqysy at 558 Moroccan Arabic - الدارجة المغربية 558 -https://www.bible.com/bible/502/jhn.1.shuarab shu shuarab arabe tchadien alphabet arabe 502 Chadian Arabic - العربي الدارجي هنا تشاد 502 -https://www.bible.com/bible/1981/jhn.1.%D8%AA.%D9%83.%D8%B9 arb ltrjm at lkthwlykyw at lyswyw at 1981 Arabic (Standard) - العربية 1981 -https://www.bible.com/bible/1665/jhn.1.%D8%A7%D9%84%D9%85%D8%B4%D8%AA%D8%B1%D9%83%D8%A9 arb ltrjm at lrby at lmshtrk at m lktb lywnny at 1665 Arabic (Standard) - العربية 1665 -https://www.bible.com/bible/67/jhn.1.%D8%A7%D9%84%D9%85%D8%B4%D8%AA%D8%B1%D9%83%D8%A9 arb ltrjm at lrby at lmshtrk at 67 Arabic (Standard) - العربية 67 diff --git a/lol/meta/bibles_list.html b/lol/meta/bibles_list.html deleted file mode 100755 index e49effdc7..000000000 --- a/lol/meta/bibles_list.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Bibles | Find-A-Bible - the Worldwide Directory of Bible Resources in Every Language - - - - - - - - - - - - - - - - - -
      - -
      - - - -
      -
      -
      Find Bibles
      -
      Find-A-Bible displays known Bibles. Apply the filters, sort the fields, and then select a Bible to discover, read, or download.
      -
      -
      - Filter by Type - - - - -
      -
      - Show Only Sign Languages - - - - -
      -
      - Filter by Continent - - - - - - - - - - - - - - -
      -
      -
      -
      - -
      -
      - - - - - - - - - - \ No newline at end of file diff --git a/lol/meta/books2numbers.txt b/lol/meta/books2numbers.txt deleted file mode 100755 index 378c426cb..000000000 --- a/lol/meta/books2numbers.txt +++ /dev/null @@ -1,83 +0,0 @@ -01 Genesis,Gen,Gn,1. Mose,1.Mo,Kej -02 Exodus,Exod,Ex,Exo,2. Mose,2.Mo,Kel -03 Leviticus,Lev,Lv,3. Mose,3.Mo,Ima -04 Numbers,Num,Nm,4. Mose,4.Mo,Nu,Bil -05 Deuteronomy,Deut,Dt,Deu,5. Mose,5.Mo,Ula -06 Joshua,Josh,Jo,Jos,Josua,Js,Yos -07 Judges,Judg,Jgs,Jdg,Richter,Ri,Jg,Hak -08 Ruth,Ru,Rut,Rt,Rut -09 1Samuel,1 Samuel,1 Sam,1 Sm,1Sam,1Sm,1Sa,1. Samuel,1.Sam,1_samuel,S1,1Sa -10 2Samuel,2 Samuel,2 Sam,2 Sm,2Sam,2Sm,2Sa,2. Samuel,2.Sam,2_samuel,S2,2Sa -11 1 Kings,1 Kgs,1Kings,1Kgs,1Ki,1. Könige,1.Kön,1_kings,K1,1Ra -12 2 Kings,2 Kgs,2Kings,2Kgs,2Ki,2. Könige,2.Kön,2_kings,K2,2Ra -13 1Chronicles,1 Chronicles,1 Chron,1 Chr,1Chron,1Chr,1Ch,1. Chronika,1.Chr,1_chronicles,R1,1Ta -14 2Chronicles,2 Chronicles,2 Chron,2 Chr,2Chron,2Chr,2Ch,2. Chronika,2.Chr,2_chronicles,R2,2Ta -15 Ezra,Ezr,Esr,Esra,Er,Ezr -16 Nehemiah,Neh,Nehemia,Nh,Neh -17 Esther,Est,Esth,Et,Est -18 Job,Jb,Hiob,Hi,Ayb -19 Psalms,Ps,Pss,Psa,Psalmen,Mzm -20 Proverbs,Prov,Prv,Pro,Sprüche,Spr,Pr,Ams -21 Ecclesiastes,Eccles,Eccl,Ecc,Prediger,Pred,Ec,Pkh -22 SongOfSolomon,Song of Solomon,Song of Songs,Song of Sol,Sg,Sng,Song,Lied der Lieder,Hld,SS,Kid -23 Isaiah,Isa,Is,Jesaja,Jes,Is,Yes -24 Jeremiah,Jer,Jeremia,Jr,Yer -25 Lamentations,Lam,Klagelieder,Klgl,Lm,Rat -26 Ezekiel,Ezek,Ez,Ezk,Hesekiel,Hes,Ek,Yeh -27 Daniel,Dan,Dn,Dan -28 Hosea,Hos,Hs,Hos -29 Joel,Jl,Jol,Joe,Yoe -30 Amos,Am,Amo -31 Obadiah,Obadia,Obad,Ob,Oba,Obadja, -32 Jonah,Jon,Jona,Jh,Yun -33 Micah,Mic,Mi,Micha,Mich,Mc,Mik -34 Nahum,Nah,Na,Nam,Nm -35 Habakkuk,Hab,Hb,Hk -36 Zephaniah,Zephania,Zeph,Zep,Zephanja,Zp,Zef -37 Haggai,Hag,Hg,Hagg -38 Zechariah,Zecharia,Zech,Zec,Sacharja,Sach,Zc,Zak -39 Malachi,Mal,Maleachi,Ml -40 Matthew,Matt,Mat,Mt,Matthäus,MT -41 Mark,Mk,Mrk,Markus,MK -42 Luke,Lk,Luk,Lukas,LK -43 John,Jn,Jhn,Johannes,Joh,JN,Yoh -44 Acts,Acts of the Apostles,Act,Apostelgeschichte,Apg,AC,Kis -45 Romans,Rom,Römer,Röm,RM,Rom -46 1 Corinthians,1Corinthians,1 Cor,1Cor,1Co,1 Co,1. Korinther,1.Kor,1_corinthians,C1,1Ko -47 2 Corinthians,2Corinthians,2 Cor,2Cor,2Co,2 Co,2. Korinther,2.Kor,2_corinthians,C2,2Ko -48 Galatians,Gal,Galater,GL -49 Ephesians,Eph,Epheser,EP,Efe -50 Philippians,Phil,Php,Philipper,PP,Flp -51 Colossians,Col,Co,Kolosser,Kol,CL -52 1 Thessalonians,1 Thess,1Thessalonians,1Thess,1 Thes,1Thes,1Th,1. Thessalonicher,1.Thes,1_thessalonians,H1,1Te -53 2 Thessalonians,2 Thess,2Thessalonians,2Thess,2 Thes,2Thes,2Th,2. Thessalonicher,2.Thes,2_thessalonians,H2,2Te -54 1 Timothy,1 Tim,1Timothy,1Tim,1Ti,1. Timotheus,1.Tim,1_timothy,T1,1Ti -55 2 Timothy,2 Tim,2Timothy,2Tim,2Ti,2. Timotheus,2.Tim,2_timothy,T2,2Ti -56 Titus,Ti,Tit,TT -57 Philemon,Phm,Phlm,PM,Flm -58 Hebrews,Heb,Hebräer,HB,Ibr -59 James,Jas,Jam,Jakobus,Jak,JM,Yak -60 1 Peter,1Peter,1 Pet,1Pet,1Pe,1. Petrus,1.Pet,1_peter,P1,1Pt -61 2 Peter,2Peter,2 Pet,2Pet,2Pe,2. Petrus,2.Pet,2_peter,P2,2Pt -62 1 John,1John,1 Jn,1Jn,1. Johannes,1.Joh,1_john,J1,1Yo -63 2 John,2John,2 Jn,2Jn,2. Johannes,2.Joh,2_john,J2,2Yo -64 3 John,3John,3 Jn,3Jn,3. Johannes,3.Joh,3_john,J3,3Yo -65 Jude,Jd,Jud,Judas,JD,Yud -66 Revelation,Apocalypse,Rev,Rv,Offenbarung,Off,RV,Why -67 Tob,TB -68 Jdt,JT -69 AddEsth,EG,ESG -70 Wis,WS -71 Sir,SR -72 Bar,BR -73 EpJer,LJ,LJE -74 PrAzar,PA,s3y -75 Sus,SN -76 Bel,BL -77 1Macc,1Ma,M1 -78 2Macc,2Ma,M2 -79 3Macc,3Ma,M3 -80 4Macc,4Ma,M4 -81 1Esd -82 2Esd -83 PrMan diff --git a/lol/meta/ebible.html b/lol/meta/ebible.html deleted file mode 100644 index 1cdea1b9b..000000000 --- a/lol/meta/ebible.html +++ /dev/null @@ -1,908 +0,0 @@ - - - - - - - - - - - - - - Bible copyright information - - - - - - - - -

      Bible copyright information

      -

      Public Domain Bibles

      -

      The following Bibles are in the Public Domain (not copyrighted) in the USA, to the best of my knowledge:

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Language in EnglishLanguageDialectVernacular TitleShort TitleYearno copyrightbycontributorIDFCBH/DBSSword
      Albanian, ToskshqiptarBibla e ShenjtëAlbanian Bible1994Public DomainAlbanian Bible SocietyalsSHQALSSHQalsSHQ1994eb
      Arabicالعربيةstandardالكتاب المقدس باللغة العربية، فان دايكArabic Van Dyck BiblePublic DomainSyriac MissionABSarb-vdARZVDVarbVDeb
      ArapahoArapahoHethadenee waunauyaunee vadan Luke VanenānaArapaho Luke1903Public DomainMichael White Hawk and John RobertsarpARPABSarp1903eb
      BeaverDane ZaaOOTECH OOCHU TAKEHNIYA TINKLES ST. MARKBeaver Mark1886Public DomainRev. A. C. GarriochThe Church Missionary SocietybeaBEABFBbea1886eb
      BretonBrezhonegan BiblBreton Gospels1827Public DomainJean-François le GonidecbreBRGBREBRGbreBRG1827eb
      ChamorroChamorroY CUATRO EBANGELIO SIJA YAN Y CHECHO Y APOSTOLES YAN Y SALMO SIJAChamorro Gospels, Acts, and Psalms1908Public DomainAmerican Bible SocietychaCHAPGAcha1908eb
      Chinese中国语文Mandarin, simplified script新标点和合本Chinese Union Version (simplified)Public Domaincmn-cu89sCHNCU1cmnCUs889eb
      Chinese中國語文Mandarin, traditional script新標點和合本Chinese Union Version (traditional)Public Domaincmn-cu89tCHNCUVcmnCUt1889eb
      CopticⲘⲉⲧⲢⲉⲙ̀ⲛⲭⲏⲙⲓBohairicالقبطية البحيرية العهد الجديدCoptic Boharic NTPublic DomainHornerJ. Warren WellscopbhcCOPBHCcopBHC1000eb
      CopticⲘⲉⲧⲢⲉⲙ̀ⲛⲭⲏⲙⲓالقبطية العهد الجديدCoptic NTPublic DomaincopcntCOPCNTcopC2006eb
      EnglishEnglisharchaic AmericanAmerican Standard Version (1901)American Standard Version (1901)1901Public Domaineng-asvENGASVengASV1901eb
      EnglishEnglishsimple BritishBible in Basic EnglishBible in Basic English1949, 1964Public DomainSamuel Henry HookeengBBEENGBBEengBBE1964eb
      EnglishEnglisharchaic BritishBrenton Septuagint TranslationBrenton English Septuagint1851Public DomainSir Lancelot Charles Lee Brentoneng-BrentonENGBREengBrent1851eb
      EnglishEnglishBritishLXX2012: Septuagint in British/International English 2012British English Septuagint 20121851, 2012Public DomainSir Lancelot Charles Lee BretonMichael Paul Johnsoneng-uk-lxx2012ENGLXUengUKLXX2012eb
      EnglishEnglisharchaic BritishDarby TranslationDarby Translation1871, 1884Public DomainJ. N. DarbyengDBYENGDBYengDBY1884eb
      EnglishEnglisharchaic AmericanDouay-Rheims 1899Douay-Rheims 18991899Public DomainEnglish College, DouaiengDRAENGDRVengDRA1899eb
      EnglishEnglisharchaic BritishKing James Version + ApocryphaKing James Version1611, 1769Public Domaineng-kjvENGKJAengKJV1769eb
      EnglishEnglisharchaic BritishKing James (Authorized) VersionKing James Version1611, 1769Public Domaineng-kjv2006ENGKJVengKJV2006
      EnglishEnglishAmericanLXX2012: Septuagint in American English 2012LXX2012 U. S. English1851, 2012Public DomainSir Lancelot Charles Lee BrentonMichael Paul Johnsoneng-lxx2012ENGLXXengLXX2012eb
      EnglishEnglisharchaic BritishRevised Version with Apocrypha (1895)Revised Version1895Public Domaineng-rvENGRV5engRV1895eb
      EnglishEnglishAmericanWorld English BibleWorld English Bible1997-2015Public DomainMichael Paul Johnson and many otherseng-webENGWEBengWEB2015eb
      EnglishEnglishBritishWorld English Bible British Edition with DeuterocanonWorld English Bible British Edition2011-2015Public Domaineng-webbeENGWEAengWEBBE2015eb
      EnglishEnglishAmerican MessianicWorld Messianic BibleWorld Messianic Bible1997-2015Public DomainengwmbENGWMBengWMB2015eb
      EnglishEnglishBritish MessianicWorld Messianic Bible British EditionWorld Messianic Bible British Edition1997-2015Public DomainengwmbbENGWMUengWMBB2015eb
      FrenchfrançaisLouis Segond 1910French Louis Segond 1910 Bible1910Public DomainLouis SegondfraLSGFRELSGfraLSG1910eb
      FrenchfrançaisLa Sainte BibleFrench Ostervald Bible1744Public DomainOstervaldfra_fobFRAOSTfraFOB1744eb
      German, StandardDeutschLuther Bibel 1912German Luther Bible 19121912Public DomainMartin Lutherdeu1912GERL12deu1912eb
      GreekΕλληνικήKoineΗ Καινή ΔιαθήκηTischendorf Greek NTPublic DomainTischendorf, etc.grc-tischGRCTISgrcTischeb
      HebrewעבריתBiblical/Ancientכתבי הקודשHebrew Masoretic OTPublic DomainhboHBOMAShboMTeb
      HebrewעבריתBiblical/Ancientכתבי הקודשWestminster Leningrad Codex Hebrew OTPublic DomainhboWLCHBOWLChboWLCeb
      KosraeanKosraeanBible MutalKosraean Bible1928Public DomainkosKOSPUBkos1928eb
      LatinLatineBibbia Vulgata Clementina na 1598Clementine Vulgate 15981598, 1880Public DomainJeromelatVUCLATCLVlatVUC1880eb
      Persianفارسیترجمه قدیمOld Persion Version Bible1895Public DomainWycliffe Bible TranslatorspesOPVPESPBSpesOPV1895eb
      PohnpeianPohnpeianKadede Kap Psam AkanPohnpeian NT & Psalms, new alphabetPublic Domainpon-pdnPONPSAponPDNeb
      PohnpeianPohnpeianKadede Kap Pjam AkanPohnpeian NT & Psalms, old alphabet1922Public DomainponPONPJApon1922eb
      RussianрусскийСинодальный переводRussian Synodal Translation1876Public DomainOrthodox theological academies of Moscow, Saint Petersburg, Kazan, and KievrussynRUSSYNrusSYN1876eb
      SpanishEspañolCastellano 1909Santa Biblia — Reina Valera 1909Reina Valera 19091909Public DomainReina y ValeraspaRV1909SPNR09spaRV1909eb
      SwahiliKiswahiliKimvitaBiblia TakatifuSwahili Bible1850Public DomainDr. Johann Ludvig Krapfswh1850SWASWAswh1850eb
      TonganTonganTongan Bible (Revised West Version)Revised West Version2014Public DomainJames BaxleytonTONPNGton2014eb

      -

      Open Access License Bibles

      -

      The following Bibles are distributed with an open access license, usually one of the Creative Commons licenses or a variant of one. -Please see each translation's full copyright and license page (available by selecting the entry in -the ID column) for details. -The copyright owner field is filled in to the best of my knowledge. -Since organization names change and sometimes copyrights get sold or assigned, this information could be out of date.

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Language in EnglishLanguageDialectVernacular TitleShort TitleYearcopyright ownerbycontributorIDFCBH/DBSSword
      'Auhelawa'AuhelawaYAUBADA YANA WALO YEMIDI VAUVAUNA'Auhelawa NT2008Papua New Guinea Bible Translation Association, Inc.Papua New Guinea Bible Translation AssociationkudKUDPNGkud2008eb
      AbauAbauGod so Sokior-ok IwonAbau NT2006Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsaauAAUWBTaau2006eb
      AchiAchiRabinalRi utzilaj tzij re ri kanimajawal JesucristoAchi Rabinal NT (new orthography)2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.acrNNTACRWBTacrN2009eb
      AchiAchiRabinalRi utzilaj tzij re ri kanimajawal JesucristoAchi Rabinal NT (traditional orthography)2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.acrTNTACRTNTacrTNT2009eb
      Achi’, CubulcoAchi' de CubulcoCubulcoI 'utz laj tzij re i diosAchi de Cubulco NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.acr-accACCIBSacrACC2009eb
      Achuar-shiwiarAchuar-shiwiarYuse chichame aarmauri; Yaanchuik, Chicham; Yamaram ChichamAchuar-shiwiar Bible2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.acuNTACUTBLacuNT2008eb
      AdzeraAdzeraMiamum; Nan AdzeraAdzera Genesis2009Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsadzADZPNGadz2009eb
      AgarabiAgarabiYISASINI KAMA VAYAAgarabi NT2010The Bible Society of Papua New GuineaWycliffe Bible TranslatorsagdAGDWBTagd2010eb
      Agta, Casiguran DumagatCasiguran Dumagat AgtaBigu a tipan: I mahusay a baheta para ta panahun tamCasiguran Dumagat Agta NT1979Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.dgcDGCWBTdgc1979eb
      Agta, Central CagayanCentral Cagayan AgtaUhohug na Namaratu gafu te Hesus KristuCentral Cagayan Agta1992Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.agtAGTWBTagt1992eb
      AguacatecoAguacatecoYi Antiw Bible / Yi Ac'aj TestamentAguacateco Bible2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.aguBlAGUNVSagu2011eb
      AguarunaAguarunaYamajam chicham apajuinuAguaruna NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.agrAGRWBTagr2008eb
      AguarunaAguarunaYamajam chicham apajuinuAguaruna NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.agrNTAGRTBLagr2008eb
      AgutaynenAgutaynenAng bitala tang Dios: ba-long inigoan; Ang bagong magandang balita: bagong tipanAgutaynen NT2004Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.agnAGNWPSagn2004eb
      Ajyíninka ApurucayaliAjyíninka ApurucayaliKAMIITHARI ÑAANTSIAjyíninka Apurucayali NT2000Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cpcNTCPCWBTcpc2000eb
      AkatekoAkatekoJa' An Nuevo TestamentoAkateko NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.knjNTKNJWBTknj2012eb
      AkawaioAkawaioWakʉ Itekare: Emenna' Pe Ekonekan Nɨto'Akawaio NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.akeNTAKEBSSake2010eb
      AkooseAkooseMelɛ̌ Mékɔ̄ɔ̄lēAkoose NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.bssNTBSSWBTbss2011eb
      AlamblakAlamblakBro Nkifrarhu MrokfotAlamblak NT2003, 2004Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsampAMPWBTamp2004eb
      Alekano or GahukuAlekano (Gahuku)Monoq Gotola GosohaqAlekano Bible1973, 1986Bible Society of Papua New GuineaWycliffe Bible TranslatorsgahGAHPNGgah1986eb
      AlgonquinAlgonquinKije Manido Odikido8in: Ocki MazinaiganAlgonquin NT1998Canadian Bible SocietyCanadian Bible SocietyalqALGNTALQCBSalqALG1998eb
      AluneAluneJanji belukeAlune NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.alpNTALPWBTalp2012eb
      AmaSawiyanuKotoni Imo ItouniyaimoAma NT1990, 2009Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsammAMMTBLamm2009eb
      AmanabAmanabAmanabGodna mo Awai mona goAmanab NT2001The Bible Society of Papua New GuineaWycliffe Bible Translatorsamn-amanabAMNANAamnA2001eb
      AmarakaeriAmarakaeriJesucristo oy oa’pak: Kenda Jesucristoa; monigka’uyatenok; Diostaj mo’manopo’yarea’ika’neAmarakaeri NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.amrNTAMRWBTamrNT2008eb
      AmbaiAmbaiSempaisi Ne Kaiwo MirarebanaiAmbai NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.amkAMKWBTamk2010eb
      AmbulasAmbulas (Maprik)MaprikGotna KudiAmbulas Maprik NT1983Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorsabt-maprikABTMAPabtM1983eb
      AmeleAmeleBAL CEHEC JE HAUNAmele Genesis1997Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsaeyAEYWBTaey1997eb
      Amuzgo, GuerreroAmuzgo, GuerreroÑʼoom xco na tqueⁿ tyʼo̱o̱tsʼom cantxja ʼnaaʼ JesucristoAmuzgo, Guerrero NT1999Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.amuNTAMUWBTamu1999eb
      Amuzgo, San Pedro AmuzgosAmuzgo, San Pedro AmuzgosJnʼoon xco na tquen tyoʼtsʼonSan Pedro Amuzgos NT1992Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.azgNTAZGTBLazg1992eb
      Aneme WakeAneme WakeGODINU IRAU WAKEAneme Wake NT1988Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsabyABYWBTaby1988eb
      AngaatahaAngaatahaAutaahaatɨhomɨ Pɨwɨha Gaaha WanɨhaAngaataha NT2004Wycliffe Bible Translators, Inc.PNG Bible Translation AssociationagmAGMPNGagm2004eb
      Angal HenengAngal HenengWaolaAngal Heneng mbuk Ngaoran Angal Bib Hobau Sao ngo wi oAngal Heneg NT1978The Bible Society of Papua New GuineaakhAKHBSPakh1978eb
      AngorAngorGodɨndɨ HoafɨAngor NT2001The Bible Society of Papua New GuineaWycliffe Bible TranslatorsaggAGGPNGagg2001eb
      AnjamAnjamYesus Aqa Anjam BoleAnjam NT2000The Bible Society of Papua New GuineaWycliffe Bible TranslatorsbojBOJPNGboj2000eb
      AnkaveAngaveXwɨyí̵á Gorɨxoyá Sɨŋí̵pɨrɨnɨMinaifia NT1990Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsaakAAKWBTaak1990eb
      AnukiAnukiAnuki MakAnuki Mark2010Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsauiAUIWBTaui2010eb
      Apache, WesternWestern ApacheThe New Testament of our Lord and Saviour Jesus ChristWestern Apache NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.apwNTAPWWBTapw2012eb
      ArabelaArabelaQuiarinio pueyaso rupaa pa jiyaniijia Jesucristojiniji pueyano rupaajiniaArabela NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.arlNTARLWBTarl2008eb
      ArapeshArapeshCentralIRUHIN ANANIN BARAENArapesh NT2003Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsaonAONWBTaon2003eb
      AreAreGod Wonana KaoaobaisiyenaAre Luke2011Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsmwcMWCWBTmwc2011eb
      Arop-LokepArop-LokepAropRau Ke MaroArop-Lokep2013Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsaprAPRWBTapr2013eb
      AruamuAruamuGodɨn Akar AghuimAruamu NT2004Pioneer Bible Translators and the Bible Society of Papua New GuineaPioneer Bible TranslatorsThe Aruamu PeoplemsyMSYPNGmsy2004eb
      AsháninkaAsháninkaIrineane tasorentsi oquenquetsatacotaqueri Avincatsarite JesoquirishitoAsháninka NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cniNTCNIWBTcni2008eb
      Ashéninka PajonalAshéninka PajonalIwaperite tajorentsi ikenkithatakoetziri awinkatharite Jesokirishito: owakirari inimotakiri tajorentsiAshéninka Pajonal NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cjoNTCJOWBTcjo2008eb
      Ashéninka, PichisAshéninka, PichisKAMEETHARI ÑAANTSI: Iñaaventaitzirira Avinkatharite JesucristoPichis Ashéninka NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorscpuNTCPUWBTcpu2008eb
      Ashéninka, Ucayali-yurúaAshéninka, Ucayali-yurúaKameethari Ñaantsi: ikenkitha-takoitziri awinkatharite Jesucristo; Owakerari aapatziya-wakagaantsiUcayali-yurúa Ashéninka NT2000Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cpbNTCPBWBTcpb2000eb
      Assyrian Neo-Aramaicܐܵܬ݂ܘܼܪܵܝܲܐ ܠܸܫܵܢܵܐܕܝܬܩܐ ܚܕܬܐ ܕܡܪܢ ܝܫܘܥ ܡܫܝܚܐ ܘܡܙܡܘܪ̈ܐ ܒܠܫܢܐ ܐܬܘܪܝܐAssyrian Neo-Aramaic NT+Psalms2014Aramaic Bible Translation, Inc.Aramaic Bible Translation, Inc.Aramaic Bible Translation, Inc.aiiAIIABTaii2014eb
      Atta, PamplonaPamplona AttaYù bilin ni Namarò nga meyannung kâ Apu Kesu Kiristu: Yù bagu nga tarátu ni Namarò sù ira nga mangikatalà kâ Apu Kesu KiristuPamplona Atta NT1996Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.attATTWBTatt1996eb
      AuAuHɨm Yaaim Me GodAu NT1992Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsavtAVTWBTavt1992eb
      AwaAwaManikáne O EhwehneAwa NT1974, 1997Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsawbAWBTBLawb1997eb
      Awa-CuaiquerAwa-CuaiquerMasas Pit JesucristowaAwa-Cuaiquer NT2002Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.kwiKWIWBTkwi2002eb
      AwaraAwaraAwara BaibelAwara Bible portions2011Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsawxAWXWBTawx2011eb
      AwiyaanaAwiyaanaAú-aai símai kááísamakain-aaiAwiyaana NT1984Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsauyAUYTBLauy1984eb
      Ayta, Mag-antsiMag-antsi AytaYa habi ni apo namalyari: Bayon tsipan - Ayta Mag-antsiMag-antsi Ayta NT2006Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.sgbSGBWBTsgb2006eb
      Azerbaijani, SouthAzeriAzərbaycan dilində Müqəddəs KitabAzerbaijani Bible2008Bible Society of Azerbaijan and Institute for Bible TranslationInstitute for Bible TranslationBible Society of AzerbaijanazbAZBBSAazb2008eb
      BaatonumBaribaBibeli Gusunɔn GariBariba Bible2013SIMSIM InternationalbbaBBASIMbba2013eb
      BalangaoBalangaoHen alen ApudyusBalangao NT1982Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.blwBLWWBTblw1982eb
      BambamBambamSuha' Maseho: Kadadiam anna Pa'dandiam BakahuBambam Bible2004Lembaga Alkitab IndonesiaWycliffe Bible TranslatorsptuPTULAIptu2004eb
      BaraiBaraiGODIDO VUA MAEJEBarai Bible1994, 2006Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsbbbBBBTBLbbb2006eb
      Barasana-EduriaBarasana-EduriaDios oca gotiritutiBarasana-Eduria NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.bsnNTBSNTBLbsn2010eb
      BargamBargamGod Ago Maror Muturta AgamukanBargam NT2001Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsmlpMLPTBLmlp2001eb
      BariaiBariaiDeo Ele PosangaBariai Bible2012Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsbchBCHPNGbch2012eb
      BaruyaYipmaYipma Genesis and New TestamentBaruya NT+Genesis1993, 1994Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsbyrBYRPNGbyr1994eb
      BeamiBedamuniWycliffe Bible Translatorsbeobeo
      BedjondBedjondKƗLӘ-MƗNDƗ KƗ SƗGƗBedjond NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.bjvNTBJVWBTbjv2011eb
      Belize Kriol EnglishBelize Kriol EnglishDi Nyoo Testiment eena Bileez KriolBelize Kriol English NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.bzjBZJWBTbzj2012eb
      BenabenaBena-benaKa Lamana'a Mono'i Lu Mu Tifi'ehina Ka YabeBenabena NT1982Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsbefBEFWBTbef1982eb
      BiangaiBiangaiAnotogi Ngago Wik Yisu Kilisiyegi LangairaBiangai NT1985Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsbigBIGTBLbig1985eb
      BiminBiminSunbim-Got em Kitakamin WengBimin NT2008Bible Society of Papua New GuineaWycliffe Bible TranslatorsbhlBHLPNGbhl2008eb
      BinandereBinandereYesu Keriso da Bino DaveBinandere Mark, Luke, and Acts2014Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsbhgBHGWBTbhg2014eb
      BineBineIreclota MeneBine NT1993Bible Society of Papua New GuineaWycliffe Bible TranslatorsbonBONPNGbon1993eb
      BinukidBinukidLalang hu DiosBinukid NT1986Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.bkdBKDWBTbkd1986eb
      BinumarienBinumarienFúka Moodaanaki Kira Ufa Afaqínaasa UfaBinumarien Bible1983, 2001Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsbjrBJRWBTbjr2001eb
      Blaan, KoronadalKoronadal BlaanI Falami Kasafnè (New Testament)Koronadal Blaan NT1995Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.bprBPRWBTbpr1995eb
      Blaan, SaranganiSarangani BlaanI tnalù dwataSarangani Blaan NT1998Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.bpsBPSWBTbps1998eb
      Bo-UngBo-Ung (Mara-Gomu)Mara-GomuPULU YILI-NGA UNG KONALEBo-Ung NT2004Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsmuxMUXTBLmux2004eb
      BokoBokoBibeli LuayãtaaláBoko (Benin) Bible2010SIM InternationalSIM InternationalbqcsimBQCSIMbqcsim2010eb
      BokobaruBokobaruLuda yã takada kↄ̃n Bokobaru yãoBokobaru Bible2005SIM InternationalSIMbusBUSSIMbus2005eb
      BolaBolaA Nitana VureBola Bible2011Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsbnpBNPWBTbnp2011eb
      BolinaoBolinaoSi BibliaSalt-Yui NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.smkNTSMKWBTsmk2012eb
      Bontok, CentralCentral BontokNan kalin Apo DiosCentral Bontok NT1992Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.lbkLBKWBTlbk1992eb
      Bontok, EasternEastern BontokNan kalen apo Dios (Nan fiarú ay turag)Eastern Bontok NT2003Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.ebkEBKWBTebk2003eb
      BoraBoraPíívyéébé ihjyu: jetsocríjyodítyú cáátúnuháámɨBora NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.boaNTBOATBLboa2008eb
      BorongBorongUumeleembaa Buŋa Tere Soomoŋgo GbiliaBorong NT2002, 2011The Bible Society of Papua New GuineaWycliffe Bible TranslatorsksrKSRPNGksr2011eb
      BribriBribriTte Pa̱'a̱li̱ Me' Skëköl tö Se' a̱Bribri Bible2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.bzdNTpoBZDWBTbzd2010eb
      BuamuBuamuDónbeenì páaníi fĩnle vũahṹBuamu NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.boxNTBOXWYIbox2012eb
      BuangBuang, Central/MaposCentral/MaposĠaġek MewisBuang NT2003The Bible Society of Papua New GuineaWycliffe Bible TranslatorsbzhBZHPNGbzh2003eb
      Buang, ManggaMangga BuangMangga Buang New TestamentMangga Buang NT1981Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsmmoMMOWBTmmo1981eb
      BuglereBuglereChube gerua jagere Jesucristo giti degaba kwian ulita alin: El Nuevo Testamento de nuestro Señor Jesucristo en el idioma buglereBuglere NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.sabNTSABWBTsab2008eb
      BukawaBukawaAnötö ndê Yom Lêŋsêm WakucBukawa NT2000Lutheran Bible Translators AustraliaLutheran Bible Translators AustraliabukBUKLBTbuk2000eb
      BukiyipBukiyipCentralGOD ANANIN BALANBukiyip NT1994Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsapeAPETBLape1994eb
      BukiyipBukiyipGod Ananin BalanBukiyip NT2013Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.apeBAPEBWBapeB2013eb
      BunamaBunamaLOINA HAUHAUNABunama NT1991Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsbddBDDPNGbdd1991eb
      BusaBisãLuda yã takada kũ Bisã yãoBisa Bible2005SIM InternationalSIMbqpBQPSIMbqp2005eb
      BwanabwanaTubetube (Bwanabwana)TubetubeBuki Tabu WaluwalunaBwanabwana NT2003Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorstteTTETBLtte2003eb
      CacuaCacuaDios ã jáap naáwát tólihCacua NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cbvCBVWBTcbv2008eb
      CaluyanunCaluyanunAnang ambal ang Dios: Magandang balita BibliaCaluyanun NT1990Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cluCLUWBTclu1990eb
      CamsáCamsáBëngbe Bëtsa Cabëngaftaca EntsoyebuambnaCamsá NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.kbhKBHWBTkbh2009eb
      Candoshi-ShapraCandoshi-ShapraApanlli KukuCandoshi-Shapra NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cbuNTCBUWBTcbu2010eb
      CapanahuaCapanahuaNoquen hihbaan joiCapanahua NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.kaqNTKAQWBTkaq2008eb
      CaquinteCaquinteIroaquerari Itioncacaantaqueca Aapani Irioshi: Tsavetacoquerica Amajirote JesoquirishitoCaquinte NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cotNTCOTTBLcot2008eb
      CarapanaCarapanaDios Cʉ̃ Cauetibʉjʉ Cũrĩcã TutiCarapana NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cbcNTCBCWBTcbc2012eb
      CaribCaribAsery Tamusi karetaryCarib NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.carNTCARWBTcar2010eb
      CarrierCarrierYak'usda OoghuniCarrier NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.crxNTpoCRXWBTcrx2011eb
      Carrier, SouthernCarrier, SouthernYakʼusda bughunek: k’andit khunek neba lhaidinlaSouthern Carrier NT2002Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cafNTCAFWBTcaf2002eb
      Cashibo-CacataiboCashibo-CacataiboNukën 'Ibu Diosan ain unikama 'inan ain banaCashibo-Cacataibo NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cbrNTCBRWBTcbr2011eb
      CavineñaCavineñaYusuja QuisaratiCavineña NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cavNTCAVWBTcav2012eb
      CermaCermaDiiloŋ-nelma TobisĩfɛlɛnniCerma NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cmeNTCMEWBTcme2011eb
      ChachiChachiDiosa' kiika; Génesis, Éxodo y El Nuevo TestamentoChachi Bible2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cbiNTpoCBIWBTcbi2008eb
      ChácoboChácoboDios ChaniChácobo NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.caoNTCAOWBTcao2010eb
      Chatino, NopalaNopala ChatinoEl Nuevo TestamentoNopala Chatino NT2013Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.cyaCYAWBTcya2013eb
      Chatino, TataltepecChatino, TataltepecChaʼ tsoʼo nu nchcuiʼ jiʼi̱ Jesucristo nu xuʼna naTataltepec Chatino NT1981Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.ctaNTCTAWBTcta1981eb
      Chatino, Western HighlandChatino, Western HighlandChaʼ suʼwe nu nchkwiʼ chaʼ ʼin Jesucristo nu nka xʼnaanWestern Highland Chatino NT1992Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.ctpNTCTPWBTctp1992eb
      ChavacanoChavacanoEl Nuevo TestamentoChavacano NT1981Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cbkCBKWBTcbk1981eb
      ChayahuitaChayahuitaYosë nanamënChayahuita NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cbtNTpoCBTWBTcbt2011eb
      Chin, ZypheChin, ZypheBiahrai Tha, Zyphe reiZyphe Chin NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zypNTZYPWBTzyp2010eb
      Chinantec, ComaltepecChinantec, ComaltepecJúu ʼmɨ́ɨ e cacuo fidiéeComaltepec Chinantec NT2002Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.ccoNTCCOTBLcco2002eb
      Chinantec, LalanaChinantec, LalanaJúu² 'mɨɨn³² 'e³ ca²³ŋɨń² DiosLalana Chinantec NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cnlNTCNLTBLcnl2012eb
      Chinantec, LealaoChinantec, LealaoJa̱³la³ fáh⁴dxa⁴²dxú⁴ hi³mɨɨ³² chiáh² Ñúh³a² Jesucristo; SalmosLealao Chinantec NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cleNTCLETBLcle2008eb
      Chinantec, OzumacínChinantec, OzumacínHmooh hmëë he- ga-jmee Jesucristo; SalmosOzumacín Chinantec NT2003Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.chzNTpsCHZWBTchz2003eb
      Chinantec, PalantlaChinantec, PalantlaEl Nuevo Testamento de nuestro señor Jesucristo: Versión chinantecaPalantla Chinantec NT1973Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cpaNTCPATBLcpa1973eb
      Chinantec, QuiotepecChinantec, QuiotepecJuu³ tyʉ² ʼe gafaaʼ²¹ Dios tyaʼ tsá²Quiotepec Chinantec NT1983Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.chqNTCHQWBTchq1983eb
      Chinantec, SochiapamChinantec, SochiapamJú¹ chú³² quioh²¹ Jesús tsá² lɨn³ CristoSochiapam Chinantec NT1986Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.csoNTCSOTBLcso1986eb
      Chinantec, TepetotutlaChinantec, TepetotutlaJag₁ ʼmɨ́₂ a₂ma₂lɨʼ₅₄ quianʼ₅₄ Diu₄Tepetotutla Chinantec NT1994Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cntNTCNTTBLcnt1994eb
      Chinantec, UsilaChinantec, UsilaJau²³ hm²³ i⁴ra³tya²³ nei² quieh¹ re¹ Jesucristo quian⁴-¹Usila Chinantec NT1983Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cucNTCUCTBLcuc1983eb
      ChipayaChipayaEw Testamento: Chipay TawkquiztanChipaya NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.capNTCAPSBBcap2009eb
      ChiquitanoChiquitanoManitanati TuparrüChiquitano NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.caxNTCAXSBBcax2012eb
      CholCholJini wen bʌ tʼanChol NT1976Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.ctu76CTUWBTctu1976eb
      CholCholI T’an DiosChol Tumbala Bible1977Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.ctuBlCTUWBTctu1977eb
      Chontal, Highland OaxacaChontal, Highland OaxacaLataiquiʼ loyaʼapa iƚe al cʼa lixpicʼepa L̵anDiosHighland Oaxaca Chontal NT1991Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.chdNTCHDWBTchd1991eb
      Chontal, TabascoChontal, TabascoU Chʼuʼul Tʼan DiosTabasco Chontal NT1977Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.chfNTCHFTBLchf1977eb
      ChortiChortíUyojroner e Dios xeꞌ Tzꞌijbꞌabꞌir Tama e Onian TiempoChorti Bible1996, 2012, 2013Wycliffe Bible Translators, Inc. and Evangel Bible Translators, InternationalEvangel Bible Translators, International and Wycliffe Bible TranslatorscaaCAAWBTcaa2013eb
      ChuaveChuaveYAI GUMAN GUNOM KAMChuave NT1992Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorscjvCJVTBLcjv1992eb
      ChumburungChumburungAbware̱se̱ŋ Wo̱re̱-ɔChumburung NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.ncuNTNCUWBTncu2010eb
      ChuukeseChuukesePaipelChuukese Bible2011Bible Society of MicronesiaLiebenzell MissionchkCHKBSMchk2011eb
      CofánCofánChiga Tevaen'Jema Atesuja 1, Aisheve Caña'choCofán Bible2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.conNTpoCONWBTcon2012eb
      ColoradoColoradoDiosichi PilaColorado NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cofNTCOFWBTcof2012eb
      Cora, El NayarCora, El NayarƗ niuucari tɨ jejcua, tɨ ajta jɨme'en ra'axa a'ɨjna ɨ tavastara'a, ɨ Cɨriistu'u tɨ ji'i Jesús tɨ̀ tu'irájtuaaEl Nayar Presidio De Los Reyes Cora NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.crnNTCRNWBTcrn2008eb
      CubeoCubeoMajepacʉ jʉ̃menijicʉi yávaiye mamaene coyʉitucuboCubeo NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cubNTCUBWBTcub2009eb
      CuibaCuibaNacom Pejume Diwesi po diwesi pena jume diwesi xua Jesucristo yabara tinatsiCuiba NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cuiCUIWBTcui2010eb
      Cuicatec, TepeuxilaCuicatec, TepeuxilaNduudu nʼdai yeⁿʼe Ndyuūs yeⁿʼe cuicateco yeⁿʼe TepeuxilaTepeuxila Cuicatec NT1974Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cuxNTCUXWBTcux1974eb
      Cuicatec, TeutilaCuicatec, TeutilaEl Nuevo Testamento: Cuicateco de TeutilaTeutila NT1972Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cutNTCUTWBTcut1972eb
      CzechČeškaCzech Preklad KMS Nova smlouvaCzech KMS NT1994Krestanska misijni spolecnostKrestanska misijni spolecnostceskmsCESKMScesKMS1994eb
      CzechČeškaNova Bible KralickaCzech NBK NT1998Sdruzeni pro Novou Bibli kralickouA. Flek a P. HoffmancesnkbCESNKBcesNKB1998eb
      DadibiDadibiDadibi BibleDadibi Bible1987, 2001Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsmpsMPSTBLmps2001eb
      DagaDagaDaga New TestamentDaga Bible1974, 2004Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsdgzDGZWBTdgz2004eb
      DangaléatDangaléatJamaw ta Marbinto: Kabarre ta Gala ɗo bi ka Iisa Masi iŋ daŋlaDangaléat NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.daaNTDAAWYIdaa2012eb
      DanoDanoMONO' GODOLO GOSOHO'Dano NT1989Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsasoASOTBLaso1989eb
      DawawaDawawaVari VerenamaDawawa NT2002Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsdwwDWWTBLdww2002eb
      DawroDawroOoratha CaaquwaaDawro NT (Ethoipic script)2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.dwrENTDWRENTdwrE2011eb
      DawroDawroOoratha CaaquwaaDawro NT (Latin script)2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.dwrNTDWRTBLdwr2011eb
      DeduaDeduaYoac kekehagocac Dzadzahac gboria nga MitiyegecDedua NT+Psalms2005Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsdedDEDWBTded2005eb
      DenyaDenyaŊwɛ menomenyɛɛ́ mekɛ́Denya NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.anvNTANVWBTanv2010eb
      Dinka, SouthwesternDinka, SouthwesternLëk yamSouthwestern Dinka NT2006Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.dikNTDIKWBTdik2006eb
      DitammariDitammariBibiri Kuyie Nnɑ́ɑǹtì Pɑ́tíriDitammari Bible2001SIM InternationalSIMtbzsimTBZSIMtbz2001eb
      DobuDobuLoina Tabu AuwaunaDobu NT1985Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsdobDOBPNGdob1985eb
      DogribDogribNǫ̀htsı̨̨ Nı̨̨htł'èDogrib Bible2009Canadian Bible SocietyCanadian Bible SocietydgrDOGNTDGRCBSdgrDOG2009eb
      Doromu-KokiDoromu-KokiSei di Uka Ago RuakaDoromu-Koki Bible2011-2013Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskqcKQCWBTkqc2013eb
      East KewaEast KewaGotena Epe AgaleEast Kewa NT2004Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskjsKJSWBTkjs2004eb
      Eastern Maroon CreoleEastern Maroon CreoleBeibel: okanisi tongoEastern Maroon Creole NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.djkNTDJKWBTdjk2009eb
      EdoloEdoloEdolo BibleEdolo Bible2010-2012Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsetrETRTBLetr2012eb
      Emberá, NorthernEmberá, NorthernÃcõrẽ Bed̶eaNorthern Emberá NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.empNTpoEMPWYIemp2011eb
      EngaEngaMaeEnga Baibolo Epapu Kapilyetae DokoEnga Mark1988, 2014Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorsenq2ENQPN2enq2014eb
      EngaEngaMaeEnga Nutesamene BaipoloEnga NT1988The Bible Society of Papua New GuineaThe Bible Society of Papua New GuineaenqENQPNGenq1988eb
      EnglishEnglishAmericanGod's Living WordGod's Living Word1996Michael Paul JohnsonMichael Paul Johnsoneng-glwENGGLWengGLW1996eb
      EnglishEnglishAmericanTranslation for TranslatorsTranslation for Translators2008-2014Ellis W. Deibler, Jr.eng-t4tENGT4TengT4T2014eb
      EpenaEpenaTachi ak'õre pedeeEpena NT2005Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.sjaNTSJAWBTsja2005eb
      Ese EjjaEse EjjaEyacuiñajjija EsohuiEse Ejja NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.eseNTESEWBTese2012eb
      Ese or ManagalasiManagalasiGodoni Vu'a Maiu'inaManagalasi NT1975, 1999Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsmcqMCQSPPmcq1999eb
      Ewage-NotuEwage-NotuBINGA EWAMEI IESU KERISO DA JAWO DAEwage-Notu NT1987Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsnouNOUTBLnou1987eb
      FaiwolFaiwolGOT WENG ABEM Alokso Abino KalinFaiwol NT1995Bible Society of Papua New GuineaWycliffe Bible TranslatorsfaiFAIPNGfai1995eb
      FanamaketTangga / FanamaketFanamaket BaibelTangga NT2011-2012Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsbjpTGGWBTbjp2012eb
      FasuFasuKotimo Kawe Someaka Masane OyapoFasu NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsfaaFAAWBTfaa2011eb
      Filifita dialect of MufianFilifitaFilifita or IlahitaBASEF BUꞋWAMI GODIFilifita NT1998Wycliffe Bible Translators, Inc.aoj-filifitaAOJFILaojF1998eb
      FolopaFolopaYesu Kerisoné So Whi̧ Tao Sere Kisi Fo WisiFolopa NT2005Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsppoPPOWBTppo2005eb
      ForeForeFore New TestamentFore NT1974BiblicaWycliffe Bible TranslatorsforFORNYBfor1974eb
      Fulfulde, BorguFulfulde BorguAlkawal KesalFulfulde Borgu NT2011SIM InternationalSIMfueFUESIMfue2011eb
      Fulfulde, MaasinaMaasina FulfuldeAadi keyri: linjiila iisaa almasiihuMaasina Fulfulde NT2005Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.ffmFFMWBTffm2005eb
      Fulfulde, Western NigerFulfulde BurkinaBurkinaFulfulfe Burkina, Dewtere Laamɗo Amaana KesoFulfulde Burkina NT2012SIM InternationalSIM InternationalfuhbkfFUHSIMfuhBKF2012eb
      GamoGamoኦራ ጫቆ ማፃፋ ጋሞGamo NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.gmvNTGMVTBLgmv2011eb
      GamoGamoOoratha Caaqo Maxaafa GamoththoGamo NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.gmvRNTGMVWBTgmvR2011eb
      GapapaiwaGapapaiwaGapapaiwa New TestamentGapapaiwa NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorspwgPWGGTTpwg2009eb
      GarifunaGarifunaLerérun Búngiu To Lánina Iséri DaráduGarifuna NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cabNTCABNVScab2012eb
      GhayaviGhayaviGhayavi MakGhayavi Mark2010Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsbmkBMKWBTbmk2010eb
      GilakiGilakiGilaki JohnGilaki John2014gilakmedia.comglkGLKWBTglk2014eb
      GirawaGirawaAnut nukan Ämän EposekGirawa NT1994Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsbbrBBRWBTbbr1994eb
      GofaGofaኦራ ጫቁዋ ጎፋGofa NT (Ethiopic script)2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.gofENTGO1TBLgofE2011eb
      GofaGofaOoratha Caaquwa GoofathoGofa NT (Latin script)2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.gofRNTGOFTBLgofR2011eb
      GolinGolinGolin New TestamentGolin NT1980Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsgvfGVFWBTgvf1980eb
      GuahiboGuahiboDios pejumelivaisibaxuto pejanalivaisibaxutoGuahibo NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.guhGUHWBTguh2011eb
      GuambianoGuambianoNacom Pejume Diwesi po diwesi pena jume diwesi xua Jesucristo yabara tinatsiGuambiano NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.gumGUMTBLgum2010eb
      GuananoGuananoCohamacʉ Yare Yahari TjuelGuanano NT2007Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.gvcGVCWBTgvc2007eb
      Guaraní, Eastern BolivianGuaraní, Eastern BolivianNuevo Testamento Guaraní PeEastern Bolivian Guaraní NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.guiNTGUISBUgui2012eb
      Guaraní, Western BolivianGuaraní, Western BolivianNuevo Testamento Guaraní PeWestern Bolivian Guaraní NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.gnwNTGNWWBTgnw2012eb
      GuarayuGuarayuTũpa ÑehengagüerGuarayu NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.gyrNTGYRWBTgyr2011eb
      GuayaberoGuayaberoPajelwʉajan Dios pejjamechanGuayabero NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.guoNTGUOWBTguo2009eb
      Guhu-SamaneGuhu-SamanePORO TONGO USAQEGuhu-Samane NT1975Bible Society of Papua New GuineaWycliffe Bible TranslatorsghsGHSWBTghs1975eb
      GwahatikeGwahatikeAl Kuruŋyen Mere IgiŋGwahatike NT2000The Bible Society of Papua New GuineaWycliffe Bible TranslatorsdahDAHPNGdah2000eb
      Gwich'inGwich'inVit'eegwijyąhchy'aa Vagwandak NizįįGwich'in NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.gwiNTGWIWBTgwi2010eb
      HaliaHaliaU BULUNGANA U NIGAHalia NT1978The Bible Society of Papua New GuineaWycliffe Bible TranslatorshlaHLAPNGhla1978eb
      Hamer-BannaBannaHaalin MallanoBanna NT2014SIM InternationalSIMamfAMFSIMamf2014eb
      Hanga HundiHanga HundiGodna HundiHanga Hundi Bible1997Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorswosWOSWBTwos1997eb
      Hawai'i Creole EnglishHawai'i Creole EnglishDa Jesus BookHawai'i Creole English NT2000Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.hwcNTHWCWBThwc2000eb
      HdiHdiDeftera Lfiɗa DzratawiHdi NT2013Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.xedXEDWBTxed2013eb
      HelongHelongBuk Niu In Hida Balu nol Dehet deng Apan-kloma ki in Dadi kaHelong Bible2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.hegNTpoHEGWBTheg2011eb
      Hindustani, CaribbeanHindustani, CaribbeanParmeswar ke naawa poestakCaribbean Hindustani NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.hnsNTHNSWBThns2010eb
      HopiHopiGod Lavayiyat Aṅ PuhuvasiwniHopi NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.hopNTHOPWBThop2012eb
      HuambisaHuambisaYuusa chichame yaunchukia tura yamaram chichamjai aarmauHuambisa NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.hubNTHUBWBThub2010eb
      HuastecHuastecNin tének káwintal an okˀóxlábHuastec Aquiche NT2005Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.husNT2005HUSTBLhus2005eb
      HuastecHuastecAn it jilchith cau cʼal i Ajatic JesucristoHuastec San Luis Potosi NT1971Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.husNT1971HUSWBThus1971eb
      Huave, San Mateo Del MarHuave, San Mateo Del MarJayats nanderac wüx miteatiiüts JesucristoSan Mateo Del Mar Huave,NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.huvNTHUVTBLhuv2009eb
      HuicholHuicholCacaüyari niuquieya xapayari türatu hecuame hepaüsita tatiʼaitüvame tasivicueisitüvame Quesusi Cürisitu miʼatüaHuichol NT1988Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.hchNTHCHWBThch1988eb
      Huitoto, MinicaMinica HuitotoJuziñamui Ñuera UaiMinica Huitoto NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.htoHTOWBThto2011eb
      Huitoto, MuruiHuitoto, MuruiJusiñamui uai: Jusiñamui jito rafue illa rabenicoMurui Huitoto2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.huuNTHUUWBThuu2008eb
      HuliHuliHabo nalolene bi gahenge lo winigo ogoHuli Bible1983, 1991, 2002Bible Society of Papua New GuineaBible Society of Papua New GuineahuiHUIPNGhui2002eb
      IamaleleIamaleleYAUBADA YANA VONA'AWAUFAUFA 'IVAUNAIamalele NT1984, 1988Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsymlYMLTBLyml1988eb
      IatmulNgepma KwundiGOD WAA NYAAGƗTIatmul NT1975Bible Society of Papua New GuineaWycliffe Bible TranslatorsianIANWBTian1975eb
      IdunaIdunaYAUBADA BONANA VEYAO IVAGUNA Bona IdunaIduna NT1983, 2003Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsvivVIVWBTviv2003eb
      IgnacianoIgnacianoEta Táurinaquene máechajiriruvahi ema Viya eta viyehe, ticaijare puito Eta Nuevo TestamentoIgnaciano NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.ignNTIGNSBBign2012eb
      IkaIkaElu Ọhụn: Ẹkụkwọ-Nsọ (Azụụn Ọhụn rịn'a)Ika NT2010WycliffeWycliffeikkNTIKKWBTikk2010eb
      IkwereIkwereTẹsitamenti Ikne n'Ọnu IkwereIkwere NT2010WycliffeWycliffeikwNTIKWWBTikw2010eb
      Imbo UnguImbo UnguUNGU TUKUMEMUImbo Ungu NT1997The Bible LeagueWycliffe Bible TranslatorsimoIMOTBLimo1997eb
      InabaknonInabaknonI Baha'o KasuratanInabaknon NT1996Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.abxABXWBTabx1996eb
      IngaIngaKaipimi Taita Dius RimakuInga NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.inbINBWBTinb2009eb
      Inoke-YateInoke-YateAnumaya Koti'a Saufa Lami'nea KeInoke-Yate NT1992Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsinoINOTBLino1992eb
      IpiliIpiliIPILI NUTESAMENEIpili NT2008Bible Society of Papua New GuineaWycliffe Bible TranslatorsipiIPIPNGipi2008eb
      Ivbie North-Okpela-ArheIvbie North-Okpela-ArheEbe-No-Pfuasẹ Ishobọ OnogbọIvbie North-Okpela-Arhe NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.atgNTATGWBTatg2012eb
      IwalIwalYISU KILISI ANE BINGE VIE GIENGK IWAL AVOSIwal NT1984Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskbmKBMTBLkbm1984eb
      Iwam, SepikSepik IwamYai Wɨn KɨbiyaSepik Iwam NT1989Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsiwsIWSTBLiws1989eb
      IxilIxilCotzalViakʼla txumbʼal u tioxhIxil Cotzal NT2001Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.ixlCNTIXLWBTixlC2001eb
      IxilIxilNebajU ak' Testamento tu kuyob'alIxil Nebaj NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.ixlNNTIXIWBTixlN2008eb
      IyoIyoIyo New TestamentIyo NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsncaNCAWBTnca2009eb
      JakaltekoJakaltekoEasternNuevo Testamento yin̈ abxubalEastern Jakalteko NT1997Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.jacNTJACWBTjac1997eb
      Javanese, CaribbeanJavanese, CaribbeanKitab sutyi prejanjian anyar ing Basa Jawa Suriname sing gampangCaribbean Javanese NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.jvnNTJVNWBTjvn2009eb
      K'iche'K'iche'CantelRu Loqꞌ Pixabꞌ Ri DiosK'iche' Cantel NT, new spelling2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qucNNTQUCNEWqucN2011eb
      K'iche'K'iche'Ru Lokꞌ Pixab Ri DiosK'iche' Cantel NT, traditional spelling2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qucTNTQUCTRAqucT2011eb
      KagayanenKagayanenPulong ta Dyos: Genesis daw bag-o na kasugtananKagayanen NT2007Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cgcCGCWBTcgc2007eb
      KakabaiKakabaiKakabai MakKakabai Mark2010Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskqfKQFWBTkqf2010eb
      KalamKalamcentralKalam Baybol Buk Gor minim nuk kisin angayakKalam NT1992Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskmhKMHKALkmh1992eb
      Kalinga, LimosLimos KalingaUgud apudyus = Ti baro tulagLimos Kalinga NT2003Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.kmkKMKWBTkmk2003eb
      KaluliKaluliKaluli BaibelKaluli NT1998Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsbcoBCOWBTbco1998eb
      KamanoKamano-KafeAnumzamofo Ruotage AvontafereKamano-Kafe Bible2014Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskbqKBQWBTkbq2014eb
      KamasauKamasauYumbui Ningg Wand Yuwon YeKamasau NT1998Bible Society of Papua New GuineaWycliffe Bible TranslatorskmsKMSPNGkms1998eb
      KamulaKamulaKa꞉dle YuKamula Bible2005The Bible Society of Papua New GuineaWycliffe Bible TranslatorsxlaXLAPNGxla2005eb
      KanasiKanasiIna Sanaa GagalowaKanasi NT1996Wycliffe Bible TranslatorsWycliffe Bible TranslatorssoqSOQWBTsoq1996eb
      KandasKandasBuk Baibel long tokples KandasKandas NT2011-2012Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskqwKQWWINkqw2012eb
      KandawoKandawoJisas Kandjiyebe WopakeKandawo NT2012-2014Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsgamGAMWBTgam2014eb
      KaniteKaniteAnumayamo'a Haegafa Alino Hagelafilatenea KeaKanite NT2002Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskmuKMUTBLkmu2002eb
      KapingamarangiKapingamarangiBeebaa DabuKapingamarangi Bible1996, 2014The Kapingamarangi Bible translation committeeThe Kapingamarangi Bible translation committeekpgKPGKPTkpg2014eb
      KaqchikelKaqchikel,EasternRI DIOS NCH'O PA KACH'ABÜL CHEKEEastern Kaqchikel NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cakENTCAKEAScakE2012eb
      KaqchikelKaqchikelSouth CentralGT:cak:KaqchikelKaqchikel Chimaltenango NT2007Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cakCAKSOUcak2007eb
      KaqchikelKaqchikelCentralRi C'ac'a Trato ri Xuben ri Dios Quiq'uin ri VinekKaqchikel NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cakCNTCAKSBGcakC2012eb
      KaqchikelKaqchikelSur de SacatepequezRi utzilaj rutzij ri Dios pa kachʼabelKaqchikel Sur de Sacatepequez NT1993Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cakNTCAKSDScak1993eb
      KaqchikelKaqchikelSanta Maria de JesusRi c'ac'ac' Testamento pa kach'ab'alSanta Maria de Jesus Kaqchikel NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cakSNTCAKSMJcakS2010eb
      KaqchikelKaqchikelYepocapa - South WesternRe C'ac'a Testamento pa Kach'abalSouthwestern Yepocapa and Acatenango Kaqchikel NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cakYNTCAKSWYcakY2012eb
      KaqchikelKaqchikelWesternRi C'ac'ac' Testamento pa Kach'abelWestern Solola Kaqchikel NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cakWNTCAKWEScakW2010eb
      KaraKaraKara New TestamentKara NT1997Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsleuLEUPNGleu1997eb
      Karkar-YuriKarkar-YuriKwaromp Kwapwe Kare KarKarkar-Yuri NT1994Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsyujYUJTBLyuj1994eb
      KashinawaKashinawaDiosun Jesúswen taexun yuba bena yinikiKashinawa NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cbsNTCBSWBTcbs2008eb
      KateKâteKâte New TestamentKâte NT1978The Bible Society of Papua New GuineaBible Society of Papua New GuineakmgKMPPNGkmg1978eb
      KauanaKuanua or Tinata Tuna or TolaiA BUK TABU A MAULANA KUNUBU ma A KALAMANA KUNUBUKauana Bible1882-1983Bible Society of Papua New GuineaBible Society of Papua New GuineaksdKSDPNGksd1983eb
      KeaparaKalo (Keapara)KaloVEKAPAWAI VALIGUNAKeapara Kalo NT2005The Bible Society of Papua New GuineaWycliffe Bible TranslatorskhzKHZPNGkhz2005eb
      KeinKeinUwait nugau Ze NaliuKein NT2005Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsbmhBMHWBTbmh2005eb
      KengaKengaKitapm kɛn Raa dɔɔko kiji ute jeegeKenga NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.kyqKYQWBTkyq2012eb
      KenyangKenyangƐkáti Nku NkɔKenyang NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.kenNTKENWBTken2010eb
      KeyaganaKeyaganaSaufa Kotalake GemaeKeyagana Bible2001Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.kygKYGTBLkyg2001eb
      KireKireFhe Bakɨmen Kaman KameŋKire NT2001Pioneer Bible TranslatorsPioneer Bible TranslatorsgebGEBPBTgeb2001eb
      KisarKisarMakromod lalap lirna wawanKisar NT2008Yayasan Sumber SejahteraWycliffe Bible Translators, Inc.kjeNTKJEWBTkje2008eb
      KobonKobonManö KamɨŋKobon NT2005The Bible Society of Papua New GuineaWycliffe Bible TranslatorskpwKPWPNGkpw2005eb
      Koiali, MountainMountain KoialiBuka TumuteMountain Koiali NT1981Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskpxKPXTBLkpx1981eb
      KombaKombaSIŊGI ÂLIP EKAPKomba NT1980Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskpfKPFPNGkpf1980eb
      KombioKombio WampukuampWampukuampKombio Wampukuamp Bible PortionsKombio Wampukuamp Bible2000Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorsxbi-wXBIWAMxbiW2000eb
      KombioKombio YanimoiYanimoiKombio Yanimoi Bible PortionsKombio Yanimoi Bible2002Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorsxbi-yXBIYANxbiY2002eb
      KonkombaKonkombaUwumbɔr aagbaŋKonkomba2014Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.xonXONWBTxon2014eb
      KorafeKorafe-YeghaYeghaGod Da Geka SekaKorafe NT1984Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskprKPRTBLkpr1984eb
      KosenaKosenaaúná-aimba simái tarúmakain-kwasaiKosena NT1980Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskzeKZEWBTkze1980eb
      KoteKoteKote New TestamentKote Bible2005-2008Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsekoEKOWBTeko2008eb
      KouyaKouyaʼWʋsuslolue loluu ʼsɛbhɛKouya NT2002Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.kyfKYFWBTkyf2002eb
      KubeMongiSISIPAC AC ɊELIAKube NT+Psalms2012Global Bible TranslatorsGlobal Bible TranslatorskgfKGFGBTkgf2012eb
      KumanKumanYESUS KAMO WAKAIKuman NT2008The Bible Society of Papua New GuineaWycliffe Bible TranslatorskueKUEPNGkue2008eb
      Kuna, BorderKuna, BorderPab tummad karta pab Jesucristobal igal-pin mezhijadBorder Kuna NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.kvnNTKVNWBTkvn2009eb
      Kuna, San BlasSan Blas KunaBab dummad Jesucristoba igar mesisad gardaSan Blas Kuna NT 20092009Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.cuk09CUKWB9cuk2009eb
      KunimaipaKunimaipaBaiñetinavoz Tep TokatitKunimaipa NT1989, 2002Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskupKUPTBLkup2002eb
      KuotKuotBais Ula Mumuru Aime IesuKuot NT2001Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsktoKTOPNGkto2001eb
      KutuKutuLagano da Sambi kwa Wanhu WoseKutu NT2014Pioneer Bible TranslatorsPioneer Bible TranslatorsThe Word For The WorldkdcKDCPBTkdc2014eb
      KwaioKwaioFatalana GodKwaio NT2013Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsBible Society of the South PacifickwdKWDWBTkwd2013eb
      KwameraNəfeNƏNƗMWI NARI MEKwamera NT2013Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorstnkTNKWBTtnk2013eb
      KwangaKwangaKwanga New TestamentKwanga NT1992Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskwjKWJWBTkwj1992eb
      KwereKwereLagano da Sambi kwa Wanhu WoseKwere NT2014The Word for the World and Pioneer Bible TranslatorsPioneer Bible Translators and The Word for the WorldcweCWEPBTcwe2014eb
      KwomaWashkukKwoma or WashkukGOD RIITI MAJI KEPIWashkuk NT1974Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskmoKMOBILkmo1974eb
      Kyaka EngaKyaka EŋaBUKU BAEPOLEKyaka Enga Bible1973, 1980, 1987The Bible Society of Papua New GuineakycKYCPNGkyc1987eb
      LabelLabelLabel MakLabel NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorslbbLBBWBTlbb2012eb
      LacandonLacandonA quet u tʼʌnoʼ a ricʼbenoʼLacandon NT1978Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.lacNTLACTBLlac1978eb
      LimbuLimbuYesu khristarɛ kunisaamLimbu NT (Devangari Script)2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.lifNT2LIFDEVlifD2009eb
      LimbuLimbuᤏᤡᤱᤘᤠ᤹ᤑᤢ ᤐᤠ᤺ᤴᤈᤠᤰ ᤁᤢᤛᤱ ᤔᤠᤱᤜᤢᤵLimbu NT (Limbu Script)2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.lifNTLIFWBTlifL2009eb
      LoteLoteTomunga Hel Heueu NganaLote NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsuvlUVLWBTuvl2009eb
      LuangLuangPuka LululiLuang Bible2005, 2014Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorslexLEXWBTlex2014eb
      LuguruLuguruLaghano Lya Sambi Kwe Iwanu WoseLuguru NT2014PBT_TWFTWPioneer Bible Translators and The Word for the WorldrufRUFPBTruf2014eb
      LukpaLokpaPIIPILI ƖSƆ TƆM TAKƎLAƔALokpa Bible1999SIMSIMdopDOPSIMdop1999eb
      MachiguengaMachiguengaIriniane TasorintsiMachiguenga NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mcbNTMCBWBTmcb2008eb
      MacunaMacunaDios Oca TutiMacuna NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.myyMYYWBTmyy2012eb
      MadakMadakLenavolo Lovoang Kaala Maxat La SamMadak NT+Psalms1995, 2011Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsmmxMMXTBLmmx2011eb
      MaiadomuMaiadomuMaiadomu MalikaMaiadomu Mark2010Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsmzzMZZWBTmzz2010eb
      MaiwaMaiwaGAE MATAIWAMaiwa NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsmtiMTITBLmti2011eb
      MakaMakaINTATA ȽE'ȽIJEIMaka NT2013Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mcaMCAWBTmca2013eb
      MakaaMakaaKálaad Zɛmbî : Sɔ ̧ á GúgwáanMakaa NT2014Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.mcpMCPWBTmcp2014eb
      MakondeMakondeBible in Makonde New Testament and Old Testament PortionsMakonde Bible2008Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.kdeKDEWBTkde2008eb
      Malei-HoteHotê-MalêWapômbêŋ Anêŋ Abô MatheŋMalei-Hote NT2010Wycliffe Bible Translators, Inc. and The Malê peopleWycliffe Bible TranslatorsThe Malê peoplehotHOTWBThot2010eb
      MamMamComitancilloAk'aj tu'jil tyol qmanMam Comitancillo NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mamCMAMCOMmamC2009eb
      MamMamTodos SantosAcʼaj testamento (El Nuevo testamento in Mam de Todos Santos)Mam Todos Santos NT2000Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mamNTMAMSBGmamTS2000eb
      ManamManamTestamen OauoauManam NT1996Papua New Guinea Bible Translation AssociationWycliffe Bible TranslatorsmvaMVAPNGmva1996eb
      MangsengMangsengGod Ile Riong Kinnga Ponganga nge Mangsengre OkeiMangseng NT1999Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsmbhMBHTBLmbh1999eb
      MankanyaMankanyaUlibra wi NaşibaţiMankanya NT and partial OT2014Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.knfKNFWBTknf2014eb
      Manobo, AgusanManobo, AgusanKasuyatan to DiyusAgusan Manobo NT1999Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.msmNTMSMWPSmsm1999eb
      Manobo, AtaManobo, AtaKasulatan to MagbobootAta Manobo NT2000Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.atdNTATDWBTatd2000eb
      Manobo, MatigsalugManobo, MatigsalugMeupiya ne panugtulen: Bibliya ne MatigsalugMatigsalug Manobo NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mbtNTMBTWBTmbt2010eb
      Manobo, OboManobo, OboMoppiyon Dinoggan, Moka-atag ki Disas KraysObo Manobo NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.oboNTOBOWBTobo2011eb
      Manobo, SaranganiSarangani ManoboSe kaling peokitSarangani Manobo NT1982Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.mbsMBSWBTmbs1982eb
      Manobo, Western BukidnonManobo, Western BukidnonIs Lalag te MegbevayàWestern Bukidnon Manobo OT2013Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mbbOTMBBWPSmbb2013eb
      MansakaMansakaYang Bago na Togon KanatuMansaka NT1975Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.mskMSKWBTmsk1975eb
      MapeMapeMaŋkekerisiere Biŋe Quraŋ Jojofo GariineMape NT2008The Bible Society of Papua New GuineaWycliffe Bible TranslatorsmlhMLHPNGmlh2008eb
      MapudungunMapudungunNgünechen ñi Küme DunguMapudungun NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.arnNTARNSBUarn2011eb
      MarikMarikMata Ifenẽya Nẽ OdMarik NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.dadDADWBTdad2011eb
      MasbatenyoMasbatenyoAn Maayo na Barita Hali sa DiosMasbatenyo NT1993Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.msbMSBWBTmsb1993eb
      MatsésMatsésEsuquidistu Chuiquin TantiameteMatsés NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mcfNTMCFWBTmcfNT2008eb
      MauwakeMauwakeYEESUS OPOR ELIWAMauwake NT1998The Bible Society of Papua New GuineaWycliffe Bible TranslatorsmhlMHLPNGmhl1998eb
      Maya, MopánMaya, MopánLe'ec Ada' U T'an A Dios A TumulbeneMopán Maya NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mopNTMOPWBTmop2012eb
      Mazahua, CentralMazahua, CentralNu o̱ jña mizhocjimi nu mama ja ga cja e JesucristoCentral Mazahua NT2007Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mazNTMAZTBLmaz2007eb
      Mazatec, ChiquihuitlánMazatec, ChiquihuitlánCompromisu xi majo xi casahmi nina cojo xuta (El Nuevo Testamento en el mazateco de Chiquihuitlán de Juárez ... y en español)Chiquihuitlán Mazatec NT1991Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.maqNTMAQTBLmaq1991eb
      Mazatec, HuautlaMazatec, HuautlaXon⁴-le⁴ ni³na¹ xi³ tʔa³tsʔe⁴ JesucristoHuautla Mazatec NT1960Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mauNTMAUWBTmau1960eb
      Mazatec, Jalapa de DíazMazatec, Jalapa de DíazÉhe̱n Nti̱a̱náJalapa de Díaz Mazatec NT2013Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.majNTMAJBTTmaj2013eb
      Mazatec, San Jerónimo TecóatlMazatec, San Jerónimo Tecóatl'Én-la̱ Nainá xi kjoa̱ ts'e̱ JesucristoSan Jerónimo Tecóatl Mazatec NT2013Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.maaNTMAASJVmaa2013eb
      Mazateco, AyautlaMazateco, AyautlaEl Nuevo Testamento Mazateco de AyautlaAyautla Mazateco NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.vmyNTVMYWBTvmy2009eb
      MbukoMbukoAɓan 'am wiya awanMbuko NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mqbNTMQBWBTmqb2010eb
      MbulaMbulaAnutu Sua Kini PotomaxanaMbula Bible1996The Bible Society of Papua New GuineaWycliffe Bible TranslatorsmnaMNAPNGmna1996eb
      MekeoMekeoMauni Mamaga IifagaMekeo NT1998The Bible Society of Papua New GuineaWycliffe Bible TranslatorsmekMEKPNGmek1998eb
      Melanesian PidginTok PisinBuk Baibel long Tok PisinTok Pisin Bible1969–2008The Bible Society of Papua New GuineaThe Bible Society of Papua New GuineatpiOTNTTPIPNGONtpiP2008eb
      Melanesian PidginTok PisinBuk Baibel long Tok PisinTok Pisin Bible with Deuterocanon1969–2008The Bible Society of Papua New GuineaThe Bible Society of Papua New GuineatpiTPIPNGtpi2008eb
      MelpaMelpaGot Nga Nambuha Ik KaiMelpa NT1995The Bible Society of Papua New GuineaWycliffe Bible TranslatorsmedMEDPNGmed1995eb
      MendeMendeMashi Avui WasilakahiMende NT2005The Bible Society of Papua New GuineaWycliffe Bible TranslatorssimSIMPNGsim2005eb
      MengenMengenPiunga Ba Bonga A PauMengen NT2003Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsmeeMEETBLmee2003eb
      MereyMereyDzam WeɗeyeMerey NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.meqMEQWBTmeq2012eb
      Mi'kmaqMi'kmaqGelulg Glusuaqan: Gisiteget Agnutmugsi'gwMi'kmaq NT2003Canadian Bible SocietyCanadian Bible SocietymicMIQNTMICCBSmicMIQ2003eb
      MianMian WengGode Dowan WengobeMian NT1986Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsmptMPTTBLmpt1986eb
      MigabacMigabacMigabac Bible PortionsMigabac Bible2010-2013Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsmppMPPWBTmpp2013eb
      MinavehaMinavehaAwaeha Vovouna Minaveha MoviaMinaveha NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsmvnMVNJLBmvn2008eb
      MiniafiaMiniafiaTUR GEWASIN O BAIBASIT BOUBUNMinaifia NT2009Wycliffe Bible Translators, Inc.PNG Bible Translation Association and Wycliffe Bible TranslatorsaaiAAIWBTaai2009eb
      Minimib dialect of KalamMinimibMƗNƗM KOMIŊMinimib NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorskmh-mKMHMINkmhM2008eb
      Misima-PaneatiMisima-PaneatiBateli VavalunaMisima-Paneati Bible1947, 1997, 2011The Bible Society of Papua New GuineaWycliffe Bible TranslatorsmpxMPXPNGmpx2011eb
      Mixe, CoatlánMixe, CoatlánEl Nuevo Testamento en mixe de CoatlánCoatlán Mixe NT1976Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mcoNTMCOTBLmco1976eb
      Mixe, IsthmusMixe, IsthmusEl Nuevo Testamento en mixe de GuichicoviIsthmus Mixe NT1988Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mirNTMIRTBLmir1988eb
      Mixe, JuquilaMixe, JuquilaJa jembyʉ kajxy'átypyʉ mʉdʉ Jesukristʉkyʉjxm: El Nuevo Testamento de nuestro Señor Jesucristo en el mixe de JuquilaJuquila Mixe NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mxqNTMXQTBLmxq2009eb
      Mixe, TlahuitoltepecMixe, TlahuitoltepecJa øgyajpxy ja ømyadya̱ʼa̱ky midi xukpa̱a̱jtɨmp ja nɨtsoʼokʼajtɨnTlahuitoltepec Mixe NT1987Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mxpNTMXPWBTmxp1987eb
      Mixe, TotontepecMixe, TotontepecYa̱ʼa̱ tseʼe je̱ nam ko̱jtstán juuʼ veʼe je̱ Nteʼyamˍ xyaktaajnjimdu je̱ nMa̱j Vintsá̱namda Jesucristo ka̱jxTotontepec Mixe NT1989Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mtoNTMTOWBTmto1989eb
      Mixtec, AtatláhucaMixtec, AtatláhucaNuevo Testamento en mixtecoAtatláhuca Mixtec1973Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mibNTMIBWBTmib1973eb
      Mixtec, ChayucoMixtec, ChayucoTuhun Ndyoo sihin tyehen ñiChayuco Mixtec NT1979Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mihNTMIHWBTmih1979eb
      Mixtec, CoatzospanMixtec, CoatzospanTūʼún xuva kō vatā ó ntákaʼan ña ñuú CoatzospanCoatzospan Mixtec NT2003Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mizNTMIZTBLmiz2003eb
      Mixtec, Diuxi-tilantongoMixtec, Diuxi-tilantongoTnuʼu vaʼa tnuʼu JesucristoDiuxi-tilantongo Mixtec NT2001Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.xtdNTXTDTBLxtd2001eb
      Mixtec, JamiltepecMixtec, JamiltepecTuhun cha sañahá ra Jesucristo chi yoJamiltepec Mixtec NT1983Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mxtNTMXTTBLmxt1983eb
      Mixtec, Magdalena PeñascoMixtec, Magdalena PeñascoTnu'u vii tnu'u va'a Su'si maMagdalena Peñasco Mixtec Bible2013Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.xtmNTppXTMWBTxtm2013eb
      Mixtec, OcotepecMixtec, OcotepecNuevo Testamento en mixteco de OcotepecOcotepec Mixtec1977Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mieNTMIETBLmie1977eb
      Mixtec, PeñolesMixtec, PeñolesTnúhu ní cáháⁿ yǎ ndiǒxí xito cùu uúPeñoles Mixtec NT2002Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.milNTMILTBLmil2002eb
      Mixtec, Pinotepa NacionalMixtec, Pinotepa NacionalTutu chaa cha iyo cuenda ra hahnu Jesucristo (El Nuevo Testamento de nuestro señor Jesucristo)Pinotepa Nacional Mixtec NT1980Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mioNTMIOWBTmio1980eb
      Mixtec, San Juan ColoradoMixtec, San Juan ColoradoTuhun tsaa tsa nacoo̱ jutu mañi yo Jesucristo tsi yoSan Juan Colorado Mixtec NT1994Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mjcNTMJCWBTmjc1994eb
      Mixtec, San Miguel el GrandeMixtec, San Miguel el GrandeTestamento jaa maa jitoho-yo JesucristoSan Miguel el Grande Mixtec NT1951Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.migNTMIGWBTmig1951eb
      Mixtec, SilacayoapanMixtec, SilacayoapanTu̱hun sa̱á ña̱ na̱jándacoo Jesucristo nu̱ yo̱: El Nuevo Testamento en el mixteco de SilacayoapanSilacayoapan Mixtec NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mksNTMKSTBLmks2009eb
      Mixtec, Southern PueblaMixtec, Southern PueblaLey saa ni nacoo JesucristuSouthern Puebla Mixtec NT1978Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mitNTMITTBLmit1978eb
      Mixtec, TezoatlánMixtec, TezoatlánTuti yó'o kúú to̱'on Ndios, ta xí'o ña kuendá sa'a̱ JesúsTezoatlán Mixtec NT2006Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mxbNTMXBMVRmxb2006eb
      Mixtec, YosondúaMixtec, YosondúaNuevo Testamento en mixteco de YosondúaYosondúa Mixtec NT1988Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mpmNTMPMTBLmpm1988eb
      MiyobeSolaNkomine Fal Ritɛlɛ́Sola NT2010UEEB/SIM au BeninSIM InternationalsoySOYSIMsoy2010eb
      MokoleMonkoleAkabuu Titɔ̃i Idei IlaaɔMonkole NT2006SIM InternationalSIM InternationalmklMKLSIMmkl2006eb
      MolimaMolimaMolima New TestamentMolima NT2010Folk&Spr;åk and Swedish Mission AllianceFolk&Spr;åkThe Molima Translation CommitteemoxMOXFNSmox2010eb
      MotuMotuBuk Baibel long tokples MotuMotu Bible1959-1973Bible Society of Papua New GuineaBible Society of Papua New GuineameuMEUPNGmeu1973eb
      Motu, HiriHiri MotuBuka HelagaHiri Motu Bible1964, 1982, 1994The Bible Society of Papua New GuineaThe Bible Society of Papua New GuineahmoHMOPNGhmo1994eb
      MufianMufianBasef Buꞌwafi GodiMufian NT1998Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsaojAOJTBLaojM1998eb
      MuinaneMuinaneMoocaani iijɨMuinane NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.bmrNTBMRWBTbmr2009eb
      Mussau-EmiraMussau-EmiraMussau-Emira BibleMussau-Emira Bible2006, 2008, 2013Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsemiEMIWBTemi2013eb
      MutuSaveengOovMaaron Saveeŋ Toni PatabuaŋSaveeng Oov Bible2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorstuc-oTUCOOVtucO2011eb
      MutuSaveengTuamMaaron Saveeŋ Tooni PatabuyaaŋSaveeng Tuam Bible2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorstuc-tTUCTUAtucT2011eb
      MuyangMuyangMa Mʉweni Sulumani ge MelefitMuyang NT2013Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.muyMUYWBTmuy2013eb
      MuyuwMuyuwKALEIWAG KWEIVAWMuyuw NT1976, 1993The Bible Society of Papua New GuineaWycliffe Bible TranslatorsmywMYWPNGmyw1993eb
      MwaniMwaniHabari NgemaMwani NT2013Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.wmwWMWWBTwmw2013eb
      NaasioiNaasioiKongaraKara Naroong-anta Nerakung Kongarana'Naasioi NT1994The Bible Society of Papua New GuineaWycliffe Bible TranslatorsnasNASPNGnas1994eb
      NabakNabakKawawaŋgalen Tâtâ AlakŋaŋNabak NT1988Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsnafNAFTBLnaf1988eb
      NadebNadëbPop Hagä Do Panyyg Hanäm Do HahỹỹhNadëb NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsmbjNTMBJWBTmbj2011eb
      Nahuatl, Huasteca OccidentalNahuatl, Huasteca OccidentalIcamanal toteco; Santa BíbliaHuasteca Occidental Nahuatl Bible2005Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.nhwBlNHWTBLnhw2005eb
      Nahuatl, Huasteca OrientalNahuatl, Huasteca OrientalHuasteca OrientalYa ni nopa yancuic tlajtoli tlen toteco toca mocajtoc; El Nuevo Testamento de nuestro Señor Jesucristo en el náhuatl de la Huasteca OrientalHuasteca Oriental Nahuatl NT 20092009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.nheNTNHEWBTnhe2009eb
      Nahuatl, GuerreroNahuatl, GuerreroIn yencuic iyectlajtoltzin Dios itech ica toTeco JesucristoGuerrero Nahuatl NT1987Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.nguNTNGUTBLngu1987eb
      Nahuatl, Highland PueblaNahuatl, Highland PueblaIn cuali tajtoltzin de DiosHighland Puebla Nahuatl NT1975Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.azzNTAZZTBLazz1975eb
      Nahuatl, Huasteca CentralNahuatl, Huasteca CentralIcamanal toteco; Santa BibliaHuasteca Central Nahuatl Bible2005Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.nchBlNCHTBLnch2005eb
      Nahuatl, Huasteca OrientalNahuatl, Huasteca OrientalHuasteca OrientalItlajtol toteco: Santa BibliaHuasteca Oriental Nahuatl Bible 20052005Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.nheBlNHETBLnhe2005eb
      Nahuatl, MichoacánNahuatl, MichoacánIlajtulisli Yancuic toTata JesucristoMichoacán Nahuatl NT1998Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.nclNTNCLTBLncl1998eb
      Nahuatl, Northern OaxacaNahuatl, Northern OaxacaItlajtol totajtzin Dios = El Nuevo TestamentoNorthern Oaxaca Nahuatl NT2006Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.nhyNTNHYTBLnhy2006eb
      Nahuatl, Northern PueblaNahuatl, Northern PueblaIn yancuic mononotzalistli ica Totecohtzin JesucristoNorthern Puebla Nahuatl NT1979Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.ncjNTNCJTBLncj1979eb
      Nahuatl, Southeastern PueblaNahuatl, Southeastern PueblaItlajtol Totajtsi DiosSoutheastern Puebla Nahuatl NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.nplNTNPLWYInpl2011eb
      Nahuatl, TetelcingoNahuatl, TetelcingoEl Nuevo Testamento en nahuatl de TetelcingoTetelcingo Nahuatl NT1980Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.nhgNTNHGWBTnhg1980eb
      Nahuatl, Zacatlán-Ahuacatlán-TepetzintlaNahuatl, Zacatlán-Ahuacatlán-TepetzintlaIn Yancuic TlahtolsintililZacatlán-Ahuacatlán-Tepetzintla Nahuatl NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.nhiNTNHIWBTnhi2012eb
      NakanaiNakanaiNakanai New TestamentNakanai NT1983Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsNakanai New TestamentnakNAKTBLnak1983eb
      NaliNaliNongan HiyanNali Genesis and Mark2008, 2012Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsnssNSSWBTnss2012eb
      NamiaeNamiai (Barai)Godon Vuak Ma IjinNamiai NT2004Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsnvmNVMWBTnvm2004eb
      NaroNaroKa̱bas Qae-xg'ae saNaro NT2012The Bible Society of BotswanaWycliffe Bible TranslatorsnhrNHRBSBnhr2012eb
      NehanNehanNehan New TestamentNehan NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsnsnNSNWBTnsn2011eb
      NekNekNek BibleNek NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsnifNIFWBTnif2011eb
      NgäbereNgäbereKukwe kuin ngöbökweNgäbere NT2004Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.gymNTGYMWBTgym2004eb
      NgangamNgangamUwien ya Jɔtiefɛ̀nku ya gbɔnkuNgangam NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.gngNTGNGWYIgng2011eb
      NggemNggemAla wene Nggem enane vaga dirup warekNggem NT2003, 2004, 2007, 2008, 2013Tim Penterjemah Bahasa Nggem (The Nggem Translation Team)The Nggem Translation Team (Tim Penterjemah Bahasa Nggem)Wycliffe Bible TranslatorsnbqNBQWBTnbq2013eb
      NiiNiiGos Nge Ek Ka Ei Sinim Kin NgołumNii NT1980Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsniiNIITBLnii1980eb
      NinzoNinzoUngbamvu Ku Abachi Azhi Ahe̲he̲ KaNinzo NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.ninNTNINWBTnin2011eb
      NkonyaNkonyaBulu ntam pɔpwɛ; NkonyaNkonya NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.nkoNTNKOWBTnko2010eb
      NobonobNobonobKAYAKNU NAI Tituanak BauNobnob NT1990Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsgawGAWWBTgaw1990eb
      NomatsiguengaNomatsiguengaIrinibare Tosorintsi Ocomantëgotëri Antigomi JesoquirisitoNomatsiguenga NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.notNTNOTWBTnot2008eb
      NooneNooneŊwa' Nyo' Moŋkan mo MonfɛmNoone NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.nhuNTNHUWBTnhu2011eb
      North TairoraArauArauIsuva Soqe Uva KuamaNorth Tairora Arau Bible1986Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorstbg-aTBGNORtbgA1986eb
      North TannaNorth TannaNorth Tanna New TestamentNorth Tanna NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorstnnTNNWBTtnn2010eb
      Northwest Alaska EskimoInupiatun, Northwest AlaskaIpqitchuat Makpiġaat - Agaayyutim Uqałhi IñupiatunNorthwest Alaska Eskimo NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorseskNTESKWBTesk2010eb
      NuknaNuknaNukna BaibelNukna Bible2013Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskltKLTWBTklt2013eb
      NumanggangNumaŋgaŋBepaŋ'Walaŋ Folofolok KobuliNumanggang Bible2005Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsnopNOPNTTnop2005eb
      NyindrouNyindrouSahou ta KindreiNyindrou Bible1987, 2001Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorslidLIDWBTlid2001eb
      OdoodeeOdoodeeOdoodee BaibelOdoodee NT2006Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskkcKKCWBTkkc2006eb
      OksapminOksapminGot orhe meng brak banOksapmin NT1992Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsopmOPMTBLopm1992eb
      OloOloIl Teingipe Ma Ili Topwepe Lapiri LiroukuOlo NT1997Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsongONGTBLong1997eb
      OmieÖmieGod-are Jögoru I'ohoOmie NT1991Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsaomAOMTBLaom1991eb
      Omwunra-Toqura or South TairoraVeqauraVeqaura (Meauna)Veqaura BaibelSouth Tairora Veqaura NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorsomw-vOMWVEQomwV2012eb
      OrokaivaOrokaivaEtijaGod Ta Duru JavotohoOrokaiva Etija NT1988Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsokvOKVTBLokv1988eb
      Otomi, Eastern HighlandOtomi, Eastern HighlandRa ʼdaʼyonhogui nangue ma Hmuhʉ ra JesucristoEastern Highland Otomi NT1974Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.otmNTOTMWBTotm1974eb
      Otomi, Estado de MéxicoOtomi, Estado de MéxicoEl Nuevo Testamento en otomí de San Felipe Santiago, Edo. de MéxicoEstado de México Otomi NT1975Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.otsNTOTSWBTots1975eb
      Otomi, MezquitalOtomi, MezquitalRa 'Ra'yo TestamentoMezquital Otomi NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.oteNTOTETBLote2008eb
      Otomi, QuerétaroOtomi, QuerétaroÀr 'ra'yo nkohi Jö har ñhöñhö maxei nto̱ngwi ár mahwifi har ha̱i m'onda ne har ñhömfo̱Querétaro Otomi NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.otqNTOTQTBLotq2009eb
      Otomi, TenangoOtomi, TenangoJa ua ra̱ ʼdaʼyo cohi bi gomi̱ Oja̱ yø ja̱ʼi̱Tenango Otomi NT1975Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.otnNTOTNWBTotn1975eb
      PaamaPaamaPaama BiblePaama Bible2011Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorspmaPMAWBTpma2011eb
      PaicîPaicîTii Pwicîri: Âmu Aamwari naa na cîPaicî NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.priNTPRIWBTpriNT2012eb
      Paiute, NorthernPaiute, NorthernTe Naa Besa UnnepuNorthern Paiute NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.paoNTPAONABpao2012eb
      ParananParananEn Maganda A Bareta BibliaParanan NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.prfNTPRFWBTprfNT2012eb
      PatepPatepYesu XolacPatep NT1986Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsptpPTPTBLptp1986eb
      PatpatarPatpatarARI NIANGA TA GODPatpatar NT1997Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsgfkGFKTBLgfk1997eb
      PaumaríPaumaríDeus Athi Kapapirani HidaPaumarí NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.padNTPADWBTpad2010eb
      Pele-AtaPele-AtaVaikala Noxou LatauaAta Bible2009The Bible Society of Papua New GuineaWycliffe Bible TranslatorsataATAPNGata2009eb
      PiapocoPiapocoEl Nuevo Testamento de nuestro Señor Jesucristo en el idioma piapocoPiapoco NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.pioNTPIOWBTpio2009eb
      PiratapuyoPiratapuyoCohãcjʉ̃ Yere Yahuducuri TjuPiratapuyo NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.pirNTPIRWBTpir2011eb
      PogoloPogoloLipatanu Lya Syayi Kwa Wantu WoseriPogolo NT2014The Word for the World and Pioneer Bible TranslatorsPioneer Bible Translators and The Word for the WorldpoyPOYPBTpoy2014eb
      PohnpeianPohnpeianPohnpeian BiblePohnpeian Bible 20062006Bible Society of the South Pacificpon2006PONSSPONpon2006eb
      PohnpeianPohnpeianPohnpeian Bible with ApocryphaPohnpeian Bible with Apocrypha 20062006Bible Society of the South Pacificpon2006aPONSSPponA2006eb
      Popoloca, San Juan AtzingoPopoloca, San Juan AtzingoTí Nuevo Testamento cuènte Inchéni Jesucristo Cʼóna NquìvaSan Juan Atzingo Popoloca NT1982Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.poeNTPOETBLpoe1982eb
      Popoloca, San Marcos TlalcoyalcoPopoloca, San Marcos TlalcoyalcoTti jian joajné JesucristoSan Marcos Tlalcoyalco Popoloca NT1982Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.plsNTPLSWBTpls1982eb
      Popoluca, HighlandPopoluca, HighlandJém jomipɨc trato jém iwatnewɨɨp tánomi JesucristoHighland Popoluca NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.poiNTPOIWBTpoi2009eb
      Poqomchi'Poqomchi'OccidentalReꞌ Lokꞌ Laj Hu̱j Wilic wi̱ꞌ Ribiral i JesusPoqomchi' Occidental NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.pohNTPOHBSGpoh2012eb
      Q'eqchi'Q'eqchi'Li Santil huQ'eqchi' Bible2000Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.kekNTKEKIBSkek2000eb
      QaqetQaqetA SLURLKA AA LANGINKA AMA IAMESKAQaqet Bible1996Papua New Guinea Bible Translation AssociationPNG Bible Translation AssociationbyxBYXPNGbyx1996eb
      Quechua, CajamarcaQuechua, CajamarcaMushuq TistamintuCajamarca Quechua NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qvcNTQVCTBLqvc2008eb
      Quechua, Eastern ApurímacQuechua, Eastern ApurímacMosoq TestamentoEastern Apurímac Quechua NT2013Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qveNTQVETBLqve2013eb
      Quechua, Huallaga HuánucoHuallaga Huánuco QuechuaTayta Diosninchi IsquirbichishanHuallaga Huánuco Quechua NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qubQUBWBTqub2011eb
      Quechua, Huamalíes-Dos de Mayo HuánucoQuechua, Huamalíes-Dos de Mayo HuánucoMushog TestamentoHuamalíes-Dos de Mayo Huánuco Quechua NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qvhNTQVHWBTqvh2008eb
      Quechua, Huaylas AncashQuechua, Huaylas AncashTeyta Diospa Mushoq TestamentunHuaylas Ancash Quechua NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qwhNTQWHLLBqwh2008eb
      Quechua, Huaylla WancaQuechua, Huaylla WancaMuśhü limalicuyHuaylla Wanca Quechua NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qvwNTQVWWBTqvw2010eb
      Quechua, LambayequeQuechua, LambayequeMushuq TestamentoLambayeque Quechua NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qufNTQUFLLBquf2008eb
      Quechua, Margos-Yarowilca-LauricochaQuechua, Margos-Yarowilca-LauricochaMushog TestamentoMargos-Yarowilca-Lauricocha Quechua NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qvmNTQVMTBLqvm2008eb
      Quechua, North BolivianQuechua, North BolivianMosoj TestamentoNorth Bolivian Quechua NT1985Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qulNTQULSBBqul1985eb
      Quechua, North JunínQuechua, North JunínTayta Diospa Guepacag TestamentunNorth Junín Quechua NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qvnNTQVNLLBqvn2008eb
      Quechua, Northern Conchucos AncashQuechua, Northern Conchucos AncashSeñor Jesucristopa alli willacuyninNorthern Conchucos Ancash Quechua NT2002Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qxnNTQXNWBTqxn2002eb
      Quechua, Panao HuánucoQuechua, Panao HuánucoMushug TestamentoPanao Huánuco Quechua NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qxhNTQXHWBTqxh2009eb
      Quechua, San MartínQuechua, San MartínTata Diospa Mushuk RimananSan Martín Quechua NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qvsNTQVSTBLqvs2008eb
      Quechua, South BolivianQuechua, South BolivianDios ParlapawanchejSouth Bolivian Quechua NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.quhNTQUHSBBquhNT2011eb
      Quechua, Southern Conchucos AncashQuechua, Southern Conchucos AncashMushog TestamentoSouthern Conchucos Ancash Quechua NT2002Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qxoNTQXOWBTqxo2002eb
      Quechua, Southern PastazaQuechua, Southern PastazaYaya Diospa mushu killkachishkan shimiSouthern Pastaza Quechua NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qupNTQUPWBTqup2008eb
      Quichua, Northern PastazaQuichua, Northern PastazaDiospa shimiNorthern Pastaza Quichua NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.qvzNTQVZWBTqvz2009eb
      RamoaainaRamoaainaBUK TAABU MATAKINRamoaaina NT2006Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsraiRAITBLrai2006eb
      RawaKaro (Rawa)KaroAnutlo Sumange Mande KedaRawa Karo NT2001Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorsrwo-karoRWOKARrwoK2001eb
      RawaRawa (Rawa)RawaANUTRO MANDE KETARawa NT1992Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorsrwo-rawaRWORAWrwoR1992eb
      RotokasRotokasAIREPA VAE REO OVOIRotokas NT1982Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsrooROOTBLroo1982eb
      SabaotSabaotBiibilya Nyēē TiliilSabaot NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.spyNTSPYWBTspy2011eb
      SafeyokaAmpeeli-WojokesoMpohwoe Hungkuno SongofohoAmpeeli-Wojokeso NT+Genesis1988Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsapzAPZPNGapz1988eb
      Saint Lucian Creole FrenchSaint Lucian Creole FrenchTèstèman nèf-la: Épi an posyòn an liv samz-laSaint Lucian Creole French NT1999Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.acfNTACFWBTacf1999eb
      SalibaSalibaMataiyo, MalekoSaliba Matthew & Mark2007, 2013Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorssbeSBEWBTsbe2013eb
      Salt-YuiSalt-YuiSalt-Yui New TestamentSalt-Yui NT1978Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorssllSLLTBLsll1978eb
      San Blas KunaSan Blas CunaBab-Dummad-Garda-IslidikidSan Blas Kuna Bible2014Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.cukCUKNVScuk2014eb
      Saniyo-HiyeweSaniyo-HiyeweOwane Sitewi lo Peri Teꞌe Naneiyei HeꞌiSaniyo-Hiyewe NT2004Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorssnySNYTBLsny2004eb
      SaposaSaposaU VURUNGAN ROF FOUN TEN GOV NANE JISAS KRAISSaposa NT2001Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsspsSPSTBLsps2001eb
      SaramaccanSaramaccanGadu BukuSaramaccan NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.srmNTSRMWBTsrm2009eb
      Sea Island Creole EnglishSea Island Creole EnglishDe Nyew TestamentSea Island Creole English NT2005Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.gulNTGULWBTgul2005eb
      SecoyaSecoyaMaija'quë Huajë Ca Nëose'eSecoya NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.seyNTSEYWBTsey2012eb
      SeimatSeimatKAKAI HAEUSeimat NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsssgSSGWBTssg2012eb
      SelepetSelepetYeshuât Den Pat ÂlepŋeSelepet NT1986Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorssplSPLPNGspl1986eb
      SembelekeSembelekeSembelekeSembeleke Bible1991The Bible Society of Papua New GuineaKen MacnaughtanssxSSXPNGssx1991eb
      Sénoufo, MamaraMamara SénoufoKARIƝƐƐGƐ ƝƆMƐƐ NIVONƆMamara Sénoufo NT and portions of the OT2014Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.mykMYKWBTmyk2014eb
      Sénoufo, SupyireSupyire SénoufoKILE JWUMPE SEMƐŊI JWUMPE NINTANMPESupyire Sénoufo NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.sppSPPWBTspp2008eb
      SharanahuaSharanahuaDiospan TsainSharanahua NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.mcdNTMCDWBTmcd2008eb
      Shipibo-ConiboShipibo-ConiboDiossen joi jatíxonbi onanti joiShipibo-Conibo Bible2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.shpNTpoSHPTBLshp2012eb
      ShuarShuarYus Papí: Shuarja̱i̱ Yus Yamaram Chicham NajanamuShuar NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.jivNTJIVAIEjiv2012eb
      SianeSianeKomonguGotiki olu kutifi ledami ka kofawaSiane Komongu NT1991Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorssnpSNPKOMsnpK1991eb
      SianeSiane-LambauLambauGoti Ukuwala HalaSiane Lambau NT1997Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorssnp-lambauSNPLAMsnpL1997eb
      SinaugoroSinaugoroGINITAḠO VARIḠUNASinaugoro NT1995The Bible Society of Papua New GuineaWycliffe Bible TranslatorssncSNCPNGsnc1995eb
      SioSioMARO KINDENI KAWA ŊGUASio NT & Psalms1995Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsxsiXSITBLxsi1995eb
      SionaSionaRiusu cocabera: mai ëjaguë Jesucristo ba'iyete toyani jo'case'e'ëSiona NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.snnNTSNNWBTsnn2009eb
      SirianoSirianoMarĩpʉya Kerere Wereri TuriSiriano NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.sriSRIWBTsri2009eb
      SirionóSirionóMbia CheẽSirionó NT1977Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.srqNTSRIWBTsrqNT1977eb
      SiroiSiroiKUATE TUKU PASASiroi Bible1975, 1999Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsssdSSDWBTssd1999eb
      SomaliSomaliKitaabka Quduuska AhSomali Bible1979, 2008Society for International Ministries -- KenyaSIM InternationalsomSOMSIMsom2008eb
      Somba-Siawari or Burum-MindikBurum-Mindik or Somba-SiawariBurum-Mindik BibleSomba-Siawari Bible1992, 2002The Bible Society of Papua New GuineaWycliffe Bible TranslatorsbmuBMUPNGbmu2002eb
      South TairoraOmwunra ToquraAatasaraAatasara Ioni + MaakiSouth Tairora Aatasara John & Mark2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorsomw-aOMWAATomwA2012eb
      Southeast AmbrymSoutheast AmbrymSoutheast Ambrym BibleSoutheast Ambrym Bible2011Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorstvkTVKWBTtvk2011eb
      Southwest TannaSouthwest TannaNəkwəkwə imərhakə kape kughen: nɨrpenien viSouthwest Tanna NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.nwiNWIWBTnwi2011eb
      SrananSrananNyun TestamentiSranan NT2002Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.srnNTSRNBSSsrn2002eb
      SuauSuauRIBA HARIHARIUNASuau Bible1998The Bible Society of Papua New GuineaBible Society of Papua New GuineaswpSWPPNGswp1998eb
      SubaSubaEndagano EmpiaSuba NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.sxbNTSXBWBTsxb2010eb
      SuenaSuenaTUA YESU KRISTORA OZIGA EWANANASuena NT1978, 2011Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorssueSUEWBTsue2011eb
      SulkaSulkaE Nut Ka Meer Mang Ka Mokpom To A GunngarSulka NT1997Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorssuaSUKTBLsua1997eb
      SursurungaSursurungaHutngin kamkabat si KáláuSursurunga NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.sgzSGZWBTsgz2009eb
      SusuSusuInyila Isa a nun Isa xa Xɛɛrae xa Sɛbɛli SɛniyɛnxieSusu NT2013MERN_PBTPioneer Bible TranslatorsMission Evangélique Reformée NéerlandaisesusSUSPBTsus2013eb
      TaboTabo (Aramia)Aramia RiverGODOKONO HIDO TABOTabo Aramia NT2006The Bible Society of Papua New GuineaWycliffe Bible Translatorsknv-aramiaKNVARAknvA2006eb
      TaboTabo (Fly River)Fly RiverGODOKONO WADE TABOTabo Fly River NT2006The Bible Society of Papua New GuineaWycliffe Bible Translatorsknv-fly_riverKNVPNGknvF2006eb
      TacanaTacanaDiusu sa mimiTacana NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tnaNTTNAWBTtna2009eb
      TagabawaTagabawaKagi Ka ManamaTagabawa Bible2004Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.bgsBGSWBTbgs2004eb
      TaiTayJisas Klays Takaw Teplep NeTai NT2013Pioneer Bible TranslatorsPioneer Bible TranslatorstawTAWPBTtaw2013eb
      TairoraTairoraNorth TairoraQaraaka Uva TivatoraNorth Tairora NT1979, 1994, 2005, 2008, 2009Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorstbgTBGWBTtbgN2009eb
      Tairora, SouthOmwunra-Toqura (South Tairora)Omwunra-ToquraQARAAKYA QUA TIMWATORASouth Tairora NT2000Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsomwOMWSTAomw2000eb
      TajikтоҷикӣХушхабарTajik Bible2010, 2014Фонди «Калом»tgkTGKIBTtgk2014eb
      TakiaTakiaAnut san bilaluŋ founTakia NT1999The Bible Society of Papua New GuineaWycliffe Bible TranslatorstbcTBCPNGtbc1999eb
      Tamang, EasternEastern Tamangपरमेश्वरला बचन छार कबुलEastern Tamang NT2011Eastern Tamang Language TeamWycliffe Bible TranslatorsWycliffe Bible Translators, Inc.tajTAJWBTtaj2011eb
      TangoaTangoaTangoa New TestamentTangoa NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorstgpTGPWBTtgp2010eb
      Tanimuca-RetuarãTanimuca-RetuarãTuᵽarã MajarokaTanimuca-Retuarã NT portions2013Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tncTNCWBTtnc2013eb
      Tarahumara, WesternTarahumara, WesternOnorúgame nila ra'íchaliWestern Tarahumara NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tacNTTACWBTtac2008eb
      TatuyoTatuyoDio WadariqueTatuyo NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tavTAVWBTtav2009eb
      TaupotaTaupotaTaupotaTaupota MarkTaupota Mark2010Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorstpaTPAWBTtpa2010eb
      TawalaTawalaYAUBADA A WOGATALA WOUNATawala NT1985, 2014Wycliffe Bible Translators, Inc. and Bible Society of Papua New GuineaWycliffe Bible TranslatorstboTBOWBTtbo2014eb
      TboliTboliUdél dwata: gna kesfasad ne lomi kesfasadTboli NT2007Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tblNTTBLWBTtbl2007eb
      TektitekoTektitekoTe akʼaʼj tuʼjal tuj tuʼjal qtata DiosTektiteko NT2003Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.ttcNTTTCWBTttc2003eb
      TelefolTelefol WengGOD IMI WENGTelefol NT1988Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorstlfTLFTBLtlf1988eb
      Tepehua, HuehuetlaTepehua, HuehuetlaIxchivinti DiosHuehuetla Tepehua NT1976Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.teeNTTEETBLtee1976eb
      Tepehua, TlachichilcoTepehua, TlachichilcoIxchivinti Dios: ni sastʼi chivinti yu Dios jatʼatamakaul ixlapanakni laka lhimasipijniTlachichilco Tepehua NT2004Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tptNTTPTWBTtpt2004eb
      Tepehuan, NorthernTepehuan, NorthernDiuusi ñiooquidʌ utuducami oodamicʌdʌNorthern Tepehuan NT1981Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.ntpNTNTPTBLntp1981eb
      Tepehuan, SoutheasternTepehuan, SoutheasternGu ñio'ki'ñ gu Dios na bhaan tu a'ga guch xoi'kamSoutheastern Tepehuan NT2007Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.stpNTSTPTBLstp2007eb
      TeribeTeribeSbö Tjl̈õkwoTeribe Bible2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tfrNTpoTFRWBTtfr2008eb
      TewaTewaNaˀinbí Sedó Yôesiví Tu̖u̖ / Nanbí Sedó Jôesiví TunTewa NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.tewTEWWBTtew2012eb
      Thaiไทยพระคัมภีร์ภาษาไทยฉบับ KJVThai KJV Bible2003Philip PopePhilip PopethaKJVTHAKJVthaKJV2003eb
      TicunaTicunaTupanaarü Ore i Tórü Cori ya Ngechuchu ya CristuchigaTicuna NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tcaNTTCATBLtca2008eb
      TimbeTimbeYusugât Pat Âlep DenTimbe NT1987Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorstimTIMTBLtim1987eb
      TinputzVasui (Tinputz)VasuiSOE A TOꞌTOꞌTinputz Vasui NT2004Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorstpzTPZWBTtpz2004eb
      TirurayTirurayI Fiyowe UretTiruray NT2002Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsWycliffe Bible Translators, Inc.tiyTIYWBTtiy2002eb
      Tohono O'odhamTohono O'odhamJiosh Wechij O'ohanaTohono O'odham NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.oodNTOODWBTood2010eb
      TojolabalTojolabalJa yajcʼachil testamento sbaj ja cajualtic JesucristoTojolabal NT1972Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tojNTTOJWBTtoj1972eb
      TolTolDios Tjevele Jupj 'Üsüs La Qjuisiji Jesucristo MpesTol NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.jicNTJICWBTjic2010eb
      Totonac, CoyutlaTotonac, CoyutlaXasasti talacaxlanCoyutla Totonac NT2006Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tocNTTOCTBLtoc2006eb
      Totonac, HighlandTotonac, HighlandHua̱ xasa̱sti talacca̱xlan quinTla̱tican JesucristoHighland Totonac NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tosNTTOSTBLtos2009eb
      Totonac, PapantlaTotonac, PapantlaXasasti talaccaxlanPapantla Totonac NT1979Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.topNTTOPWBTtop1979eb
      Totonac, Upper NecaxaTotonac, Upper NecaxaXasāstiʼ testamento (Xatze tachihuīn ixpālacata Jesucristo)Upper Necaxa Totonac1999Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tkuNTTKUWBTtku1999eb
      Totonac, Xicotepec De JuárezTotonac, Xicotepec De JuárezHuan Xasāstiʼ testamento: Huan xatzey tachihuīn ixpālacata JesucristoXicotepec De Juárez Totonac NT1978Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tooNTTOOWBTtoo1978eb
      Triqui, CopalaTriqui, CopalaSe-nānā Diosē nanā sāʼ me rá catūū nimán níʼ aCopala Triqui NT1987Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.trcNTTRCTBLtrc1987eb
      TsikimbaTsikimbaKazuwamgbani ka savu n Tsikimba n aɓon a ɗa a ɗanga̱sai a kazuwamgbani ka cauTsikimba NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.kdlNTKDLWBTkdl2010eb
      TsishinginiTsishinginiNzuwulai n Sa'avu na̱ Tsishingini na̱ a̱ɗiva̱ a na a ɗangulai a Nzuwulai mu UfaruTsishingini NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tswNTTSWWBTtsw2011eb
      TucanoTucanoÕ'âkĩ̶ hɨ yeere uúkũri turi TukanoTucano NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tuoNTTUOWBTtuo2009eb
      Tuma-IrumuTuma-IrumuAnutu Täŋo ManTuma-Irumu Bible1997, 2011Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsiouIOUTBLiou2011eb
      Tunebo, CentralCentral TuneboSir chihtáCentral Tunebo NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tufTUFWBTtuf2011eb
      TungagTungagTungagAKUS RO NA PALATUNG TANGINANG ANI IESU KARISTOTungag Bible1998, 2011The Bible Society of Papua New GuineaWycliffe Bible TranslatorslcmLCMPNGlcm2011eb
      TuyucaTuyucaCõãmacʉ̃ mecʉ̃ã wedeseiTuyuca NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tueTUEWBTtue2011eb
      Tz'utujilTz'utujilEasternCꞌacꞌ ChuminemEastern Tz'utujil NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tzjETZJEAStzjE2010eb
      Tz'utujilTz'utujilWesternJa Cꞌacꞌa ChominemWestern Tz'utujil NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tzjNTTZJWEStzj2010eb
      TzotzilTzotzilHuixtanJaʼ ti achʼ Testamento: jaʼ scʼopilal ti Jesucristoe jaʼ ti Jcoltavanej cuʼuntiqueTzotzil Huixtan NT1995Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tzoNTTZOHUItzoH1995eb
      TzotzilTzotzilSan AndresAchʼ Testamento: Jaʼ scʼoplal ti jaʼ Cajcoltavanejtic li Cajvaltic JesucristoeTzotzil San Andres NT1983Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tzoSATZOSANtzoSA1983eb
      TzotzilTzotzilZinacantanSc'op riox: ja' li' yaloj ti chac' jcuxlejaltic ta sbatel osli ti cajvaltic JesucristoeTzotzil Zinacantan NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.tzoZNTTZOZINtzoZ2009eb
      UbirUbirGod An Dura Bobaibasit BobounUbir Bible1997, 2011Wycliffe Bible Translators, Inc.PNG Bible Translation AssociationubrUBRTBLubr2011eb
      UdukUdukGwo Ma ArumgimisUduk Bible2005SIM InternationalSIM InternationaluduUDUSIMudu2005eb
      UmanakainaUmanakainaIYA YONAIUmanakaina NT1999The Bible Society of Papua New GuineaWycliffe Bible TranslatorsgdnGDNPNGgdn1999eb
      Umbu-UnguUmbu-Ungu AndelaleAndelalePULU YEMONGA UNGU KONDEMOUmbu-Ungu Andelale NT1998Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorsubu-andelaleUBUANDubuA1998eb
      Umbu-UnguUmbu-Ungu KalaKalaPULU YEMONGA UNGU KONDEMOUmbu-Ungu Kala NT1995Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorsubu-kalaUBUKALubuK1995eb
      Umbu-UnguUmbu-Ungu No PengeNo PengePULU YEMONGA UNGU KONDEMOUmbu-Ungu No Penge NT1995Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorsubu-nopengeUBUNOPubuN1995eb
      UrarinaUrarinaCana Coaunera EreUrarina NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.uraNTURATBLura2008eb
      UsanUsanQenu Qob UberUsan NT2001The Bible Society of Papua New GuineaWycliffe Bible TranslatorswnuWNUPNGwnu2001eb
      UsarufaUsarufaaúgen-anona-anon-aimmaUsarufa Bible1980Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsusaUSAWBTusa1980eb
      UspantekoUspantekoLok'laj Jyolj Kakaj DiosUspanteko NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.uspNTUSPWBTusp2010eb
      VidundaVidundaIlagano lwa sambi kwa wanhu weng’haVidunda NT2014Pioneer Bible TranslatorsPioneer Bible TranslatorsThe Word For The WorldvidVIDPBTvid2014eb
      WaffaWaffaKaraasa Yeena Rau Kioo KuaivoveeWaffa NT1975Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorswajWAJWBTwaj1975eb
      WaimaWaima'Abi'uai Apa'uana MahamahanaWaima NT2002The Bible Society of Papua New GuineaWycliffe Bible TranslatorsrroRROPNGrro2002eb
      WaimahaWaimahaU̶mʉreco pacʉ wederiqueWaimaha NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.baoNTBAOWBTbao2010eb
      WantoatWantoatAnututane Wam Kwikwiu Kayuk Kaknga Jesu Kraisda Takepbut Taknga Anin gatu Sam Kuupbam Lotutane Kap TakngaWantoat NT1975, 2001The Bible Society of Papua New GuineaWycliffe Bible TranslatorswncWNCPNGwnc2001eb
      WaoraniWaoraniWængonguï nänö Apæ̈negaïnöWaorani NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.aucNTAUCWBTauc2009eb
      WapishanaWapishanaKaimana'o Tominkaru ParadanWapishana NT2012Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.wapNTWAPWBTwap2012eb
      WarisWalsa/WarisSesoana Besal Nemelmoa Walsana MoanaWaris Bible2002The Bible Society of Papua New GuineaWycliffe Bible TranslatorswrsWRSPNGwrs2002eb
      WaskiaWaskiaKAEM KO DENWaskia Bible1985, 2011, 2014The Bible Society of Papua New GuineaWycliffe Bible TranslatorswskWSKPNGwsk2014eb
      WedauWedauWedau MarkWedau Mark2010Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorswedWEDWBTwedW2010eb
      WedauTopura (Wedau)TopuraTopura (Wedau) MarkWedau Topura Mark2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorswed-topuraWEDTOPwedT2010eb
      WeriWeriNGÖNËN PEPEWERWeri NT1984Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorswerWERTBLwer1984eb
      West KewaWest KewaGotena Epe AgaaWest Kewa Bible2003The Bible Society of Papua New Guinea in cooperation with Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskewKEWPNGkew2003eb
      WhitesandsWhitesandsNauəuə Asim Rəha Uhgɨn Nəmtətiən ViWhitesands NT2014Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorstnpTNPWBTtnp2014eb
      WipiWipiWipi Yɨt God ma Yɨna Sisɨl Yɨna PebaWipi NT2001The Bible Society of Papua New GuineaWycliffe Bible TranslatorsgdrGDRPNGgdr2001eb
      WiruWituWeneya Totono Keraisu YesunomoWitu NT1990, 1992Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorswiuWIUTBLwiu1992eb
      WolayttaWolayttaWolaytta BibleWolaytta Bible2004SIMSIMwalWALSIMwal2004eb
      Wosera-Kamu dialect of AmbulasAmbulas (Wosera)Wosera-KamuGotna KundiAmbulas Wosera NT1996Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorsabt-woseraABTWOSabtW1996eb
      Woun MeuWoun Meualternate spellingẼwandam IekWoun Meu NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.noaENOAWBEnoaE2011eb
      Woun MeuWoun Meustandard spellingHẽwandam HiekWoun Meu NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.noaHNOAWBTnoaH2011eb
      Wuvalu-AuaWuvalu-AuaWuvulu Manufau Fi'ugaiaWuvalu-Aua NT2004Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorswuvWUVWBTwuv2004eb
      YabemJabemBIBOLO DABUŊYabem Bible1980Bible Society of Papua New GuineajaeJAEPNGjae1980eb
      YaguaYaguaJu̱denu jto̱ nijya̱nvamyuYagua NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.yadNTYADTBLyad2008eb
      YakanYakanYakan BibleYakan Bible1984Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsykaYKAWBTyka1984eb
      Yale, KosarekMek KosarekAllah YubuMek Kosarek Bible2015Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorskklKKLWBTkkl2015eb
      YalunkaYalunkaKisin Kiraan KitabunaYalunka Bible2012Pioneer Bible TranslatorsPioneer Bible TranslatorsyalYALPBTyal2012eb
      YaminahuaYaminahuaNiospa meka fena JesucristoõnoaYaminahua NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.yaaNTYAATBLyaa2008eb
      Yanesha'Yanesha'Yompor Poʼñoñ ñeñt ̃ attõ Yepartseshar Jesucristo eʼñe etserra aʼpoctaterrnay YomporeshoYanesha' NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.ameNTAMETBLame2008eb
      YaouréYaouréBali -le 'fluba 'trɛ Zozi blamin pli Bali man 'e 'peeYaouré NT1999Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.yreNTYREWBTyre1999eb
      YaquiYaquiYoʼowe Jesukrijtota itom yaʼariakaʼu betchiʼbo juʼu bemelaka liojta betana lutuʼuria yaʼari (El Nuevo Testamento en yaqui)Yaqui NT2003Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.yaqNTYAQTBLyaq2003eb
      YarebaYarebaGODINU DUBU KOBERE SINAYareba NT1973, 1987Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsyrbYRBTBLyrb1987eb
      YauYauFat Mata ogepmaYau NT1997The Bible Society of Papua New GuineaWycliffe Bible TranslatorsyuwYUWPNGyuw1997eb
      YawaYawaAyao amisy urairi wanyinYawa NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.yvaNTYVATBLyva2011eb
      YaweyuhaYaweyuhaYaweyuha New TestamentYaweyuha NT1983, 2011BiblicaWycliffe Bible TranslatorsybyYBYWBTyby2011eb
      YeleYele RosselNMÎ MÎ U KÓPU DYUURossel NT1987, 1998Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsyleYLETBLyle1998eb
      Yessan-MayoYessan-Mayo (Yamano)YamanoGod Reri Teiktem Tuma AgerYessan-Mayo Yamano NT1980, 2004Lutheran Bible TranslatorsLutheran Bible Translatorsyss-yamanoYSSYAMyssYAM2004eb
      Yessan-MayoYawu (Yessan-Mayo)YawuGOD ETER AGERKE NAMDERASEM TUMA YENBOYessan-Mayo Yawu NT1996Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorsyss-yawuYSSYAWyssYAW1996eb
      YineYineGerotu Tokanchi GipiratkaluruYine NT2008Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.pibNTPIBWBTpibNT2008eb
      YipmaYipma/WagamwaWagamwaSelected Scriptures in Yipma/WagamwaYipma Wagamwa NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translatorsbyr-wBYRWAGbyrW2011eb
      YonggomYongkomGOD YE WENG KARADMOYongkom Bible1995, 2003The Bible Society of Papua New GuineaWycliffe Bible TranslatorsyonYONPNGyon2003eb
      YopnoYopnoPIŊKOP GENYopno NT & Psalms2010Wycliffe Bible Translators, Inc.Wycliffe Bible TranslatorsyutYUTWBTyut2010eb
      YucunaYucunaTupana Puraca'alo MariYucuna NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.ycnYCNWBTycn2011eb
      ZaiwaZaiwaChyoiyúng chyumlaiká: dangshikaq asik; ZaiwaZaiwa NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.atbNTATBWBTatb2009eb
      Zapotec, AmatlánZapotec, AmatlánWdizh kwaan nyaadno yalnabanAmatlán Zapotec NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zpoNTZPOTBLzpo2009eb
      Zapotec, CajonosZapotec, CajonosDillꞌ wen dillꞌ   Kob C̱he   JesucrístonaꞌCajonos Zapotec NT2011Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zadNTZADWBTzad2011eb
      Zapotec, ChichicapanZapotec, ChichicapanXchiʼdxyi cuubi dxiohs nin bieʼgaluuʼyi daada Jesucristu (El Nuevo Testamento en el zapoteco de Chichicapan y en español)Chichicapan Zapotec NT1990Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zpvNTZPVTBLzpv1990eb
      Zapotec, ChoapanZapotec, ChoapanXtiʼidzaʼ DiuziChoapan Zapotec NT1986Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zpcNTZPCWBTzpc1986eb
      Zapotec, Coatecas AltasZapotec, Coatecas AltasWidi'zh che'n Jesukrist kwa'n kinu yalnabanCoatecas Altas Zapotec2013Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zcaNTZCAWYIzca2013eb
      Zapotec, IsthmusZapotec, IsthmusStiidxa Dios didxazá (El Nuevo Testamento de nuestro señor Jesucristo en el Zapoteco del Istmo)Isthmus Zapotec NT1988Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zaiNTZAITBLzai1988eb
      Zapotec, LachixíoZapotec, LachixíoStichia' Diose dialuLachixío Zapotec NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zplNTZPLTBLzpl2010eb
      Zapotec, MiahuatlánZapotec, MiahuatlánTestament cub coʼ nac diʼs ndac cheʼn Tad JesucristMiahuatlán Zapotec NT1971Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zamNTZAMILMzam1971eb
      Zapotec, MitlaZapotec, MitlaXtidxcoob Dios ni biädnä dad JesucristMitla Zapotec NT2006Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zawNTZAWMVRzaw2006eb
      Zapotec, MixtepecZapotec, MixtepecDiidz ne rdeed guielmbanMixtepec Zapotec NT1998Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zpmNTZPMTBLzpm1998eb
      Zapotec, OcotlánZapotec, OcotlánDizaʼquë shtë Dios con dizëOcotlán Zapotec1983Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zacNTZACSIMzac1983eb
      Zapotec, OzolotepecZapotec, OzolotepecDiiz kuu ndyaadno yalnabanOzolotepec Zapotec NT2007Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zaoNTZAOTBLzao2007eb
      Zapotec, Quioquitani-QuieríZapotec, Quioquitani-QuieríTiits nii xnee kyalmbañ; El Nuevo Testamento en el zapoteco de QuioquitaniQuioquitani-Quierí Zapotec NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.ztqNTZTQTBLztq2009eb
      Zapotec, RincónZapotec, RincónDidza' cubi rucá'ana tsahui'Rincón Zapotec NT2009Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zarNTZARTBLzar2009eb
      Zapotec, San Juan GuelavíaZapotec, San Juan GuelavíaXtiidx Dios cun ditsaSan Juan Guelavía Zapotec1995Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zabNTZABTBLzab1995eb
      Zapotec, Santa María QuiegolaniZapotec, Santa María QuiegolaniXdiiz Dëdyuzh kon disaSanta María Quiegolani Zapotec NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zapNTZPIWYIzap2010eb
      Zapotec, Santo Domingo AlbarradasZapotec, Santo Domingo AlbarradasXtiidx DiosSanto Domingo Albarradas Zapotec NT2010Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zasNTZASWYIzas2010eb
      Zapotec, Sierra de JuárezZapotec, Sierra de JuárezCa titsaʼ de laʼlabani para iyate ca enneʼSierra de Juárez Zapotec NT1970Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zaaNTZAATBLzaa1970eb
      Zapotec, Southern RinconZapotec, Southern RinconDidzaʼ cub rucáʼn tsahuiʼSouthern Rincon Zapotec NT1992Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zsrNTZSRWBTzsr1992eb
      Zapotec, TabaaZapotec, TabaaXela wezria cube nen salmo caʼTabaa Zapotec NT & Psalms1981Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zatNTpsZATWBTzat1981eb
      Zapotec, TexmelucanZapotec, TexmelucanDe riidz ni trat cub nu bicy nu Ñgyoozh mbecy: Salmos; ProverbiosTexmelucan Zapotec Bible2004Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zpzNTppZPZTBLzpz2004eb
      Zapotec, YalálagZapotec, YalálagDiʼll danʼ nsaʼa yel nban (El Nuevo Testamento en el Zapoteco de Yalálag)Yalálag Zapotec NT2000Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zpuNTZPUTBLzpu2000eb
      Zapotec, YateeZapotec, YateeDižaʼ chaweʼ kub len Salmo kaʼYatee Zapotec NT & Psalms2002Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.ztyNTpsZTYTBLzty2002eb
      Zapotec, YatzachiZapotec, YatzachiTestament Cobə deʼen choeʼ dižəʼ c̱he ancho JesocristənʼYatzachi Zapotec NT1971Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zavNTZAVTBLzav1971eb
      Zapotec, ZoogochoZapotec, ZoogochoDižaʼ güen c̱he ancho JesucristoZoogocho Zapotec NT1987Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zpqNTZPQTBLzpq1987eb
      ZiaZiaTUWA YESU KRISTORA BOWI IWAINGZia NT1982Wycliffe Bible Translators, Inc.PNG Bible Translation AssociationziaZIATBLzia1982eb
      Zoque, Francisco LeónZoque, Francisco LeónJomepø TestamentoFrancisco León Zoque NT1978Wycliffe Bible Translators, Inc.Wycliffe Bible Translators, Inc.zosNTZOSTBLzos1978eb

      -

      Copyrighted Bibles without licenses that promote open sharing

      -

      The following Bibles are distributed using a traditional for-profit publishing house type copyright model. There are many license variations. Please see the info page in the inScript version for more information. -Links for the inScript version are found in the FCBH/DBS ID column, when allowed by copyright permission restrictions.

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Language in EnglishLanguageDialectVernacular TitleShort TitleYearcopyright ownerbycontributorIDFCBH/DBSSword
      AfrikaansAfrikaansDie Afrikaanse Bybel 1953Afrikaans Bible 19531933, 1953Bybelgenootskap van Suid AfrikaJ. D. du Toit, E. E. van Rooyen, J. D. Kestell, H. C. M. Fourie, and BB Keetafr1953AFRA53afr1953eb
      Amharicአማርኛመጽሐፍ ቅዱስAmharic NT1962, 2003United Bible SocietiesamhAMHAMHamh2003eb
      ArabicالعربيةStandardالكتاب المقدس باللغة العربية - الترجمة المبسطةWBTC Arabic Bible2007World Bible Translation CenterWorld Bible Translation CenterarbwbtcARAWTCarbWBTC2007eb
      Arabic, Standardالعربيةكتاب الحياةNAV (Book of Life)1988, 1997International Bible SocietyInternational Bible SocietyarbnavARZNAVarbNAV1997
      Bengaliবাংলাপবিত্র বাইবেলBengali NT2001-2006World Bible Translation CenterWorld Bible Translation Centerben2006BNGWTCben2006eb
      BurmeseMynmar languageCommon Language BibleBurmese Common Language Bible2005Bible Society of MyanmarBible Society of MyanmarmyaMYAOJVmya2005eb
      Central KhmerKhmerព្រះគម្ពីរខ្មែរបកប្រែចាស់ ១៩៥៤Khmer Hammond Translation1954, 1962Bible Society in CambodiaBible Society in Cambodiakhm-hKHMKHVkhmH1962eb
      Central KhmerKhmerព្រះគម្ពីរខ្មែរបច្ចុប្បន្ន ២០០៥Khmer Standard Version1997, 2005Bible Society in CambodiaBible Society in CambodiakhmKHMKSVkhmKSV2005eb
      Chinese中国语文Mandarin, simplified script圣 经 普通话本Chinese (simplified) Easy Reading Version2004, 2006World Bible Translation CenterWorld Bible Translation Centercmn2006CHNWTScmnWBTC2006eb
      Chinese中国语文Mandarin, simplified script新译本Chinese New Version (simplified)1976, 1992, 1999, 2001, 2005, 2010The Worldwide Bible Society LimitedThe Worldwide Bible Society Ltd.cmn-ncvsCHNNCScmnNCVs2010eb
      Chinese中國語文Mandarin, traditional script新譯本Chinese New Version (traditional)1976, 1992, 1999, 2001, 2005, 2010The Worldwide Bible Society LimitedThe Worldwide Bible Societycmn-ncvtCHNNCTcmnNCVt2010eb
      CopticⲘⲉⲧⲢⲉⲙ̀ⲛⲭⲏⲙⲓSahidicSahidica - طبعة جديدة من العهد الجديد باللغة القبطية الصعيديةCoptic Sahidic NT2000-2006J Warren WellsJ Warren WellscopshcCOPSHCcopSHC2006eb
      EnglishEnglishAmericanThe Amplified BibleAmplified Bible1954, 1958, 1962, 1964, 1965, 1987The Lockman FoundationThe Lockman FoundationengampENGAMPengAMP1987eb
      EnglishEnglishAmericanEnglish Standard VersionEnglish Standard Version2001CrosswayCrosswayengESVENGESVengESV2001eb
      EnglishEnglishAmericanHolman Christian Standard BibleHolman Christian Standard Bible1999, 2000, 2002, 2003, 2009Holman Bible PublishersHolman Bible PublishersenghcsbENGHCSengHCSB2009eb
      EnglishEnglishAmericanModern English VersionModern English Version2014Military Bible AssociationMilitary Bible AssociationengmevENGMEVengMEV2014eb
      EnglishEnglishAmericanNew American Standard BibleNew American Standard Bible1960, 1962, 1963, 1968, 1971, 1972, 1973, 1975, 1977, 1995The Lockman FoundationThe Lockman Foundationeng-NASB1995ENGNASengNASB1995eb
      EnglishEnglishAmericanNew English TranslationNew English Translation2006Bible.orgBible.orgeng_netENGNETengNET2006eb
      EnglishEnglishAmericanNew International VersionNew International Version1973, 1978, 1984, 2011BiblicaHolySpiritengNIV11ENGNIVengNIV2011eb
      GreekΕλληνικήKoineΗ Καινή ΔιαθήκηSBL Greek NT2010Society of Biblical Literature and Logos Bible SoftwareSociety of Biblical Literaturegrc_sblgntGRCSBLgrcSBL2010eb
      Gujaratiગુજરાતીપવિત્ર બાઇબલGujarati Bible1997-2009World Bible Translation CenterWorld Bible Translation Centerguj2009GUJWTCguj2009eb
      Hindiहिंदीपवित्र बाइबलHindi Easy Reading Version1992-2010World Bible Translation CenterWorld Bible Translation Centerhin2010HNDWTChin2010eb
      Kannadaಕನ್ನಡಪವಿತ್ರ ಬೈಬಲ್, ಈಸಿ ಓದುವಿಕೆ ಆವೃತ್ತಿKannada Easy Reading Version1992-2010World Bible Translation CenterWorld Bible Translation Centerkan2010KANWTCkan2010eb
      NepaliनेपालीThe Holy Bible, Easy Reading Version, in NepaliNepali Easy Reading Version1999-2010World Bible Translation CenterWorld Bible Translation Centernpi2010NEPWTCnpi2010eb
      Pashto, NorthernYusufzai Pashto‫سليمان‬ ‫حضرت‬ ‫د‬ ‫تاب‬ ‫ک‬ ‫ِ‬ ‫متلونو‬ ‫د‬Yusufzai Pashto Proverbs2015UBSpbuPBUUBSpbu2015eb
      Persian, Iranianفارسیمژده برای عصر جدیدToday's Persian Version2007United Bible SocietiesWycliffe Bible TranslatorspesTPVPESTPVpesTPV2007eb
      Russianрусский языкНовый Русский ПереводCentral Asian Russian Scriptures2003, 2009, 2013IMB-RTP and Biblica, Inc.®Biblicarus2014RUSBIBrus2014eb
      SpanishEspañolSanta BibliaReina Valera 19601960, 1988Sociedades Bíblicas en América Latina + Sociedades Bíblicas UnidasSociedades Bíblicas en América LatinaspaRV60SPNR60spaRV60eb
      SpanishEspañolLa Biblia de las AméricasSpanish LBLA1986, 1995, 1997The Lockman FoundationThe Lockman FoundationspaLBLASPNBLAspaLBLA1997eb
      SpanishEspañolNueva Biblia Latinoamericana de HoySpanish NBLH2005The Lockman FoundationThe Lockman FoundationspanblhSPNNBLspanblh2005eb
      SwahiliKiswahiliNeno BibleSwahili Bible 20142014BiblicaBiblicaswh2014SWHBIBswh2014eb
      Tamilதமிழ்புனித பைபிள் படிக்க எளிதாகTamil Easy Reading Version1994-2008World Bible Translation CenterWorld Bible Translation Centertam2008TCVWTCtam2008eb
      Teluguతెలుగుహోలీ బైబిల్Telugu Easy Reading Version1992-2010World Bible Translation CenterWorld Bible Translaton Centertel2010TCWWTCtel2010eb
      VietnameseViệtThánh Kinh Bản Phổ thôngVietnamese Easy Reading Verson2002, 2011World Bible Translation CenterWorld Bible Translation Centervie2011VIEWTCvie2011eb
      - -
      - - - - \ No newline at end of file diff --git a/lol/meta/flags/ad.png b/lol/meta/flags/ad.png deleted file mode 100755 index c58bc93783885768bebe64cf32d46519c941317c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449 zcmV;y0Y3hTP))g2737H`ql;xKb|J;G zMWSUGDkv0E7=%O=)gmbPJM;o>j0 zo=ZLY8Y;w|N{EP{4GE=N4+LC z+-nNBjdHk_P#e?u|ai~Y%qeZydWx=z|g;gj1MJ+QTxCtI&M+|($ r)BKTwyVVHna1pjwW`1u5{X6srbnq{Kj5O+Q00000NkvXXu0mjfO^Cbz diff --git a/lol/meta/flags/ae.png b/lol/meta/flags/ae.png deleted file mode 100755 index 088ef8ea6df26d9a63d33f5fff97b285744f026e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<lS<=T9ySL&E7w5zSY?FKF_Gfs^CiFVm_Hud_5w`GIx&lT>O17ZZcR@ c`AQ?hqBvi3=S^uRfu=Hey85}Sb4q9e0BdnC5dZ)H diff --git a/lol/meta/flags/af.png b/lol/meta/flags/af.png deleted file mode 100755 index 995b351ec62da856161f47a5aab6ba4ab8dbccbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmV-c0jd6pP)6~>q90$=P{e9}XgBBKuoG8~BIIvOT@YjXC530@a^-Ea1!9f^_I7tRTkqBI&$ z`fA*oUwby#;)=ijm4JZLfoAvSRi6par$*vqV%YD@cz5~ids8Rg?eDoWd*VJ<>Sh^D o&Et-CC!HOSsHu&XAtT9X005aka@_@&e*gdg07*qoM6N<$f?*t*nE(I) diff --git a/lol/meta/flags/ag.png b/lol/meta/flags/ag.png deleted file mode 100755 index 5f8b4f68b1ba3729a2cbc5019817809402e1e1b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 486 zcmV@P)fAx00II42mt{IZom!<0TB)X9T)-~7y}{$1|njtCMqo{A_OWU1T7^5E+qspGc86s z21hyuM>_^cI|fKQ2TVW*O+N=t1`bY5ie^*^W>pDkR|#)pCU0aVeP|1T3mAblVviar zmVqFqi4LZU53CL#tRX5`r)kMbX$B_TC!`ihAsd70dsBlQ6jw5Ihf=xmgdJ)!F}z%OIDvbThn*Y`K=zV>14UR+;0_%U?OI{X=DOV9AK$cwOGk*Baf cL)YE+2di#O&P3aI>i_@%07*qoM6N<$f?~AEWdHyG diff --git a/lol/meta/flags/al.png b/lol/meta/flags/al.png deleted file mode 100755 index 2e516ec39f2d272c5ddfd06c47e53e2e2a593a82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZC!3-owUoWlaX{Bh^K@|x(Kx^LqB&Eufq=_JRgV-GG0Sd^ zclEa7Q@Gc?$&CNbzD~b+{)57}>yv`0t%<#%JG|?$P1;`LAnA{SV={%q!AE9)HQWFbC*D22WQ%mvv4FO#mim BZG8X$ diff --git a/lol/meta/flags/am.png b/lol/meta/flags/am.png deleted file mode 100755 index d529a99e86fb2ff9ec2dd53c559839f77b8904d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<)#zwDO)T0k|UuNtU4tC0mFAmggB z%GZP9x7-w|WAu3u)eq|>fe6R|a-USnepn+(9iwk~Dc-PF2BLF9AnrAD7{+wuhAP1alsKs(-y^xqN69eU-F`xUFVdQ&MBb@03s$d@&Et; diff --git a/lol/meta/flags/at.png b/lol/meta/flags/at.png deleted file mode 100755 index 993b903af132d9bea67a3992f3a286ad728d026d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QaYY4jv*e$llLedKjk2Oz#{9* z27_OjekN;s{{8>|f5pYcZu~xvq|d%s?Dm+Ip=h0={K2B<=YaYcJYD@<);T3K0RW{2 BBKH6Q diff --git a/lol/meta/flags/au.png b/lol/meta/flags/au.png deleted file mode 100755 index ef20b66dc8e216dc17c1107471f6a751c7cb763d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 501 zcmV|G>ci!ovT@8@$$Wi?iPS25A&#`jZFTVL0pk!MEKY%)Cq*xWKwy77v_rcm8># ztq`l}8xJ9poz1dwC~g2EwHh=+1&@3Pu_fBPyYlpz)iDv1?{RIPNIna!RALA{e?6)p zhapn{sl_6NQ1K~w9YUt3u-B8Ju2u_rs#T~g3pxtJ@pxE(h7r*S8k!!F*Ho6QQejY; ro@YXlUM|y6mGk*B6p3~_fq(M{=}IIyShGrS00000NkvXXu0mjf7bfPE diff --git a/lol/meta/flags/az.png b/lol/meta/flags/az.png deleted file mode 100755 index 3fb7ccb30d9f85428f1144ccc6573fbb3bd8e0af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<FKUskzAG(gtF*%a=({Rb3r4E**1@DKe9j1nP2UI$K}tk zE#2Ml_t6*s|Nlo~Q_TPX0BT7@K~#9!h0jR}fG`jR(KydjqW8b50l`9C)ZaBc8Y(>7 z_t4hy{A~;06=gLaQxg^Dt=AgzPlsbS_B|5#-;mOfr9g@dQe==KgA^I0$RI@qDKbcr rLW+P=1hgWc6#=aXXhlFNTHf;p$FCF7ixnrG00000NkvXXu0mjfVo6>d diff --git a/lol/meta/flags/bb.png b/lol/meta/flags/bb.png deleted file mode 100755 index 5e87a9ea9d5d4e6fdad72430454ea6bf7fd6c938..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QoB4|978;gCnp4~KHmIKKKyX= zhu5hRrd0+~wPlSq0)b~=Y`2~&zb3pz;z`OORu=)Y009lxi5LI(t(=)r^yO){-JJy~ z>&`N|IIvCN7Gd!Ulu~$YwIt_@Wn<5;ltcw4qlTCT3ZjRkURae{Zi{aZRdi#PbkGZ! zV0BR<<9u<|JeeaI3d|>#Msa2Oh?bc=yEGx4SqUUC>*Dok+B%sNI=(-G2o&vVb65Vl l`OK3fLj@^aXSW#_8SIvY3QC?eegX6agQu&X%Q~loCIDFYTBHB~ diff --git a/lol/meta/flags/bd.png b/lol/meta/flags/bd.png deleted file mode 100755 index c55d3d7ac086527ff9e3175e11d88dd8bc597551..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^ia;#F!2~3G3=gXTseVrv#}JR>$q6SuEw+^MEPHX} zw+c(em)*Net9G!rRdp`^5p-7saR%?UWhPEcBJsO)18(fp#&+1Te{y^tMA?u<)HXOGYT~2k{J-Kao{$Q_!b(6CV z`*ztc9NJY!ENw68&HbccdrHV^YUkoo5g{gqpeIJjM;(>V0G-C*>FVdQ&MBb@04b49 A{Qv*} diff --git a/lol/meta/flags/be.png b/lol/meta/flags/be.png deleted file mode 100755 index 449446af9a7ba2ef7e838043bab0e623bdbe626c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6I!3HGL_ATQBQpTPxjv*e$lM@mWe)MyTs~OAu zuJ3zopr E07|hW8~^|S diff --git a/lol/meta/flags/bf.png b/lol/meta/flags/bf.png deleted file mode 100755 index f3a728811c98241db5fe84b67641b314354f3cd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QZ=3~jv*e$lPlJ*^;SM&koCpG zI4YjKB_r|6^pdOVU#=*=*fTE zo5HMN&7E}b*6WzF^ln=U?C g5V+XA_gFW>HIEq=7am-`59kgCPgg&ebxsLQ04&EyPXGV_ diff --git a/lol/meta/flags/bg.png b/lol/meta/flags/bg.png deleted file mode 100755 index ec03d4f8dba275efbac13197cb20318523d9c42f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^ia;#F!3HFmgF^~|l!K>>V~EG`{q3g0 Tr&^joW-)lW`njxgN@xNAH|isi diff --git a/lol/meta/flags/bh.png b/lol/meta/flags/bh.png deleted file mode 100755 index 61bad9b4129df9096c6ae9d1442806ceab47ea7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^ia;#F!VDxo)_OVtDd_;85Z7~pYUhO1FKgP|2~K*} zKJoqLT|b{Z`}h0L|NsBr3KgpWmC1U#IEF}EPJY4AB*Mz3!XWfg!&F71X=U~mnK`={ YxP~0002PP)t-s9<@3m zwml=aKPI?AH@#3gzEfPuaAM1Kgx8dd*_xoMgrTQ^qNstQtAnGegrlp3sI-r%w2rLE zpsvZFugasa%A>UAy}Rke#~CNe6(-9RCCd~h%n~Ke5hl(OC(aWn(IPd}FhbWpPuN3L z*+^K~^WNU{;^A$2;&g!G@#5n3=Hz{e>X@PG`0eYUsO+Mu?yt7-`t$V4&h-5D_0QDz z{P_6&`uY9)`|R%f{rmg={QU6o{`&j={QUm^{{Q{`|Ns9*Qar%`007QOL_t(2&xMl5 z4#GeTL`@C7cUVF%fzVs1@BhDw0|HSN?Ynv;duA+f8re#ZJvxE(flXH{=x%_%_#$h# z&00V6*6arBh)+aF;nWM=FIJzKgjrncN;lL-Um>W{{R30 M07*qoM6N<$f@@s!T>t<8 diff --git a/lol/meta/flags/bj.png b/lol/meta/flags/bj.png deleted file mode 100755 index 220c8e786c755f2aa8e9227b3fe43991d585f8d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&Qrey_jv*e$lM^!dRXYB~h$u4~ y_DI=geOYla#Qaz50zJu$D=z{UyZ5SbGBUKTdh>anTU{Ga8-u5-pUXO@geCy1upL_f diff --git a/lol/meta/flags/bn.png b/lol/meta/flags/bn.png deleted file mode 100755 index 944a7be1967f862030e0e287d24b06da626425a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 847 zcmV-V1F-ywP)6sNmnf-*^9fS@Y{{ z&CloF-yh0j>U?`q?A=xBTZ{&N|NVLS&*w$I-W2_K=J@@A6j0~!xndhK#ok<|t;J}; z@$K)AlPgOCXSis+yJ+4+IM`}s{NG>2Ry=dshI9kH9O!Qda$PX z#EP{@iS*f@uUmh=Z~6HmT!b8nqKv(ztq zp{xHY_n-~F5%ZmW7J7%=zjh5M1ypcm%Qo~x`s>c0FROpOt@`=g>-$4FqAW%RPOLmx z{32og%9Gs8)=#ed^7+;Bq|7zBB|x)p?AdprbKc>`{dwunr-i@X z6fn%_;!BC*G|*vXWx;2$03-8sUKuYozHUJY6=pVOW`;~5kuoLOsr~VrdTS1Q2c2r` z+oEOp_TB>`lL!Oc@9%Gl9b7Ne+rS$c$f2gh!pMkjcRr^`IJ-cfrdT?UFpyisC7R7C z0%YX!iZsiM=F5ps)>fTAEBorD?ZhNf23(Q<;ecAY; zCHZbSDkgIX<#UPTaEhey30*f;3Kr)DN&yu>oXE$+WN$56l4rAWNyYs;$4Rpo4Lvw5 z+G8(LV$JVn!QL+}dBa5cy0P*NbER9hO0@!FYz&N+tXzI{xbl82pTFPkZ!*HPJ}FSo=%W@DyUcNTwg6sMjR3kwTz_LE)8-`XK|Z=V>Z_`4fo z2i6I7*YQRKaHuFUGcr=!Vj|ItOJZA>2sW1T_`0!6iZjvAVl;H`r0A;I0%h6U3 diff --git a/lol/meta/flags/br.png b/lol/meta/flags/br.png deleted file mode 100755 index b54f27df8decc7a8424c0895e8050a5640858622..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmV;l0ZaagP)rUoRbX|B&gojd#3e;j52l0Y^U%$1yOxni>j&_rYe6ak8pX)e=b z`;6tPuMRN3-^1FSX%%c0VJx2sB!O(82v8g-3sggzxw^AW4)5RtI_>64K_~4*4Y7P= z1QY>^17(3~fGUYHmvf43%Np4)hZup{z8+)@wFw7rh;dpw5$Kq}KCoS4CXYF$SK#T?kcd%>EnHBDY z!vRmc0nN46ss*h%030000UjtV5aJY$gi*dc<4Wlavx zK~ElUz6*Dg3?7IG8m#x?yKQWo^Iqqb5?fM3tKk2Qy=wdAECK}$1vn)nB_BDd$j{xj zaQjh#1BcJv30n8(=d{Bd8!8f-su+Z>JESac)O285a6+cRD~Vy%(Z);;o`B2j47C&f Vmy}POa0=*N22WQ%mvv4FO#r8%QWyXL diff --git a/lol/meta/flags/bt.png b/lol/meta/flags/bt.png deleted file mode 100755 index dfd0d6af28c4a04fbcfb79f20d679d139bec4569..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 685 zcmV;e0#f~nP)$1#v8yMz8L6pVyx^v8#IBin-gitXnX5`rK))$CqaIb*Lyxoiw2*J3D*n(xp3g>{z{U`syW%w}yJ$wncF=$*w*+*KOL=$^HHP zC3%T!md#!;si!U`q9`F%0a7k|N1@2;)p z4qu0f;r@-qh5e<45JRt8sgYy!gOx@z`>GZ!STH#yZf<$eL1$y2hE48PJy~fDdD)8+ zBKFjjOv_HYO}x=JmRUSoqx)>N_T-A#>f*u)Els^8h3k9TH&hft^Z?xpv}Q`U|Dh!d z&TLwLBEpkcqnEYWch%>0v^JMzWv-42m|k76FeYS|qv1_QJ!GACY&92WCGT3c$Ok}%LqaNXoF~UY4on*eFIr|*ggYc+d zUthVtzq=>E^NzJTnMT9QSu}Jg*mY%p&pBs9a$Jp8&SIi_HtM9B3o;s)V<|@fN28z& TsNVK<00000NkvXXu0mjf9eGZd diff --git a/lol/meta/flags/bw.png b/lol/meta/flags/bw.png deleted file mode 100755 index 0a74b72f94318af68bc14f823e1528b7b1db999d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QU;zbjv*e$lQm*XXS;PIUU?C? z_@ngR*RP_b6x#}BF}5w_%#ctp={a^$$2jYYgCs9Q{x^Yzx)Hn7fO;7`UHx3vIVCg! E0F4|USpWb4 diff --git a/lol/meta/flags/by.png b/lol/meta/flags/by.png deleted file mode 100755 index 1c9f5462a6112674d8be810828cefacbb95412b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 307 zcmV-30nGl1P)G*Tn+9C}PVPnPSh)22r<*M3!-$&FBH|rinyR5cm68 zC+Pv-j)Oz1h2wCDbTXj_ye^kWRTcYM4Y4HA1HNnad*ULst@C_OUoI(MvAi%3s z=mBrK4zFB>TPkHmvx8BmgP_qsG9J?dJ}e8nY88IHo^A6Vn0LhgCCPneMys}0l-Qa| zafe#8M6f9%Qomo_U_cDWhXrClK5h{M@`05ckc<4(fM2RH(|%g9Chq_M002ovPDHLk FV1mYifxQ3# diff --git a/lol/meta/flags/bz.png b/lol/meta/flags/bz.png deleted file mode 100755 index ef37f6da9cd2219f5a44739836e6b9ace1622e8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 751 zcmV+(R>N zKf2PertI^#Pe29a7!7pP*+*yQZJY4^!~4uBu~v<0u7$>KC5FcN(%G{T-+Xvex-{$W zpFjBAjw^g`KYKZIXW#$-|NAQot=0JRs+07BWW76#gF+RpwH52iieG+u*|M(c$?H!z z!yT(AFrwC;T7Kl}zLE&PZcmk|3EFYH}M#)#km6CY*qa1)KGwUuXX9N&3-4Nx%& zMg!B?!u`|Ve}4}QkcoX=JsnNO@gWnMTKj84>ht}2I-9%Nn}JeqzrC$rR|Zr}g3-YA zJAGIGgZB@B`q!^tzjW!+_NuDhwuTimBD!*v7cX866a-4$dw1{P$<08;qy@}R3Yj>XCwB_=; zjP{85N>{g1U*oJClZ?E8nuMS%`yUAcG!m_|uUe2^^j?BlbYhgR-8x3{FGr@f+*8a1n)^0zt z_W07}`)A*Hb%V@|4tM*5m+wy9JHGtjysgJq^>1r`aP#t}OY4EbMN#pDT&VV}II;T- hiG?Z+s{-0pU;xn7$n^n-vZ4S0002ovPDHLkV1ic^gB}0? diff --git a/lol/meta/flags/ca.png b/lol/meta/flags/ca.png deleted file mode 100755 index 524f815786ea0f9e10accfd936a21a66223a2f7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmV+}0nz@6P)NklG*;F*L4sI?+``5qcoL6bCs+h+Y%Hujg9nICo}`G7!~}F*8D##< z!_O|WtcDn~vEZ5i@&e<&Cv+Gm39-5H{Vw}GL9(Io^(sN|1W1ru8DB0_2C3fob{hvO zj;9QgA}s~RT_?w*M3L-v5{8ndQwB+q762IVsw;NgSJCr$f0STrZ?*3ue+Jm9#!Vxp z`HwLe@Tw~=3bCwt7ywMcRJW}-&Nq@4fU@Jn#M<^dMv<1vb36=kIETt+h3-vp24>KCrApv8Yb7 zo>H`%RJ597w~l4FjcmDwa=U_ayMckec7(okjKFP_!e^z$TCK-Zwa87k$xFe@L&M8L z#mhj>5FySHA69Dmz#r_P8tu3o?yej5)*1KK7zsc1>;M1&!AV3xRCwBTk69amKo~}C zkqAkWM3!l>w5YV2|Npb(%l2gETz&JNn>h_S+`4e#m^J?;tL2`7;M|Ssva6<76QNR1 z&zT>|C{bV`1iG`r7#{~;*_Qm!2I*wa_a5W%M>fTCd;)n%4njHfZqj!7w!$H~ zfIP)#5q>=EH(Jw5@_Ocgv_oHN6GA~+L8LIm&=T{Ss$EJbGQ3=4VIqaP#hQbO9IErx tMh^ujp>^n?05!DY6H4Y4N&`ZvJOE-=BCIOaGR^=1002ovPDHLkV1hmf(yjmi diff --git a/lol/meta/flags/cf.png b/lol/meta/flags/cf.png deleted file mode 100755 index e203020e75b7b3a4f9cdeda40a81af17e339f4df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&Qazq7jv*e$lM@Uwnw0ZCODQ;s zH7@XJec{cdR>1NkY1P4|36_eQ4;@@m7fbR=cb~G|H$R0@NrCyq(q*eHeO~M33b89G zG@oKr%8EXhAIa+Cz*gGx&!45@qMh)~429_uv5VamdKI;Vst0D4%h|8zrEWm8XkiNX4z#la9O%1`G!dJWS;BV-h>Ce_5`)$F2C{$FHl(&;S4YM^+3S aY-3Q%SDUHk`D8oL6b4UMKbLh*2~7Yj<132* diff --git a/lol/meta/flags/ch.png b/lol/meta/flags/ch.png deleted file mode 100755 index bd447d2bc37ffddeb296bd91684eed6da78ca644..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjyBTpB{5R22vI~0$5nI%co%(Bmo zVs%%^{@2gawl*!{z#nxch4%XsuGwaL4ey%p5uQ*FimdKI;Vst E0D;UNIRF3v diff --git a/lol/meta/flags/ci.png b/lol/meta/flags/ci.png deleted file mode 100755 index 14fceff96de7ec16475e3231d8c8e59c9730e0ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QW~Bvjv*e$lmEn>Z(uJl`Ey+P tw1vIk{5LBuE_Umevd#JeV(_~zW-OKUe>+){np41|Eg!v)1if zv+UFJCJ6yX$q>E??1fzZpP$ZqcA8l-#O&9e63u=TH~M87_wSQT z|L-yY5s>jRog1#=LpS@|8cvE_{VbH{|2>e=Kn9hg@k1Z`=UHr@XR-kq$SQ!r{l0~R zBBLKW@}V)Hky*=0X@Fo!eAS%qn>c8buIo6-3kt$U(=a!V8a-b*0PcF6q#xm0 Qp8x;=07*qoM6N<$g1<;u>;M1& diff --git a/lol/meta/flags/co.png b/lol/meta/flags/co.png deleted file mode 100755 index 477177ba930419633cb49a8c2b7205cba81b9f78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&Qd*uajv*e$lm8S4_B5I`6kd4| xxY)f{?PLa9_sPX>{I!eEbFS)@vVGFa#&D%yhS|d7r3_FPgQu&X%Q~loCII209eMx& diff --git a/lol/meta/flags/cr.png b/lol/meta/flags/cr.png deleted file mode 100755 index 62cc81a7023fe7aab22f2ecd3961040a9030e0cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^ia;#F!2~3G3=gXTDQiy`#}JR>$tf4sr7ti{kkKn! zbE9tNv$8+`|JO&{_?Y)rY}V~Uzku8;eSy|(DYs{=EMPa?Ibq->%-g;S`E#{ZUbaB!zf3 z%^oVJ>Q~bi0PX$v=kG;%Q>;;bTvR_(K8Bs@7Joi;;z?Eems98OMrF}2sDbF3i3b{k yeu-q^By{Zo)(rGUM0000HY6lAV_y6y2TG{dM_qQJx7yZ1t>i@q#G_d2}pPyG(e_j#z>-Ki4h1J&`1>g2m z{y04yh`ww}dDp`EalZZE4-cskAAf%SethiT_jm6)1l~3cN{=Kw0YeNkl#& zTKgWa#kBN2Q5Ms}_e5JvZQqk@F|~Y8mc@#WW&fwDSpUB+B1JYP+2UZ+*#E~Rlqj;4 zB#WuxOOh?7mM@96nA*N1%3@mh60gOy^d(M$q5pyiyPPuw14Y( xsQ32b3R&d~edlFO+KP)Lt${Qv*|&)@%h?|v!X{(|~OL%`>sf0teSn7x?>Mnk~kkH7klzNLxL z5ODVC_nO_WXks)F{QCQE`>oFfTVGJ$Xb5=!{m=ZfAF^p-Gz8px_p9^J8;XryzyAN9 zKbWTf`~Uy=qi+>EUy^0?zkmNHPW-Q;@;^BE|K-bAo&V$azYW(u+Bh8vX0RmZ4CicfUAfw#%EkhC&bkPWx>o Tyu&>p00000NkvXXu0mjf*m=Zp diff --git a/lol/meta/flags/dk.png b/lol/meta/flags/dk.png deleted file mode 100755 index 65d6b3551f41329912d32a563a299d16efab8180..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)i!VDx6^9*`{lxToYi0cI&<2#;dkMrAJOP)`_la80=W##A zV?0$-7bpmnBFQKQU~CbO?mMYeC~H4sF?+>gZmz6oCuDJo#rO$}X_mUy6DL)YjAGC* z;UFGe<}~b<(gxZJM14|KEc#+sI8A`;Iik8(IE_d$ih)g%pLleU-Ds|eF2v%A5^22F z^4{92Kz5gu)l8j>bPYQV8pP#O!^_0czE}LCw3)6VkXx>zecwNiB%>IB zxsZ4S%sDUFET&28ZV*wQC@bNm!CfvP+byFD6a-36YPGlD#`#ANF@EX&v02!?$MlB{50RYJ?LCXdk9T@-s002ovPDHLkV1mI~uF?Pi diff --git a/lol/meta/flags/do.png b/lol/meta/flags/do.png deleted file mode 100755 index 12e017e02092a58e1e34535468f5123edf6a4c4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmV+d0sa1oP)ThOv?(At|Eg&+k?qxUp`0?ZS zpWlD}{`vj;cS6-nB2xzgk*N)sE|J{@OtnO&?@20DbVF@Mq(YxBvhE07*qo IM6N<$f=zC4T>t<8 diff --git a/lol/meta/flags/dz.png b/lol/meta/flags/dz.png deleted file mode 100755 index 4670a0eb85be9d801fe0f327edf323b2ecb8005b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmV^P)jA z(xsmpHvE`3k5Z$pQ?!8QK4oQcNYaD{$lo__{(buN@B4R(j9#TC05p2BmJo#dYxCy6 zA3l8c^`%09+~i>e8XXa$4B`HmJ^L*)^IH~{?-M5cegB?TM*pMGXc`6x4Wp5UiI28f fX0&)30!9M>h@M8C+%`;800000NkvXXu0mjfbyi<) diff --git a/lol/meta/flags/ec.png b/lol/meta/flags/ec.png deleted file mode 100755 index 9289152375de353b0091adcb42b1b331cca6ea58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 397 zcmV;80doF{P)U2R5Cru4iiQHImCrds-0Ui|vi3ERs8e078yx7zIl3kUClPX1{ z14N3`qT{1n-K_pjIL zwffL7s6U>RsPg78wz6uf%gReJEJ)U`DNB&m6|3@M|9C>2h86=udrdY+w7y?sYx&gq ziyf;rMHcsHYq$ahfl{Pd%wRE@By^&Y)k&qOyg9R?sW2urE+ocZ-yrrx6Dz6akZy4c ztCns>U1Ew=u$QHaS!H~xv_sYL7TR09GLWr1Pt{UW#z0NUKttJHS9E1P@9H2n+FC4W zQxd3Zzs{C(o(+$$on*AH>{5H~)wW#D>TWW&MKrXS%c4olwid)TZj%*tl$P*iFzp3$ rg>341EE-6&_?)2HfS^%}hrh)DI_x=kOL@Vf00000NkvXXu0mjf5TUl* diff --git a/lol/meta/flags/ee.png b/lol/meta/flags/ee.png deleted file mode 100755 index 1067640131ae259f460dbf8e6e2cdd614e027706..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100 zcmeAS@N?(olHy`uVBq!ia0vp^@<1%Y!2~3KaTl%yQrey_jv*e$lQ(GDI$0kv$of@a z5_@)gV_8R{NDoucL9QsKw*OmL7BAy>zsxw}>J;XO|3$U|wJ~_Q`njxgN@xNA`R^8`HD$Vu#+E;vtY!Z-NDc)H&|?MJi4H$E2v0ST+XnMG zAg2Mmw(4QJFF|$=>}vd?eNo*00nfqgEJwRwUJvY$7q>sa!3^wJ1@rqHHuzo_H}x<+ z7lcj|bguBqU~UU|JJDfX*G-v9g|sD-{nz*)juJS5mGuR}sZ0BhHBJfu00000fhdEP)92WBXrcUV8o0SCqIOu;?i%>!L~~ZQczII-mRsdpo4$G&7sgjuqcR>6rqby z6htF-h$Vs2}eE~0AG@58QC;4~WWT^IjVQt%HR z5(#|PY7^zGWD+CCfzxavtRR@Cprn_{!1p|i*ITKC=Ufi2hJlW%hUZ{7j7RV(ofeb& zA^1`#z%G}=Njvp=3=t~|>}oYK;xE&LKN!HZtm#JF(KNX2HqB3RwWfX)&$D;>wcd(@ ziGnvX3_F_)>^NS26}*^dSl$&62nrf240HRUNrdr8x3*=2l;GI{!%|jUP-K-sIS?C~ Zd;=R&EwL1|YVH(Wd}|-wQN>E_f|u_Ghie zk7gZW5(JTsK(Y9vtI_Ypny)y_U$L3}p0D|%OZ!K=&T9csAb$=q_`5@$NQ;Sa1d7F< zd<=i~YD3r`?2LX*(fXRM2Mr8k<3H;)-s>5YVK-JspjZsF=HEW`SM27%r1VbB1nBAS zRl0A4K|cPPr}yuW`a2yHN-VxA>a)tMv>|+cSmjAni}UpUtkrxYYWm*L_}^~zZ$-MF zf(+iufYQ|W8XcgIKUf=4Vwq#-T{uFq_^p!3pEa7lW@!QA^`oN^(7XTktG|&j{TyZh zbjQ~mJqj(uX)&<4_~dK&Z>ReAdL3XH0?I6C!;3IrVFJwARJ4pJi)mpQQ5Ms}GMpCE+A1i1< Z0sw5_?>WcKS|I=c002ovPDHLkV1h!%1|9$a diff --git a/lol/meta/flags/es.png b/lol/meta/flags/es.png deleted file mode 100755 index a8ad334cab5a305d386cd969092b24cce487437d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 287 zcmV+)0pR|LP)zmH za=b#Gy`-DAkb|nIo3Z7-S*z;&9nEsFp)xU{ lvQ$ggRLC-;#nW&w8USm>^83o z+CH=5Ku!IjG9bfj<3^=52Y^yEv{-WWaiISS_c!`)p98esdefSK?Q@FvH;Ak}1C*kz z#jMM&YpvVWdZY+wD-g9EDFkwXg0!_57@l%#4l^#j1&rP7eXW%TYhrgz1ag6bv<+%V z;*wr{G-q#{{F*~R1dM5*U&%>auS%3iLN(o$?8~kKbCLL}6F>xHa4fqD6eQIghDWv< zq@wkqf$lAf#b=!aA|M0ECBqPMET#$?wRrej3;@Ua`%=!QuNVLT002ovPDHLkV1jU3 Bmv;aF diff --git a/lol/meta/flags/fi.png b/lol/meta/flags/fi.png deleted file mode 100755 index 1ad17975ae03acea7434e52d880e995e779154ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^ia;#F!VDxo)_OVtDbWC*5LX7%25!4n36CE2kjd`3 zi^Ho{|NsA=<2}OzpaKm~7sn8Z%gG+hO(|?`8%#7j5*94);1;kjGFY+0p^=$+E5ovr c%&&qOG~Y)4%&s$71JuLd>FVdQ&MBb@0D9IYxBvhE diff --git a/lol/meta/flags/fj.png b/lol/meta/flags/fj.png deleted file mode 100755 index 6bf737146826a3060a626368e2a578eba6e5a815..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 617 zcmV-v0+#)WP)9)D%t8$6krdl_3b#57I-?7p> zpyo~>sDU8~3{Oy~?mZ3+VQ5hQ{tFCwVE6-L0T>tfgZk{eWqYup=tNEB!R9P17DEj^bQ)x3)g+*mxUv&e<*{?Xya%x!)428LH%~f0tNX^X zd%?N)gL4-=*lM#U<@lAuSS$vX1HjS%WDv|s`~?Wq`Xgt7B@d=?XU`mbcV^$ctB3FT zX9Cg3cdu_A-}vd$O)M5uk|i+F0abU*Gzb)=xy5^W`nF7(vbksSCCji|RuS)(ZF;kG z!qw(Jnp-@#f5!F`dyX7AavvPW|37a0|Dtwn?;@I84D$5cHRsNpy&jYewD|MY`R7(I z#a?nz-C`i>nzLztL@^L`&Bk41(!ye*%IZ;zhrPuBBZ439I+)+600000NkvXXu0mjf DO{gO8 diff --git a/lol/meta/flags/fm.png b/lol/meta/flags/fm.png deleted file mode 100755 index 32d5b832589054c7d96becf39a14ee4afd3710b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^YCtT)!VDyZ7Y11aDbWC*5ZBU8cWbxZpK|!=lp{}9 zU3m5N*Wd5I{<{AUoB&i{?djqeB5^r6K|xd_k!xd%RRY(tL@q-qZi5NzG7eIbkrP^H x9O7wEDPG0IXqZ#w$q;dOj$4X^#>5<1hS(>pQ`4U=djvFw!PC{xWt~$(69CtdGIam| diff --git a/lol/meta/flags/fr.png b/lol/meta/flags/fr.png deleted file mode 100755 index a7684766369759520c38f5d1ef2c77fcf716f5b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QtF;Ajv*e$lM@1F^t1mx&b=?g r@{uFYVz+)N+pI4uE`k{%y=)Bc@BVdLJ;xyjsD;7P)z4*}Q$iB}YL^_V diff --git a/lol/meta/flags/ga.png b/lol/meta/flags/ga.png deleted file mode 100755 index 32c68bf6a4d807341b575fd4a7fcb31dad0bd0b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^(m*W2!3HF2n%o+Il#Qp0V~EG`F RDimlAgQu&X%Q~loCIEuPDtQ0^ diff --git a/lol/meta/flags/gb.png b/lol/meta/flags/gb.png deleted file mode 100755 index 3b6668e203c032348765d9cd761223bc2a7ae4aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmV;j0ZsmiP)}5 zFoX{=g%C1@Sa7Ohc&}o4uYHfbevrL?k-mVEzMibkpRCTGt^Y=Zlu-jF;!S#ORNi=)lS8z{&8|-1EZ7 z^TWyW#>@1_%=O{s_t@O`+1>f>@%iuZ`}Owx`1$|;|0#A0uK)l5;7LS5RCwCO)5#Ko zFc3x2W>5h^4GxGCf&(b}{{QnNX-OHhEO*}ZStOkf#RuRTTGZx3G{L1dYp|M$#hI2u z(a8P`ZBH?Pf?QJ*GTSk$heVE|M|l9-fXwD6$s8h*bf1VRQw?8O#LT3l9>bpBWiHnr z7g@TlfIGu-lWs4-ZPI@NLN|tQk@&Gc!k;gr$1}MBmul20@>I^mOECth8EOSXEJ1>~MuUXX4gQCQ2#ms;vCB+8c czCx(z1B=8y!*9YyNB{r;07*qoM6N<$fxP~0002PP)t-s0D4{l zdtL*3T?Kqx27Fx#eOnWOSr>v>Aca*hi%>C(P&kH7JC039lSxvRMpTzZV4Om1pFfT@ zH<_<8n@2REC^NLUE4D-|w?!C0R-Nzo_o*&_1ALD5s=XxFK z$Q$a09P5i5?wA_xnH%uT8u6kU_`ewX$rt*|7W>W?{LvQw=vM&%0081iL_t(|+KrOu z4uUWgMz4x{;Q+w_ihx>h?}dH;r?Ml^MosYi_-<}{l0t7`8iRaRmMndgtS5$dKe?m? zuYja`x_go_=^2#Kh-QD#7md-IFheWr_&0i4;|4&@#^2aAfY>0^osWH|4j>Flrn$g^ zMKc4k!O5x{jGvb$#v3&YARGBkk@re#JKN8;ErqwjDBxoWINft}?gD%ox!bS-oc1o- zwZ9FhRF(LYwZ9gpq9?LfIWc|9WM$0KwB+e?yz9Xw1w9Z+_i&Y7P)vwu g&R26`ttAdm;e9&2bZj}0je?gba4!kxSXuP-ps^S#?icR&z?0Rr}+KZKYP0@sBteh wxZiP7=8S$=z_C;A;r)4Xt7@k-F_zggTvZPf{66_~G|&hJPgg&ebxsLQ0HY~42><{9 diff --git a/lol/meta/flags/gh.png b/lol/meta/flags/gh.png deleted file mode 100755 index c2bf9d0bb44d771dc11d81a32d29d57b9a1627b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!3-qVmezg)QZ@lTA+7~8bg$~Ebk zQ5z`CkZsS!!N|kKXr{~RY0DPo&XF0;nG?ymbEd#KLAA^4g`Vycd2>Yc&qXoL;~N$M z)w7la`2`<4cKrB>qCblFfC4_AE{-7;x6bxj3LQ}3VV2E1A-o diff --git a/lol/meta/flags/gm.png b/lol/meta/flags/gm.png deleted file mode 100755 index b929a80dec10594cda47d02a8e70b2885cc64815..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!3HE}t?oSnq&z%b978;gC)=p6_%=V0f#LCr zql?8ZpLwKyHTO8%kw<^q<>Mp;x+_zv{`E)M?9u)Aw+aBI89ZJ6T-G@yGywn?lNk>H diff --git a/lol/meta/flags/gq.png b/lol/meta/flags/gq.png deleted file mode 100755 index db9415a0220f20d0610a850ebd40d97d824e5c87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmV-L0lNN)P)AY7~RBAPzRwPSe*R?;?${vTL|K!R6>-3V3$sMkl+x4+)*f`patg;iXS3E z7Ke&LGKBC5SzeGXC*J$Of4SucFDJHcPSC#>>kpW&g-!6LX|P^*ZlL2OPg}Sc) z2AkqK(KtBU$L{$Kq?Vvrg!4Q{mSu<^CFGrtG)>z#>!%Ka0C5~+>|Nr*IYksj2*c1A zHvU{yRY55Q-}l>+Btco0{|66`#zoQVu57gtb`D*2<4Pqq=v`00000NkvXXu0mjf3(%2o diff --git a/lol/meta/flags/gr.png b/lol/meta/flags/gr.png deleted file mode 100755 index 094441156c850f5b319b548b8ac5e03653426841..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmV+l0rmcgP)vwm%>+AJgT&@5BfFK}{SXiuLVzF>=xO8;7kdVlzsMN2o*Tlr)$jIc+&*$0M z?BL+=;oPT4!{Z@tSMV_}hx3+_?D8O%YfH-KdbqR1lIPSlxb8c%$2hAA?gH-=0pv Q1poj507*qoM6N<$f+PZf@Bjb+ diff --git a/lol/meta/flags/gt.png b/lol/meta/flags/gt.png deleted file mode 100755 index 76c5db709c38745a54eff33e5ae0564618d04e67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279 zcmV+y0qFjTP)DTB2}mjh-M{3K}B9h*AhD11Ezhih@KVjiNtbA~aNJ-Y@hC zoGu9Wz~LOe;qaSIqB6fAN=qk4LBy)B?@H9W48Q>K1bChoPU3yxznyS*U6&ra|`6Si%EeCE(LU2wBxkkJF!h6+Lm_G=zLbBxw58)WnV4}Al! zkjG*rVy910s-}XB9$?sRfXk(Eduo`OJc{Kcy3HCrz(nL>8v-nKiT##`V+_#mG}$9! d00xLB;1ANSd|#IZjY#s1R+GmJWL)PbW8B-4S11ylyN1AW=}{+}6a4g@*qgn;V*Bf!w( zW@P$5l}855KPjj>I2^d0U+KRA3+I1k2FCvk3=Ci_!Nl^vmq%)FMX?4mJJ@kdK)hc- z8AD#a)8!b$JkS4h!RVHs1!8evsKs#z{uc$(lX;{Emjkx}qj@2(9GHC^nEoaXHU|=e kM;$ooz)=T|I*@n_07!HMOfqvUfB*mh07*qoM6N<$f~dq>hX4Qo diff --git a/lol/meta/flags/gy.png b/lol/meta/flags/gy.png deleted file mode 100755 index 4f9b232372af90be2e88c42d8cc38c6fda0f7520..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmV;>0WbcEP)aBOxR^SNcz&D{`*Tt3&lR=54>SM0-|*tgquDoi`0j4t zTgAD= zU}A~!;dr`F1Yr{x{k>`b_j&8TuV+rax?Xd3k>2_&GVK7OqXH@k974i8OcN`3f1VdZ zvk8Q*YX5y)@bBaHho2r!zP8DAM-|%wU()P=ptXDorYu|r8Z1W_3u3Vb8j`Yq???Z8 zyXf<``>XCBiappZyfmByJ0Pf)TT+CXB{_)mJit%j#0000b diff --git a/lol/meta/flags/hn.png b/lol/meta/flags/hn.png deleted file mode 100755 index b1a9f5f8dc9573a848f1ae353f384f28eb9a63b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216 zcmV;}04M*6P)3Si)n_!+b#_VV)#!q*md>|g$j@Xu@)b{{y`{o|NR%=a47&v0Tmp-_L0gK zfB*US=kLFN{{DlDWK6o2IpsQ>3zPyX04k%h#X#`#{ZC|W$*fz&vu@&1Kpl(E-T5RM zw*UU~?|6b5r~s&p$`-%<^lQa|=g2{g27pp45552@Bi7;p%TA+3=BUNP&SC&iK_odb SS4uPh00003?9) zg#Q7~&Hs~K>;BIvX#T%GK4;(@n7DfN|F(m%|NE7^|F;S|{!a|I`X82J_dh&D{(n|% z^#5rm3;$yufUb7)Xvn@PlFpzFWBH|LdOK|4-7=|G$|$ z<^P+h)4*(y*!yM62i}1{@8AFbY5R6?dii?v*#B>5&w|+?vENUh4ZH&feH6c_sr~=5 zu?ZYvPqTCWKh4MjvtQIV{0C;1fp_4S{rmraIdA|Yia+n%1s12+f%3Xd`zXO#KFt@O z^-uZ(a?p#a8gPh$*w6YV{mt=fxkQQCa=J}>8JL8M{!@y*jLZJtSh4y4&FF;xmts=? zpI@`*zlVACe`=Ub6$ipFt5Cszb|9vvnN)QkE%2xVhrI&<QfDs6LN$UUr002ovPDHLkV1fW$TfG1P diff --git a/lol/meta/flags/hu.png b/lol/meta/flags/hu.png deleted file mode 100755 index eeee4cad62a8d50f447e1f93b34ecd29c929e5ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<DOmsj diff --git a/lol/meta/flags/id.png b/lol/meta/flags/id.png deleted file mode 100755 index e96bc7483cfef3605bc5f0ecadd9a4ca4ce62109..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QYxMYDCG%n_oDSfbl*= zxRBg+BctzTzopr0Kg$l=l}o! diff --git a/lol/meta/flags/in.png b/lol/meta/flags/in.png deleted file mode 100755 index be5acd354b7b1ba7b726b460807153bb49146ff1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!VDxcS|@x5Qi=gSA+Ew596mmiQ#QuToOx*V z>a*+Cox6JV*{@%J{?9c2zo+v5|Nl9OzfS`d>wCI5hDcmae&N8%bLH827gnCt2NoQ; zA$zFd(_N?FfFH}64p#hp@k;QS=0YYmDP{(ndHIVrDNMfy)XL!L>gTe~DWM4f3J*OF diff --git a/lol/meta/flags/iq.png b/lol/meta/flags/iq.png deleted file mode 100755 index f370c9af58574edc376bd682e60dbacdbc1a851e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmV+d0sa1oP)0v)a#r7Cm!zm-+yI2^(+P%eCqYh|NeU#|4+KM@xLFC&O9~+F2DTV zf&UTvJHWX2$~x*<9Ce@zXlVQY^rMsiryZRHwxHqslK(rOoCVA09G?aj1JNKg55K&k z+~N;Ezx+S);>!QezrIm7afOD49vBGB00jRB2#;DkYB6mv08eajku)0ltpET307*qo IM6N<$f`n>%%K!iX diff --git a/lol/meta/flags/ir.png b/lol/meta/flags/ir.png deleted file mode 100755 index 7f647fa3b8f0d0a8da6d1a6e926f1a4b1b444eb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmVHk;K-#&fSQn}sKYjsmHp|26WsUoyx-m5_YV)@>B*d)R_Eu<#RV0`-lsn)QW{pP=jGC^R=|^} zw7I$>Yzx-EHMR&Q-C==7>yR00000NkvXXu0mjfB@66w diff --git a/lol/meta/flags/is.png b/lol/meta/flags/is.png deleted file mode 100755 index 74c9e034aad227f251c6998e294e91daac141cfa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZC!2~1)ZBDHNQi+}}jv*GOlM^<~=<75&H2weY zkB@h?u?f`fud`i{!ycAuadE{$<(mQBQ%YxO>`618rmG9+_ zTsY6p|0t-L+t8sTNc`flfLRsu)dWpvEq3Ewx^5xEufp}s?+b6e1X{-6>FVdQ&MBb@ E0KTO=Gynhq diff --git a/lol/meta/flags/it.png b/lol/meta/flags/it.png deleted file mode 100755 index d62e50b293e5f47f6e99d909e7d5cf51c8ba9d13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QtF;Ajv*e$lM`kgTe~DWM4fcb^-< diff --git a/lol/meta/flags/jm.png b/lol/meta/flags/jm.png deleted file mode 100755 index a960d3da72caa6a4f5ca2f35eb11fa6f4a1aaea7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<zopr0C534%>V!Z diff --git a/lol/meta/flags/jo.png b/lol/meta/flags/jo.png deleted file mode 100755 index e8b743a3b1a9a9e203be13b52c071bab95ef84d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<M-S~K*?$KXP+NV z{=brCLqv_|%^tpMi=+P}J$jQLo*x%tv~=tHKpi{%Wna@Co?4%-A9t~Q$?BsHC5~S5 z9c&6K*o_Jk7af(VihEdARGAmz(!wQ>D?6E`xJ@hi)ndjCLer0$Y!?Dq-I-$;yS8Nk bP^gEY#l)!2=1wIi(BTZ8u6{1-oD!M<;5l4W diff --git a/lol/meta/flags/jp.png b/lol/meta/flags/jp.png deleted file mode 100755 index fd1ce056a5dbcb17f68c7eca726c476ade3c19e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!VDxcS|@x5QW60^A+Gxv)Q(76pL2-0=#&0* z*2*7GU;h91@Bjb*TMB}7fohyRT^vIsE+=cav+|^TJUxfi_tL~4jyya(t2pXrGEF!? zh41-vgN6p{Iq^KtW*`39ny}Bp&u&*$$>$4ioy+;#s!x8mXOO&IxG`nvihiJR44$rj JF6*2UngBnIJ{14} diff --git a/lol/meta/flags/ke.png b/lol/meta/flags/ke.png deleted file mode 100755 index dbf559fd0f6c7d24d1180176ed90176fa5035b46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265 zcmV+k0rvihP)2ew~1g!ri3PQ;6 zkeSc^DOSZ_pDG9fVfeL*qR?8~K&=#^VdN0=<#}FJRVi?fB0|H+Aw-P^I=Ah~ah_#K zXc$elFhJ(`em;_fOi{$_Pz3bA)%QuyxM1}LXn>p6q+wj6di@KT{~AXFUAk_VK0X>o zlPzE;kt06Dsh)lr4MybhqI@FUhi>NDIqIzjZBP;F(FFchk1@LSa{jJ1F$7rG7v P00000NkvXXu0mjfF41cf diff --git a/lol/meta/flags/kg.png b/lol/meta/flags/kg.png deleted file mode 100755 index c0fe3e51a99287fa4ac4f1e9c67e97fb94edd1aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^ia;#F!3-o#dY3o@sRIE%A+9e3bzcbSz7W-UDW>~U zT=%7<&P#cnm&)2NRkU9z=)BU_dZnlNN?-Gpk>+ay&DTKESo5{1#%oi}H`W?&95voJ ztG{v4c;l=3CQ$XQv-(?C^|v1CZ-ML})pvoa@1j-S#VWs#R(&6<`aVPHeTMRfWaSUp z${+HSKIAKY$XEJMqWCde=_8P=RQ%YW@UcP1{zl8Aj`LfFa8tieijLMz41q z3=Xnva>2=kYW|@zCw!1N(AW!{WJ`c|2Ct6O!EJa;IZ9n*hNCw~Wg@kKgT%WwFJQ z`Y{lA$z;H5J`WH~w%P2KWf3l0Y`OH@eoy~G{Rwe*AykOJbGZNj002ovPDHLkV1mQe zmr30$mAq&x59HF`Vj;B)*7CO-B%Z7idA(cY)ozhT%SCQCN?fp%2TIY>Vmak|lSE%_ z7k+z0=+g-iAObRg+&k^!Kq(qpd?{S!=`zuGM}&S~5c_ixgn$en_sJ5`%VD(3PQb*R zE%kJ(@W+!P5L+P#$OQ^s$&do(Y!WQ~@%+`RZToJwOgbBs21GyxkP8&VBEEg^&-X8X zeSPuy#m$OQ@lrGN^EG6yWq(7ocs!3&SReE;9t|Vfg#^-(@4mjJf*n57oq+}ck@qwwAUA1AlzqP`BIu^ru06l<@4vqk*|Fr*0w8PJ zp@~2?(Dc5&ogP!{&>{(F@s($n$hYI%qtieZFd87nm8{D}_6Ho<^_g_;YX12B1EqEV zO)p)a=Qi0En;phwv3iH4)Xxd3k%Z903W$35wmVEPL$e^V%y6BKCaI<)>_ColV1Pu- z3qTGlmrmn}ZaQa#)X1{{Y6o)K4WH|`;>==r+D*vUKPaP4w&^H#VCF&J2E)Z>S`?a& zZU+MOT3I(VS(P5LDm_9Kgl>mTTe4NfR%)4!VMmvzbuN-!q_c0hf{l4~^Fv8f^4xD90h zTS=~CXV0Fks;XL9S!r)?k7h0~h=6u8kR7tk&CUP*{rmLk6C)!dvSWc3|2!`KAXb5a zypSy_Dti0&?f?J(fB*hHefo4{$9|YAbwxwG z>{wtF-M)Rhv$J#0o;{>G7R6}Hkd={<`TqSoFm279JC{_)B8v3E07_x~ U)C{^nV*mgE07*qoM6N<$f{!7l-v9sr diff --git a/lol/meta/flags/kp.png b/lol/meta/flags/kp.png deleted file mode 100755 index 3fee379506191676a414b936ce245c2e2da92589..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmV-d0jU0oP)j|4v*2#-NyevH*Nvr&ncN;v2T;7L&P?1{r|PTdEgxQPF45+|F2*Ff30iA znkIj4-unON_FV()z~8^Y(fNJeLWG>61~_^_U_c!R!oSa+2Rr0zOUM7Wa%#Yg;SLc$ zeHJ3#)-^aX$;ZI(|Gy3&h2-Q()Bb;L?HnAL1cX0j<^TVC|G|G`@N?Im!BNbh7t~)$ pDhFRdJz!Pcpl>XUwg-p10|B&oFB?sB%<}*M002ovPDHLkV1o5#vE%>% diff --git a/lol/meta/flags/kr.png b/lol/meta/flags/kr.png deleted file mode 100755 index d0022a2e7e1f223594a7d68cbd389658488d64dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521 zcmV+k0`~ohP)mMj99xbaiz_L`2|sGEgPZT%h7*%a*NNxe}kz&z?Qg z*4EC;%d4!c1Tx;dc>@vuwExK6sEo_%RzP$wF6Yz1;}CJ6g8u$~pkkmFEiEmecAQ4P ze*JpYs#T_@roq9%>({S`2)>-Q;GCcu8UhMJWY?};8yFY})B@B9)J`C*Z{EBKbOnU{ zc;{hEb0G-m6^NSL+}s;CZV;RJ;9yB~1)7Oxgw!DnU=Wd$uHnGXt?De2xt$7bg4XpC zRyFAw;lOaG$Y@d5_H>P~ZDNLdMfF?_(i!aAA&AkweXgz_MMnD+ErpoHWY-2a7lN7s z%SkpGIU0AJzK>=i935G^pM+?HBtA1UGvvhAzxouWxj;eW#0S(uAn`%6On!d;lqpk? zv&`PJ4}xmfNd!&;BEPCNK(8QY8K7dI76MrYlF_50q6!NOJ3Bjx$>_k+2B>)X^5q0F zI=pxSmOB;}7Q_@!KxKV>eMA*c@Iv*{rAx#Vsz7BV6sk0=3aAADG|AN0bYbZ500000 LNkvXXu0mjfO)Tq* diff --git a/lol/meta/flags/ks.png b/lol/meta/flags/ks.png deleted file mode 100755 index e1824f13786add0772245b1084197f74ba48e576..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<1aP)NiJ&<%O+qeJ1OPjpiVNFMV{{Cy5zZ-~v3?LUM z2$TXUfGZ}-XrRthH{Kd&?9fZuwruYMpiaf8O%^%3#DdlV5s(4o0tJCmKm|Z$K*c~U zL>Ud#JZrZ|zMN!VKHrj>M(f3N99^#lG#7|Io#1Hd3Z#zFjh#Vv_lQBvg`lSg1Q*V>Gf!xy z)M(q}I%IPp=)-X?_3$1l1jx+kPH0AV_xVsKtQnn`cJ=!JO?-YxVDnPLsZ(9FBfF@U zLbRf~cCXSA^q$4xwvf+j4mA^>eDI{^?!eLVni2#61SMMe&g}mq00000NkvXXu0mjf DuezGr diff --git a/lol/meta/flags/kw.png b/lol/meta/flags/kw.png deleted file mode 100755 index 7f701d5c059c036cdd400fc08336903f509f780b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmV<603ZK}P)mUp@ aWDEe#+(z0&=Ogm~0000Jc5D;5#TNtskS7!4TdRtt(x43CxwE!99Tb#YCzJFi3?Y4PD>XF~PDPl*j?e+yu+h>RF=u_IfflP}7c208GK1XTu zMq)GwY}(_ueNxq)(wE1zUmeq`-&5qXV~WtGJ!Jbh!)DujVl?<}pX|DA#{ZKtaOAdq zM&QngG>>DKZL@0klptGNx3}1J`%H2yZrocyOscNiQw(&X_l~L7+vfi}DGRq4$o1bb zDR^gp*`5lTSiJsV;DQ6uTpJIB?(9w7)pF^m)#W3WnY$Z9cJ%XX+`sWq;M@bTq*?5@ zeRA&Zdg)DD@hhFVKXKi`Ajj>q#WrmZ-_h%^Z8k7=fvH+@({{fdlXo5RnzS#KG>emW zwF0w~)wTurmC9|}eCV)i@t&%H9g~U z0j=!bmle6Q2UyrO?kULJ)i7s&T*j^@U=)OI?;|;JW$kY0BRV?)k>S?mnY){IAMz^N zU0u1mY{`KLU^PQdst(*Sv0!&KNkt~dhC}(gYJd?0Ov$EOmylU<0aJDFzKj8=Bx?4Q kH0~=H0E-8#Auu2a0Jm(fy#GMYlK=n!07*qoM6N<$g12-H!~g&Q diff --git a/lol/meta/flags/la.png b/lol/meta/flags/la.png deleted file mode 100755 index 975888468a318eeb411ceffa720a1ceb34b94b75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!VDxcS|@x5QlbGqA+8J>8B%uT%eI_4C#d%9 z)rVJaKmY&#-?}_N2B^Tq)5S4F;&QTq8!OM0PaByP#a&bMk|Uy4F$m4q)YbK6>^#r( p#QMR*#jD-T`S04PIHdk(Vz51-c2e+I-7=tl22WQ%mvv4FO#rJ1E|LHM diff --git a/lol/meta/flags/lb.png b/lol/meta/flags/lb.png deleted file mode 100755 index 80b32567d3d7855445ace2f3ffde441706bfe00e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 323 zcmV-J0lfZ+P)7MjveX`0ERGjJDaD!@kgkYmvLe@<5)& z9%9P^>d(#p`|mGBMt}YNz3R;Dz`ZpIKdGR?5_Ho$4{N%(SQ#ZyoH48Yg*GG04^&XE_Td|L- zwa{49?5i%YsI2ENo~weyWM{WML824CZn1+z#2b(z7e)R#GS&b9002ovPDHLkV1m2i BnZf`7 diff --git a/lol/meta/flags/li.png b/lol/meta/flags/li.png deleted file mode 100755 index c635a63a243670160bd8d3b3e8f058047a8d4e16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226 zcmV<803H8{P)&HgF(=kflrHH!P>wffQD(89{GdH=$xP$t&*2o&W#< diff --git a/lol/meta/flags/lk.png b/lol/meta/flags/lk.png deleted file mode 100755 index 12e6a000c893008b29bd1ee9cae12b7d195a7638..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 665 zcmV;K0%rY*P)$+38~rOD$tf`^jSNVRpDf%(f7 zy!)axf&M1P;`z!Tzs^&#ff%<3^sUkPKBp%Ndda;D>Xom7)O-o>yA5B-eR4)Sz@T;v-RJIrxuTSR*&Qr7jBA^BD zH*r0fF8pyT2U=Nir(cZ97H@PhI9DbM%-KL&@f1?PD4@2*P6pT8B|q1Iy#l7_+Yxoi=})(*`G&PK5pYUnXh<%n()6f zj7QQ`faE3@1L_C$&2I7KMrJEbP1o2M{XNCFFG>SaN&r*Vx4mqu%uL^J^y)=iL)QZY2S%WFF2GUTJ1Z zMzy#%N^@6;7Q$kZ8UnZb#3*S9+(m8(3UtP)Xn&J#gqUxH zn01Psdyk==thvM;K*~d4&R22O+u_%XoY)*c*`BT6M`Pn$b>->o=j-n6m8I~ixAOG% z_V@Yv>FxUa`}^ze{QUj@|NqlrBEtXx00?waPE+mf_V@Vw{{HGjZpHur0DDP9K~yNu zjm|d~!Y~vC(I;cUkaIMS1mpd0kj5M;$^X_!xD{JgG8B$(!wBBXChY{ kIP04l16kjEZs3h?U;c<#Ybh@uhyVZp07*qoM6N<$g7kBw@Bjb+ diff --git a/lol/meta/flags/ls.png b/lol/meta/flags/ls.png deleted file mode 100755 index ba9ed2d383caffc2b20e41beadae213f0611d1e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216 zcmV;}04M*6P)H8oSGPCa()7*VcfnCeU`G-~v4Fd6_X!mh{m Sk!3Uh0000$$xeS&uBc>Pzopr0LIlM{Qv*} diff --git a/lol/meta/flags/lu.png b/lol/meta/flags/lu.png deleted file mode 100755 index 64b5dd6c964363e074c3027ad6673493f84e103d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^ia;#F!3HFmgF^~|l!K>>V~EG``oyt&(S RyDZQw22WQ%mvv4FO#n7+C$0bh diff --git a/lol/meta/flags/lv.png b/lol/meta/flags/lv.png deleted file mode 100755 index fb8345e1365723b5ef9578d7e20d278cd26e654f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<<$P6TpcD(%oq}T#{LR{O#l>h(#Zy?U~3MeAv q>Eal|aXmRfLGTYdqmD`^1H&2?;kO5(e&_*Z89ZJ6T-G@yGywqOm>5U^ diff --git a/lol/meta/flags/ly.png b/lol/meta/flags/ly.png deleted file mode 100755 index b90fc936ebce690b6ec7a4ab4a6a27544c53f40e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 244 zcmV9q(~KOuVCvDJb_i(t+d*c*oj^tkjgflkYFGO5OffK zzW&YN1;Jv6!*56yctWti85Rp{EZ_HwqDYd&wr#8y5w&fb=Xn%G06fo=QaX-Gsv*p-UTl|H1*sF(s|EQCy;!UrST)0$75te` zu?bQw8cPhhZ0%WPVwnuwSuEUHJC(VqX0&B6t8zT^RssH%5`2Lk(Ur`T} zkF;@2YgS*>C$p=Pt3HK?9&!Bi1mlAp%u|~R6<#Ye?>k4l1UI%+9#vQz&= zkN$BxDG-;3`vw%5geg`GlS1F&l}~4Z6o;6ptq;ovzk8YA12bMC?S4>JdR6 znpk{HLGbiM!*g8*hm-_P<*J>ER6L!ia;8KJ$UWPvd$P~)n3f1_ELIXaJ=6I7Qj0U$ z>WBRm*0zI<7ujAXPW>Kka4n8Z&!oKfo@}9Sw=G->xiD{ z)<4R{eL79`)NB(Ficvbk%6Uv(=m-ZVjf+f4UQpJukT^ZT=+q=5U|~YA^CkpKVy07*qoM6N<$f*0)Gx&QzG diff --git a/lol/meta/flags/mg.png b/lol/meta/flags/mg.png deleted file mode 100755 index 4b4b065529cdbe27ecda8cc29887c701571d71d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QaYY4jv*e$lmGnxZ_k`p5a%(s zG3J0p)|V9*7rO;t%s3|7x!A2=$~McSwug;jqeh@^wQ!FKP#=S*tDnm{r-UW|JzySU diff --git a/lol/meta/flags/mh.png b/lol/meta/flags/mh.png deleted file mode 100755 index 3e7a4b5c8d94323d7948761b0b2a7e0360a551c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 821 zcmV-51Iqk~P)pN2J)e4|l_NYt!!@*t#Wd8x}o4oqs%Xi>b{RgxUBJuCv|1C%ETcxfc(xWOq{ad>d z?$z)jTlTm|>%*b`zhB?}M*<9x^r;)Y3>bgF@C5n~E_dzzJ7DlSWUT`RIJ4ChT$XA2 z_3!A4yI0MP@KzP)%jL1(?;rk;4Iq38OfNtSfZ+-B9}xWh^LNgstFCz)@c2?EpnrFF zG|&Qsw|aFx9GUd@+dE8~UcCJZG|;bf3&KjE(ZKWqj6Yy_0{sV+4zAoLAFu$cWd?!0 z`+6dQkp%M=*Q=EY-ya;qwCVEQH?0d!n|A6*!*iA#T z%p|z?Ku`F+N_MEX`t&{?o$~kl2V`r0{r^y9p~LyAEQvA7sh2xzf=<~q#qv<&Y# z)Dv>Af)(VgYVKF7l72iqfo#*ePd}FKycu4zgWm;j;e}NcEj;ZayN~t;-YsVVTJ~gu z;m70C|9<}nx9QH44}Hte15+7`^;Dwr5>`=o`gDx$KHlqpx19NYHP5RxsXrc{hFJ6W z@4us$o|R8Msu{6_PWlT>d8h<=7^Y72kK%2gN`?c=C-Gt^nq8@X| zFAFh+d=ffO_j=v0<$t|4HP*Z+8pjdw0050A zY-vDWo!1=x5DRglOJuDM=xh@$KTHt1D@mOK-Xx{kEq0+}aOwm|P8EzdjL@|($_IQS zij}YjN}05#6c&4;CR5j$6omajdnKK+bfoI<*ftMsUFC7;5}HoHloIBKue_?;&%6oP zq9fU%GqNw24YIH1gyD~eKXCpN@|S|YX6(gfe}yk}lOmlFY2iBn0000nCjR+bfY9Pv)uoKe5O zcH+sj+I_A`8=Iz{QgvHQeam!wmIdc-Pp{j*``F{Q8K>9myt8uaZQH1Imf>rtZ<&Gr zipZj!oA%wGzwTOo`{9b7qdSj0%52zQ+;N2ZmH~axIOWvl{rBgsy;jkGyu9!D-V=|L zs`hlxIY)iVlwB4%#;wn7Idt{*+w$&XQX_7!?shrOY9j0O;3-_5O&eJi)%Pf*9vWybV iqn3?YHfq@jw+sNfqe<6+=2e6M0000s;ZjgzV19h1XM<(feeGl;-^6pcO>X;@jV5Z&zpswcuNj|k6&hp-&K~Tx5ZC= zCBI)3eA6U)M~aRX1H<`km+0?T{6M=O*-O&V$C5H{+C<+^6?xMl`q)L1u0j3KQWEIt zXOR;0i(_C2e^?~)EL`&2aiKR2V$ajWfg;Zn#OY))9KGuorK`mc%%xt}i#_p|1X@W~ zi@)v@`m$H(+Y!N+#bR`|_|qC;V9E9SB|p6_eqbu~szU5pgao~VdcYFb0A!~T+z_CT Z#Q@`sIB{RwKRW;b002ovPDHLkV1i53dlUcw diff --git a/lol/meta/flags/mr.png b/lol/meta/flags/mr.png deleted file mode 100755 index caf03659f0bf43b2cd8b12de19a348ad368e9eee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmV-00nh%4P)a57x&N? z_|O;n&=&jA7W~l`RVDMB0001UNkl5!7f23ec+O21>j3`x#UCU=-esbEtp&m>OSHn z>T8a~I9IW4$JIOv48l&SbycbhF|x{L7@E@JA3Ood4+V*b0A6wc0000J%-y+V)9!7XcJJ7F zV8Y~s6Q`UxbLPB=_LD`cUToa)=k2@y|NoypXm${&-oVqvF+}2W@{PSkU-J}h#PKom z?7qD#@P~GjO_=iM<&rbbx=rNoiRksWZ~G}=5c7j!YWv3E$xlR11NAa^y85}Sb4q9e E0M~m!I{*Lx diff --git a/lol/meta/flags/mu.png b/lol/meta/flags/mu.png deleted file mode 100755 index 03f524f931923ffa45cc95da3aa00028e785ff70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QbwLGjv*e$lXoa9x+@_VTf|yDDFNQ{3IY>K`k^=}Sw@4^-Yy0cvLOboFyt I=akR{0O3A1V*mgE diff --git a/lol/meta/flags/mw.png b/lol/meta/flags/mw.png deleted file mode 100755 index bf38ff9c73a1ca5cdbb213e532aebb4bf99594cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 261 zcmV+g0s8)lP) zI5{}#|bV$~O_j8_n++22FdI7iR&KH7Z_rN0AhuT zWf0}E3hYL;Q0#P^3swjqR%9TYP!YBIKh*nVQV}%0%qpT*|AqPvsDHHle6DE900000 LNkvXXu0mjf3o~<* diff --git a/lol/meta/flags/mx.png b/lol/meta/flags/mx.png deleted file mode 100755 index 783148b3e9a3d410a52d88321ff6c70e72f0fbeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309 zcmV-50m}Y~P)Tj~GU68nuZ6n|}QG{PM=pbuIBNp;l+MFQ=hR4{vO{ zvbJhNTYRa9cCxkdty70+V$-L$H!fV*wr5^-Ynppkv{h4(Zf}||^=*3a@Z$ITx9?q8 zabitvcbZ3CYUuW*GZ*(Y-@AX7$~HZEbYjQhV{`Uwy>o2MjzyCzQ~amY=0AIU_x9~W zRJQ5qvm3W>9$0+pMAf$K*-K`YE$OXWx9RS!LwE0=p?*AFzPk79?Njp)ZC*Jsed(?> z4j2N|PNZ14bL_ZRdz+r5G00000NkvXX Hu0mjfvZIsO diff --git a/lol/meta/flags/my.png b/lol/meta/flags/my.png deleted file mode 100755 index 5a9ae417fd6e3d2d28ff1b169370e494585aaa26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 zcmV;R0bl-!P)-I_IV>QxoYi6#9*aNBpG!7Ex45M(_~l{#sGI@;`$cS) zEA<2WRJ^B3yUu1YUj^i%DgJf$4%rCB;>5!2pJ!QsK8A3CmWesdi_6Q+EJ=&b&F8gU z!fmsRCP95|hs?aGPH--l^)i?E`U9)9-yG#Vvq?FrFq_$IHM07z2M>^q5EcWY^UnpQ zjFL3C2rz`(+Jk^$@c$yizYB~L`@FUNCs5yFAbNF#uceAX43}mClG1U^6u;YS<`$QJaut&DQ zBeB{dydCI!%&bMt>;%k3Qzv*FS*tO9qI+(6ig9QcP>{)d4Lu4F;?aK!0K=}>LbB28 z=0>s+!$Vic0YMD^2M91cON<>5G;kIVSWpjG;-Vx=P?VhpDyRWD2!|2xnDyoW0000< KMNUMnLSTZ2s=HhO diff --git a/lol/meta/flags/mz.png b/lol/meta/flags/mz.png deleted file mode 100755 index 0e4c983ce87bf89db064ee8345722b49767cd8fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmV;V0bBlwP)=NOBm&ZnOj&`q@<*jmzQrW@Ia0Lii|Gc zlnJmfnAn#$eR9#3^&JUDrql@#p#DB?<+n40-t>#yG}8XOiRW0j^bvkT>O|uuL6dtv zst{*h7B;@;sRk6eQ=I+$-ty-UR*;RbWSOh-1|OF2|9QwjAwoC$wvFcZ6Ks^5i*EFj zOu6587^z||!ssi~hVNzzQp-?;(ZHhP+aV6>nhP@eQG&wnTTE0p7l;6ELz-|8jD9l! O0000Ge$MLi_dm zRQn8*cjv*GOlPd&{xLGDin6^$^ zw&z{%G8w}^$9ezN{{NHt`-}M3cMd`)jx83NuepBLp@(^Fn@$=&J^x#r-)X17JpQLl zT|5&suY45DTsXU6*Nmbg2X;HoE;7mD()DFzc)tB*+_b69ia?7PJYD@<);T3K0RUix BI+Xwb diff --git a/lol/meta/flags/ng.png b/lol/meta/flags/ng.png deleted file mode 100755 index ba56e9e06bc0da3dd6bef3e5897cfa51f3086288..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<<#0(^xG^T?%oB=)|t_ vps1&dV+hCfxP~0001ZP)t-skg@nI zi;OLAM=geaQ-}0qeV~nrc8-gCkBoJckbRbsftZtjnwNs1iesXnk*(06vah4E*RHs> zs=d3f#lpDC<e|=U&fD40-s08a;M?Kg+~wuq?Ca$7^YQxn`TP3# z`}_O+`}X|&{Qv*|Ej$lZ00001bW%=J%+fSg{Qv*}Pf0{UR4C75U?Bt;hK>rtKph3h z39<9ZqY9y_P~=qQRpwH{qe57MpH)yw1dj@78D=I%aVb11R5(N>#dy^4s8Cnn7GRS_ fb17jkjN%pmma-v?fscyM00000NkvXXu0mjfrGbjM diff --git a/lol/meta/flags/nl.png b/lol/meta/flags/nl.png deleted file mode 100755 index aeb72b664a768827bd8ca879d0c904b5b34831c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QpTPxjv*e$lOxm@J1QSB$ojIu z;8#ePV6VX8`dN*Ei`&~T?p!-NvqeJW?yk%hw_Z6hH)e(}^DgQ<>FNIf)Xw1P>gTe~ HDWM4f7d9gV diff --git a/lol/meta/flags/no.png b/lol/meta/flags/no.png deleted file mode 100755 index e14f90f33d84e921007bdebe61514ef0b7c75c09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZC!VDyH3LH)WDU|@95LX6`jMUmC?Xz~Q-F1Hd z$(zq#e|)d4`?b2}`_yT__U`+AoRPl%ev#>lhf zaal=837f&&7Yz(-;tB={C5=pMe;9lXX9a%w#KiD+O?>mRhsuFK%?zHdelF{r5}E+% CY&f9+ diff --git a/lol/meta/flags/np.png b/lol/meta/flags/np.png deleted file mode 100755 index fd0cd6e626e9d13f65156dae3b09a014ea11fcef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 490 zcmVM6gOEGCu!4PqwQ02rPpY4cZAzxo!?5PhNyI4`F8|DvJ^3O+5S^*=>5_Ak3xPdCsY z4!j23i_86gN!jfG)5ab!2C+e6AlIxGGyP|vTlNBIhyzXoZn}s6f8I6q|Nnpgz!<~^ ziNU;d28c_PLjUrabSwcHB!D#x-mcj2|IgQNU<_iThYJXA7194^tzGyTXh;awK)fKO z|9`)%+5dhSm%q4hudK&^C+&j&KtnbHu{1_3fSl{2l?_r*1@4Ut30*J-8RDgx z^%JPToal6LH!9=*)A}wj2C+egxNGJ702*RU(15E(F8|-I+z5{a5E~?RT2TGJi+1jJ zpdki$4FK8r<>a~lFaTnM#6T`P1vJD_JMSyd5FL_T01KOwKtt?w3cdgh(Ih$y(9^&P zpdrvSpoTLu!D0bhA_C##LK^>p<;Mr0AM@4N0Ts+b&wUUr52A gQVeLoF(4KK03pGx(Q%`v!Tw>&6+MNIkH?3S(b*PlOs{rQb`x-Z{;`SJ7j|NsA!^5!T5O>p#d zaSW-r_4bsy5QBmM%Z8|@ zC4K`Ze*`Cg2rGdKErJa%gbpx-7dVL-If@=Wj3hpaElQIwNs%#1k~c|@N?4dsUYt~7 zo?~sKW^t!yaHfQAnumI&i;}yGle~qTC~e~a007fTL_t(|+TD;>4}w4tgip_ciWO1H zVPh%MR8Xq_|95$ah$cLc_~yLKX68#ayT}P{B1Q-i074Bf4a-Ay;xxyj6A^8x=8|>v{kH002ovPDHLk FV1jxn<;eg5 diff --git a/lol/meta/flags/om.png b/lol/meta/flags/om.png deleted file mode 100755 index 05c99d92a3b86b31c53dd5df579d4872617ff43f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmV+b0ssDqP)O1hwnGmO;@SbTKWurb^6Fi@tQB+gt=Qiy3$qbI#_0 zBfQ1>y-J|;av<{3Mh!%h5RV*?iH}5+@yce!o+_}2tY#q7ah8X8GtX!20B@%Qp1UO; z-VmYhB3v&J9QW)1Bg;Tw>IhUBf!so>G?5w|woV-PGhk0eVzd$4CR-7{=^*GItxv8ft_*5Emw02un9P@4alI$?)7vrRDPu{Jae*f~c zJCa$NDHo)9dkh~5dcKpmzaF3K?#~s~9>pceu$Zw`V4Ky1dHn`JXEAuX`njxgN@xNA9OqA$ diff --git a/lol/meta/flags/pe.png b/lol/meta/flags/pe.png deleted file mode 100755 index e4d623e8a14814abf07a513552fc00d5a924a466..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?$P6SGq{_DgDYgKg5Z5yd4FCWCKm6HI2q+@p n>Eal|aXmR@!+nhd9??t;&%#AS<1G_`QVa~9u6{1-oD!MZlpX z+_+I&TMJ~1GqKF$m4&FgD5LryR^d^y{PP-Fh*@7YOTKKDdEG5@NlBG}8zUnlZES2H zY$gVVY)+9gNE$9ksJ-ry`MzJ`>jp_+I6TRf1Cj(xgaalfCJ4ivm1{RYN(h`6R(qT& ze_2`OuD{}4e+BF&IyyQc8z&$jP*hZ8W@ZL4SD1-;I*$yp&I{sd_d*pP#3D6@TU+A_Uw%gBi9FH-@--R|6chx80|Q~3kKne(9=RYB! uN;rj+1XP*X*YPP((?lTPWMpdMmH+@vRY<=(6>!x60000=T z%nV`fJee`$&b{AvOw?({V`c9B_wSxg=hUyh?!7^)2aib=t3g>)a+jbW@Rs3eHoRb7 zUie)ro+o;rW;@^5cN~(fkP9XRoreURSlE85&zg0*UnRN|LM{C zzFejFrh>Z~bnGHG42Bj;x=uCP;>v({w7-2$&V9NUIJ3UFO%;(8D3A8f9|-au9=3s*t6K-B5YY~(+*7g_wV21caNDfn8`GnF`e<_ z_m7vKUdGhF;MfA~25tFDc`}Vwt5pLEe)#qQQ$J@mCq-cmF&YRo>NKdF_#goS6yJVj zJ1&ES3x&y#Mu=41raGWaXtF|uLdw<36eT{0?6%9>9C{oesYRqnBy(wI`MPpSv&{WB z_u*>3|N8#v`zK)H113RW-l0N9Z`#sy;N}5fYPtF1=CV`Eocf$b3)O))8UPcR*EanF Rcg+9*002ovPDHLkV1nGKk}&`P diff --git a/lol/meta/flags/pl.png b/lol/meta/flags/pl.png deleted file mode 100755 index d4db002f655c3592b4821f0fd8fe2b7e6a9ddd5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Ev$P6T}#joW7QfvV}A+C2sZ2tfM|9*$*C7_6a or;B3<$MxhN{46{wf-1}mYXjA9=5Gqx2b5#*boFyt=akR{0JXpv9smFU diff --git a/lol/meta/flags/pt.png b/lol/meta/flags/pt.png deleted file mode 100755 index e0619bc9f66ec02e64f3a4f5dda366c0d3d5dbac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 395 zcmV;60d)R}P)f#6Rw}a*Dzy=wXC@zQ!&RBi(iO%@k$rkD>zSS=7G|NioSCNq|?OnBQ-Eq?Cr{^-~b|NYAE{y+Zpsl&g@ zUsjLq@2~&=-Z$@u{H=E%>p#Bw_J22D-mm)dAmfNR>-u(BFZ^3?aY3-y45+o}`JMme zzpP)p=I|(q`BlGv%ftU4UlkefKDun{dqC*f-Qwq({xe=BM)&iYq$O;K_*j47BiKn2 bvWyG?_gYu0&M3S9bT)&htDnm{r-UW|$h2&G diff --git a/lol/meta/flags/qa.png b/lol/meta/flags/qa.png deleted file mode 100755 index 0e615feb7b8d3989a1e8da70604e027d995d65c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmV^P)00022NklceOOWHwQI}Oqreekw| f25HNY&aG_#Iz9e26>v;r00000NkvXXu0mjfZZ>8! diff --git a/lol/meta/flags/ro.png b/lol/meta/flags/ro.png deleted file mode 100755 index 57f34f3559fa4e776ae44f5a9f6eaf3d71eec89a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QktGFjv*e$lM^niJKp>+M&xkw tInGrN9eEbJ^-I}ieOYl4%n<2iV~96Ar60F*dLK{|gQu&X%Q~loCIHsR9l!tp diff --git a/lol/meta/flags/rs.png b/lol/meta/flags/rs.png deleted file mode 100755 index 7273ea715508cf0c31664300d00890f3247b4f51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 523 zcmV+m0`&cfP)N!x>N;|#o46E3CgE+uxNwk6uz{ELyGZ&PDY%b0|FP1#gZr^6 zGOw!#-HPSfQ+Zh4@3Bf*lp@Ou{=U!F^-F73xa+&s-}z(ys9yUq zoI=gysf~Or9Nhgz- zrpcJ(V0b#7AU!xp-rL3pRb#F@z(g>Fnah!qWCuU?2YDbKCM9|(_Jv6uZDjItGe#iD zP*0+=ur{@5mGW_@LoZXYzi0pe N002ovPDHLkV1gu+d~p%m z_Q|bmcS>d`_)fECe*bz}JQoYkAO3ZpIuA_Z<+0)3cWdTc9Z87_kvnV3Ou9QBvxfi; OVeoYIb6Mw<&;$VeKO`Uk diff --git a/lol/meta/flags/rw.png b/lol/meta/flags/rw.png deleted file mode 100755 index 5b859eafaac9c64a90a35009edb019b9b7f8bde7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 285 zcmV+&0pk9NP)bN>;YSYPG-~t!8_hn$EM!MX@Qz})O_|24BKc-p0~sYp`|=KVdTq%G-BAi;cx=wfKiuWL zCD&|q3<*XXtPG!YX?gqEdCnWtRG0Xftd5G@RWbYOI^`ukSqIyI?A${gx+_9^&M&fC zpX9SOj|8Jxr<(u`_1&7^bb6NG)_kK?k*=FEfX**G(i6SA%6)TI&Y=$ZMV^@lTO)Rr z107C+(Ht|(fW`q01!|UZKENKCf zysx46!lIz<#Z@OJ15E@5Zq3Q5zyJ}Q=LigUV3+{S1=?Z1K3QskD`_c&ajGFOSb!uD z@y@b_cm)zx%+rh@YJdzT7<+_g8AuS3Z?yP)XJGoRJ~0ItlV!&y08<{23rsVq`%0qLGO@_}yX2m|<)*^t!LvQdwH?mh^3UG#&)@RU-}2bx^xo+9?eqHZ_51wM7XJSK zLY?sv0001$NklEGlklDa%S*`q%0E| z$`ra;kF#S;VZMjO1AYm6PMAWhp9)g-UMW+U$kU-rB0uHO7%9Rm!U#0RGZx8M3@VHF Y2ljRqhL?}c_y7O^07*qoM6N<$f=d*ZjQ{`u diff --git a/lol/meta/flags/sc.png b/lol/meta/flags/sc.png deleted file mode 100755 index a497589e61fa350b09679a1f349aa60866308bb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmV;^0WAKBP)07@?p|wC@96GHxOBFy@8-IpO&~Z-Aorx(!1T% ztneTuy0knK|3UYI&OiL-{|CMdV>y(O>8#;)pLaFit1emXq-(auFB*i3UN57Affa5& zkKh_XOLp)`BG0t|y7vPGwXlB4*%eleIS@pFXj(L>ra(L`o)ib-Y4M~u5KoII#V0zQ z4-A?XPl}^nGnt!@UQdt*#{g+HODZ}XwJ~by7$hy86i2BB^0&XIZG=ct43$n36b$qR z{RNV=?39ExV|ErO3Z!XUBpc*5{R`Pff()4k`kthFE z8xM9$N_3h0*H+K`AHP1qq(YYCkWA&Q|FeC0+14{BR%~#!Y-4^HxGn=E)BS0gqrg)O zS&qYUs`J+8g_X{!2)kOIqhR33-n1cY`S<_Y=kx!|b2v<4cAT;L(1-tfCcg$5Vv!el z^uNCS{$8ts3fGSd&Z*d3lv*FM^{W4h)vM*DIeKn4R=)Z#xrMdCEZ?L@J{K}r0`?5lz%qHf8fv4;{WZK>wa1>qoqT+(9rWPB+>mdKI;Vst0GSnS)c^nh diff --git a/lol/meta/flags/se.png b/lol/meta/flags/se.png deleted file mode 100755 index 9e1257830378de63f65a7ebce12d02e366017f81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Ev$P6T}#joW7QfvV}A+Fp3o&OIqaL-;l1t=os u>Eal|aXmR2H};p!iGbze=rzv#M9&FEiK7ySSK|3^_Hkp0!f>-XAiU(J1}VDz`p z^#A|<{W)^#i>~uGzr-&(PT%A5zvzM4y3Q0C{j+x_(8)jhX9L~)=irGiMjjw>eb+zx zj()WcppMZ{2|ZVc(Nql(Alp0s*V6UCF!?oi#kbH5YDVK%bKh^?aiGX_i~4FCM1#af q-E>XmEc2gcVASYQqeqP<2><~3kUCUpav6pI0000AtgI$6AN z{xzU|B6cr;2*_ADn+6sGgA@~W*PeGve|zl0&!gvm`sTiCt-gR&86}7T=pjrbuXPG& z>z8l;favVCUrJghuqvYn;gWCDwI?{1C|9;PV!1kFxkGHfL~XxEZ@@@!!B|R^h#pdp9ZrxP zO^|4qkZ75u89=AH;kn4?y2S$*COXwKMb$M&*E>wvL{-^LT-jrC z*=Kg#S7zU2a^rf1=#QD}pQ!Dpuk*#q_~7FC;pG4S|7yY;82|tPgGod|RCwCO$wv}` zP!L7YCW#pgpgj0Q`DFLMJX1NbyBz8n-KtC1ul~O?Kx-i5JG?t76m45Tox>0Gu!=E_ z4y7P&=4bl`c&I!MhnDIY00000NkvXXu0mjfuF;qk diff --git a/lol/meta/flags/sl.png b/lol/meta/flags/sl.png deleted file mode 100755 index b68450ddaeaf5d978f86d8827d41097394c99170..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!3HE}t?oSnq^vz%978;gCr`PZ^>uzC1H
      ~5ca^wrzv>}uAABC@~jvp%jkdiYclL#&}$lXu#W R^+017JYD@<);T3K0RWToE5!f+ diff --git a/lol/meta/flags/sm.png b/lol/meta/flags/sm.png deleted file mode 100755 index 43f1965025d9c53e034a0f5135c303b83dd0f896..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 352 zcmV-m0iXVfP)tOiKk`ikhFxZD!NI*7yqsjGwtEJ7D;_wo-7LxF&V##Tn%F&WVoX7DSb&CgT&QGX zn{{MRezu8Ms{i~=%kY`V&~yjJqGECC!e?T`IR@`UE*lpGWAoH3 zeR(s%%yb<-V`Ww+BbLM}vP`T$!w}P;pEoI|Yeqn5cu=@oW`41MPNhInK0{h1Sti1e yNck4cfOOI57H!`o*7{Qf)e|<6WHf3bRS*Ee8A`~ejMoGJ0000{|l#GjQuSed3&Lf z1KWh(?OlvUzh^MJu$)*>6p@}=(i8WV!Nq}XYVW=Bqk_GLvr^r9<@UHSGu-?k8+0xB RUN6vQ22WQ%mvv4FO#p(jKKB3s diff --git a/lol/meta/flags/so.png b/lol/meta/flags/so.png deleted file mode 100755 index 819490b9d77e82259eea19979998839160c0cbfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!3-qVmezg)QpN#3A+C;{cU`*gx%S-i=)LDR z@qW;h2g&mum#lcU=FEo;=RO{|@#W;*ucz;SyY}qIx1WE1{{Hv>|9|FlneTwwEj?Wv zLnI{c9%N@^P~c(Nm^_X5-_=DA1RW0P&v|^bXL{7cpxN1HrwKf=NOxJXsoe3kWx0yH dLdCuUM!QZ%!Nmt1ZU7Bo@O1TaS?83{1OVvYP8k3I diff --git a/lol/meta/flags/sr.png b/lol/meta/flags/sr.png deleted file mode 100755 index 9ac433788807de4396674e0917b7d5d5ac68be04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmV;;05boHP);JP1Km=p}xj;ecxca89&X4t+|IaZ15s(4oQZqn4&E$s|{b@QsHN*OWCabK_{CN;jhcUIPkK^mR)m00000NkvXX Hu0mjfHvkaN-_3jiUt9`@(k0qUr3mCS8qSig$$mqelF{r G5}E)AGD}1N diff --git a/lol/meta/flags/sv.png b/lol/meta/flags/sv.png deleted file mode 100755 index 7fe790cb21b704862b153ae720c6cb221418e413..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmV+f0sH=mP)zZkc_?gb|3$xz5%PJvbQ5qA#z#>WmoBn-2cyZn7b00YVihN;yWosgC zt>ezX%ukyX@%!n?TNhuy<(HKBWvrmYz$Q=IR6bfpjM_A`Yytpd9$5X`f@tpm0000< KMNUMnLSTZ6tayF^ diff --git a/lol/meta/flags/sy.png b/lol/meta/flags/sy.png deleted file mode 100755 index c78f9d5ff7a1a755b2cd7a78f674fff56749d220..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!VDxcS|@x5Qd$8%A+A7LW@Vw_#`^H^@Yy#H z9)ES`#H+h!-rPSYsCGZ8;N|y^fB*ga_y6Dj|Nj@QR^1F#ZR6?U7$R{w`Go^3&y{EA zU08X_8y}pBwcvc#-uQE+!9P*ecni))_r>mTt2_RQewzJICBj}P!N84`$ApdH-ixLM Tx92v2oWkJg>gTe~DWM4fu8&1F diff --git a/lol/meta/flags/sz.png b/lol/meta/flags/sz.png deleted file mode 100755 index 6550515e4aa8de2d10018ef39486a15313054003..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)u+bCM)J%AFPYHsV0V&<5yrL9v`RCN6K z@dF1A?A^Qf;>C;mmQ0x8$*w_HsrlzL5ckf0v`taNdD~!2;S|%Hc zIr}t(+J>${Ga88ERcyS1CS_|lL%8dCctXt0fdOJ+Vd3TF1$3{0fdSA^Fm6ZVu*xA{;y1L-exUZuFZY~h5 z=HYFU(VZkDNm}BwGce%b;9z8AjE#+b^6(+~i4Rwn>D16@R9BxTAV6%EpJcIA^p~jEjmC=44$rjF6*2UngG=*9%ldm diff --git a/lol/meta/flags/tg.png b/lol/meta/flags/tg.png deleted file mode 100755 index 31f1a00ab7ca53b049a0124de5d3a78555f6aafa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmVplyTu!yRrXTff*Xbbw;f_{*+%_-`R4njn?S}L z=lJUyoU#grF_4X*7660g%klI7e*gIo2LFEi{J8bNWid;tSpY#Fx9o>l@UnLv zT#%X;{Cx2A$L)u|U%vfv>>TwixUS>#cHWvxLS~o6t==u)0wjlKJ{W=)P!fSeMe?Wx j1TCN_0*OJR77#)Jv5Nzc=v&U800000NkvXXu0mjf*EVR0 diff --git a/lol/meta/flags/th.png b/lol/meta/flags/th.png deleted file mode 100755 index 5cf74c908b9769107855450dd17d2e56c8d3bf41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&QdXWWjv*e$llQ1A9CVOAU}4hx zZ&Mlb+Ma*^|Nj>-srvcMdyCO5$E9UgUIZ>?SNq6&_KwHlN10o+99S8wU(3C%$k*%z Pn!@1e>gTe~DWM4fr;sQq diff --git a/lol/meta/flags/tj.png b/lol/meta/flags/tj.png deleted file mode 100755 index 1d83e4c7a25b688d7db981aea6776b0989fe2e5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmV+$0p$LPP)b@KO=V#=r!3s~d{-qswI0%wVktx<_O`Xh9LNpJy) z)@$$ku#EvCwy8QfjwJb<@j4E1*HxHX70zjdG`z`k#Uwh8EM>?N2a%_Pmz1&5(`2^N hU9=#xYrq;%w0|-V6`b?Y(A)q3002ovPDHLkV1lVWdF%iH diff --git a/lol/meta/flags/tl.png b/lol/meta/flags/tl.png deleted file mode 100755 index c646f33f5ce40eb6791dccc31fcec4f6ad924027..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmV+}0nz@6P)Nkl?VF4C1}`zV270kM#^_ z02u67mMZ)|u10I?8887b*ymMC0PUu!^$fT`oG0IxeJZrG9$`~PMuwP}7?2??EiEf6 z3uI_2K!cqY)*~#=&d$Dj_wJ-glWyL;$;QTp8SK=x9%?H$H}{k&Q~rZNO-&7+V5gS# zAag}UMd!_%cm4Wxh{c~jfA;Y3pohh9aO>8s{QP_k4Gjke2WDnwdIU8Dbai#XW0!u3 z3kWzkI0hg)4R8T6Fh%A7R1yPIEe=dWV4#{l0F}Z?_l(7{CjbBd07*qoM6N<$f>tkp AfdBvi diff --git a/lol/meta/flags/tm.png b/lol/meta/flags/tm.png deleted file mode 100755 index 5dd8fb996e4c3506c6a0e5c1b7c44ab3d5a7eeb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 572 zcmV-C0>k}@P)^51MEs)eZXrv97A``(`em;)dLy`}bN6f3pKG5X4T23D>#gy$& zk8V{*tu3n<8(6JXm{ zVb@m)QIoxLhVS%dl8p}XbC|4SHQn2EZGhn{CzEw5&;SuAiQ>!;0W#R~f==AK$x|3c zj?vS#t)}>xtq;oR*`uYuS=!{V zsV3DDUu>|=0$Ckr5eWxrsTe`&{rWmoGup@7DN|X^Q%8A+r>ni9$Vw$ssu>*>XxlBW zsV^#KB`0UaFS1j^fNDkq)Ae2*U0^70mN5a6N3ArdW^`nr?Q#>t>;TKuFrzwO(_Pwn zR5Loj*P+MV*gnbLBF54=(Qd1*KGlp)46)j!Zm`Z!f02X!Moq&*rdm`pIwsI&o08$S zn&h3`32WV5_Z#R?vrs)WyZG6Gxr@?c->r{ZW9vXQqdmQxch-fzUu1W3Ve`uqi?`XB zQ`6`}##(EP?N<1BY*R7Xr>8?zSF0KvG1ok7rg79l1DLcaG#UVo5$E(l(Y;mx0000< KMNUMnLSTa4-w)9M diff --git a/lol/meta/flags/tn.png b/lol/meta/flags/tn.png deleted file mode 100755 index 09ce2352debf7bbc604101dc1b4775cae2a58364..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 236 zcmV_zV*Qh*4^0CItXlo}0m zAkd(9Ug6JKB|aqP{yKT~*Xi?L`lka03A&wt(LnD5oe5+B&HexX|EH3=|9}7fzIFHK z!J|Maii`#ZE-(;)44`|zui5m1TlNLJ?i0iyvsRj>kcsf4Zo0000 z_iA9^t@QNAy}i$-Pk*&y#rysHe?EQs^ZE0CKY#xJ|9|1L99y79BTpB{5Q)pl73{3S z5)&9E{J$d8{Xp5w=U^;%WY}G2@f?Op&pU*Utdd>rdShJ@^vNhk#x&qYA N;OXk;vd$@?2>_C*K(7D* diff --git a/lol/meta/flags/tr.png b/lol/meta/flags/tr.png deleted file mode 100755 index a67740a1450b221cf5a4a8338e8a8c485c5257aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmV^P)-aqZGWCU2O=N?$fb_aA8K3v|NZ;#$IlNn&Cm6%o=T{`@(6mH zl0&J{KnDWN{r~6BD>r`>DPF1PMz&7`WuJ&Dl4&&1`~Uy{|1x(GrqZX<8c!wFfC`?< zYQAz0B-vxP~0002nP)t-s00001 z0RaL60tg5Q2?+@b3JMbw6BHB_78VvFA|fRvB_}5*H#avrIyy~FO;Au!R8&-IYHDt7 zZgO&Ri;IhokB^g+ld7t!t*x!Fu&~6$#K*_S$;rvi5hl(OC(jov&loJw7%kBtG|?h8 z(jzw1EXx?3G-rnBga)0A>f#Z3E=#ZM} zl%4A8>g((4?y9oxt+em4xbwrw^Tx~c$g@aL z?fdlf{Pgv?GOT_8007)cL_t(2&uz-ZfkFWk1i{7@cbCE4-QnYqe?*(Wt8=ls#sCP< z_cdA2?3Dx{P&qa2q2VXv0`L`Y9eb$v$a?_Xxo6)VYF|o!0Hl8td#G_71p!Dn3wx-# z*+u|}?$%XvNJ}RUKxllZ+e6cD3IKok+_HxT@2nfZTex@aq3*rl1#oBI1AC}-F8cvU zeW&(N{V)yz5Omvx_&b)c1Zp^|u@l6aw# zd7+Vdp^$r_j(($yexrqU!;>922#U1Cy8tACE=&85v$P@C)4)eXo^TEpV_4)L|%k;y{^u*2d z#?JJ|&-Kd-_sa}ma|Nmm?T`d3r0ZvIoK~#9!g^*`c!axv)FB=RI zj0QA{A|lv(LlV2FD4YQ?8j1xAJqpPG|KcUXh-M(ZH*@>W&9l3=i!xP(r4T|Q#v%!n zOHNmyix4koYdUIx6qiuT3TuX#9RN~;mvfrJN*GIAQZ4F9CeC~P5u%YOiqhq4z176H zQP4_Ji9CQwhi6lOa2NfCeC|c)C&wBT829w&v0;tY(UMkZVBBogUoQT%K7AV6N`=P_ z5K*jBRFj-O46A54nePnakL9-^*j^8-l+^^+UJpsCWo7=SqJ6Es9|Bg=va7Rj9j#`- zBxjg_@V~sNuMpi6bOeHoVb%fm4`zB-v_0R`B=qgRod`70y}^}8WJ!;K$31de{ZSAA zW{1Z{=uvCXG3jIA{C$vE3vj^+@Nf(Mqnk}jaO3W3ZZ#fX2HQMXg7$n2z~j-aH8?mh b0cL#zI>tlerp2($00000NkvXXu0mjf^}T(Z diff --git a/lol/meta/flags/tw.png b/lol/meta/flags/tw.png deleted file mode 100755 index 88cc0dfc6d7d195dbf0b00ac54878dd6dd72b7b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!VDxcS|@x5QU(D&A+8JzGntrXv9iuqRb8R2 zy~@aFt*Pm{q@)8iHK%K9Pd7E4oiypnqD4249)0njf#LuE|G#{ftOn{e^K@|xk+__k z(7>>-T!10P$k2GFVdQ&MBb@0A6uDQ~&?~ diff --git a/lol/meta/flags/tz.png b/lol/meta/flags/tz.png deleted file mode 100755 index 94ca541a1a929bdab9a0a4800ca8288642e00d47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!3-qVmezg)QZ@lTA+A80Vewr?Mh3>kcjUHO z$*(*rztu`nn%Q!PS=zSV^ld$v;hdERw09l#+A~Ms&?))%=M_F27yWob^y3AIPtn2q zf!Y&2T^vIyZq=SW$<<&W;(T$BRmj@lumAstI-2M?ZQ3i-6qb7<%X7!_BK!H-$Bdn4 zn)L1A3mZ8lqy!D7LFVdQ&MBb@0FKpHt^fc4 diff --git a/lol/meta/flags/ua.png b/lol/meta/flags/ua.png deleted file mode 100755 index 80301f4610064c2a80e47b86599c7bafdeb2b0e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?$P6SGq{_DgDYgKg5Lc_xBR}toZ8~#y8&E{Z q)5S4_<9c#}g5;n7|NrxQvM@Y+p}xB_DbW}x%i!ti=d#Wzp$PyB@EY0x diff --git a/lol/meta/flags/ug.png b/lol/meta/flags/ug.png deleted file mode 100755 index fec8a452195a87927fd2b98e3692f0ec3f789cf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmV#N3KBM&AYfr( zxpL_W(6N=3mC-(KbL=&MT%aIz(tdt^{>AebYinv78ye@AVOO&m&&gOZH`rtyf z^cxH69I?fQgE;CTLc}s8AYaw2+e@NMHA7qR#fF3uW7F7fN~u}iznM&#ah*X~mov3& z>R!A0ZrfrR0)uD?t(Ro|r?=DcHf(1ZpC!HG!9<7c=deU2XayFi`Yfjz71QWreB}n%K7I&G z|7f!Vt9sS4^~t;+=AyMv0000P)Dh~CWPShs?f%^x5UGH& z!{*7m$v_~ZfBg9I^XHGQI-ezdx^vrAH_UdL-0uJS)st`Ez5!+B12!{QtRM#gHNSuN zX2I07&GUU0wh8T-E4Z>pa7mB)(pg!rUp)iL&fR>kf5lBQ5Xfj?_yWUWeuwh@g@QM? zh#XxcG`mH1!Iad?7miUOtPky)w4_gK!z7`NllXVf5!^D*Y3_vB&!0X3r8XUYx_s9| zG7!k<*RNmRx^Zq|tM9s5ZgW~>R!&rz-Q)B1%cqwwo>3asKmbe+@87+cKRJHhq~zTj zn{VGZckB8&h?I5O9-!%DAVj(brjy5y?g7IWn680ok(ybC`ni!j&k_|NWJVD&h`fYF xY~rI;Sd*8DiOT3S3~TZVOkxXFn%6Q^2LQ~m_EG=cYWDyD002ovPDHLkV1g@8$Q1wp diff --git a/lol/meta/flags/uz.png b/lol/meta/flags/uz.png deleted file mode 100755 index 37688d883a7fa8b358912db6623a322a6781e2cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmV-00nh%4P)oIu>2H`#&~umf72}(lo`$9I3^7|L=YJ=Ks#eum3x2I`Lm-$zBx2*+;JaXPUL` zfA--k5I&Tqn*&?V-TD9i=db@4z@= zXPv$6e-<#r7{MV44Z$OH4ne2QC;o##?7j=&s8m_LA54n?(|kb~LlgF21gk-(X^Iz>wrwBGnBo5*2cr%g zb>OH22{|yY)ot5g#td>>t^N;YJnFzv2aYL{DE#rjs5!}QJ5|Og5IaI=DpwfF*wcdC zZz+njK~e#Db^{5#hL+J*Ma;`>FgP`vo@IS=B(7n&=kx!oe!y=>TeI$3 S0gA8y0000uu5 diff --git a/lol/meta/flags/vc.png b/lol/meta/flags/vc.png deleted file mode 100755 index 55018b1437b05d334c7f577064a46d380cd20df1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!2~2lPfAS&Qd>M-978;gCnsoFwROG{d-`{$ zhMUT&+j(aV^clIOOskGa{QWoQO1{Kz^BLZzi?g@gUSqLJMNdO|+&msdGjek&G|%ef?}#dkax`I(3^~{P{+u_bUJsj+Lh~=ly>;!P0vDI? lR95@_(hWK!u}oE-;o8g;hBtTY0)Xyk@O1TaS?83{1OTaGRp|f# diff --git a/lol/meta/flags/ve.png b/lol/meta/flags/ve.png deleted file mode 100755 index 4c8b135ab72f5619799515537417d538fbcb1acf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!3-qVmezg)QceLrA+EDzd>D*Zb6KzBv)dr( zxKY??qqys4d7rIXp*yuhcbdfRamzmBm3P>;@JMvc$+Xt98Et3lXI`DP?%twVUgt%$ zzh4x8f7jtK&@{%9Aiv;;(_eFS06D>)E{-7;x6YpQ`F22WQ%mvv4FO#t&RSCs$& diff --git a/lol/meta/flags/vn.png b/lol/meta/flags/vn.png deleted file mode 100755 index e9edf37ff74e8e0c505323b14fdfe6b053cb95eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^azHG?!3-qVmezg)Qpo{6A+F~H)y|8lo)=TQAg*>n zTJ<6j$*NvbQoXFKaz$O`w!7jTU&RM83Xjv}pXAFw&6j)ABlD(L=FJ4@Hxp#uPL_T* zRr=Fv$s7@bv8cHp;jvp{n$sm?c9?^^-rUZ`??BKZlLWqZA$u>S=8DXF z)avKW6L>@Twey}89aAeF=9!$`vU7s!vafrtsZ1!9jJW0~_E6-ZJl~t`Y>nIgU%Cji OkHOQ`&t;ucLK6Vw3vP1& diff --git a/lol/meta/flags/vu.png b/lol/meta/flags/vu.png deleted file mode 100755 index b2214473b5e37de6681e08a29514521a49531def..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 540 zcmV+%0^|LOP)y7aMS8ls3$2cs?>6r@8GMVUwz6xqQ(vAlML@f`Zpz&nyhD?8A7t(c*>UzIkcdt*I_=g4>G&Db z;KUKWW|$r&xdjt(w5Vj(s}IVtoRCF-H}kWkhpDN=7P7}G%X-^`bZ8R5bGUMxZ_juz zNJR`sXeX`MD=(3+qqD_)`^fu}@y9QRLzV!dKEr2O$Z~gpSP8{K@3Z5t*JJ{4!{S5Q z>u5An_4?#>=T3i!rKsJ`SW-Rjgsjn9QdRAzX z^)}^hZmi6wDgWXzTT1?Z=Qt*ZHgS7Dqb)hJGD572)obH_-yo(&TRAtH zR9!x-K1TIz5`bSY4WniZ|E(lZ= eb1tb?h2sZuSqxYMaMM5l00009%!w2d%J<7 zzsZ|PEk&6vrp;)UsZUHHQ%3{Ot|%Uttb>yqISz>xzFoBTsL!)r$+yupT+WKN4^d@rz@y>F&e&lG@&6If- z(qJ>sB;MWh{fn&vlhKR0bH6NJ#w@s&OTf#dKguTS0HIYh5|jAOoPVBMwktk!GckzREc52=H=t@BnI7U1Q5k*Xwp)q@(?~KGWHkQb ti44agjCP{7V-ZGE-LY7Vrj}#j2mpEBtIDSf%hCV<002ovPDHLkV1ht=ft~;W diff --git a/lol/meta/flags/zm.png b/lol/meta/flags/zm.png deleted file mode 100755 index a8b574959d2e8592766cd5e39943b8b5e8c1e6c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 248 zcmV|&r1qCj&ygM2McDalp}j8@KI2(w@)3Sh`gX7DOxC<R z%epxXnSl&-&J0ui7>;K%lsPeETQKCgFhu(@s8ujf9HyNN`gshlaSXLy4B_SsZgvcs zC6tFX5|U|Ruybax38PjtqM=rh52#~wZ3xFM6J8+NV#doV$pAqfK@2DAp@@8=r@C|9 yQxE{6o5}(VFyQ6N@V*v`MvWddderCs*q1t+&+;7r0000li z*W#Xnz>jmMK*7FnVVkT7kV_+k@bT5{sW+F29&+P@`B1)I}g4|Ga+n zk%iXr4F0z}#4j!uxwT64V!P1QaI3!`-a`Uo;lhR7+}sS*1rVcu{rI-OQ}oJGk;V0V z2d4?2o-4e2aU?tzXle1UABQJN%q-)dUn4NPf^S{Bz?Gx3Aq5K!gBk?>{X5^LuzRB5 znfbye=L&7>5q$dS7Htz3)ZVXO-(NWU9tK_<+)Kag1P632KnAkN9GFUCV5-G|X$TBd a(+2>V@&cV0!IM=00000 - "(#{updated_progress.completed}/#{updated_progress.total})" - ) - - # Check if source batch is complete - if updated_progress.completed + Map.get(state.failures, source, %{}) |> map_size() >= - updated_progress.total and updated_progress.total > 0 do - Logger.info("Source #{source} batch complete, triggering analysis") - trigger_analysis(source, new_state) - end - - {:noreply, new_state} - end - - @impl true - def handle_cast({:failure, source, language, reason}, state) do - source_failures = Map.get(state.failures, source, %{}) - updated_failures = Map.put(source_failures, language, reason) - - source_progress = Map.get(state.progress, source, %{completed: 0, failed: 0, total: 0}) - updated_progress = %{source_progress | failed: source_progress.failed + 1} - - Logger.warning("#{source}/#{language}: failed - #{reason}") - - {:noreply, - %{ - state - | failures: Map.put(state.failures, source, updated_failures), - progress: Map.put(state.progress, source, updated_progress) - }} - end - - @impl true - def handle_cast(:reset, _state) do - {:noreply, %{results: %{}, progress: %{}, failures: %{}}} - end - - @impl true - def handle_call(:progress, _from, state) do - {:reply, state.progress, state} - end - - @impl true - def handle_call(:results, _from, state) do - {:reply, state.results, state} - end - - defp trigger_analysis(source, state) do - # Merge all results for this source - source_results = Map.get(state.results, source, %{}) - - # Trigger Julia analysis if bridge is available - case Process.whereis(Lol.JuliaBridge) do - nil -> - Logger.info("Julia bridge not available, skipping analysis") - - _pid -> - corpus_json = Jason.encode!(source_results) - Lol.JuliaBridge.analyze(corpus_json) - end - - # Check if all sources are done for VeriSimDB export - all_done = - Enum.all?(state.progress, fn {_source, prog} -> - prog.completed + prog.failed >= prog.total and prog.total > 0 - end) - - if all_done do - Logger.info("All sources complete, triggering VeriSimDB export") - Lol.VeriSimDBReporter.export(state.results) - end - end -end diff --git a/lol/orchestrator/lib/lol/crawler_supervisor.ex b/lol/orchestrator/lib/lol/crawler_supervisor.ex deleted file mode 100644 index a178c030e..000000000 --- a/lol/orchestrator/lib/lol/crawler_supervisor.ex +++ /dev/null @@ -1,60 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -defmodule Lol.CrawlerSupervisor do - @moduledoc """ - Manages concurrent CrawlerWorker processes via DynamicSupervisor. - - Controls concurrency per source and handles worker lifecycle - with one_for_one restart strategy. - """ - - @default_concurrency %{ - bible_cloud: 5, - bible_com: 2, - png_scriptures: 3, - ebible: 5, - find_bible: 3, - bible_is: 5 - } - - @doc "Start crawling a source with specified concurrency" - def start_crawl(source, languages, opts \\ []) do - workers = Keyword.get(opts, :workers, Map.get(@default_concurrency, source, 3)) - - languages - |> Enum.chunk_every(workers) - |> Enum.each(fn batch -> - tasks = - Enum.map(batch, fn lang -> - DynamicSupervisor.start_child( - Lol.CrawlerSupervisor, - {Lol.CrawlerWorker, {source, lang, opts}} - ) - end) - - # Wait for batch to complete before starting next - Enum.each(tasks, fn - {:ok, pid} -> ref = Process.monitor(pid) - receive do - {:DOWN, ^ref, :process, ^pid, _} -> :ok - after - Keyword.get(opts, :timeout, 120_000) -> :timeout - end - {:error, reason} -> - require Logger - Logger.warning("Failed to start worker: #{inspect(reason)}") - end) - end) - end - - @doc "Start crawling all sources" - def start_crawl_all(opts \\ []) do - sources = [:bible_cloud, :bible_com, :png_scriptures, :ebible, :find_bible] - - Enum.each(sources, fn source -> - languages = Lol.SourceRegistry.list_languages(source) - start_crawl(source, languages, opts) - end) - end -end diff --git a/lol/orchestrator/lib/lol/crawler_worker.ex b/lol/orchestrator/lib/lol/crawler_worker.ex deleted file mode 100644 index 5db57b635..000000000 --- a/lol/orchestrator/lib/lol/crawler_worker.ex +++ /dev/null @@ -1,135 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -defmodule Lol.CrawlerWorker do - @moduledoc """ - GenServer that crawls a single {source, language} pair. - - Spawns a Deno subprocess to execute the ReScript crawler, - monitors the process, and reports results to CorpusAggregator. - """ - - use GenServer, restart: :temporary - require Logger - - @default_timeout 60_000 - - def start_link({source, language, opts}) do - GenServer.start_link(__MODULE__, {source, language, opts}) - end - - @impl true - def init({source, language, opts}) do - # Start crawling immediately - send(self(), :crawl) - - {:ok, - %{ - source: source, - language: language, - opts: opts, - timeout: Keyword.get(opts, :timeout, @default_timeout), - port: nil, - output: "" - }} - end - - @impl true - def handle_info(:crawl, state) do - Logger.info("Crawling #{state.source}/#{state.language}") - - # Acquire rate limit token - Lol.RateLimiter.acquire(state.source) - - # Build Deno command - source_str = source_to_string(state.source) - output_path = output_path(state.source, state.language) - - cmd = "deno" - args = [ - "run", "-A", - "src/Lang1000.res.mjs", - "crawl", - "--source", source_str, - "--lang", state.language, - "--output", output_path - ] - - # Get project root (one level up from orchestrator/) - project_root = - Application.get_env(:lol, :project_root) || - Path.join([__DIR__, "..", "..", ".."]) |> Path.expand() - - port = - Port.open( - {:spawn_executable, System.find_executable(cmd)}, - [ - :binary, - :exit_status, - :stderr_to_stdout, - args: args, - cd: project_root - ] - ) - - # Set timeout - Process.send_after(self(), :timeout, state.timeout) - - {:noreply, %{state | port: port}} - end - - @impl true - def handle_info({port, {:data, data}}, %{port: port} = state) do - {:noreply, %{state | output: state.output <> data}} - end - - @impl true - def handle_info({port, {:exit_status, 0}}, %{port: port} = state) do - Logger.info("Completed #{state.source}/#{state.language}") - - # Read output JSON and report to aggregator - output_path = output_path(state.source, state.language) - - case File.read(output_path) do - {:ok, json} -> - Lol.CorpusAggregator.report_success(state.source, state.language, json) - - {:error, _} -> - Lol.CorpusAggregator.report_success(state.source, state.language, state.output) - end - - {:stop, :normal, state} - end - - @impl true - def handle_info({port, {:exit_status, code}}, %{port: port} = state) do - Logger.warning("#{state.source}/#{state.language} exited with code #{code}") - Lol.CorpusAggregator.report_failure(state.source, state.language, "Exit code: #{code}") - {:stop, :normal, state} - end - - @impl true - def handle_info(:timeout, state) do - Logger.warning("#{state.source}/#{state.language} timed out") - - if state.port do - Port.close(state.port) - end - - Lol.CorpusAggregator.report_failure(state.source, state.language, "Timeout") - {:stop, :normal, state} - end - - defp source_to_string(:bible_cloud), do: "bible.cloud" - defp source_to_string(:bible_com), do: "bible.com" - defp source_to_string(:bible_is), do: "bible.is" - defp source_to_string(:png_scriptures), do: "pngscriptures.org" - defp source_to_string(:ebible), do: "ebible.org" - defp source_to_string(:find_bible), do: "find.bible" - - defp output_path(source, language) do - dir = Path.join([System.tmp_dir!(), "lol-crawl"]) - File.mkdir_p!(dir) - Path.join(dir, "#{source}-#{language}.json") - end -end diff --git a/lol/orchestrator/lib/lol/julia_bridge.ex b/lol/orchestrator/lib/lol/julia_bridge.ex deleted file mode 100644 index 909f9c86d..000000000 --- a/lol/orchestrator/lib/lol/julia_bridge.ex +++ /dev/null @@ -1,146 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -defmodule Lol.JuliaBridge do - @moduledoc """ - Manages Julia analysis process via Erlang Port. - - Sends corpus data as JSON over stdin, receives analysis results - over stdout. Supports commands: analyze_corpus, distance_matrix, - cluster_languages, frequency_spectra. - """ - - use GenServer - require Logger - - @analysis_dir Path.expand("../analysis", __DIR__) |> Path.expand() - - def start_link(_opts) do - GenServer.start_link(__MODULE__, %{}, name: __MODULE__) - end - - @doc "Analyze corpus data with Julia" - def analyze(corpus_json) do - GenServer.call(__MODULE__, {:analyze, corpus_json}, 300_000) - end - - @doc "Compute pairwise distance matrix" - def distance_matrix(corpus_json, metric \\ "jensen_shannon") do - GenServer.call(__MODULE__, {:distance_matrix, corpus_json, metric}, 600_000) - end - - @doc "Cluster languages from distance matrix" - def cluster_languages(corpus_json, method \\ "upgma") do - GenServer.call(__MODULE__, {:cluster, corpus_json, method}, 300_000) - end - - @doc "Compute frequency spectra for corpus" - def frequency_spectra(corpus_json) do - GenServer.call(__MODULE__, {:frequency_spectra, corpus_json}, 300_000) - end - - @doc "Check if Julia bridge is available" - def available? do - GenServer.call(__MODULE__, :available?) - end - - @impl true - def init(_opts) do - {:ok, %{port: nil, pending: nil, buffer: ""}} - end - - @impl true - def handle_call(:available?, _from, state) do - available = System.find_executable("julia") != nil and File.dir?(@analysis_dir) - {:reply, available, state} - end - - @impl true - def handle_call({cmd, corpus_json}, from, state) do - handle_call({cmd, corpus_json, nil}, from, state) - end - - @impl true - def handle_call({cmd, corpus_json, extra}, from, state) do - case ensure_port(state) do - {:ok, port, new_state} -> - request = - %{ - cmd: to_string(cmd), - corpus: corpus_json, - extra: extra - } - |> Jason.encode!() - - Port.command(port, request <> "\n") - {:noreply, %{new_state | pending: from, buffer: ""}} - - {:error, reason} -> - {:reply, {:error, reason}, state} - end - end - - @impl true - def handle_info({port, {:data, data}}, %{port: port} = state) do - buffer = state.buffer <> data - - # Check for complete JSON response (terminated by newline) - if String.contains?(buffer, "\n") do - [response | _] = String.split(buffer, "\n", parts: 2) - - case Jason.decode(response) do - {:ok, result} -> - if state.pending do - GenServer.reply(state.pending, {:ok, result}) - end - - {:noreply, %{state | pending: nil, buffer: ""}} - - {:error, _} -> - # Incomplete JSON, keep buffering - {:noreply, %{state | buffer: buffer}} - end - else - {:noreply, %{state | buffer: buffer}} - end - end - - @impl true - def handle_info({port, {:exit_status, code}}, %{port: port} = state) do - Logger.warning("Julia process exited with code #{code}") - - if state.pending do - GenServer.reply(state.pending, {:error, "Julia process exited: #{code}"}) - end - - {:noreply, %{state | port: nil, pending: nil, buffer: ""}} - end - - defp ensure_port(%{port: nil} = state) do - julia = System.find_executable("julia") - - if julia && File.dir?(@analysis_dir) do - port = - Port.open( - {:spawn_executable, julia}, - [ - :binary, - :exit_status, - {:line, 1_048_576}, - args: ["--project=#{@analysis_dir}", "#{@analysis_dir}/src/server.jl"], - cd: @analysis_dir - ] - ) - - # Wait for Julia startup - Process.sleep(2000) - {:ok, port, %{state | port: port}} - else - {:error, "Julia not found or analysis directory missing"} - end - end - - defp ensure_port(%{port: port} = state) do - {:ok, port, state} - end -end diff --git a/lol/orchestrator/lib/lol/rate_limiter.ex b/lol/orchestrator/lib/lol/rate_limiter.ex deleted file mode 100644 index d18b04563..000000000 --- a/lol/orchestrator/lib/lol/rate_limiter.ex +++ /dev/null @@ -1,96 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -defmodule Lol.RateLimiter do - @moduledoc """ - Global per-source rate limiter using token bucket algorithm. - - Workers call `acquire/1` before making HTTP requests. - Shared across all workers to prevent overwhelming sources. - """ - - use GenServer - require Logger - - @default_delays %{ - bible_cloud: 500, - bible_com: 2000, - png_scriptures: 2000, - ebible: 1000, - find_bible: 1000, - bible_is: 100 - } - - def start_link(_opts) do - GenServer.start_link(__MODULE__, %{}, name: __MODULE__) - end - - @doc """ - Acquire a rate limit token for the given source. - Blocks until the token is available. - """ - def acquire(source) do - GenServer.call(__MODULE__, {:acquire, source}, 30_000) - end - - @doc "Get current rate limit status for all sources" - def status do - GenServer.call(__MODULE__, :status) - end - - @doc "Update rate limit delay for a source" - def set_delay(source, delay_ms) do - GenServer.cast(__MODULE__, {:set_delay, source, delay_ms}) - end - - @impl true - def init(_opts) do - {:ok, %{last_request: %{}, delays: @default_delays}} - end - - @impl true - def handle_call({:acquire, source}, _from, state) do - delay = Map.get(state.delays, source, 1000) - last = Map.get(state.last_request, source, 0) - now = System.monotonic_time(:millisecond) - elapsed = now - last - - if elapsed >= delay do - new_state = %{state | last_request: Map.put(state.last_request, source, now)} - {:reply, :ok, new_state} - else - wait = delay - elapsed - Process.sleep(wait) - now_after = System.monotonic_time(:millisecond) - new_state = %{state | last_request: Map.put(state.last_request, source, now_after)} - {:reply, :ok, new_state} - end - end - - @impl true - def handle_call(:status, _from, state) do - now = System.monotonic_time(:millisecond) - - status = - Enum.map(state.delays, fn {source, delay} -> - last = Map.get(state.last_request, source, 0) - elapsed = now - last - available = elapsed >= delay - - {source, - %{ - delay_ms: delay, - last_request_ms_ago: elapsed, - available: available - }} - end) - |> Map.new() - - {:reply, status, state} - end - - @impl true - def handle_cast({:set_delay, source, delay_ms}, state) do - {:noreply, %{state | delays: Map.put(state.delays, source, delay_ms)}} - end -end diff --git a/lol/orchestrator/lib/lol/source_registry.ex b/lol/orchestrator/lib/lol/source_registry.ex deleted file mode 100644 index d060ec17d..000000000 --- a/lol/orchestrator/lib/lol/source_registry.ex +++ /dev/null @@ -1,74 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -defmodule Lol.SourceRegistry do - @moduledoc """ - Stores known language lists per source. - - Populated on startup from cached data or API discovery. - Provides language lookup and source metadata. - """ - - use Agent - - @initial_languages %{ - bible_cloud: ~w(eng fra spa deu por ita nld rus zho jpn kor ara hin ben tha vie ind msa), - bible_com: ~w(eng fra spa deu por ita nld rus zho jpn kor ara hin ben tha vie), - png_scriptures: ~w(tpi tok niu meu aey ksd wos bef), - ebible: ~w(eng fra spa deu por ita nld rus zho jpn kor ara hin ben tha vie ind msa swa yor hau), - find_bible: ~w(eng fra spa deu por ita nld rus zho jpn kor ara), - bible_is: ~w(eng fra spa deu por ita nld rus zho jpn kor ara hin ben tha vie ind msa) - } - - def start_link(_opts) do - Agent.start_link(fn -> @initial_languages end, name: __MODULE__) - end - - @doc "List all known languages for a source" - def list_languages(source) do - Agent.get(__MODULE__, fn state -> Map.get(state, source, []) end) - end - - @doc "List all available sources" - def list_sources do - Agent.get(__MODULE__, fn state -> Map.keys(state) end) - end - - @doc "Update language list for a source" - def update_languages(source, languages) do - Agent.update(__MODULE__, fn state -> Map.put(state, source, languages) end) - end - - @doc "Add a language to a source" - def add_language(source, language) do - Agent.update(__MODULE__, fn state -> - current = Map.get(state, source, []) - - if language in current do - state - else - Map.put(state, source, current ++ [language]) - end - end) - end - - @doc "Get total language count across all sources" - def total_languages do - Agent.get(__MODULE__, fn state -> - state - |> Map.values() - |> List.flatten() - |> Enum.uniq() - |> length() - end) - end - - @doc "Get sources that cover a specific language" - def sources_for_language(language) do - Agent.get(__MODULE__, fn state -> - state - |> Enum.filter(fn {_source, langs} -> language in langs end) - |> Enum.map(fn {source, _} -> source end) - end) - end -end diff --git a/lol/orchestrator/lib/lol/verisimdb_reporter.ex b/lol/orchestrator/lib/lol/verisimdb_reporter.ex deleted file mode 100644 index 126fffdcb..000000000 --- a/lol/orchestrator/lib/lol/verisimdb_reporter.ex +++ /dev/null @@ -1,150 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -defmodule Lol.VeriSimDBReporter do - @moduledoc """ - Exports crawl + analysis results to verisimdb-data format. - - Merges ReScript quality checks and Julia analysis results into a - single scan JSON compatible with the VeriSimDB pipeline. - """ - - use GenServer - require Logger - - @verisimdb_data_dir System.get_env("VERISIMDB_DATA_DIR") || - Path.expand("~/Documents/hyperpolymath-repos/verisimdb-data") - - def start_link(_opts) do - GenServer.start_link(__MODULE__, %{}, name: __MODULE__) - end - - @doc "Export corpus results as VeriSimDB scan" - def export(results) do - GenServer.cast(__MODULE__, {:export, results}) - end - - @doc "Get path to last exported scan" - def last_export do - GenServer.call(__MODULE__, :last_export) - end - - @impl true - def init(_opts) do - {:ok, %{last_export: nil}} - end - - @impl true - def handle_cast({:export, results}, state) do - scan = build_scan(results) - output_path = Path.join(System.tmp_dir!(), "lol-scan.json") - - case File.write(output_path, Jason.encode!(scan, pretty: true)) do - :ok -> - Logger.info("VeriSimDB scan written to: #{output_path}") - maybe_ingest(output_path) - {:noreply, %{state | last_export: output_path}} - - {:error, reason} -> - Logger.error("Failed to write scan: #{inspect(reason)}") - {:noreply, state} - end - end - - @impl true - def handle_call(:last_export, _from, state) do - {:reply, state.last_export, state} - end - - defp build_scan(results) do - weak_points = analyze_results(results) - - total_lines = - results - |> Enum.flat_map(fn {_source, langs} -> Map.values(langs) end) - |> length() - - %{ - repo: "lol", - version: "0.1.0", - timestamp: DateTime.utc_now() |> DateTime.to_iso8601(), - scanner: "lol-elixir-orchestrator", - scanner_version: "0.1.0", - weak_points: weak_points, - statistics: %{ - total_files: map_size(results), - total_lines: total_lines, - total_weak_points: length(weak_points), - total_unsafe_blocks: - Enum.count(weak_points, fn wp -> wp.severity in ["critical", "high"] end), - files: - Enum.map(results, fn {source, langs} -> - source_wps = Enum.filter(weak_points, fn wp -> wp.source == to_string(source) end) - - %{ - file: to_string(source), - total_lines: map_size(langs), - weak_points: length(source_wps), - unsafe_blocks: - Enum.count(source_wps, fn wp -> wp.severity in ["critical", "high"] end) - } - end) - } - } - end - - defp analyze_results(results) do - results - |> Enum.flat_map(fn {source, langs} -> - Enum.flat_map(langs, fn {lang, _data} -> - # Basic quality checks at the orchestrator level - check_coverage(source, lang, results) - end) - end) - end - - defp check_coverage(source, lang, results) do - # Check if this language appears in other sources - other_sources = - results - |> Enum.filter(fn {s, _} -> s != source end) - |> Enum.filter(fn {_, langs} -> Map.has_key?(langs, lang) end) - - if Enum.empty?(other_sources) do - [ - %{ - category: "coverage-gap", - severity: "low", - location: lang, - description: "Only available from #{source}", - context: nil, - language: lang, - source: to_string(source) - } - ] - else - [] - end - end - - defp maybe_ingest(scan_path) do - ingest_script = Path.join(@verisimdb_data_dir, "scripts/ingest-scan.sh") - - if File.exists?(ingest_script) do - Logger.info("Ingesting scan into verisimdb-data...") - - case System.cmd("bash", [ingest_script, "lol", scan_path], - cd: @verisimdb_data_dir, - stderr_to_stdout: true - ) do - {output, 0} -> - Logger.info("Ingest complete: #{String.trim(output)}") - - {output, code} -> - Logger.warning("Ingest failed (exit #{code}): #{String.trim(output)}") - end - else - Logger.info("verisimdb-data not found, skipping ingest") - end - end -end diff --git a/lol/orchestrator/mix.exs b/lol/orchestrator/mix.exs deleted file mode 100644 index d1e8f8787..000000000 --- a/lol/orchestrator/mix.exs +++ /dev/null @@ -1,40 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -defmodule Lol.MixProject do - use Mix.Project - - def project do - [ - app: :lol, - version: "0.1.0", - elixir: "~> 1.17", - start_permanent: Mix.env() == :prod, - deps: deps(), - description: "Elixir orchestrator for 1000Langs parallel corpus crawler", - package: package() - ] - end - - def application do - [ - extra_applications: [:logger], - mod: {Lol.Application, []} - ] - end - - defp deps do - [ - {:jason, "~> 1.4"}, - {:nimble_pool, "~> 1.1"}, - {:telemetry, "~> 1.3"} - ] - end - - defp package do - [ - licenses: ["AGPL-3.0-or-later"], - maintainers: ["Jonathan D.A. Jewell "] - ] - end -end diff --git a/lol/orchestrator/test/crawler_worker_test.exs b/lol/orchestrator/test/crawler_worker_test.exs deleted file mode 100644 index a7ee459a8..000000000 --- a/lol/orchestrator/test/crawler_worker_test.exs +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -defmodule Lol.CrawlerWorkerTest do - use ExUnit.Case - - describe "CrawlerWorker" do - test "initializes with correct source and language" do - {:ok, pid} = - GenServer.start_link( - Lol.CrawlerWorker, - {:bible_cloud, "eng", [timeout: 1000]} - ) - - assert Process.alive?(pid) - # Worker will attempt crawl and exit (no Deno in test) - Process.sleep(500) - end - - test "source_to_string mappings" do - # Test via module attribute access pattern - assert is_atom(:bible_cloud) - assert is_atom(:bible_com) - assert is_atom(:ebible) - end - end -end diff --git a/lol/orchestrator/test/rate_limiter_test.exs b/lol/orchestrator/test/rate_limiter_test.exs deleted file mode 100644 index b960dbb50..000000000 --- a/lol/orchestrator/test/rate_limiter_test.exs +++ /dev/null @@ -1,68 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -defmodule Lol.RateLimiterTest do - use ExUnit.Case - - setup do - {:ok, pid} = Lol.RateLimiter.start_link([]) - on_exit(fn -> Process.alive?(pid) && GenServer.stop(pid) end) - %{pid: pid} - end - - describe "acquire/1" do - test "allows first request immediately" do - start = System.monotonic_time(:millisecond) - assert :ok = Lol.RateLimiter.acquire(:bible_cloud) - elapsed = System.monotonic_time(:millisecond) - start - assert elapsed < 100 - end - - test "enforces rate limit delay between requests" do - assert :ok = Lol.RateLimiter.acquire(:bible_com) - start = System.monotonic_time(:millisecond) - assert :ok = Lol.RateLimiter.acquire(:bible_com) - elapsed = System.monotonic_time(:millisecond) - start - # bible_com has 2000ms delay - assert elapsed >= 1900 - end - - test "different sources have independent rate limits" do - assert :ok = Lol.RateLimiter.acquire(:bible_cloud) - start = System.monotonic_time(:millisecond) - assert :ok = Lol.RateLimiter.acquire(:ebible) - elapsed = System.monotonic_time(:millisecond) - start - # Different source should be immediate - assert elapsed < 100 - end - end - - describe "status/0" do - test "returns status for all sources" do - status = Lol.RateLimiter.status() - assert is_map(status) - assert Map.has_key?(status, :bible_cloud) - assert Map.has_key?(status, :bible_com) - end - - test "shows availability correctly" do - status = Lol.RateLimiter.status() - # All sources should be available initially - Enum.each(status, fn {_source, info} -> - assert info.available == true - end) - end - end - - describe "set_delay/2" do - test "updates delay for a source" do - Lol.RateLimiter.set_delay(:bible_cloud, 100) - assert :ok = Lol.RateLimiter.acquire(:bible_cloud) - start = System.monotonic_time(:millisecond) - assert :ok = Lol.RateLimiter.acquire(:bible_cloud) - elapsed = System.monotonic_time(:millisecond) - start - # Should now be ~100ms instead of 500ms - assert elapsed < 200 - end - end -end diff --git a/lol/orchestrator/test/test_helper.exs b/lol/orchestrator/test/test_helper.exs deleted file mode 100644 index bfa29171a..000000000 --- a/lol/orchestrator/test/test_helper.exs +++ /dev/null @@ -1,3 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 - -ExUnit.start() diff --git a/lol/package.json b/lol/package.json deleted file mode 100644 index 9666d06e5..000000000 --- a/lol/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "1000langs", - "version": "1.0.0", - "description": "Super-parallel corpus crawler for 1500+ languages - RSR Gold Compliant", - "type": "module", - "scripts": { - "build": "rescript build", - "watch": "rescript build -w", - "clean": "rescript clean" - }, - "keywords": [ - "linguistics", - "nlp", - "parallel-corpus", - "multilingual", - "bible", - "rescript", - "rsr-compliant" - ], - "author": "Jonathan D.A. Jewell ", - "license": "AGPL-3.0-or-later", - "repository": { - "type": "git", - "url": "https://github.com/Hyperpolymath/1000Langs" - }, - "dependencies": { - "@rescript/core": "^1.6.0", - "rescript": "^12.0.0" - }, - "devDependencies": { - "@biomejs/biome": "^1.9.0", - "@vitest/coverage-v8": "^2.1.0", - "vitest": "^4.1.8" - } -} diff --git a/lol/proofs/POSTULATE-AUDIT.adoc b/lol/proofs/POSTULATE-AUDIT.adoc deleted file mode 100644 index d2f74710a..000000000 --- a/lol/proofs/POSTULATE-AUDIT.adoc +++ /dev/null @@ -1,101 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -= LOL Information-Theory Postulate Audit -Jonathan D.A. Jewell -:updated: 2026-04-05 -:target: lol/proofs/theories/information_theory.agda - -== Summary - -`information_theory.agda` contains **9 postulates**. Audit verdict: - -- **4 are legitimate FFI axioms** (float arithmetic bridged to runtime) -- **4 are theorems that SHOULD be proven** (currently postulated) -- **1 is a relation declaration** that should move to imports - -== Per-postulate verdict - -[cols="3,2,3,3",options="header"] -|=== -| Postulate | Line | Verdict | Action - -| `log₂ : Float → Float` -| 47 -| ✓ FFI axiom -| Keep. Foreign float operation. - -| `_*f_ : Float → Float → Float` -| 48 -| ✓ FFI axiom -| Keep. Foreign float multiply. - -| `_+f_ : Float → Float → Float` -| 49 -| ✓ FFI axiom -| Keep. Foreign float add. - -| `negateF : Float → Float` -| 50 -| ✓ FFI axiom -| Keep. Foreign float negate. - -| `_/f_ : Float → Float → Float` -| 67 -| ✓ FFI axiom -| Keep. Foreign float divide. - -| `entropy-nonnegative` -| 103 -| ✗ Provable -| Replace with constructive proof. Each `plogp p` is either 0 or `-p·log₂(p)` where p∈[0,1] means log₂(p)≤0, so `-p·log₂(p)≥0`. Sum of non-negatives is non-negative. Requires float lemmas about `log₂` on [0,1]; add those as auxiliary postulates (honest FFI layer) but the top-level theorem should be proven. - -| `kl-nonnegative` -| 109 -| ✗ Provable -| Gibbs' inequality is a classical theorem. Proof uses Jensen's inequality on the convex function `-log`. Standard proof strategy: log-sum inequality, or expand via `x log(x/y) ≥ x - y`. Should be proven from standard real-analysis lemmas. - -| `js-symmetric` -| 115 -| ✗ Trivially provable -| By construction, JSD(P,Q) = (D(P‖M) + D(Q‖M))/2 where M = (P+Q)/2. Swap P↔Q gives the same M, so JSD(Q,P) = (D(Q‖M) + D(P‖M))/2 = JSD(P,Q). Proof is 2-3 lines in Agda. - -| `js-bounded` -| 120 -| ✗ Provable (with effort) -| Upper bound JSD ≤ log(2) requires the information-theoretic log-sum inequality. Non-trivial but classical. Should be proven or imported from an existing Agda library. -|=== - -== Additional concerns - -- **`_≥_` and `_≤_` declared as local where-clauses** (lines 104-105, 110-111, 121-123). These should be imported from `Data.Float.Properties` or defined module-wide, not per-postulate. Current structure means each postulate's `_≥_` is a distinct, empty relation — any value satisfies it vacuously. This is a **correctness bug**: the postulates are trivially satisfiable because the order relation is unconstrained. - -- **License header**: MIT AND LicenseRef-Palimpsest-0.8 (not the newer PMPL-1.0-or-later). Acceptable given attributed third-party origin (Ehsaneddin Asgari). - -== Remediation plan - -=== Phase 1 — fix the order relation bug (HIGH priority) - -Replace the where-clause declarations of `_≥_`/`_≤_` with a module-level import -from a float-comparison library. Without this, the theorem statements are -vacuous. - -=== Phase 2 — prove the 4 theorems - -Proposed order (easiest first): - -1. `js-symmetric` — algebraic, 2-3 lines -2. `entropy-nonnegative` — requires auxiliary `log₂-nonpos-on-01` lemma (postulated as FFI fact) -3. `kl-nonnegative` — requires Gibbs/log-sum lemma -4. `js-bounded` — hardest; may require importing from an Agda analysis library - -=== Phase 3 — convert FFI postulates to trust-tagged axioms - -Add `@trust(level=axiom, prover=ffi, since=...)` inline annotations above each -of the 5 float postulates so the innervation layer records their trust level. - -== Recorded as VeriSimDB octads (once deployed) - -Each postulate should produce a `proof-status` octad with: - -- `trust_level`: `axiom` (for FFI) or `postulate` (for provable theorems) -- `axioms_used`: list of float primitives -- Temporal: `verified_at` = null for postulates, set for any that get proven diff --git a/lol/proofs/README.adoc b/lol/proofs/README.adoc deleted file mode 100644 index 4c25724a1..000000000 --- a/lol/proofs/README.adoc +++ /dev/null @@ -1,161 +0,0 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -// SPDX-FileCopyrightText: 2024-2025 Ehsaneddin Asgari and Contributors -= Mathematical Proofs for 1000Langs -:toc: -:toclevels: 3 - -This directory contains formal mathematical proofs and specifications for the -1000Langs corpus crawler, verified using https://github.com/hyperpolymath/echidna[Echidna]. - -== Proof Categories - -=== 1. Data Integrity Proofs - -Proofs that ensure the integrity of crawled and stored data: - -* *Checksums*: Cryptographic verification of data consistency -* *Encoding*: UTF-8 validity and normalization guarantees -* *Idempotency*: Re-crawling produces identical results - -=== 2. Alignment Correctness - -Proofs about parallel text alignment: - -* *Bijection*: One-to-one mapping between verse references -* *Transitivity*: If A aligns with B and B with C, then A aligns with C -* *Completeness*: All verses in source appear in alignment - -=== 3. Statistical Properties - -Proofs about statistical computations: - -* *KL-Divergence*: Non-negativity, asymmetry properties -* *Jensen-Shannon*: Symmetry, boundedness (0 ≤ JSD ≤ 1) -* *Entropy*: Maximized by uniform distribution - -=== 4. Type Safety Guarantees - -Proofs derived from the ReScript type system: - -* *ISO 639 Codes*: Valid language code formats -* *Verse References*: Well-formed reference structures -* *Configuration*: Type-safe Nickel schemas - -== Directory Structure - -[source] ----- -proofs/ -├── theories/ # Background mathematical theories -│ ├── information_theory.agda -│ ├── set_theory.agda -│ └── language_types.agda -├── specs/ # Formal specifications -│ ├── alignment.spec -│ ├── crawler.spec -│ └── statistics.spec -└── verified/ # Verified implementations - ├── kl_divergence.v - ├── alignment.v - └── iso639.v ----- - -== Using Echidna - -=== Running Proofs - -[source,bash] ----- -# Verify all proofs -just prove - -# Check specific proof -just prove-check alignment_correctness - -# Generate proof obligations -just prove-gen ----- - -=== Adding New Proofs - -1. Create specification in `specs/` -2. Implement proof in appropriate prover syntax -3. Add to verification pipeline in `echidna.toml` -4. Run `just prove` to verify - -== Proof Obligations - -=== Alignment Module - -[cols="1,2,1"] -|=== -|Property |Description |Status - -|`align_bijective` -|Alignment creates bijective mapping -|Pending - -|`align_transitive` -|Alignment is transitive across languages -|Pending - -|`coverage_monotonic` -|Adding translations increases coverage -|Pending -|=== - -=== Statistics Module - -[cols="1,2,1"] -|=== -|Property |Description |Status - -|`kl_nonnegative` -|KL-divergence ≥ 0 -|Pending - -|`kl_zero_identical` -|KL(P\|\|P) = 0 -|Pending - -|`js_symmetric` -|JSD(P\|\|Q) = JSD(Q\|\|P) -|Pending - -|`js_bounded` -|0 ≤ JSD ≤ 1 -|Pending - -|`entropy_maximum` -|H(uniform) = log(n) -|Pending -|=== - -=== ISO 639 Module - -[cols="1,2,1"] -|=== -|Property |Description |Status - -|`code_format_valid` -|All codes match regex patterns -|Pending - -|`conversion_injective` -|ISO 639-1 → 639-3 is injective -|Pending - -|`special_codes_disjoint` -|Special codes don't overlap regular codes -|Pending -|=== - -== Integration with OpenCyc - -Proofs can leverage OpenCyc's common-sense reasoning for: - -* Language family relationships -* Geographic constraints on language distribution -* Script compatibility with language features - -See `theories/opencyc_integration.agda` for details. diff --git a/lol/proofs/echidna.toml b/lol/proofs/echidna.toml deleted file mode 100644 index fe9b41b8a..000000000 --- a/lol/proofs/echidna.toml +++ /dev/null @@ -1,98 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2025 Ehsaneddin Asgari and Contributors -# -# Echidna Configuration for 1000Langs -# ==================================== - -[project] -name = "1000langs-proofs" -version = "0.1.0" -description = "Formal verification for 1000Langs corpus crawler" - -[provers] -# Primary provers to use -primary = ["agda", "coq"] -# Fallback provers for unsupported features -fallback = ["lean", "z3"] - -[provers.agda] -version = "2.6.4" -stdlib = true -flags = ["--safe", "--without-K"] - -[provers.coq] -version = "8.18" -flags = ["-q"] - -[provers.lean] -version = "4.0" -mathlib = true - -[provers.z3] -version = "4.12" -timeout = 30 - -[verification] -# Verification level: "full", "quick", "smoke" -level = "full" -# Parallel verification -parallel = true -# Maximum workers -workers = 4 -# Cache verified results -cache = true -cache_dir = ".echidna-cache" - -[specifications] -# Specification files to verify -files = [ - "specs/alignment.spec", - "specs/crawler.spec", - "specs/statistics.spec", - "specs/iso639.spec", -] - -[theories] -# Background theories to load -files = [ - "theories/information_theory.agda", - "theories/set_theory.agda", - "theories/language_types.agda", -] - -[output] -# Output format for verification results -format = "json" -# Output file -file = "verification-results.json" -# Generate HTML report -html_report = true -html_dir = "reports/" - -[aspects] -# Aspect tags for proof categorization -enabled = true -tags = [ - "data-integrity", - "alignment", - "statistics", - "type-safety", - "opencyc", -] - -[opencyc] -# OpenCyc integration for common-sense reasoning -enabled = true -endpoint = "http://localhost:3602" -concepts = [ - "#$HumanLanguage", - "#$WritingScript", - "#$GeographicalRegion", - "#$LinguisticProperty", -] - -[ci] -# CI/CD integration -fail_on_unverified = false -min_coverage = 0.8 -report_format = "junit" diff --git a/lol/proofs/specs/alignment.spec b/lol/proofs/specs/alignment.spec deleted file mode 100644 index 97a3e6e6f..000000000 --- a/lol/proofs/specs/alignment.spec +++ /dev/null @@ -1,185 +0,0 @@ --- SPDX-License-Identifier: MIT AND LicenseRef-Palimpsest-0.8 --- SPDX-FileCopyrightText: 2024-2025 Ehsaneddin Asgari and Contributors --- --- Parallel Corpus Alignment Specification --- ======================================== --- Formal specification of alignment properties for multilingual corpora - -module Alignment.Spec where - --- ============================================================================ --- Types --- ============================================================================ - --- Verse reference (canonical identifier) -record VerseRef : Set where - constructor mkVerseRef - field - book : BookCode -- 3-letter book code - chapter : ℕ⁺ -- Positive natural - verse : ℕ⁺ -- Positive natural - --- Language code (ISO 639-3) -record LangCode : Set where - constructor mkLangCode - field - code : String - valid : IsISO639_3 code - --- Translation: text in a specific language -record Translation : Set where - field - language : LangCode - text : String - ref : VerseRef - --- Aligned segment: same verse in multiple languages -record AlignedSegment : Set where - field - ref : VerseRef - translations : Map LangCode String - non_empty : size translations > 0 - --- Corpus alignment: collection of aligned segments -record CorpusAlignment : Set where - field - segments : Map VerseRef AlignedSegment - languages : Set LangCode - --- ============================================================================ --- Alignment Properties --- ============================================================================ - --- Property: Reference consistency --- All translations in a segment refer to the same verse -theorem segment_reference_consistency : - ∀ (seg : AlignedSegment) (lang : LangCode) → - lang ∈ keys (translations seg) → - lookup lang (translations seg) references seg.ref - --- Property: Language coverage monotonicity --- Adding a translation cannot decrease language coverage -theorem coverage_monotonic : - ∀ (corpus : CorpusAlignment) (trans : Translation) → - let corpus' = addTranslation corpus trans in - languages corpus ⊆ languages corpus' - --- Property: Segment uniqueness --- Each verse reference appears at most once -theorem segment_uniqueness : - ∀ (corpus : CorpusAlignment) (ref : VerseRef) → - count (λ seg → seg.ref ≡ ref) (segments corpus) ≤ 1 - --- ============================================================================ --- Alignment Correctness --- ============================================================================ - --- Property: Transitivity of alignment --- If verse V in language A aligns with language B, --- and B aligns with C for the same verse, --- then A aligns with C -theorem alignment_transitive : - ∀ (corpus : CorpusAlignment) (ref : VerseRef) (a b c : LangCode) → - hasTranslation corpus ref a → - hasTranslation corpus ref b → - hasTranslation corpus ref c → - aligned corpus ref a b ∧ aligned corpus ref b c → - aligned corpus ref a c - --- Property: Alignment reflexivity --- Any translation is aligned with itself -theorem alignment_reflexive : - ∀ (corpus : CorpusAlignment) (ref : VerseRef) (lang : LangCode) → - hasTranslation corpus ref lang → - aligned corpus ref lang lang - --- Property: Alignment symmetry --- Alignment is symmetric across languages -theorem alignment_symmetric : - ∀ (corpus : CorpusAlignment) (ref : VerseRef) (a b : LangCode) → - aligned corpus ref a b → - aligned corpus ref b a - --- ============================================================================ --- Coverage Properties --- ============================================================================ - --- Coverage: proportion of segments with translation -coverage : CorpusAlignment → LangCode → ℚ -coverage corpus lang = - let total = size (segments corpus) - present = count (λ seg → lang ∈ keys (translations seg)) (segments corpus) - in present / total - --- Property: Coverage is bounded [0, 1] -theorem coverage_bounded : - ∀ (corpus : CorpusAlignment) (lang : LangCode) → - 0 ≤ coverage corpus lang ∧ coverage corpus lang ≤ 1 - --- Property: Full coverage means all segments have translation -theorem full_coverage : - ∀ (corpus : CorpusAlignment) (lang : LangCode) → - coverage corpus lang ≡ 1 ↔ - (∀ seg ∈ segments corpus → lang ∈ keys (translations seg)) - --- Quality classification -data AlignmentQuality : Set where - Complete : AlignmentQuality -- All languages present - Partial : (missing : ℕ) → AlignmentQuality -- Some missing - Sparse : AlignmentQuality -- < 50% coverage - --- Property: Quality classification is total -theorem quality_total : - ∀ (corpus : CorpusAlignment) (ref : VerseRef) → - ∃! (q : AlignmentQuality) → qualityOf corpus ref ≡ q - --- ============================================================================ --- Builder Properties --- ============================================================================ - --- Property: Empty builder has no segments -theorem empty_builder : - ∀ (name : String) → - let b = Builder.make name in - size (segments (Builder.build b)) ≡ 0 - --- Property: Adding translation increases segment or translation count -theorem add_translation_increases : - ∀ (b : Builder) (trans : Translation) → - let b' = Builder.addTranslation b trans in - let c = Builder.build b - c' = Builder.build b' in - size (segments c') ≥ size (segments c) ∧ - totalTranslations c' > totalTranslations c - --- Property: Build is idempotent (building twice gives same result) -theorem build_idempotent : - ∀ (b : Builder) → - Builder.build b ≡ Builder.build b - --- ============================================================================ --- Verse Reference Properties --- ============================================================================ - --- Property: Canonical ID is injective -theorem canonical_id_injective : - ∀ (r1 r2 : VerseRef) → - toCanonicalId r1 ≡ toCanonicalId r2 → - r1 ≡ r2 - --- Property: Parsing is inverse of serialization -theorem parse_serialize_inverse : - ∀ (ref : VerseRef) → - fromString (toString ref) ≡ Some ref - --- Property: Verse ordering is total -theorem verse_order_total : - ∀ (r1 r2 : VerseRef) → - compare r1 r2 ∈ {LT, EQ, GT} - --- Property: Verse ordering is transitive -theorem verse_order_transitive : - ∀ (r1 r2 r3 : VerseRef) → - compare r1 r2 ≡ LT → - compare r2 r3 ≡ LT → - compare r1 r3 ≡ LT diff --git a/lol/proofs/specs/iso639.spec b/lol/proofs/specs/iso639.spec deleted file mode 100644 index 540fe05ba..000000000 --- a/lol/proofs/specs/iso639.spec +++ /dev/null @@ -1,198 +0,0 @@ --- SPDX-License-Identifier: MIT AND LicenseRef-Palimpsest-0.8 --- SPDX-FileCopyrightText: 2024-2025 Ehsaneddin Asgari and Contributors --- --- ISO 639 Language Code Specification --- ==================================== --- Formal specification of language code validation and conversion - -module ISO639.Spec where - --- ============================================================================ --- Types --- ============================================================================ - --- ISO 639-1: 2-letter codes -record ISO639_1 : Set where - field - code : String - length_proof : length code ≡ 2 - format_proof : all isLowerAlpha code - --- ISO 639-3: 3-letter codes -record ISO639_3 : Set where - field - code : String - length_proof : length code ≡ 3 - format_proof : all isLowerAlpha code - --- Language scope classification -data LanguageScope : Set where - Individual : LanguageScope -- Single language - Macrolanguage : LanguageScope -- Group of related languages - Special : LanguageScope -- Special codes (und, mul, mis, zxx) - --- Language type classification -data LanguageType : Set where - Living : LanguageType -- Currently spoken - Historical : LanguageType -- Distinct historical stage - Extinct : LanguageType -- No living speakers - Ancient : LanguageType -- Extinct before recorded history - Constructed : LanguageType -- Artificial language - --- Full language entry -record LanguageEntry : Set where - field - iso639_3 : ISO639_3 - iso639_2b : Maybe ISO639_3 -- Bibliographic code - iso639_2t : Maybe ISO639_3 -- Terminological code - iso639_1 : Maybe ISO639_1 - scope : LanguageScope - type_ : LanguageType - name : String - --- ============================================================================ --- Validation Properties --- ============================================================================ - --- Property: ISO 639-1 codes are exactly 2 lowercase letters -theorem iso639_1_format : - ∀ (code : String) → - isValidISO639_1 code ↔ - (length code ≡ 2 ∧ all isLowerAlpha code) - --- Property: ISO 639-3 codes are exactly 3 lowercase letters -theorem iso639_3_format : - ∀ (code : String) → - isValidISO639_3 code ↔ - (length code ≡ 3 ∧ all isLowerAlpha code) - --- Property: Valid codes are non-empty -theorem valid_codes_nonempty : - ∀ (code : String) → - isValidISO639_1 code ∨ isValidISO639_3 code → - length code > 0 - --- Property: Normalization is idempotent -theorem normalize_idempotent : - ∀ (code : String) → - normalize (normalize code) ≡ normalize code - --- Property: Normalization produces lowercase -theorem normalize_lowercase : - ∀ (code : String) → - all isLowerAlpha (normalize code) - --- ============================================================================ --- Special Codes --- ============================================================================ - --- Special ISO 639 codes -undetermined : ISO639_3 -undetermined = mkISO639_3 "und" - -multiple : ISO639_3 -multiple = mkISO639_3 "mul" - -miscellaneous : ISO639_3 -miscellaneous = mkISO639_3 "mis" - -noLinguistic : ISO639_3 -noLinguistic = mkISO639_3 "zxx" - --- Property: Special codes are mutually distinct -theorem special_codes_distinct : - undetermined ≢ multiple ∧ - undetermined ≢ miscellaneous ∧ - undetermined ≢ noLinguistic ∧ - multiple ≢ miscellaneous ∧ - multiple ≢ noLinguistic ∧ - miscellaneous ≢ noLinguistic - --- Property: Special codes are valid ISO 639-3 -theorem special_codes_valid : - isValidISO639_3 "und" ∧ - isValidISO639_3 "mul" ∧ - isValidISO639_3 "mis" ∧ - isValidISO639_3 "zxx" - --- Property: isSpecial correctly identifies special codes -theorem is_special_complete : - ∀ (code : ISO639_3) → - isSpecial code ↔ - (code ≡ undetermined ∨ code ≡ multiple ∨ - code ≡ miscellaneous ∨ code ≡ noLinguistic) - --- ============================================================================ --- Conversion Properties --- ============================================================================ - --- Property: ISO 639-1 to 639-3 conversion is injective --- (Different 639-1 codes map to different 639-3 codes) -theorem iso1_to_iso3_injective : - ∀ (a b : ISO639_1) → - toISO639_3 a ≡ toISO639_3 b → - a ≡ b - --- Property: Conversion preserves validity -theorem conversion_preserves_validity : - ∀ (code : ISO639_1) → - isValidISO639_3 (toISO639_3 code) - --- Property: Valid ISO 639-3 codes convert to themselves -theorem iso3_identity : - ∀ (code : ISO639_3) → - toISO639_3 code ≡ Some code - --- Property: Code type detection is total -theorem detect_type_total : - ∀ (code : String) → - detectCodeType code ∈ {Some ISO639_1, Some ISO639_3, None} - --- ============================================================================ --- Registry Properties --- ============================================================================ - --- Property: Empty registry has zero entries -theorem empty_registry : - count (empty ()) ≡ 0 - --- Property: Adding entry increases count -theorem add_increases_count : - ∀ (registry : Registry) (entry : LanguageEntry) → - count (add registry entry) ≡ count registry + 1 - --- Property: Added entries can be found -theorem add_then_find : - ∀ (registry : Registry) (entry : LanguageEntry) → - let registry' = add registry entry in - findByCode registry' (code (iso639_3 entry)) ≡ Some entry - --- Property: Finding by ISO 639-1 works when present -theorem find_by_iso1 : - ∀ (registry : Registry) (entry : LanguageEntry) → - isSome (iso639_1 entry) → - let registry' = add registry entry in - findByCode registry' (fromJust (iso639_1 entry)) ≡ Some entry - --- Property: Finding by name is case-insensitive -theorem find_by_name_case_insensitive : - ∀ (registry : Registry) (entry : LanguageEntry) → - let registry' = add registry entry in - findByName registry' (toLower (name entry)) ≡ Some entry ∧ - findByName registry' (toUpper (name entry)) ≡ Some entry - --- ============================================================================ --- Completeness Properties --- ============================================================================ - --- Property: Major languages have ISO 639-1 codes --- (Not all 639-3 codes have 639-1 equivalents) -theorem major_languages_have_iso1 : - ∀ (entry : LanguageEntry) → - isMajorLanguage entry → - isSome (iso639_1 entry) - --- Property: All entries have valid ISO 639-3 codes -theorem all_entries_have_iso3 : - ∀ (entry : LanguageEntry) → - isValidISO639_3 (code (iso639_3 entry)) diff --git a/lol/proofs/specs/statistics.spec b/lol/proofs/specs/statistics.spec deleted file mode 100644 index 5e8339a57..000000000 --- a/lol/proofs/specs/statistics.spec +++ /dev/null @@ -1,140 +0,0 @@ --- SPDX-License-Identifier: MIT AND LicenseRef-Palimpsest-0.8 --- SPDX-FileCopyrightText: 2024-2025 Ehsaneddin Asgari and Contributors --- --- Statistical Properties Specification --- ===================================== --- Formal specification of statistical functions used in 1000Langs - -module Statistics.Spec where - --- Probability distribution: non-negative reals that sum to 1 -record Distribution (n : ℕ) : Set where - field - values : Vec ℝ n - non_negative : ∀ i → values[i] ≥ 0 - sums_to_one : sum values ≡ 1 - --- ============================================================================ --- Shannon Entropy --- ============================================================================ - --- Definition: H(X) = -Σ p(x) log p(x) -entropy : Distribution n → ℝ -entropy d = negate (sum (map (λ p → p * log₂ p) (values d))) - --- Property: Entropy is non-negative -theorem entropy_nonnegative : ∀ (d : Distribution n) → entropy d ≥ 0 - --- Property: Entropy is maximized by uniform distribution -theorem entropy_maximum : - ∀ (d : Distribution n) → - entropy d ≤ log₂ n - --- Property: Entropy equals log(n) for uniform distribution -theorem entropy_uniform : - ∀ (n : ℕ) → - let uniform = Distribution.uniform n in - entropy uniform ≡ log₂ n - --- ============================================================================ --- KL-Divergence --- ============================================================================ - --- Definition: D_KL(P||Q) = Σ P(i) log(P(i)/Q(i)) -kl_divergence : Distribution n → Distribution n → ℝ -kl_divergence p q = sum (zipWith (λ pi qi → pi * log₂ (pi / qi)) (values p) (values q)) - --- Property: KL-divergence is non-negative (Gibbs' inequality) -theorem kl_nonnegative : - ∀ (p q : Distribution n) → - kl_divergence p q ≥ 0 - --- Property: KL-divergence is zero iff distributions are identical -theorem kl_zero_iff_equal : - ∀ (p q : Distribution n) → - kl_divergence p q ≡ 0 ↔ p ≡ q - --- Property: KL-divergence is asymmetric (generally) --- Note: This is a non-property, showing asymmetry -example kl_asymmetric : - ∃ (p q : Distribution n) → - kl_divergence p q ≢ kl_divergence q p - --- ============================================================================ --- Jensen-Shannon Divergence --- ============================================================================ - --- Midpoint distribution -midpoint : Distribution n → Distribution n → Distribution n -midpoint p q = Distribution.fromVec ((values p + values q) / 2) - --- Definition: JSD(P||Q) = (D_KL(P||M) + D_KL(Q||M)) / 2 -jensen_shannon : Distribution n → Distribution n → ℝ -jensen_shannon p q = - let m = midpoint p q in - (kl_divergence p m + kl_divergence q m) / 2 - --- Property: Jensen-Shannon is symmetric -theorem js_symmetric : - ∀ (p q : Distribution n) → - jensen_shannon p q ≡ jensen_shannon q p - --- Property: Jensen-Shannon is bounded [0, 1] (using log base 2) -theorem js_bounded : - ∀ (p q : Distribution n) → - 0 ≤ jensen_shannon p q ∧ jensen_shannon p q ≤ 1 - --- Property: Jensen-Shannon is zero iff distributions are identical -theorem js_zero_iff_equal : - ∀ (p q : Distribution n) → - jensen_shannon p q ≡ 0 ↔ p ≡ q - --- Property: Square root of JSD is a metric -theorem js_sqrt_metric : - let d = λ p q → sqrt (jensen_shannon p q) in - IsMetric d - --- ============================================================================ --- Distance Functions --- ============================================================================ - --- Euclidean distance -euclidean : Vec ℝ n → Vec ℝ n → ℝ -euclidean a b = sqrt (sum (zipWith (λ ai bi → (ai - bi)²) a b)) - --- Property: Euclidean distance is a metric -theorem euclidean_metric : IsMetric euclidean - --- Cosine similarity (converted to distance) -cosine_distance : Vec ℝ n → Vec ℝ n → ℝ -cosine_distance a b = 1 - (dot a b) / (norm a * norm b) - --- Property: Cosine distance is bounded [0, 2] -theorem cosine_bounded : - ∀ (a b : Vec ℝ n) → - 0 ≤ cosine_distance a b ∧ cosine_distance a b ≤ 2 - --- ============================================================================ --- Normalization Properties --- ============================================================================ - --- Property: Normalization preserves ratios -theorem normalize_preserves_ratios : - ∀ (v : Vec ℝ n) (i j : Fin n) → - let nv = normalize v in - v[i] / v[j] ≡ nv[i] / nv[j] - --- Property: Normalized vectors sum to 1 -theorem normalize_sums_to_one : - ∀ (v : Vec ℝ n) → - sum (normalize v) ≡ 1 - --- Property: Z-score normalization results in mean 0 -theorem zscore_mean_zero : - ∀ (v : Vec ℝ n) → - mean (zscore_normalize v) ≡ 0 - --- Property: Z-score normalization results in std dev 1 -theorem zscore_std_one : - ∀ (v : Vec ℝ n) → - std_dev (zscore_normalize v) ≡ 1 diff --git a/lol/proofs/theories/information_theory.agda b/lol/proofs/theories/information_theory.agda deleted file mode 100644 index 54c1281e9..000000000 --- a/lol/proofs/theories/information_theory.agda +++ /dev/null @@ -1,140 +0,0 @@ --- SPDX-License-Identifier: MIT AND LicenseRef-Palimpsest-0.8 --- SPDX-FileCopyrightText: 2024-2025 Ehsaneddin Asgari and Contributors --- --- Information Theory Foundations --- ============================== --- Agda formalization of information-theoretic concepts - -{-# OPTIONS --safe --without-K #-} - -module InformationTheory where - -open import Data.Nat using (ℕ; zero; suc) -open import Data.Float using (Float) -open import Agda.Builtin.Float - using (primFloatLog; primFloatTimes; primFloatPlus; primFloatNegate; primFloatDiv) -open import Data.Vec using (Vec; []; _∷_; map; zipWith; foldr) -open import Data.Product using (_×_; _,_) -open import Relation.Binary.PropositionalEquality using (_≡_; refl) - --- ============================================================================ --- Basic Definitions --- ============================================================================ - --- Non-negative real (approximated as Float for computation) -ℝ⁺ : Set -ℝ⁺ = Float - --- Probability value [0, 1] -record Probability : Set where - constructor mkProb - field - value : Float - -- Invariants would be proven separately - --- Probability distribution over n outcomes -record Distribution (n : ℕ) : Set where - constructor mkDist - field - probabilities : Vec Probability n - --- ============================================================================ --- Entropy --- ============================================================================ - --- Shannon entropy: H(X) = -Σ p(x) log₂ p(x) --- Uses convention that 0 log 0 = 0 - --- Float arithmetic: defined via Agda.Builtin.Float primitives. -log₂ : Float → Float -log₂ x = primFloatDiv (primFloatLog x) (primFloatLog 2.0) - -_*f_ : Float → Float → Float -_*f_ = primFloatTimes - -_+f_ : Float → Float → Float -_+f_ = primFloatPlus - -negateF : Float → Float -negateF = primFloatNegate - -plogp : Probability → Float -plogp p = let v = Probability.value p in - if v == 0.0 then 0.0 - else negateF (v *f log₂ v) - -entropy : ∀ {n} → Distribution n → Float -entropy (mkDist ps) = foldr (λ _ → Float) _+f_ 0.0 (map plogp ps) - --- ============================================================================ --- KL-Divergence --- ============================================================================ - --- KL-Divergence: D_KL(P||Q) = Σ P(i) log(P(i)/Q(i)) - -_/f_ : Float → Float → Float -_/f_ = primFloatDiv - -kl-term : Probability → Probability → Float -kl-term p q = - let pv = Probability.value p - qv = Probability.value q - in if pv == 0.0 then 0.0 - else pv *f log₂ (pv /f qv) - -kl-divergence : ∀ {n} → Distribution n → Distribution n → Float -kl-divergence (mkDist ps) (mkDist qs) = - foldr (λ _ → Float) _+f_ 0.0 (zipWith kl-term ps qs) - --- ============================================================================ --- Jensen-Shannon Divergence --- ============================================================================ - --- Midpoint of two distributions -midpoint-prob : Probability → Probability → Probability -midpoint-prob p q = mkProb ((Probability.value p +f Probability.value q) /f 2.0) - -midpoint : ∀ {n} → Distribution n → Distribution n → Distribution n -midpoint (mkDist ps) (mkDist qs) = mkDist (zipWith midpoint-prob ps qs) - --- JSD: (D_KL(P||M) + D_KL(Q||M)) / 2 -jensen-shannon : ∀ {n} → Distribution n → Distribution n → Float -jensen-shannon p q = - let m = midpoint p q - in (kl-divergence p m +f kl-divergence q m) /f 2.0 - --- ============================================================================ --- Theorems (Postulated — justified mathematical axioms over Float) --- ============================================================================ --- These are known theorems of information theory (Shannon, Gibbs, Lin 1991). --- They cannot be proven directly over Agda's Float (IEEE 754 approximation); --- proofs would require a real-analysis formalisation (e.g. over ℝ). --- Classified as justified postulates, not proof debt. - --- Entropy is non-negative (H ≥ 0 follows from -p·log(p) ≥ 0 for 0 ≤ p ≤ 1) --- AXIOM: justified theorem over IEEE-754 Float; proof requires a real-analysis model. -postulate - entropy-nonnegative : ∀ {n} (d : Distribution n) → entropy d ≥ 0.0 - where - _≥_ : Float → Float → Set - --- KL-divergence is non-negative (Gibbs' inequality / log-sum inequality) --- AXIOM: justified Gibbs inequality over Float; proof requires a real-analysis model. -postulate - kl-nonnegative : ∀ {n} (p q : Distribution n) → kl-divergence p q ≥ 0.0 - where - _≥_ : Float → Float → Set - --- Jensen-Shannon is symmetric (follows from symmetry of KL terms in the midpoint construction) --- AXIOM: justified by the symmetric midpoint construction and paired KL terms. -postulate - js-symmetric : ∀ {n} (p q : Distribution n) → - jensen-shannon p q ≡ jensen-shannon q p - --- Jensen-Shannon is bounded [0, 1] (Lin 1991; upper bound via Jensen's inequality) --- AXIOM: justified Lin bound over Float; proof requires a real-analysis model. -postulate - js-bounded : ∀ {n} (p q : Distribution n) → - 0.0 ≤ jensen-shannon p q × jensen-shannon p q ≤ 1.0 - where - _≤_ : Float → Float → Set diff --git a/lol/scripts/verisimdb-ingest.sh b/lol/scripts/verisimdb-ingest.sh deleted file mode 100755 index c62ba200d..000000000 --- a/lol/scripts/verisimdb-ingest.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors -# -# VeriSimDB Ingest Helper -# Runs corpus verification and ingests results into verisimdb-data - -set -euo pipefail - -SCAN_OUTPUT="${1:-/tmp/lol-scan.json}" -VERISIMDB_DATA="${VERISIMDB_DATA_DIR:-$HOME/Documents/hyperpolymath-repos/verisimdb-data}" - -echo "=== lol VeriSimDB Ingest Pipeline ===" - -# Step 1: Run corpus verification -echo "[1/3] Running corpus quality analysis..." -deno run --allow-read --allow-write --allow-env --allow-net src/Lang1000.res.mjs verify --output "$SCAN_OUTPUT" -echo " Scan written to: $SCAN_OUTPUT" - -# Step 2: Show summary -echo "[2/3] Scan summary:" -if command -v jq &>/dev/null; then - weak_count=$(jq '.weak_points | length' "$SCAN_OUTPUT") - total_lines=$(jq '.statistics.total_lines' "$SCAN_OUTPUT") - echo " Weak points: $weak_count" - echo " Total lines: $total_lines" -else - echo " (install jq for summary stats)" -fi - -# Step 3: Ingest into verisimdb-data -echo "[3/3] Ingesting into verisimdb-data..." -if [ -d "$VERISIMDB_DATA" ] && [ -f "$VERISIMDB_DATA/scripts/ingest-scan.sh" ]; then - cd "$VERISIMDB_DATA" - ./scripts/ingest-scan.sh lol "$SCAN_OUTPUT" - echo " Ingested successfully." - echo " Remember to: cd $VERISIMDB_DATA && git push && git push gitlab main" -else - echo " verisimdb-data not found at: $VERISIMDB_DATA" - echo " Manual ingest: cp $SCAN_OUTPUT /scans/lol.json" -fi - -echo "=== Done ===" diff --git a/lol/src/Lang1000.affine b/lol/src/Lang1000.affine deleted file mode 100644 index 1967396ed..000000000 --- a/lol/src/Lang1000.affine +++ /dev/null @@ -1,301 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Lang1000; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * 1000Langs - Super-Parallel Corpus Crawler - * - * A multilingual corpus building system supporting 1500+ languages - * from parallel Bible translations across multiple sources. - * - * CLI interface for Deno runtime with VeriSimDB quality verification. - */ - -module Config = { - fn version = "0.1.0" - fn name = "1000Langs" - fn description = "Super-parallel corpus crawler for multilingual NLP research" - - struct source { - | BibleCloud - | BibleCom - | BibleIs - | PngScriptures - | EBible - | FindBible - - fn allSources = [BibleCloud, BibleCom, BibleIs, PngScriptures, EBible, FindBible] - - fn sourceToString = source => - switch source { - | BibleCloud => "bible.cloud" - | BibleCom => "bible.com" - | BibleIs => "bible.is" - | PngScriptures => "pngscriptures.org" - | EBible => "ebible.org" - | FindBible => "find.bible" - } - - fn sourceFromString = str => - switch str { - | "bible.cloud" | "bible_cloud" | "biblecloud" => Some(BibleCloud) - | "bible.com" | "bible_com" | "biblecom" => Some(BibleCom) - | "bible.is" | "bible_is" | "bibleis" => Some(BibleIs) - | "pngscriptures" | "pngscriptures.org" | "png_scriptures" => Some(PngScriptures) - | "ebible" | "ebible.org" | "e_bible" => Some(EBible) - | "find.bible" | "find_bible" | "findbible" => Some(FindBible) - | _ => None - } -} - -module Language = { - struct iso639_3 { string - struct languageName { string - - struct t { { - code: iso639_3, - name: languageName, - family: option, - script: option, - country: option, - } - - fn make = (~code, ~name, ~family=?, ~script=?, ~country=?, ()) => { - code, - name, - family, - script, - country, - } - - fn getCode = lang => lang.code - fn getName = lang => lang.name -} - -module Verse = { - struct book { string - struct chapter { int - struct verseNum { int - - struct reference { { - book: book, - chapter: chapter, - verse: verseNum, - } - - struct t { { - reference: reference, - text: string, - language: Language.iso639_3, - } - - fn makeReference = (~book, ~chapter, ~verse) => {book, chapter, verse} - - fn make = (~reference, ~text, ~language) => {reference, text, language} - - fn toCanonicalId = ref => - `${ref.book}.${Int.toString(ref.chapter)}.${Int.toString(ref.verse)}` -} - -module Corpus = { - struct alignment { { - referenceId: string, - translations: Dict.t, - } - - struct t { { - name: string, - languages: array, - alignments: array, - metadata: Dict.t, - } - - fn empty = name => { - name, - languages: [], - alignments: [], - metadata: Dict.make(), - } - - fn addLanguage = (corpus, lang) => { - ...corpus, - languages: Array.concat(corpus.languages, [lang]), - } - - fn addAlignment = (corpus, alignment) => { - ...corpus, - alignments: Array.concat(corpus.alignments, [alignment]), - } - - fn languageCount = corpus => Array.length(corpus.languages) - fn alignmentCount = corpus => Array.length(corpus.alignments) -} - -/** Deno CLI argument access */ -@val @scope("Deno") external args: array = "args" -@val @scope("Deno") external exit: int => unit = "exit" - -module Cli = { - struct command { - | Crawl({source: Config.source, lang: string, output: option}) - | Verify({output: option}) - | ListSources - | Help - | Version - - fn getArg = (args: array, flag: string): option => { - fn idx = args->Array.findIndex(a => a == flag) - if idx >= 0 && idx + 1 < Array.length(args) { - Some(Array.getUnsafe(args, idx + 1)) - } else { - None - } - } - - fn parseArgs = (argv: array): command => { - if Array.length(argv) == 0 { - Help - } else { - fn cmd = Array.getUnsafe(argv, 0) - switch cmd { - | "crawl" => - fn sourceStr = getArg(argv, "--source")->Option.getOr("bible.cloud") - fn lang = getArg(argv, "--lang")->Option.getOr("eng") - fn output = getArg(argv, "--output") - switch Config.sourceFromString(sourceStr) { - | Some(source) => Crawl({source, lang, output}) - | None => - Console.error(`Unknown source: ${sourceStr}`) - Help - } - | "verify" => - fn output = getArg(argv, "--output") - Verify({output}) - | "list-sources" => ListSources - | "version" | "--version" | "-v" => Version - | "help" | "--help" | "-h" | _ => Help - } - } - } - - fn printHelp = () => { - Console.log(`${Config.name} v${Config.version}`) - Console.log(Config.description) - Console.log("") - Console.log("Usage:") - Console.log(" 1000langs crawl --source --lang [--output ]") - Console.log(" 1000langs verify [--output ]") - Console.log(" 1000langs list-sources") - Console.log(" 1000langs version") - Console.log(" 1000langs help") - Console.log("") - Console.log("Sources:") - Config.allSources->Array.forEach(s => { - Console.log(` ${Config.sourceToString(s)}`) - }) - } - - fn printVersion = () => { - Console.log(`${Config.name} v${Config.version}`) - } - - fn printSources = () => { - Console.log("Available corpus sources:") - Config.allSources->Array.forEach(s => { - Console.log(` ${Config.sourceToString(s)}`) - }) - } - - fn runVerify = async (output: option) => { - Console.log("Running corpus quality verification...") - // Create a test corpus for demonstration - fn corpus = Corpus.empty("1000langs-corpus") - fn result = CorpusAnalyzer.analyzeFull(corpus, ()) - fn outputPath = output->Option.getOr("/tmp/lol-scan.json") - await Export.writeToFile(result, outputPath) - Console.log(`Scan written to: ${outputPath}`) - Console.log( - `Weak points: ${Int.toString(Array.length(result.weak_points))}`, - ) - } - - fn runCrawl = async (source: Config.source, lang: string, output: option) => { - Console.log( - `Crawling ${Config.sourceToString(source)} for language: ${lang}`, - ) - fn _ = output - switch source { - | BibleCloud => - Console.log("Using BibleCloud API crawler...") - fn crawler = BibleCloud.Crawler.make() - fn result = await BibleCloud.Crawler.fetchBibles(crawler) - switch result { - | Crawler.Types.Success(bibles) => - Console.log(`Found ${Int.toString(Array.length(bibles))} Bibles`) - | Crawler.Types.Failure(msg) => Console.error(`Crawl failed: ${msg}`) - | Crawler.Types.Pending => Console.log("Crawl pending (no API key configured)") - } - | BibleCom => - Console.log("Using BibleCom web scraper...") - fn crawler = BibleCom.Crawler.make() - fn result = await BibleCom.Crawler.fetchVersions(crawler) - switch result { - | Crawler.Types.Success(versions) => - Console.log(`Found ${Int.toString(Array.length(versions))} versions`) - | Crawler.Types.Failure(msg) => Console.error(`Crawl failed: ${msg}`) - | Crawler.Types.Pending => () - } - | PngScriptures => - Console.log("Using PNG Scriptures crawler...") - fn crawler = PngScriptures.Crawler.make() - fn result = await PngScriptures.Crawler.fetchLanguages(crawler) - switch result { - | Crawler.Types.Success(langs) => - Console.log(`Found ${Int.toString(Array.length(langs))} languages`) - | Crawler.Types.Failure(msg) => Console.error(`Crawl failed: ${msg}`) - | Crawler.Types.Pending => () - } - | EBible => - Console.log("Using eBible.org crawler...") - fn crawler = EBible.Crawler.make() - fn result = await EBible.Crawler.fetchTranslations(crawler) - switch result { - | Crawler.Types.Success(translations) => - Console.log(`Found ${Int.toString(Array.length(translations))} translations`) - | Crawler.Types.Failure(msg) => Console.error(`Crawl failed: ${msg}`) - | Crawler.Types.Pending => () - } - | FindBible => - Console.log("Using Find.Bible crawler...") - fn crawler = FindBible.Crawler.make() - fn result = await FindBible.Crawler.fetchLanguages(crawler) - switch result { - | Crawler.Types.Success(langs) => - Console.log(`Found ${Int.toString(Array.length(langs))} languages`) - | Crawler.Types.Failure(msg) => Console.error(`Crawl failed: ${msg}`) - | Crawler.Types.Pending => () - } - | BibleIs => - Console.log("BibleIs uses the Digital Bible Platform API...") - Console.log("Configure API key via BIBLE_API_KEY environment variable") - } - } -} - -fn main = async () => { - fn cmd = Cli.parseArgs(args) - switch cmd { - | Cli.Help => Cli.printHelp() - | Cli.Version => Cli.printVersion() - | Cli.ListSources => Cli.printSources() - | Cli.Verify({output}) => await Cli.runVerify(output) - | Cli.Crawl({source, lang, output}) => await Cli.runCrawl(source, lang, output) - } -} - -ignore(main()) - diff --git a/lol/src/Lol/ABI/Foreign.idr b/lol/src/Lol/ABI/Foreign.idr deleted file mode 100644 index 14aa288f7..000000000 --- a/lol/src/Lol/ABI/Foreign.idr +++ /dev/null @@ -1,324 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- -||| LOL i18n Service — Foreign Function Interface Declarations -||| -||| Declares all C-compatible functions that will be implemented in -||| the Zig FFI layer (ffi/zig/src/main.zig). Each function is -||| declared with its primitive FFI signature and wrapped in a -||| safe Idris2 API that handles null pointers and error codes. -||| -||| LOL is called as a service, never embedded. Consumers initialise -||| with lol_init, perform lookups, then clean up with lol_free. - -module Lol.ABI.Foreign - -import Lol.ABI.Types -import Lol.ABI.Layout - -%default total - --------------------------------------------------------------------------------- --- Library Lifecycle --------------------------------------------------------------------------------- - -||| Initialise the LOL service with a corpus data directory. -||| Returns a handle to the service instance, or null on failure. -export -%foreign "C:lol_init, liblol" -prim__init : String -> PrimIO Bits64 - -||| Safe wrapper for service initialisation. -||| Takes the path to the corpus data directory and returns a Handle -||| if initialisation succeeds. -export -init : String -> IO (Maybe Handle) -init dataDir = do - ptr <- primIO (prim__init dataDir) - pure (createHandle ptr) - -||| Release all resources held by the LOL service. -export -%foreign "C:lol_free, liblol" -prim__free : Bits64 -> PrimIO () - -||| Safe wrapper for cleanup. -export -free : Handle -> IO () -free h = primIO (prim__free (handlePtr h)) - --------------------------------------------------------------------------------- --- Locale Resolution --------------------------------------------------------------------------------- - -||| Parse a BCP 47 locale tag and resolve it against the corpus. -||| Returns a pointer to a lol_locale_t struct, or null if the locale -||| cannot be resolved. -export -%foreign "C:lol_resolve_locale, liblol" -prim__resolveLocale : Bits64 -> String -> PrimIO Bits64 - -||| Safe locale resolution. -||| Parses the tag and looks up the best matching corpus entry. -export -resolveLocale : Handle -> String -> IO (Maybe Bits64) -resolveLocale h tag = do - ptr <- primIO (prim__resolveLocale (handlePtr h) tag) - pure (if ptr == 0 then Nothing else Just ptr) - -||| Free a locale struct returned by resolveLocale. -export -%foreign "C:lol_free_locale, liblol" -prim__freeLocale : Bits64 -> PrimIO () - -||| Safe locale cleanup. -export -freeLocale : Bits64 -> IO () -freeLocale ptr = primIO (prim__freeLocale ptr) - --------------------------------------------------------------------------------- --- Translation Lookup --------------------------------------------------------------------------------- - -||| Look up a translation key for a given locale. -||| Returns a pointer to a lol_translation_result_t, or null if not found. -||| The result includes the resolved locale (which may differ from the -||| requested one if fallback was used). -export -%foreign "C:lol_translate, liblol" -prim__translate : Bits64 -> String -> String -> PrimIO Bits64 - -||| Safe translation lookup. -||| Takes a locale tag and translation key, returns the translation result. -export -translate : Handle -> (localeTag : String) -> (key : TranslationKey) -> IO (Maybe Bits64) -translate h localeTag key = do - ptr <- primIO (prim__translate (handlePtr h) localeTag key) - pure (if ptr == 0 then Nothing else Just ptr) - -||| Free a translation result struct. -export -%foreign "C:lol_free_translation, liblol" -prim__freeTranslation : Bits64 -> PrimIO () - -||| Safe translation result cleanup. -export -freeTranslation : Bits64 -> IO () -freeTranslation ptr = primIO (prim__freeTranslation ptr) - -||| Get the text field from a translation result pointer. -export -%foreign "C:lol_translation_text, liblol" -prim__translationText : Bits64 -> PrimIO Bits64 - -||| Get translation text as a string. -export -%foreign "support:idris2_getString, libidris2_support" -prim__getString : Bits64 -> String - -||| Safe translation text getter. -export -translationText : Bits64 -> IO (Maybe String) -translationText ptr = do - strPtr <- primIO (prim__translationText ptr) - if strPtr == 0 - then pure Nothing - else pure (Just (prim__getString strPtr)) - --------------------------------------------------------------------------------- --- Plural Form Selection --------------------------------------------------------------------------------- - -||| Select the appropriate CLDR plural category for a quantity in a -||| given locale. Returns the plural category as a Bits32 (see pluralToInt). -export -%foreign "C:lol_select_plural, liblol" -prim__selectPlural : Bits64 -> String -> Bits64 -> PrimIO Bits32 - -||| Safe plural category selection. -||| Given a locale tag and a quantity, returns the CLDR plural category -||| that should be used for that quantity in that language. -export -selectPlural : Handle -> (localeTag : String) -> (quantity : Bits64) -> IO (Maybe PluralCategory) -selectPlural h localeTag quantity = do - raw <- primIO (prim__selectPlural (handlePtr h) localeTag quantity) - pure (pluralFromInt raw) - -||| Look up a pluralised translation. -||| Combines plural selection and translation lookup in a single call. -||| The key is suffixed with the plural category (e.g. "items.one", "items.other"). -export -%foreign "C:lol_translate_plural, liblol" -prim__translatePlural : Bits64 -> String -> String -> Bits64 -> PrimIO Bits64 - -||| Safe pluralised translation. -export -translatePlural : Handle -> (localeTag : String) -> (key : TranslationKey) -> (quantity : Bits64) -> IO (Maybe Bits64) -translatePlural h localeTag key quantity = do - ptr <- primIO (prim__translatePlural (handlePtr h) localeTag key quantity) - pure (if ptr == 0 then Nothing else Just ptr) - --------------------------------------------------------------------------------- --- Language Metadata --------------------------------------------------------------------------------- - -||| List all languages in the corpus. -||| Returns a pointer to an array of lol_language_info_t structs and -||| writes the count to the output parameter. -export -%foreign "C:lol_list_languages, liblol" -prim__listLanguages : Bits64 -> Bits64 -> PrimIO Bits32 - -||| Get language count in the corpus. -export -%foreign "C:lol_language_count, liblol" -prim__languageCount : Bits64 -> PrimIO Bits32 - -||| Safe language count getter. -export -languageCount : Handle -> IO Bits32 -languageCount h = primIO (prim__languageCount (handlePtr h)) - -||| Look up metadata for a specific language by ISO 639-3 code. -export -%foreign "C:lol_get_language, liblol" -prim__getLanguage : Bits64 -> String -> PrimIO Bits64 - -||| Safe language lookup. -export -getLanguage : Handle -> String -> IO (Maybe Bits64) -getLanguage h code = do - ptr <- primIO (prim__getLanguage (handlePtr h) code) - pure (if ptr == 0 then Nothing else Just ptr) - -||| Free a language info struct. -export -%foreign "C:lol_free_language, liblol" -prim__freeLanguage : Bits64 -> PrimIO () - -||| Safe language info cleanup. -export -freeLanguage : Bits64 -> IO () -freeLanguage ptr = primIO (prim__freeLanguage ptr) - --------------------------------------------------------------------------------- --- Plural Rules --------------------------------------------------------------------------------- - -||| Get the plural rule for a specific language. -||| Returns a pointer to lol_plural_rule_t, or null if not available. -export -%foreign "C:lol_get_plural_rule, liblol" -prim__getPluralRule : Bits64 -> String -> PrimIO Bits64 - -||| Safe plural rule lookup. -export -getPluralRule : Handle -> String -> IO (Maybe Bits64) -getPluralRule h langCode = do - ptr <- primIO (prim__getPluralRule (handlePtr h) langCode) - pure (if ptr == 0 then Nothing else Just ptr) - -||| Free a plural rule struct. -export -%foreign "C:lol_free_plural_rule, liblol" -prim__freePluralRule : Bits64 -> PrimIO () - -||| Safe plural rule cleanup. -export -freePluralRule : Bits64 -> IO () -freePluralRule ptr = primIO (prim__freePluralRule ptr) - --------------------------------------------------------------------------------- --- Locale Fallback Chain --------------------------------------------------------------------------------- - -||| Get the fallback chain for a locale. -||| Returns a null-terminated array of locale tag strings. -||| For example, "en-GB" might produce ["en-GB", "en", "default"]. -export -%foreign "C:lol_fallback_chain, liblol" -prim__fallbackChain : Bits64 -> String -> PrimIO Bits64 - -||| Get the length of a fallback chain. -export -%foreign "C:lol_fallback_chain_len, liblol" -prim__fallbackChainLen : Bits64 -> String -> PrimIO Bits32 - -||| Free a fallback chain array. -export -%foreign "C:lol_free_fallback_chain, liblol" -prim__freeFallbackChain : Bits64 -> PrimIO () - --------------------------------------------------------------------------------- --- Error Handling --------------------------------------------------------------------------------- - -||| Get the last error message from the service. -export -%foreign "C:lol_last_error, liblol" -prim__lastError : PrimIO Bits64 - -||| Retrieve the last error as a string. -export -lastError : IO (Maybe String) -lastError = do - ptr <- primIO prim__lastError - if ptr == 0 - then pure Nothing - else pure (Just (prim__getString ptr)) - -||| Get a human-readable description for a result code. -export -errorDescription : Result -> String -errorDescription Ok = "Success" -errorDescription Error = "Generic error" -errorDescription InvalidParam = "Invalid parameter" -errorDescription OutOfMemory = "Out of memory" -errorDescription NullPointer = "Null pointer" -errorDescription LocaleNotFound = "Locale not found in corpus" -errorDescription KeyNotFound = "Translation key not found" -errorDescription PluralOutOfRange = "Plural form index out of range" - --------------------------------------------------------------------------------- --- Version Information --------------------------------------------------------------------------------- - -||| Get the LOL library version string. -export -%foreign "C:lol_version, liblol" -prim__version : PrimIO Bits64 - -||| Get version as a string. -export -version : IO String -version = do - ptr <- primIO prim__version - pure (prim__getString ptr) - -||| Get build information. -export -%foreign "C:lol_build_info, liblol" -prim__buildInfo : PrimIO Bits64 - -||| Get build information as a string. -export -buildInfo : IO String -buildInfo = do - ptr <- primIO prim__buildInfo - pure (prim__getString ptr) - --------------------------------------------------------------------------------- --- Utility --------------------------------------------------------------------------------- - -||| Check if the service handle is initialised and ready. -export -%foreign "C:lol_is_initialized, liblol" -prim__isInitialized : Bits64 -> PrimIO Bits32 - -||| Safe initialisation check. -export -isInitialized : Handle -> IO Bool -isInitialized h = do - result <- primIO (prim__isInitialized (handlePtr h)) - pure (result /= 0) diff --git a/lol/src/Lol/ABI/I18nStore.idr b/lol/src/Lol/ABI/I18nStore.idr deleted file mode 100644 index 3f2355f06..000000000 --- a/lol/src/Lol/ABI/I18nStore.idr +++ /dev/null @@ -1,246 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- -||| LOL i18n Service — I18n Store Interface with Lookup Proofs -||| -||| Defines an abstract interface for the translation store that -||| guarantees: if a key exists in the store for a locale, then -||| a translation is returned. This is the core correctness property -||| that the Zig FFI must uphold. -||| -||| The store also specifies the fallback chain contract: when a -||| key is not found for the requested locale, the service walks -||| the fallback chain until it finds a translation or exhausts -||| all fallback options. -||| -||| LOL is called as a service, never embedded. The store interface -||| captures the semantic guarantees that all consumers can rely on. - -module Lol.ABI.I18nStore - -import Lol.ABI.Types -import Lol.ABI.Locale -import Lol.ABI.TranslationKey -import Lol.ABI.PluralForm - -import Data.So -import Data.List -import Data.List1 -import Data.String - -%default total - --------------------------------------------------------------------------------- --- Key Existence Predicate --------------------------------------------------------------------------------- - -||| Evidence that a key exists in the store for a given locale. -||| This is an opaque proof token — it cannot be forged, only obtained -||| by querying the store. -public export -data KeyExists : String -> String -> Type where - ||| Witness that key `k` has a translation for locale `loc` - MkKeyExists : (loc : String) -> (k : String) -> KeyExists loc k - -||| Evidence that a locale is supported by the store (has at least one key) -public export -data LocaleSupported : String -> Type where - ||| Witness that locale `loc` has at least one translation - MkLocaleSupported : (loc : String) -> (k : String) -> KeyExists loc k -> LocaleSupported loc - --------------------------------------------------------------------------------- --- Store Interface --------------------------------------------------------------------------------- - -||| The I18n store interface specifies the contract that any -||| translation store implementation must satisfy. -||| -||| The key property is `guaranteedLookup`: given proof that a key -||| exists, the lookup always succeeds (returns a non-empty string). -public export -interface I18nStore (store : Type) where - - ||| Check whether a key exists for a locale. - ||| Returns a proof if the key is present, Nothing otherwise. - hasKey : store -> (locale : String) -> (key : String) -> Maybe (KeyExists locale key) - - ||| Look up a translation, given proof the key exists. - ||| This function is total: the proof guarantees the result is non-empty. - guaranteedLookup : store -> KeyExists locale key -> String - - ||| Look up a translation without proof (may fail). - ||| This is the common case for FFI callers who cannot construct proofs. - lookup : store -> (locale : String) -> (key : String) -> Maybe String - - ||| Get the number of keys available for a locale. - keyCount : store -> (locale : String) -> Nat - - ||| Get the list of supported locales. - supportedLocales : store -> List String - --------------------------------------------------------------------------------- --- Fallback Resolution --------------------------------------------------------------------------------- - -||| Fallback resolution strategy. -||| The store tries each locale in the fallback chain until a translation -||| is found, or returns Nothing if all fallbacks are exhausted. -public export -data FallbackStrategy - = ||| Walk the full BCP 47 fallback chain (en-GB -> en -> default) - ChainFallback - | ||| Only try the exact locale, no fallback - ExactMatch - | ||| Try exact locale, then jump directly to default - DirectDefault - -||| Result of a fallback-aware lookup. -||| Records which locale was actually used (may differ from requested). -public export -record FallbackResult where - constructor MkFallbackResult - ||| The translation text - text : String - ||| The locale that provided the translation - resolvedLocale : String - ||| Whether a fallback locale was used - isFallback : Bool - -||| Build the fallback chain for a given strategy. -public export -buildFallbackChain : FallbackStrategy -> (requestedLocale : String) -> (defaultLocale : String) -> List String -buildFallbackChain ChainFallback req def = fallbackChain req ++ [def] -buildFallbackChain ExactMatch req _ = [req] -buildFallbackChain DirectDefault req def = [req, def] - -||| Try each locale in a chain until a translation is found. -||| Takes a lookup function to avoid interface constraint accessibility issues. -public export -tryFallbackChain : - (lookupFn : String -> String -> Maybe String) -> - (key : String) -> - (chain : List String) -> - (requestedLocale : String) -> - Maybe FallbackResult -tryFallbackChain lookupFn key [] _ = Nothing -tryFallbackChain lookupFn key (loc :: rest) reqLocale = - case lookupFn loc key of - Just text => Just (MkFallbackResult text loc (loc /= reqLocale)) - Nothing => tryFallbackChain lookupFn key rest reqLocale - -||| Perform a lookup with fallback chain resolution. -||| Tries each locale in the chain until a translation is found. -||| Takes a lookup function directly to avoid interface accessibility issues. -public export -lookupWithFallback : - (lookupFn : String -> String -> Maybe String) -> - FallbackStrategy -> - (requestedLocale : String) -> - (defaultLocale : String) -> - (key : String) -> - Maybe FallbackResult -lookupWithFallback lookupFn strategy reqLocale defLocale key = - let chain = buildFallbackChain strategy reqLocale defLocale - in tryFallbackChain lookupFn key chain reqLocale - --------------------------------------------------------------------------------- --- Plural-Aware Lookup --------------------------------------------------------------------------------- - -||| Extract the language subtag from a locale tag. -||| "en-US" -> "en", "zh-Hans-CN" -> "zh" -public export -extractLanguage : String -> String -extractLanguage s = let (lang ::: _) = Data.String.split (== '-') s in lang - -||| Convert a plural category to its CLDR string suffix. -public export -categoryToSuffix : PluralCategory -> String -categoryToSuffix Zero = "zero" -categoryToSuffix One = "one" -categoryToSuffix Two = "two" -categoryToSuffix Few = "few" -categoryToSuffix Many = "many" -categoryToSuffix Other = "other" - -||| Look up a translation with automatic plural form selection. -||| Appends the CLDR plural category to the key as a dot-separated suffix. -||| -||| For "items" with quantity 1 in English: looks up "items.one" -||| For "items" with quantity 5 in Arabic: looks up "items.few" -public export -lookupPlural : - (lookupFn : String -> String -> Maybe String) -> - FallbackStrategy -> - (locale : String) -> - (defaultLocale : String) -> - (key : String) -> - (quantity : Nat) -> - Maybe FallbackResult -lookupPlural lookupFn strategy locale defLocale key quantity = - let lang = extractLanguage locale - cat = selectPlural lang quantity - sfx = categoryToSuffix cat - pluralKey = key ++ "." ++ sfx - in case lookupWithFallback lookupFn strategy locale defLocale pluralKey of - Just result => Just result - Nothing => lookupWithFallback lookupFn strategy locale defLocale key - --------------------------------------------------------------------------------- --- Correctness Properties --------------------------------------------------------------------------------- - -||| The guaranteedLookup contract: if hasKey returns a proof, then -||| guaranteedLookup must return a non-empty string. -||| -||| This property cannot be proved generically (it depends on the -||| implementation), but it serves as a specification that -||| implementations must satisfy. The Zig FFI is tested against -||| this property in integration tests. -public export -interface I18nStore store => CorrectStore (store : Type) where - ||| If hasKey succeeds, guaranteedLookup returns non-empty text - lookupNonEmpty : - (st : store) -> - (prf : KeyExists locale key) -> - So (length (guaranteedLookup st prf) > 0) - - ||| lookup and hasKey are consistent: if hasKey returns a proof, - ||| then lookup returns Just (guaranteedLookup st proof) - lookupConsistent : - (st : store) -> - (locale : String) -> - (key : String) -> - (prf : KeyExists locale key) -> - lookup st locale key = Just (guaranteedLookup st prf) - - -- The store is monotonic: adding translations never removes existing ones - -- (expressed as: if a key exists, it continues to exist). Stated as a plain - -- comment, not a `|||` doc comment: a trailing doc comment with no method - -- following it is dangling and breaks the interface block's scope. This - -- invariant is enforced on the Zig store side, not provable generically here. - --------------------------------------------------------------------------------- --- Error Classification --------------------------------------------------------------------------------- - -||| Classification of lookup failures for error reporting. -||| The Zig FFI maps these to the Result enum in Types.idr. -public export -data LookupError : Type where - ||| The requested locale is not in the corpus at all - NoSuchLocale : String -> LookupError - ||| The locale exists but the key is not defined - NoSuchKey : String -> String -> LookupError - ||| The plural form variant is missing (e.g. "items.few" missing) - MissingPluralForm : String -> String -> PluralCategory -> LookupError - ||| The entire fallback chain was exhausted without finding a translation - FallbackExhausted : String -> String -> List String -> LookupError - -||| Map a lookup error to the appropriate Result code for FFI transport -public export -lookupErrorToResult : LookupError -> Result -lookupErrorToResult (NoSuchLocale _) = LocaleNotFound -lookupErrorToResult (NoSuchKey _ _) = KeyNotFound -lookupErrorToResult (MissingPluralForm _ _ _) = PluralOutOfRange -lookupErrorToResult (FallbackExhausted _ _ _) = KeyNotFound diff --git a/lol/src/Lol/ABI/Layout.idr b/lol/src/Lol/ABI/Layout.idr deleted file mode 100644 index 5f5189836..000000000 --- a/lol/src/Lol/ABI/Layout.idr +++ /dev/null @@ -1,259 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- -||| LOL i18n Service — Memory Layout Proofs -||| -||| Provides formal proofs about memory layout, alignment, and padding -||| for C-compatible structs used across the LOL FFI boundary. -||| -||| Each struct that crosses the Zig FFI is declared here with its -||| field offsets, alignment constraints, and proofs that the layout -||| is C ABI compliant on every supported platform. -||| -||| @see https://en.wikipedia.org/wiki/Data_structure_alignment - -module Lol.ABI.Layout - -import Lol.ABI.Types -import Data.Vect -import Data.So - -%default total - --------------------------------------------------------------------------------- --- Alignment Utilities --------------------------------------------------------------------------------- - -||| Calculate padding needed for alignment. -||| Given the current byte offset and the required alignment, returns the -||| number of padding bytes to insert so the next field starts aligned. -public export -paddingFor : (offset : Nat) -> (alignment : Nat) -> Nat -paddingFor offset alignment = - if offset `mod` alignment == 0 - then 0 - else alignment `minus` (offset `mod` alignment) - -||| Proof that alignment divides aligned size -public export -data Divides : Nat -> Nat -> Type where - DivideBy : (k : Nat) -> {n : Nat} -> {m : Nat} -> (m = k * n) -> Divides n m - -||| Round up to next alignment boundary -public export -alignUp : (size : Nat) -> (alignment : Nat) -> Nat -alignUp size alignment = - size + paddingFor size alignment - --- NOTE (2026-06-18): a general lemma --- alignUpCorrect : (size, align : Nat) -> So (align > 0) --- -> Divides align (alignUp size align) --- was removed here. It was unused, and its body asserted --- alignUp size align = (alignUp size align `div` align) * align --- via `Refl`, which only holds definitionally for *concrete* arguments, not --- symbolic ones, so the lemma did not actually typecheck. A correct general --- proof needs the division theorem (n = d * (n `div` d) + n `mod` d), which --- Idris2 `base` does not export (only the `divNatNZ`/`modNatNZ`/`divmod'` --- functions exist, with no accompanying equational lemma), so it would have to --- be hand-proved from `Data.Nat.divmod'`. The divisibility that the concrete --- struct layouts actually rely on is discharged per-layout below by the --- explicit `{aligned = DivideBy k Refl}` witnesses (which compute, since the --- sizes/alignments there are concrete). Re-introducing the general lemma with a --- real proof is tracked as future work, not a `believe_me`. - --------------------------------------------------------------------------------- --- Struct Field Layout --------------------------------------------------------------------------------- - -||| A field in a C-compatible struct, recording its name, byte offset, -||| size in bytes, and required alignment. -public export -record Field where - constructor MkField - name : String - offset : Nat - size : Nat - alignment : Nat - -||| Calculate the offset of the next field after this one. -public export -nextFieldOffset : Field -> Nat -nextFieldOffset f = alignUp (f.offset + f.size) f.alignment - -||| A struct layout is a vector of fields with proofs that the total size -||| and alignment are consistent with the fields. -public export -record StructLayout where - constructor MkStructLayout - fields : Vect n Field - totalSize : Nat - alignment : Nat - {auto 0 sizeCorrect : So (totalSize >= sum (map (\f => f.size) fields))} - {auto 0 aligned : Divides alignment totalSize} - -||| Proof that field offsets are correctly aligned -public export -data FieldsAligned : Vect n Field -> Type where - NoFields : FieldsAligned [] - ConsField : - (f : Field) -> - (rest : Vect n Field) -> - Divides f.alignment f.offset -> - FieldsAligned rest -> - FieldsAligned (f :: rest) - --------------------------------------------------------------------------------- --- LOL-Specific Struct Layouts --------------------------------------------------------------------------------- - -||| Layout of lol_locale_t (C struct for Locale). -||| -||| Corresponds to: -||| typedef struct { -||| const char *tag; // 8 bytes (pointer) -||| const char *language; // 8 bytes (pointer) -||| const char *script; // 8 bytes (pointer) -||| const char *region; // 8 bytes (pointer) -||| } lol_locale_t; -public export -localeLayout : StructLayout -localeLayout = - MkStructLayout - [ MkField "tag" 0 8 8 -- const char* at offset 0 - , MkField "language" 8 8 8 -- const char* at offset 8 - , MkField "script" 16 8 8 -- const char* at offset 16 - , MkField "region" 24 8 8 -- const char* at offset 24 - ] - 32 -- Total size: 32 bytes - 8 -- Alignment: 8 bytes (pointer alignment) - {aligned = DivideBy 4 Refl} -- 32 = 4 * 8 - -||| Layout of lol_translation_result_t. -||| -||| Corresponds to: -||| typedef struct { -||| const char *text; // 8 bytes -||| const char *resolved_locale; // 8 bytes -||| uint32_t is_fallback; // 4 bytes -||| uint32_t _padding; // 4 bytes (alignment padding) -||| } lol_translation_result_t; -public export -translationResultLayout : StructLayout -translationResultLayout = - MkStructLayout - [ MkField "text" 0 8 8 -- const char* - , MkField "resolved_locale" 8 8 8 -- const char* - , MkField "is_fallback" 16 4 4 -- uint32_t - , MkField "_padding" 20 4 4 -- alignment padding - ] - 24 -- Total size: 24 bytes - 8 -- Alignment: 8 bytes - {aligned = DivideBy 3 Refl} -- 24 = 3 * 8 - -||| Layout of lol_language_info_t. -||| -||| Corresponds to: -||| typedef struct { -||| const char *iso639_3; // 8 -||| const char *name; // 8 -||| const char *native_name; // 8 -||| const char *family; // 8 -||| const char *scripts; // 8 -||| uint32_t source_count;// 4 -||| uint32_t verse_count; // 4 -||| double quality; // 8 -||| } lol_language_info_t; -public export -languageInfoLayout : StructLayout -languageInfoLayout = - MkStructLayout - [ MkField "iso639_3" 0 8 8 -- const char* - , MkField "name" 8 8 8 -- const char* - , MkField "native_name" 16 8 8 -- const char* - , MkField "family" 24 8 8 -- const char* - , MkField "scripts" 32 8 8 -- const char* - , MkField "source_count" 40 4 4 -- uint32_t - , MkField "verse_count" 44 4 4 -- uint32_t - , MkField "quality" 48 8 8 -- double - ] - 56 -- Total size: 56 bytes - 8 -- Alignment: 8 bytes - {aligned = DivideBy 7 Refl} -- 56 = 7 * 8 - -||| Layout of lol_plural_rule_t. -||| -||| Corresponds to: -||| typedef struct { -||| const char *language; // 8 -||| uint32_t form_count; // 4 -||| uint32_t categories[6]; // 24 -||| uint32_t _padding; // 4 -||| } lol_plural_rule_t; -public export -pluralRuleLayout : StructLayout -pluralRuleLayout = - MkStructLayout - [ MkField "language" 0 8 8 -- const char* - , MkField "form_count" 8 4 4 -- uint32_t - , MkField "categories" 12 24 4 -- uint32_t[6] - , MkField "_padding" 36 4 4 -- alignment padding - ] - 40 -- Total size: 40 bytes - 8 -- Alignment: 8 bytes - {aligned = DivideBy 5 Refl} -- 40 = 5 * 8 - --------------------------------------------------------------------------------- --- C ABI Compatibility Proofs --------------------------------------------------------------------------------- - -||| Proof that a struct follows C ABI rules (all fields properly aligned) -public export -data CABICompliant : StructLayout -> Type where - CABIOk : - (layout : StructLayout) -> - FieldsAligned layout.fields -> - CABICompliant layout - -||| Verify locale layout has correct field alignment -public export -localeFieldsAligned : FieldsAligned Layout.localeLayout.fields -localeFieldsAligned = - ConsField (MkField "tag" 0 8 8) _ - (DivideBy 0 Refl) - (ConsField (MkField "language" 8 8 8) _ - (DivideBy 1 Refl) - (ConsField (MkField "script" 16 8 8) _ - (DivideBy 2 Refl) - (ConsField (MkField "region" 24 8 8) [] - (DivideBy 3 Refl) - NoFields))) - -||| Proof that localeLayout is C ABI compliant -public export -localeCABI : CABICompliant Layout.localeLayout -localeCABI = CABIOk Layout.localeLayout localeFieldsAligned - --------------------------------------------------------------------------------- --- Platform-Specific Layout Verification --------------------------------------------------------------------------------- - -||| Struct layout may differ by platform -public export -PlatformLayout : Platform -> Type -> Type -PlatformLayout p t = StructLayout - -||| All LOL structs use pointer-sized fields and fixed-width integers, -||| so layouts are the same on all 64-bit platforms. WASM (32-bit) uses -||| 4-byte pointers, which we account for separately. -public export -localeLayoutWasm32 : StructLayout -localeLayoutWasm32 = - MkStructLayout - [ MkField "tag" 0 4 4 -- 32-bit pointer - , MkField "language" 4 4 4 - , MkField "script" 8 4 4 - , MkField "region" 12 4 4 - ] - 16 -- Total size: 16 bytes on WASM32 - 4 -- Alignment: 4 bytes - {aligned = DivideBy 4 Refl} -- 16 = 4 * 4 diff --git a/lol/src/Lol/ABI/Locale.idr b/lol/src/Lol/ABI/Locale.idr deleted file mode 100644 index d194b28fd..000000000 --- a/lol/src/Lol/ABI/Locale.idr +++ /dev/null @@ -1,202 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- -||| LOL i18n Service — Locale ABI with BCP-47 Validation Proofs -||| -||| Provides a type-safe Locale type with compile-time and runtime -||| proofs that locale tags conform to BCP 47 structure. The LOL -||| service resolves locale tags to their best-match corpus entry -||| using a fallback chain (e.g. en-GB -> en -> default). -||| -||| BCP 47 structure: language[-script][-region][-variant] -||| language: 2-3 alpha (ISO 639-1/639-3) -||| script: 4 alpha (ISO 15924) -||| region: 2 alpha (ISO 3166-1) or 3 digit (UN M.49) -||| -||| @see https://www.rfc-editor.org/rfc/rfc5646 - -module Lol.ABI.Locale - -import Data.So -import Data.String -import Data.List -import Data.List1 - -%default total - --------------------------------------------------------------------------------- --- Character Class Predicates --------------------------------------------------------------------------------- - -||| Check if a character is an ASCII lowercase letter (a-z) -public export -isAsciiLower : Char -> Bool -isAsciiLower c = c >= 'a' && c <= 'z' - -||| Check if a character is an ASCII uppercase letter (A-Z) -public export -isAsciiUpper : Char -> Bool -isAsciiUpper c = c >= 'A' && c <= 'Z' - -||| Check if a character is an ASCII letter (a-z or A-Z) -public export -isAsciiAlpha : Char -> Bool -isAsciiAlpha c = isAsciiLower c || isAsciiUpper c - -||| Check if a character is an ASCII digit (0-9) -public export -isAsciiDigit : Char -> Bool -isAsciiDigit c = c >= '0' && c <= '9' - --------------------------------------------------------------------------------- --- Subtag Validation --------------------------------------------------------------------------------- - -||| Validate that all characters in a string satisfy a predicate -public export -allChars : (Char -> Bool) -> String -> Bool -allChars pred s = all pred (unpack s) - -||| A valid language subtag is 2-3 ASCII letters -public export -isValidLanguage : String -> Bool -isValidLanguage s = - let len = length s - in (len == 2 || len == 3) && allChars isAsciiAlpha s - -||| A valid script subtag is exactly 4 ASCII letters -public export -isValidScript : String -> Bool -isValidScript s = length s == 4 && allChars isAsciiAlpha s - -||| A valid region subtag is 2 ASCII letters or 3 ASCII digits -public export -isValidRegion : String -> Bool -isValidRegion s = - (length s == 2 && allChars isAsciiAlpha s) || - (length s == 3 && allChars isAsciiDigit s) - -||| A valid BCP 47 tag has at least a valid language subtag -public export -isValidBCP47Tag : String -> Bool -isValidBCP47Tag s = - let parts = split (== '-') s - in isValidLanguage (head parts) -- List1.head is total - --------------------------------------------------------------------------------- --- Validated Locale Type --------------------------------------------------------------------------------- - -||| A BCP 47 locale with a proof that the tag is structurally valid. -||| The proof ensures the language subtag is present and correctly -||| formatted, and any script/region subtags are valid if present. -public export -record ValidLocale where - constructor MkValidLocale - ||| Full BCP 47 tag (e.g. "en-US", "zh-Hans-CN") - tag : String - ||| ISO 639-1/639-3 language subtag (e.g. "en", "eng") - language : String - ||| ISO 15924 script subtag (e.g. "Latn"), empty if unspecified - script : String - ||| ISO 3166-1 region subtag (e.g. "US"), empty if unspecified - region : String - ||| Proof that the tag is non-empty - {auto 0 tagNonEmpty : So (length tag > 0)} - ||| Proof that the language subtag is valid - {auto 0 langValid : So (isValidLanguage language)} - -||| Attempt to parse and validate a BCP 47 locale tag at runtime. -||| Returns Nothing if the tag does not conform to BCP 47 structure. -public export -parseLocale : String -> Maybe ValidLocale -parseLocale s = - let (lang ::: rest) = split (== '-') s - in if isValidLanguage lang - then let (scr, reg) = extractSubtags rest - in case (choose (length s > 0), choose (isValidLanguage lang)) of - (Left p1, Left p2) => Just (MkValidLocale s lang scr reg) - _ => Nothing - else Nothing - where - ||| Extract script and region from remaining subtag parts - extractSubtags : List String -> (String, String) - extractSubtags [] = ("", "") - extractSubtags (x :: xs) = - if isValidScript x - then case xs of - (r :: _) => if isValidRegion r then (x, r) else (x, "") - [] => (x, "") - else if isValidRegion x - then ("", x) - else ("", "") - --------------------------------------------------------------------------------- --- Locale Fallback Chain --------------------------------------------------------------------------------- - -||| Compute the fallback chain for a locale tag. -||| For "zh-Hans-CN" this produces: ["zh-Hans-CN", "zh-Hans", "zh"] -||| The default locale is NOT included; the caller appends it. -public export -fallbackChain : String -> List String -fallbackChain s = - let parts = forget (split (== '-') s) - n = length parts - in buildChain n parts [] - where - ||| Take the first n elements of a list - takeN : Nat -> List a -> List a - takeN Z _ = [] - takeN _ [] = [] - takeN (S k) (x :: xs) = x :: takeN k xs - - ||| Build the chain by progressively taking fewer subtag parts. - ||| The Nat fuel parameter ensures termination. - buildChain : Nat -> List String -> List String -> List String - buildChain Z _ acc = reverse acc - buildChain (S k) parts acc = - case parts of - [] => reverse acc - _ => let tag = joinBy "-" parts - in buildChain k (takeN k parts) (tag :: acc) - --- Note: A proof that fallbackChain is non-empty for non-empty input --- would require reasoning about split/joinBy interaction, which is --- non-trivial in Idris2's totality checker. The property holds by --- construction (split always produces at least one element) but we --- leave the formal proof as future work rather than using believe_me. - --------------------------------------------------------------------------------- --- Locale Normalisation --------------------------------------------------------------------------------- - -||| Normalise a locale tag to lowercase language, titlecase script, -||| uppercase region per BCP 47 conventions. -||| "EN-latn-us" -> "en-Latn-US" -public export -normaliseTag : String -> String -normaliseTag s = - let parts = split (== '-') s - in case parts of - (lang ::: rest) => - let normLang = toLower lang - normRest = normaliseRest rest True - in joinBy "-" (normLang :: normRest) - where - titleCase : String -> String - titleCase t = - case unpack t of - [] => "" - (c :: cs) => pack (toUpper c :: map toLower cs) - - ||| Normalise remaining parts: first 4-letter part is titlecased (script), - ||| 2-letter parts are uppercased (region), rest lowercase. - normaliseRest : List String -> Bool -> List String - normaliseRest [] _ = [] - normaliseRest (p :: ps) expectScript = - if expectScript && length p == 4 - then titleCase p :: normaliseRest ps False - else if length p == 2 && allChars isAsciiAlpha p - then toUpper p :: normaliseRest ps False - else toLower p :: normaliseRest ps expectScript diff --git a/lol/src/Lol/ABI/PluralForm.idr b/lol/src/Lol/ABI/PluralForm.idr deleted file mode 100644 index f51d73fcc..000000000 --- a/lol/src/Lol/ABI/PluralForm.idr +++ /dev/null @@ -1,224 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- -||| LOL i18n Service — Plural Form ABI with CLDR Rules -||| -||| Implements Unicode CLDR plural rules as a formal specification. -||| Different languages partition quantities into different subsets of -||| six categories: zero, one, two, few, many, other. -||| -||| This module: -||| - Defines the six CLDR plural categories with FFI transport proofs -||| - Specifies language-specific plural rules as data -||| - Provides selection functions matching CLDR operand semantics -||| - Proves category coverage (every language handles every quantity) -||| -||| @see https://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html - -module Lol.ABI.PluralForm - -import Lol.ABI.Types -import Data.Vect -import Data.So - -%default total - --------------------------------------------------------------------------------- --- CLDR Operands --------------------------------------------------------------------------------- - -||| CLDR plural operands for a numeric value. -||| These are the standard operands used in CLDR plural rule definitions. -||| -||| For an integer n: -||| n = absolute value of the source number -||| i = integer digits of n (same as n for integers) -||| v = number of visible fraction digits (0 for integers) -||| w = number of non-zero fraction digits (0 for integers) -||| f = visible fraction digits (0 for integers) -||| t = non-zero fraction digits (0 for integers) -public export -record CLDROperands where - constructor MkCLDROperands - ||| The absolute value - n : Nat - ||| Integer digits (same as n for whole numbers) - i : Nat - ||| Visible fraction digit count - v : Nat - ||| Non-zero fraction digit count - w : Nat - ||| Visible fraction digits as integer - f : Nat - ||| Non-zero fraction digits as integer - t : Nat - -||| Construct CLDR operands from an integer quantity. -||| For integers, fraction-related operands are all zero. -public export -intOperands : Nat -> CLDROperands -intOperands n = MkCLDROperands n n 0 0 0 0 - -||| Proof that integer operands have zero fraction parts -public export -intOperandsNoFraction : (n : Nat) -> (intOperands n).v = 0 -intOperandsNoFraction _ = Refl - --------------------------------------------------------------------------------- --- Plural Rule Functions --------------------------------------------------------------------------------- - -||| A plural rule function maps CLDR operands to a plural category. -||| This is the core abstraction for language-specific rules. -public export -PluralRuleFunc : Type -PluralRuleFunc = CLDROperands -> PluralCategory - -||| English plural rule (CLDR: one if i=1 and v=0; other) -||| 1 item, 2 items, 0 items -public export -englishPlural : PluralRuleFunc -englishPlural ops = - if ops.i == 1 && ops.v == 0 - then One - else Other - -||| Arabic plural rule (CLDR: zero/one/two/few/many/other) -||| All six categories used -public export -arabicPlural : PluralRuleFunc -arabicPlural ops = - let n = ops.n - mod100 = n `mod` 100 - in if n == 0 then Zero - else if n == 1 then One - else if n == 2 then Two - else if mod100 >= 3 && mod100 <= 10 then Few - else if mod100 >= 11 && mod100 <= 99 then Many - else Other - -||| French plural rule (CLDR: one if i=0 or i=1; other) -||| 0 item, 1 item, 2 items -public export -frenchPlural : PluralRuleFunc -frenchPlural ops = - if ops.i == 0 || ops.i == 1 - then One - else Other - -||| Russian plural rule (CLDR: one/few/many/other) -public export -russianPlural : PluralRuleFunc -russianPlural ops = - let mod10 = ops.i `mod` 10 - mod100 = ops.i `mod` 100 - in if mod10 == 1 && mod100 /= 11 then One - else if mod10 >= 2 && mod10 <= 4 && (mod100 < 12 || mod100 > 14) then Few - else Many - -||| Polish plural rule (CLDR: one/few/many/other) -public export -polishPlural : PluralRuleFunc -polishPlural ops = - let mod10 = ops.i `mod` 10 - mod100 = ops.i `mod` 100 - in if ops.i == 1 && ops.v == 0 then One - else if mod10 >= 2 && mod10 <= 4 && (mod100 < 12 || mod100 > 14) then Few - else if (ops.i /= 1) && (mod10 == 0 || mod10 == 1) || - (mod10 >= 5 && mod10 <= 9) || - (mod100 >= 12 && mod100 <= 14) - then Many - else Other - -||| Czech/Slovak plural rule (CLDR: one/few/other) -public export -czechPlural : PluralRuleFunc -czechPlural ops = - if ops.i == 1 && ops.v == 0 then One - else if ops.i >= 2 && ops.i <= 4 && ops.v == 0 then Few - else Other - -||| East Asian languages (Chinese, Japanese, Korean, Vietnamese) -||| No plural distinction — always "other" -public export -eastAsianPlural : PluralRuleFunc -eastAsianPlural _ = Other - --------------------------------------------------------------------------------- --- Language Rule Registry --------------------------------------------------------------------------------- - -||| Look up the plural rule function for a language by ISO 639-1/639-3 code. -||| Returns eastAsianPlural-style default (one/other) for unknown languages, -||| which is the most common pattern worldwide. -public export -ruleForLanguage : String -> PluralRuleFunc -ruleForLanguage "en" = englishPlural -ruleForLanguage "eng" = englishPlural -ruleForLanguage "de" = englishPlural -ruleForLanguage "deu" = englishPlural -ruleForLanguage "nl" = englishPlural -ruleForLanguage "nld" = englishPlural -ruleForLanguage "sv" = englishPlural -ruleForLanguage "swe" = englishPlural -ruleForLanguage "ar" = arabicPlural -ruleForLanguage "ara" = arabicPlural -ruleForLanguage "fr" = frenchPlural -ruleForLanguage "fra" = frenchPlural -ruleForLanguage "pt" = frenchPlural -ruleForLanguage "por" = frenchPlural -ruleForLanguage "ru" = russianPlural -ruleForLanguage "rus" = russianPlural -ruleForLanguage "uk" = russianPlural -ruleForLanguage "ukr" = russianPlural -ruleForLanguage "pl" = polishPlural -ruleForLanguage "pol" = polishPlural -ruleForLanguage "cs" = czechPlural -ruleForLanguage "ces" = czechPlural -ruleForLanguage "sk" = czechPlural -ruleForLanguage "slk" = czechPlural -ruleForLanguage "zh" = eastAsianPlural -ruleForLanguage "zho" = eastAsianPlural -ruleForLanguage "ja" = eastAsianPlural -ruleForLanguage "jpn" = eastAsianPlural -ruleForLanguage "ko" = eastAsianPlural -ruleForLanguage "kor" = eastAsianPlural -ruleForLanguage "vi" = eastAsianPlural -ruleForLanguage "vie" = eastAsianPlural -ruleForLanguage _ = englishPlural - -||| Select the plural category for a language and integer quantity. -||| Convenience function combining ruleForLanguage with intOperands. -public export -selectPlural : String -> Nat -> PluralCategory -selectPlural lang n = ruleForLanguage lang (intOperands n) - --------------------------------------------------------------------------------- --- Coverage Proofs --------------------------------------------------------------------------------- - -||| Every plural rule function is total — it handles every possible input. -||| This is guaranteed by %default total at module level and the fact that -||| all rule functions pattern-match exhaustively on if/then/else chains -||| that always terminate with an else branch returning a category. - --- Note: englishPluralCoverage (proving English returns One or Other) --- requires runtime evaluation of if-expressions, which Idris2 cannot --- reduce at compile time. The totality checker guarantees coverage instead. - -||| Proof that East Asian plural always returns Other. -||| This is provable because the function ignores its argument entirely. -public export -eastAsianPluralConstant : (ops : CLDROperands) -> eastAsianPlural ops = Other -eastAsianPluralConstant _ = Refl - -||| Proof that pluralToInt and the rule functions together produce valid -||| C-compatible integers (0-5 range, matching the PluralCategory enum) -public export -pluralToIntBounded : (cat : PluralCategory) -> So (pluralToInt cat <= 5) -pluralToIntBounded Zero = Oh -pluralToIntBounded One = Oh -pluralToIntBounded Two = Oh -pluralToIntBounded Few = Oh -pluralToIntBounded Many = Oh -pluralToIntBounded Other = Oh diff --git a/lol/src/Lol/ABI/TranslationKey.idr b/lol/src/Lol/ABI/TranslationKey.idr deleted file mode 100644 index 4769f6572..000000000 --- a/lol/src/Lol/ABI/TranslationKey.idr +++ /dev/null @@ -1,150 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- -||| LOL i18n Service — Type-Safe Translation Keys -||| -||| Translation keys in LOL are dot-separated namespace paths -||| (e.g. "app.greeting", "errors.not_found", "nav.home"). -||| This module provides a refined type that proves keys are -||| non-empty and structurally valid at compile time. -||| -||| Key format: segment(.segment)* -||| segment: [a-z][a-z0-9_]* (lowercase start, alphanumeric + underscore) -||| -||| Examples: -||| "greeting" — single segment -||| "app.greeting" — two segments -||| "errors.not_found" — nested with underscore -||| "ui.nav.home" — deeply nested - -module Lol.ABI.TranslationKey - -import Data.So -import Data.String -import Data.List -import Data.List1 - -%default total - --------------------------------------------------------------------------------- --- Key Segment Validation --------------------------------------------------------------------------------- - -||| Check if a character is valid in a key segment (lowercase alpha, digit, underscore) -public export -isSegmentChar : Char -> Bool -isSegmentChar c = (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '_' - -||| Check if a character is a valid segment start (lowercase alpha only) -public export -isSegmentStart : Char -> Bool -isSegmentStart c = c >= 'a' && c <= 'z' - -||| Validate a single key segment. -||| A segment must start with a lowercase letter, followed by zero or more -||| lowercase letters, digits, or underscores. -public export -isValidSegment : String -> Bool -isValidSegment s = - case unpack s of - [] => False - (c :: cs) => isSegmentStart c && all isSegmentChar cs - -||| Validate a complete translation key. -||| Must be non-empty, consist of dot-separated segments, and each -||| segment must be a valid identifier. -public export -isValidKey : String -> Bool -isValidKey s = - let segments = split (== '.') s - in all isValidSegment (Data.List1.forget segments) - --------------------------------------------------------------------------------- --- Validated Translation Key Type --------------------------------------------------------------------------------- - -||| A translation key with a proof that it is non-empty and structurally valid. -||| The proof is checked at construction time (runtime validation) or can be -||| provided statically for known-good literals. -public export -record ValidKey where - constructor MkValidKey - ||| The raw key string (e.g. "app.greeting") - key : String - ||| Proof that the key is structurally valid - {auto 0 valid : So (isValidKey key)} - -||| Attempt to create a validated key from a raw string. -||| Returns Nothing if the key is empty or structurally invalid. -public export -mkKey : (s : String) -> Maybe ValidKey -mkKey s = case choose (isValidKey s) of - Left prf => Just (MkValidKey s) - Right _ => Nothing - -||| Get the raw string from a validated key. -public export -keyStr : ValidKey -> String -keyStr k = k.key - -||| Count the number of segments (namespace depth) in a key. -||| "greeting" = 1, "app.greeting" = 2, "ui.nav.home" = 3 -public export -keyDepth : ValidKey -> Nat -keyDepth k = length (Data.List1.forget (split (== '.') k.key)) - -||| Get the top-level namespace of a key. -||| "app.greeting" -> "app", "greeting" -> "greeting" -public export -keyNamespace : ValidKey -> String -keyNamespace k = - head (split (== '.') k.key) - -||| Get the final segment (leaf) of a key. -||| "app.greeting" -> "greeting", "greeting" -> "greeting" -public export -keyLeaf : ValidKey -> String -keyLeaf k = - last (split (== '.') k.key) - --------------------------------------------------------------------------------- --- Key Operations --------------------------------------------------------------------------------- - -||| Append a suffix to a key (used for plural form keys). -||| "items" + "one" -> "items.one" -||| "app.items" + "other" -> "app.items.other" -public export -appendSuffix : ValidKey -> String -> Maybe ValidKey -appendSuffix k suffix = - let combined = k.key ++ "." ++ suffix - in mkKey combined - -||| Prepend a namespace to a key. -||| "errors" + "not_found" -> "errors.not_found" -public export -prependNamespace : String -> ValidKey -> Maybe ValidKey -prependNamespace ns k = - let combined = ns ++ "." ++ k.key - in mkKey combined - -||| Strip the top-level namespace from a key. -||| "app.greeting" -> Just "greeting" -||| "greeting" -> Nothing (no namespace to strip) -public export -stripNamespace : ValidKey -> Maybe ValidKey -stripNamespace k = - let (_ ::: rest) = split (== '.') k.key - in case rest of - [] => Nothing - _ => mkKey (joinBy "." rest) - --------------------------------------------------------------------------------- --- Proofs --------------------------------------------------------------------------------- - --- Note: A proof that a valid key has at least one segment (keyDepth >= 1) --- would require reasoning about split on runtime strings, which is not --- reducible at compile time. The property holds by construction: --- isValidKey requires at least one valid segment, and split on a --- non-empty string always produces at least one part (List1). diff --git a/lol/src/Lol/ABI/Types.idr b/lol/src/Lol/ABI/Types.idr deleted file mode 100644 index 45fa013f5..000000000 --- a/lol/src/Lol/ABI/Types.idr +++ /dev/null @@ -1,357 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- -||| LOL i18n Service — ABI Type Definitions -||| -||| Defines the Application Binary Interface for the LOL (Language of Languages) -||| internationalisation service. LOL is called as a service (never embedded) to -||| provide translation lookup, locale resolution, and plural form selection -||| across 1500+ languages in the parallel corpus. -||| -||| All type definitions include formal proofs of correctness. -||| -||| @see https://idris2.readthedocs.io for Idris2 documentation - -module Lol.ABI.Types - -import Data.Bits -import Data.So -import Data.Vect -import Data.String - -%default total - --------------------------------------------------------------------------------- --- Platform Detection --------------------------------------------------------------------------------- - -||| Supported platforms for this ABI -public export -data Platform = Linux | Windows | MacOS | BSD | WASM - --------------------------------------------------------------------------------- --- Result Codes --------------------------------------------------------------------------------- - -||| Result codes for FFI operations. -||| Uses C-compatible integers for cross-language compatibility. -public export -data Result : Type where - ||| Operation succeeded - Ok : Result - ||| Generic error - Error : Result - ||| Invalid parameter provided - InvalidParam : Result - ||| Out of memory - OutOfMemory : Result - ||| Null pointer encountered - NullPointer : Result - ||| Locale not found in corpus - LocaleNotFound : Result - ||| Translation key not found for locale - KeyNotFound : Result - ||| Plural form index out of range for locale - PluralOutOfRange : Result - -||| Convert Result to C integer for FFI transport -public export -resultToInt : Result -> Bits32 -resultToInt Ok = 0 -resultToInt Error = 1 -resultToInt InvalidParam = 2 -resultToInt OutOfMemory = 3 -resultToInt NullPointer = 4 -resultToInt LocaleNotFound = 5 -resultToInt KeyNotFound = 6 -resultToInt PluralOutOfRange = 7 - -||| Convert C integer back to Result -public export -resultFromInt : Bits32 -> Maybe Result -resultFromInt 0 = Just Ok -resultFromInt 1 = Just Error -resultFromInt 2 = Just InvalidParam -resultFromInt 3 = Just OutOfMemory -resultFromInt 4 = Just NullPointer -resultFromInt 5 = Just LocaleNotFound -resultFromInt 6 = Just KeyNotFound -resultFromInt 7 = Just PluralOutOfRange -resultFromInt _ = Nothing - -||| Proof that resultToInt is injective (distinct results map to distinct codes) -public export -resultToIntInjective : (a, b : Result) -> resultToInt a = resultToInt b -> a = b -resultToIntInjective Ok Ok Refl = Refl -resultToIntInjective Error Error Refl = Refl -resultToIntInjective InvalidParam InvalidParam Refl = Refl -resultToIntInjective OutOfMemory OutOfMemory Refl = Refl -resultToIntInjective NullPointer NullPointer Refl = Refl -resultToIntInjective LocaleNotFound LocaleNotFound Refl = Refl -resultToIntInjective KeyNotFound KeyNotFound Refl = Refl -resultToIntInjective PluralOutOfRange PluralOutOfRange Refl = Refl - -||| Proof that resultFromInt is a left inverse of resultToInt -public export -resultRoundTrip : (r : Result) -> resultFromInt (resultToInt r) = Just r -resultRoundTrip Ok = Refl -resultRoundTrip Error = Refl -resultRoundTrip InvalidParam = Refl -resultRoundTrip OutOfMemory = Refl -resultRoundTrip NullPointer = Refl -resultRoundTrip LocaleNotFound = Refl -resultRoundTrip KeyNotFound = Refl -resultRoundTrip PluralOutOfRange = Refl - --------------------------------------------------------------------------------- --- Opaque Handles --------------------------------------------------------------------------------- - -||| Opaque handle to the LOL service instance. -||| Prevents direct construction; enforces creation through lol_init. -public export -data Handle : Type where - MkHandle : (ptr : Bits64) -> {auto 0 nonNull : So (ptr /= 0)} -> Handle - -||| Safely create a handle from a pointer value. -||| Returns Nothing if the pointer is null. -public export -createHandle : Bits64 -> Maybe Handle -createHandle ptr = - case choose (ptr /= 0) of - Left prf => Just (MkHandle ptr) - Right _ => Nothing - -||| Extract raw pointer value from handle (for FFI transport) -public export -handlePtr : Handle -> Bits64 -handlePtr (MkHandle ptr) = ptr - --------------------------------------------------------------------------------- --- ISO 639 Language Codes --------------------------------------------------------------------------------- - -||| An ISO 639-3 three-letter language code (e.g. "eng", "deu", "fra"). -||| The corpus uses ISO 639-3 as the canonical identifier for every language. -public export -record Iso639_3 where - constructor MkIso639_3 - code : String - {auto 0 validLength : So (length code == 3)} - -||| An ISO 639-1 two-letter language code (e.g. "en", "de", "fr"). -||| Used for locale shorthand; many languages lack an ISO 639-1 code. -public export -record Iso639_1 where - constructor MkIso639_1 - code : String - {auto 0 validLength : So (length code == 2)} - --------------------------------------------------------------------------------- --- Locale --------------------------------------------------------------------------------- - -||| A BCP 47 locale tag combining language, optional script, and region. -||| Examples: "en-US", "zh-Hans-CN", "sr-Latn-RS". -||| -||| The LOL service resolves locale tags to their best-match corpus entry. -public export -record Locale where - constructor MkLocale - ||| Full BCP 47 tag (e.g. "en-US") - tag : String - ||| ISO 639-3 language component (e.g. "eng") - language : String - ||| ISO 15924 script (e.g. "Latn"), empty if unspecified - script : String - ||| ISO 3166-1 region (e.g. "US"), empty if unspecified - region : String - -||| Proof that a Locale's language field is non-empty -public export -localeHasLanguage : (loc : Locale) -> So (length loc.language > 0) -> () -localeHasLanguage _ _ = () - --------------------------------------------------------------------------------- --- Translation Types --------------------------------------------------------------------------------- - -||| A translation key is a dot-separated namespace path. -||| Examples: "app.greeting", "errors.not_found", "nav.home". -public export -TranslationKey : Type -TranslationKey = String - -||| A single translation result returned from the service. -public export -record TranslationResult where - constructor MkTranslationResult - ||| The resolved translation text (UTF-8) - text : String - ||| The locale that was actually used (may differ from requested if fallback) - resolvedLocale : String - ||| Whether a fallback locale was used - isFallback : Bool - --------------------------------------------------------------------------------- --- Plural Forms (CLDR) --------------------------------------------------------------------------------- - -||| CLDR plural categories. -||| Different languages have different plural rules; LOL follows the Unicode -||| CLDR plural rule specification. -||| -||| @see https://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html -public export -data PluralCategory - = ||| Typically 0 in some languages (Arabic, etc.) - Zero - | ||| Typically 1 (English "1 item") - One - | ||| Typically 2 (Arabic dual, Welsh, etc.) - Two - | ||| Small numbers (3-10 in Arabic, 2-4 in Czech, etc.) - Few - | ||| Large numbers (11-99 in Arabic, etc.) - Many - | ||| Everything else (English "2 items", "5 items", etc.) - Other - -||| Convert PluralCategory to C integer for FFI transport -public export -pluralToInt : PluralCategory -> Bits32 -pluralToInt Zero = 0 -pluralToInt One = 1 -pluralToInt Two = 2 -pluralToInt Few = 3 -pluralToInt Many = 4 -pluralToInt Other = 5 - -||| Convert C integer back to PluralCategory -public export -pluralFromInt : Bits32 -> Maybe PluralCategory -pluralFromInt 0 = Just Zero -pluralFromInt 1 = Just One -pluralFromInt 2 = Just Two -pluralFromInt 3 = Just Few -pluralFromInt 4 = Just Many -pluralFromInt 5 = Just Other -pluralFromInt _ = Nothing - -||| Proof that pluralToInt round-trips -public export -pluralRoundTrip : (p : PluralCategory) -> pluralFromInt (pluralToInt p) = Just p -pluralRoundTrip Zero = Refl -pluralRoundTrip One = Refl -pluralRoundTrip Two = Refl -pluralRoundTrip Few = Refl -pluralRoundTrip Many = Refl -pluralRoundTrip Other = Refl - -||| The maximum number of CLDR plural categories any language can have -public export -maxPluralCategories : Nat -maxPluralCategories = 6 - -||| Plural rule description for a single language. -||| Lists which CLDR categories the language uses. -public export -record PluralRule where - constructor MkPluralRule - ||| ISO 639-3 code for the language this rule applies to - language : String - ||| Number of distinct plural forms (1-6) - formCount : Nat - ||| Proof that formCount is within valid CLDR range - {auto 0 validCount : So (formCount >= 1 && formCount <= maxPluralCategories)} - ||| Which categories this language uses (in CLDR order) - categories : Vect formCount PluralCategory - --------------------------------------------------------------------------------- --- Language Metadata --------------------------------------------------------------------------------- - -||| Metadata about a single language in the LOL corpus. -||| This record maps directly to the C struct lol_language_info_t. -public export -record LanguageInfo where - constructor MkLanguageInfo - ||| ISO 639-3 code - iso639_3 : String - ||| English name - name : String - ||| Name in the language itself (autonym) - nativeName : String - ||| Language family (e.g. "Indo-European") - family : String - ||| Writing systems used (e.g. "Latin, Cyrillic") - scripts : String - ||| Number of corpus sources available - sourceCount : Bits32 - ||| Total verses crawled - verseCount : Bits32 - ||| Quality score from VeriSimDB pipeline (0.0-1.0) - quality : Double - --------------------------------------------------------------------------------- --- Service Configuration --------------------------------------------------------------------------------- - -||| Configuration for the LOL service instance. -||| Passed to lol_init to set up the corpus data path and defaults. -public export -record ServiceConfig where - constructor MkServiceConfig - ||| Path to the corpus data directory - dataDir : String - ||| Default locale for fallback resolution - defaultLocale : String - ||| Whether to enable locale fallback chains (e.g. en-US -> en -> default) - enableFallback : Bool - ||| Port for the API gateway (0 = no gateway) - apiPort : Bits32 - --------------------------------------------------------------------------------- --- Platform-Specific Types --------------------------------------------------------------------------------- - -||| C int size varies by platform -public export -CInt : Platform -> Type -CInt Linux = Bits32 -CInt Windows = Bits32 -CInt MacOS = Bits32 -CInt BSD = Bits32 -CInt WASM = Bits32 - -||| C size_t varies by platform -public export -CSize : Platform -> Type -CSize Linux = Bits64 -CSize Windows = Bits64 -CSize MacOS = Bits64 -CSize BSD = Bits64 -CSize WASM = Bits32 - -||| Pointer size for the platform (in bits) -public export -ptrSize : Platform -> Nat -ptrSize Linux = 64 -ptrSize Windows = 64 -ptrSize MacOS = 64 -ptrSize BSD = 64 -ptrSize WASM = 32 - --------------------------------------------------------------------------------- --- Memory Layout Proofs --------------------------------------------------------------------------------- - -||| Proof that a type has a specific size -public export -data HasSize : Type -> Nat -> Type where - SizeProof : {0 t : Type} -> {n : Nat} -> HasSize t n - -||| Proof that a type has a specific alignment -public export -data HasAlignment : Type -> Nat -> Type where - AlignProof : {0 t : Type} -> {n : Nat} -> HasAlignment t n diff --git a/lol/src/abi/Foreign.idr b/lol/src/abi/Foreign.idr deleted file mode 100644 index 14aa288f7..000000000 --- a/lol/src/abi/Foreign.idr +++ /dev/null @@ -1,324 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- -||| LOL i18n Service — Foreign Function Interface Declarations -||| -||| Declares all C-compatible functions that will be implemented in -||| the Zig FFI layer (ffi/zig/src/main.zig). Each function is -||| declared with its primitive FFI signature and wrapped in a -||| safe Idris2 API that handles null pointers and error codes. -||| -||| LOL is called as a service, never embedded. Consumers initialise -||| with lol_init, perform lookups, then clean up with lol_free. - -module Lol.ABI.Foreign - -import Lol.ABI.Types -import Lol.ABI.Layout - -%default total - --------------------------------------------------------------------------------- --- Library Lifecycle --------------------------------------------------------------------------------- - -||| Initialise the LOL service with a corpus data directory. -||| Returns a handle to the service instance, or null on failure. -export -%foreign "C:lol_init, liblol" -prim__init : String -> PrimIO Bits64 - -||| Safe wrapper for service initialisation. -||| Takes the path to the corpus data directory and returns a Handle -||| if initialisation succeeds. -export -init : String -> IO (Maybe Handle) -init dataDir = do - ptr <- primIO (prim__init dataDir) - pure (createHandle ptr) - -||| Release all resources held by the LOL service. -export -%foreign "C:lol_free, liblol" -prim__free : Bits64 -> PrimIO () - -||| Safe wrapper for cleanup. -export -free : Handle -> IO () -free h = primIO (prim__free (handlePtr h)) - --------------------------------------------------------------------------------- --- Locale Resolution --------------------------------------------------------------------------------- - -||| Parse a BCP 47 locale tag and resolve it against the corpus. -||| Returns a pointer to a lol_locale_t struct, or null if the locale -||| cannot be resolved. -export -%foreign "C:lol_resolve_locale, liblol" -prim__resolveLocale : Bits64 -> String -> PrimIO Bits64 - -||| Safe locale resolution. -||| Parses the tag and looks up the best matching corpus entry. -export -resolveLocale : Handle -> String -> IO (Maybe Bits64) -resolveLocale h tag = do - ptr <- primIO (prim__resolveLocale (handlePtr h) tag) - pure (if ptr == 0 then Nothing else Just ptr) - -||| Free a locale struct returned by resolveLocale. -export -%foreign "C:lol_free_locale, liblol" -prim__freeLocale : Bits64 -> PrimIO () - -||| Safe locale cleanup. -export -freeLocale : Bits64 -> IO () -freeLocale ptr = primIO (prim__freeLocale ptr) - --------------------------------------------------------------------------------- --- Translation Lookup --------------------------------------------------------------------------------- - -||| Look up a translation key for a given locale. -||| Returns a pointer to a lol_translation_result_t, or null if not found. -||| The result includes the resolved locale (which may differ from the -||| requested one if fallback was used). -export -%foreign "C:lol_translate, liblol" -prim__translate : Bits64 -> String -> String -> PrimIO Bits64 - -||| Safe translation lookup. -||| Takes a locale tag and translation key, returns the translation result. -export -translate : Handle -> (localeTag : String) -> (key : TranslationKey) -> IO (Maybe Bits64) -translate h localeTag key = do - ptr <- primIO (prim__translate (handlePtr h) localeTag key) - pure (if ptr == 0 then Nothing else Just ptr) - -||| Free a translation result struct. -export -%foreign "C:lol_free_translation, liblol" -prim__freeTranslation : Bits64 -> PrimIO () - -||| Safe translation result cleanup. -export -freeTranslation : Bits64 -> IO () -freeTranslation ptr = primIO (prim__freeTranslation ptr) - -||| Get the text field from a translation result pointer. -export -%foreign "C:lol_translation_text, liblol" -prim__translationText : Bits64 -> PrimIO Bits64 - -||| Get translation text as a string. -export -%foreign "support:idris2_getString, libidris2_support" -prim__getString : Bits64 -> String - -||| Safe translation text getter. -export -translationText : Bits64 -> IO (Maybe String) -translationText ptr = do - strPtr <- primIO (prim__translationText ptr) - if strPtr == 0 - then pure Nothing - else pure (Just (prim__getString strPtr)) - --------------------------------------------------------------------------------- --- Plural Form Selection --------------------------------------------------------------------------------- - -||| Select the appropriate CLDR plural category for a quantity in a -||| given locale. Returns the plural category as a Bits32 (see pluralToInt). -export -%foreign "C:lol_select_plural, liblol" -prim__selectPlural : Bits64 -> String -> Bits64 -> PrimIO Bits32 - -||| Safe plural category selection. -||| Given a locale tag and a quantity, returns the CLDR plural category -||| that should be used for that quantity in that language. -export -selectPlural : Handle -> (localeTag : String) -> (quantity : Bits64) -> IO (Maybe PluralCategory) -selectPlural h localeTag quantity = do - raw <- primIO (prim__selectPlural (handlePtr h) localeTag quantity) - pure (pluralFromInt raw) - -||| Look up a pluralised translation. -||| Combines plural selection and translation lookup in a single call. -||| The key is suffixed with the plural category (e.g. "items.one", "items.other"). -export -%foreign "C:lol_translate_plural, liblol" -prim__translatePlural : Bits64 -> String -> String -> Bits64 -> PrimIO Bits64 - -||| Safe pluralised translation. -export -translatePlural : Handle -> (localeTag : String) -> (key : TranslationKey) -> (quantity : Bits64) -> IO (Maybe Bits64) -translatePlural h localeTag key quantity = do - ptr <- primIO (prim__translatePlural (handlePtr h) localeTag key quantity) - pure (if ptr == 0 then Nothing else Just ptr) - --------------------------------------------------------------------------------- --- Language Metadata --------------------------------------------------------------------------------- - -||| List all languages in the corpus. -||| Returns a pointer to an array of lol_language_info_t structs and -||| writes the count to the output parameter. -export -%foreign "C:lol_list_languages, liblol" -prim__listLanguages : Bits64 -> Bits64 -> PrimIO Bits32 - -||| Get language count in the corpus. -export -%foreign "C:lol_language_count, liblol" -prim__languageCount : Bits64 -> PrimIO Bits32 - -||| Safe language count getter. -export -languageCount : Handle -> IO Bits32 -languageCount h = primIO (prim__languageCount (handlePtr h)) - -||| Look up metadata for a specific language by ISO 639-3 code. -export -%foreign "C:lol_get_language, liblol" -prim__getLanguage : Bits64 -> String -> PrimIO Bits64 - -||| Safe language lookup. -export -getLanguage : Handle -> String -> IO (Maybe Bits64) -getLanguage h code = do - ptr <- primIO (prim__getLanguage (handlePtr h) code) - pure (if ptr == 0 then Nothing else Just ptr) - -||| Free a language info struct. -export -%foreign "C:lol_free_language, liblol" -prim__freeLanguage : Bits64 -> PrimIO () - -||| Safe language info cleanup. -export -freeLanguage : Bits64 -> IO () -freeLanguage ptr = primIO (prim__freeLanguage ptr) - --------------------------------------------------------------------------------- --- Plural Rules --------------------------------------------------------------------------------- - -||| Get the plural rule for a specific language. -||| Returns a pointer to lol_plural_rule_t, or null if not available. -export -%foreign "C:lol_get_plural_rule, liblol" -prim__getPluralRule : Bits64 -> String -> PrimIO Bits64 - -||| Safe plural rule lookup. -export -getPluralRule : Handle -> String -> IO (Maybe Bits64) -getPluralRule h langCode = do - ptr <- primIO (prim__getPluralRule (handlePtr h) langCode) - pure (if ptr == 0 then Nothing else Just ptr) - -||| Free a plural rule struct. -export -%foreign "C:lol_free_plural_rule, liblol" -prim__freePluralRule : Bits64 -> PrimIO () - -||| Safe plural rule cleanup. -export -freePluralRule : Bits64 -> IO () -freePluralRule ptr = primIO (prim__freePluralRule ptr) - --------------------------------------------------------------------------------- --- Locale Fallback Chain --------------------------------------------------------------------------------- - -||| Get the fallback chain for a locale. -||| Returns a null-terminated array of locale tag strings. -||| For example, "en-GB" might produce ["en-GB", "en", "default"]. -export -%foreign "C:lol_fallback_chain, liblol" -prim__fallbackChain : Bits64 -> String -> PrimIO Bits64 - -||| Get the length of a fallback chain. -export -%foreign "C:lol_fallback_chain_len, liblol" -prim__fallbackChainLen : Bits64 -> String -> PrimIO Bits32 - -||| Free a fallback chain array. -export -%foreign "C:lol_free_fallback_chain, liblol" -prim__freeFallbackChain : Bits64 -> PrimIO () - --------------------------------------------------------------------------------- --- Error Handling --------------------------------------------------------------------------------- - -||| Get the last error message from the service. -export -%foreign "C:lol_last_error, liblol" -prim__lastError : PrimIO Bits64 - -||| Retrieve the last error as a string. -export -lastError : IO (Maybe String) -lastError = do - ptr <- primIO prim__lastError - if ptr == 0 - then pure Nothing - else pure (Just (prim__getString ptr)) - -||| Get a human-readable description for a result code. -export -errorDescription : Result -> String -errorDescription Ok = "Success" -errorDescription Error = "Generic error" -errorDescription InvalidParam = "Invalid parameter" -errorDescription OutOfMemory = "Out of memory" -errorDescription NullPointer = "Null pointer" -errorDescription LocaleNotFound = "Locale not found in corpus" -errorDescription KeyNotFound = "Translation key not found" -errorDescription PluralOutOfRange = "Plural form index out of range" - --------------------------------------------------------------------------------- --- Version Information --------------------------------------------------------------------------------- - -||| Get the LOL library version string. -export -%foreign "C:lol_version, liblol" -prim__version : PrimIO Bits64 - -||| Get version as a string. -export -version : IO String -version = do - ptr <- primIO prim__version - pure (prim__getString ptr) - -||| Get build information. -export -%foreign "C:lol_build_info, liblol" -prim__buildInfo : PrimIO Bits64 - -||| Get build information as a string. -export -buildInfo : IO String -buildInfo = do - ptr <- primIO prim__buildInfo - pure (prim__getString ptr) - --------------------------------------------------------------------------------- --- Utility --------------------------------------------------------------------------------- - -||| Check if the service handle is initialised and ready. -export -%foreign "C:lol_is_initialized, liblol" -prim__isInitialized : Bits64 -> PrimIO Bits32 - -||| Safe initialisation check. -export -isInitialized : Handle -> IO Bool -isInitialized h = do - result <- primIO (prim__isInitialized (handlePtr h)) - pure (result /= 0) diff --git a/lol/src/abi/I18nStore.idr b/lol/src/abi/I18nStore.idr deleted file mode 100644 index 5e73aef05..000000000 --- a/lol/src/abi/I18nStore.idr +++ /dev/null @@ -1,243 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- -||| LOL i18n Service — I18n Store Interface with Lookup Proofs -||| -||| Defines an abstract interface for the translation store that -||| guarantees: if a key exists in the store for a locale, then -||| a translation is returned. This is the core correctness property -||| that the Zig FFI must uphold. -||| -||| The store also specifies the fallback chain contract: when a -||| key is not found for the requested locale, the service walks -||| the fallback chain until it finds a translation or exhausts -||| all fallback options. -||| -||| LOL is called as a service, never embedded. The store interface -||| captures the semantic guarantees that all consumers can rely on. - -module Lol.ABI.I18nStore - -import Lol.ABI.Types -import Lol.ABI.Locale -import Lol.ABI.TranslationKey -import Lol.ABI.PluralForm - -import Data.So -import Data.List -import Data.List1 - -%default total - --------------------------------------------------------------------------------- --- Key Existence Predicate --------------------------------------------------------------------------------- - -||| Evidence that a key exists in the store for a given locale. -||| This is an opaque proof token — it cannot be forged, only obtained -||| by querying the store. -public export -data KeyExists : String -> String -> Type where - ||| Witness that key `k` has a translation for locale `loc` - MkKeyExists : (loc : String) -> (k : String) -> KeyExists loc k - -||| Evidence that a locale is supported by the store (has at least one key) -public export -data LocaleSupported : String -> Type where - ||| Witness that locale `loc` has at least one translation - MkLocaleSupported : (loc : String) -> (k : String) -> KeyExists loc k -> LocaleSupported loc - --------------------------------------------------------------------------------- --- Store Interface --------------------------------------------------------------------------------- - -||| The I18n store interface specifies the contract that any -||| translation store implementation must satisfy. -||| -||| The key property is `guaranteedLookup`: given proof that a key -||| exists, the lookup always succeeds (returns a non-empty string). -public export -interface I18nStore (store : Type) where - - ||| Check whether a key exists for a locale. - ||| Returns a proof if the key is present, Nothing otherwise. - hasKey : store -> (locale : String) -> (key : String) -> Maybe (KeyExists locale key) - - ||| Look up a translation, given proof the key exists. - ||| This function is total: the proof guarantees the result is non-empty. - guaranteedLookup : store -> KeyExists locale key -> String - - ||| Look up a translation without proof (may fail). - ||| This is the common case for FFI callers who cannot construct proofs. - lookup : store -> (locale : String) -> (key : String) -> Maybe String - - ||| Get the number of keys available for a locale. - keyCount : store -> (locale : String) -> Nat - - ||| Get the list of supported locales. - supportedLocales : store -> List String - --------------------------------------------------------------------------------- --- Fallback Resolution --------------------------------------------------------------------------------- - -||| Fallback resolution strategy. -||| The store tries each locale in the fallback chain until a translation -||| is found, or returns Nothing if all fallbacks are exhausted. -public export -data FallbackStrategy - = ||| Walk the full BCP 47 fallback chain (en-GB -> en -> default) - ChainFallback - | ||| Only try the exact locale, no fallback - ExactMatch - | ||| Try exact locale, then jump directly to default - DirectDefault - -||| Result of a fallback-aware lookup. -||| Records which locale was actually used (may differ from requested). -public export -record FallbackResult where - constructor MkFallbackResult - ||| The translation text - text : String - ||| The locale that provided the translation - resolvedLocale : String - ||| Whether a fallback locale was used - isFallback : Bool - -||| Build the fallback chain for a given strategy. -public export -buildFallbackChain : FallbackStrategy -> (requestedLocale : String) -> (defaultLocale : String) -> List String -buildFallbackChain ChainFallback req def = fallbackChain req ++ [def] -buildFallbackChain ExactMatch req _ = [req] -buildFallbackChain DirectDefault req def = [req, def] - -||| Try each locale in a chain until a translation is found. -||| Takes a lookup function to avoid interface constraint accessibility issues. -public export -tryFallbackChain : - (lookupFn : String -> String -> Maybe String) -> - (key : String) -> - (chain : List String) -> - (requestedLocale : String) -> - Maybe FallbackResult -tryFallbackChain lookupFn key [] _ = Nothing -tryFallbackChain lookupFn key (loc :: rest) reqLocale = - case lookupFn loc key of - Just text => Just (MkFallbackResult text loc (loc /= reqLocale)) - Nothing => tryFallbackChain lookupFn key rest reqLocale - -||| Perform a lookup with fallback chain resolution. -||| Tries each locale in the chain until a translation is found. -||| Takes a lookup function directly to avoid interface accessibility issues. -public export -lookupWithFallback : - (lookupFn : String -> String -> Maybe String) -> - FallbackStrategy -> - (requestedLocale : String) -> - (defaultLocale : String) -> - (key : String) -> - Maybe FallbackResult -lookupWithFallback lookupFn strategy reqLocale defLocale key = - let chain = buildFallbackChain strategy reqLocale defLocale - in tryFallbackChain lookupFn key chain reqLocale - --------------------------------------------------------------------------------- --- Plural-Aware Lookup --------------------------------------------------------------------------------- - -||| Extract the language subtag from a locale tag. -||| "en-US" -> "en", "zh-Hans-CN" -> "zh" -public export -extractLanguage : String -> String -extractLanguage s = let (lang ::: _) = split (== '-') s in lang - -||| Convert a plural category to its CLDR string suffix. -public export -categoryToSuffix : PluralCategory -> String -categoryToSuffix Zero = "zero" -categoryToSuffix One = "one" -categoryToSuffix Two = "two" -categoryToSuffix Few = "few" -categoryToSuffix Many = "many" -categoryToSuffix Other = "other" - -||| Look up a translation with automatic plural form selection. -||| Appends the CLDR plural category to the key as a dot-separated suffix. -||| -||| For "items" with quantity 1 in English: looks up "items.one" -||| For "items" with quantity 5 in Arabic: looks up "items.few" -public export -lookupPlural : - (lookupFn : String -> String -> Maybe String) -> - FallbackStrategy -> - (locale : String) -> - (defaultLocale : String) -> - (key : String) -> - (quantity : Nat) -> - Maybe FallbackResult -lookupPlural lookupFn strategy locale defLocale key quantity = - let lang = extractLanguage locale - cat = selectPlural lang quantity - sfx = categoryToSuffix cat - pluralKey = key ++ "." ++ sfx - in case lookupWithFallback lookupFn strategy locale defLocale pluralKey of - Just result => Just result - Nothing => lookupWithFallback lookupFn strategy locale defLocale key - --------------------------------------------------------------------------------- --- Correctness Properties --------------------------------------------------------------------------------- - -||| The guaranteedLookup contract: if hasKey returns a proof, then -||| guaranteedLookup must return a non-empty string. -||| -||| This property cannot be proved generically (it depends on the -||| implementation), but it serves as a specification that -||| implementations must satisfy. The Zig FFI is tested against -||| this property in integration tests. -public export -interface I18nStore store => CorrectStore (store : Type) where - ||| If hasKey succeeds, guaranteedLookup returns non-empty text - lookupNonEmpty : - (st : store) -> - (prf : KeyExists locale key) -> - So (length (guaranteedLookup st prf) > 0) - - ||| lookup and hasKey are consistent: if hasKey returns a proof, - ||| then lookup returns Just (guaranteedLookup st proof) - lookupConsistent : - (st : store) -> - (locale : String) -> - (key : String) -> - (prf : KeyExists locale key) -> - lookup st locale key = Just (guaranteedLookup st prf) - - ||| The store is monotonic: adding translations never removes existing ones - ||| (expressed as: if a key exists, it continues to exist) - ||| This is an invariant the Zig store must maintain. - --------------------------------------------------------------------------------- --- Error Classification --------------------------------------------------------------------------------- - -||| Classification of lookup failures for error reporting. -||| The Zig FFI maps these to the Result enum in Types.idr. -public export -data LookupError - = ||| The requested locale is not in the corpus at all - NoSuchLocale String - | ||| The locale exists but the key is not defined - NoSuchKey String String - | ||| The plural form variant is missing (e.g. "items.few" missing) - MissingPluralForm String String PluralCategory - | ||| The entire fallback chain was exhausted without finding a translation - FallbackExhausted String String (List String) - -||| Map a lookup error to the appropriate Result code for FFI transport -public export -lookupErrorToResult : LookupError -> Result -lookupErrorToResult (NoSuchLocale _) = LocaleNotFound -lookupErrorToResult (NoSuchKey _ _) = KeyNotFound -lookupErrorToResult (MissingPluralForm _ _ _) = PluralOutOfRange -lookupErrorToResult (FallbackExhausted _ _ _) = KeyNotFound diff --git a/lol/src/abi/Layout.idr b/lol/src/abi/Layout.idr deleted file mode 100644 index 6606c8849..000000000 --- a/lol/src/abi/Layout.idr +++ /dev/null @@ -1,245 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- -||| LOL i18n Service — Memory Layout Proofs -||| -||| Provides formal proofs about memory layout, alignment, and padding -||| for C-compatible structs used across the LOL FFI boundary. -||| -||| Each struct that crosses the Zig FFI is declared here with its -||| field offsets, alignment constraints, and proofs that the layout -||| is C ABI compliant on every supported platform. -||| -||| @see https://en.wikipedia.org/wiki/Data_structure_alignment - -module Lol.ABI.Layout - -import Lol.ABI.Types -import Data.Vect -import Data.So - -%default total - --------------------------------------------------------------------------------- --- Alignment Utilities --------------------------------------------------------------------------------- - -||| Calculate padding needed for alignment. -||| Given the current byte offset and the required alignment, returns the -||| number of padding bytes to insert so the next field starts aligned. -public export -paddingFor : (offset : Nat) -> (alignment : Nat) -> Nat -paddingFor offset alignment = - if offset `mod` alignment == 0 - then 0 - else alignment - (offset `mod` alignment) - -||| Proof that alignment divides aligned size -public export -data Divides : Nat -> Nat -> Type where - DivideBy : (k : Nat) -> {n : Nat} -> {m : Nat} -> (m = k * n) -> Divides n m - -||| Round up to next alignment boundary -public export -alignUp : (size : Nat) -> (alignment : Nat) -> Nat -alignUp size alignment = - size + paddingFor size alignment - -||| Proof that alignUp produces an aligned result. -||| For any positive alignment, (alignUp s a) is divisible by a. -public export -alignUpCorrect : (size : Nat) -> (align : Nat) -> (align > 0) -> Divides align (alignUp size align) -alignUpCorrect size align prf = - DivideBy ((size + paddingFor size align) `div` align) Refl - --------------------------------------------------------------------------------- --- Struct Field Layout --------------------------------------------------------------------------------- - -||| A field in a C-compatible struct, recording its name, byte offset, -||| size in bytes, and required alignment. -public export -record Field where - constructor MkField - name : String - offset : Nat - size : Nat - alignment : Nat - -||| Calculate the offset of the next field after this one. -public export -nextFieldOffset : Field -> Nat -nextFieldOffset f = alignUp (f.offset + f.size) f.alignment - -||| A struct layout is a vector of fields with proofs that the total size -||| and alignment are consistent with the fields. -public export -record StructLayout where - constructor MkStructLayout - fields : Vect n Field - totalSize : Nat - alignment : Nat - {auto 0 sizeCorrect : So (totalSize >= sum (map (\f => f.size) fields))} - {auto 0 aligned : Divides alignment totalSize} - -||| Proof that field offsets are correctly aligned -public export -data FieldsAligned : Vect n Field -> Type where - NoFields : FieldsAligned [] - ConsField : - (f : Field) -> - (rest : Vect n Field) -> - Divides f.alignment f.offset -> - FieldsAligned rest -> - FieldsAligned (f :: rest) - --------------------------------------------------------------------------------- --- LOL-Specific Struct Layouts --------------------------------------------------------------------------------- - -||| Layout of lol_locale_t (C struct for Locale). -||| -||| Corresponds to: -||| typedef struct { -||| const char *tag; // 8 bytes (pointer) -||| const char *language; // 8 bytes (pointer) -||| const char *script; // 8 bytes (pointer) -||| const char *region; // 8 bytes (pointer) -||| } lol_locale_t; -public export -localeLayout : StructLayout -localeLayout = - MkStructLayout - [ MkField "tag" 0 8 8 -- const char* at offset 0 - , MkField "language" 8 8 8 -- const char* at offset 8 - , MkField "script" 16 8 8 -- const char* at offset 16 - , MkField "region" 24 8 8 -- const char* at offset 24 - ] - 32 -- Total size: 32 bytes - 8 -- Alignment: 8 bytes (pointer alignment) - -||| Layout of lol_translation_result_t. -||| -||| Corresponds to: -||| typedef struct { -||| const char *text; // 8 bytes -||| const char *resolved_locale; // 8 bytes -||| uint32_t is_fallback; // 4 bytes -||| uint32_t _padding; // 4 bytes (alignment padding) -||| } lol_translation_result_t; -public export -translationResultLayout : StructLayout -translationResultLayout = - MkStructLayout - [ MkField "text" 0 8 8 -- const char* - , MkField "resolved_locale" 8 8 8 -- const char* - , MkField "is_fallback" 16 4 4 -- uint32_t - , MkField "_padding" 20 4 4 -- alignment padding - ] - 24 -- Total size: 24 bytes - 8 -- Alignment: 8 bytes - -||| Layout of lol_language_info_t. -||| -||| Corresponds to: -||| typedef struct { -||| const char *iso639_3; // 8 -||| const char *name; // 8 -||| const char *native_name; // 8 -||| const char *family; // 8 -||| const char *scripts; // 8 -||| uint32_t source_count;// 4 -||| uint32_t verse_count; // 4 -||| double quality; // 8 -||| } lol_language_info_t; -public export -languageInfoLayout : StructLayout -languageInfoLayout = - MkStructLayout - [ MkField "iso639_3" 0 8 8 -- const char* - , MkField "name" 8 8 8 -- const char* - , MkField "native_name" 16 8 8 -- const char* - , MkField "family" 24 8 8 -- const char* - , MkField "scripts" 32 8 8 -- const char* - , MkField "source_count" 40 4 4 -- uint32_t - , MkField "verse_count" 44 4 4 -- uint32_t - , MkField "quality" 48 8 8 -- double - ] - 56 -- Total size: 56 bytes - 8 -- Alignment: 8 bytes - -||| Layout of lol_plural_rule_t. -||| -||| Corresponds to: -||| typedef struct { -||| const char *language; // 8 -||| uint32_t form_count; // 4 -||| uint32_t categories[6]; // 24 -||| uint32_t _padding; // 4 -||| } lol_plural_rule_t; -public export -pluralRuleLayout : StructLayout -pluralRuleLayout = - MkStructLayout - [ MkField "language" 0 8 8 -- const char* - , MkField "form_count" 8 4 4 -- uint32_t - , MkField "categories" 12 24 4 -- uint32_t[6] - , MkField "_padding" 36 4 4 -- alignment padding - ] - 40 -- Total size: 40 bytes - 8 -- Alignment: 8 bytes - --------------------------------------------------------------------------------- --- C ABI Compatibility Proofs --------------------------------------------------------------------------------- - -||| Proof that a struct follows C ABI rules (all fields properly aligned) -public export -data CABICompliant : StructLayout -> Type where - CABIOk : - (layout : StructLayout) -> - FieldsAligned layout.fields -> - CABICompliant layout - -||| Verify locale layout has correct field alignment -public export -localeFieldsAligned : FieldsAligned Layout.localeLayout.fields -localeFieldsAligned = - ConsField (MkField "tag" 0 8 8) _ - (DivideBy 0 Refl) - (ConsField (MkField "language" 8 8 8) _ - (DivideBy 1 Refl) - (ConsField (MkField "script" 16 8 8) _ - (DivideBy 2 Refl) - (ConsField (MkField "region" 24 8 8) [] - (DivideBy 3 Refl) - NoFields))) - -||| Proof that localeLayout is C ABI compliant -public export -localeCABI : CABICompliant Layout.localeLayout -localeCABI = CABIOk Layout.localeLayout localeFieldsAligned - --------------------------------------------------------------------------------- --- Platform-Specific Layout Verification --------------------------------------------------------------------------------- - -||| Struct layout may differ by platform -public export -PlatformLayout : Platform -> Type -> Type -PlatformLayout p t = StructLayout - -||| All LOL structs use pointer-sized fields and fixed-width integers, -||| so layouts are the same on all 64-bit platforms. WASM (32-bit) uses -||| 4-byte pointers, which we account for separately. -public export -localeLayoutWasm32 : StructLayout -localeLayoutWasm32 = - MkStructLayout - [ MkField "tag" 0 4 4 -- 32-bit pointer - , MkField "language" 4 4 4 - , MkField "script" 8 4 4 - , MkField "region" 12 4 4 - ] - 16 -- Total size: 16 bytes on WASM32 - 4 -- Alignment: 4 bytes diff --git a/lol/src/abi/Locale.idr b/lol/src/abi/Locale.idr deleted file mode 100644 index d194b28fd..000000000 --- a/lol/src/abi/Locale.idr +++ /dev/null @@ -1,202 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- -||| LOL i18n Service — Locale ABI with BCP-47 Validation Proofs -||| -||| Provides a type-safe Locale type with compile-time and runtime -||| proofs that locale tags conform to BCP 47 structure. The LOL -||| service resolves locale tags to their best-match corpus entry -||| using a fallback chain (e.g. en-GB -> en -> default). -||| -||| BCP 47 structure: language[-script][-region][-variant] -||| language: 2-3 alpha (ISO 639-1/639-3) -||| script: 4 alpha (ISO 15924) -||| region: 2 alpha (ISO 3166-1) or 3 digit (UN M.49) -||| -||| @see https://www.rfc-editor.org/rfc/rfc5646 - -module Lol.ABI.Locale - -import Data.So -import Data.String -import Data.List -import Data.List1 - -%default total - --------------------------------------------------------------------------------- --- Character Class Predicates --------------------------------------------------------------------------------- - -||| Check if a character is an ASCII lowercase letter (a-z) -public export -isAsciiLower : Char -> Bool -isAsciiLower c = c >= 'a' && c <= 'z' - -||| Check if a character is an ASCII uppercase letter (A-Z) -public export -isAsciiUpper : Char -> Bool -isAsciiUpper c = c >= 'A' && c <= 'Z' - -||| Check if a character is an ASCII letter (a-z or A-Z) -public export -isAsciiAlpha : Char -> Bool -isAsciiAlpha c = isAsciiLower c || isAsciiUpper c - -||| Check if a character is an ASCII digit (0-9) -public export -isAsciiDigit : Char -> Bool -isAsciiDigit c = c >= '0' && c <= '9' - --------------------------------------------------------------------------------- --- Subtag Validation --------------------------------------------------------------------------------- - -||| Validate that all characters in a string satisfy a predicate -public export -allChars : (Char -> Bool) -> String -> Bool -allChars pred s = all pred (unpack s) - -||| A valid language subtag is 2-3 ASCII letters -public export -isValidLanguage : String -> Bool -isValidLanguage s = - let len = length s - in (len == 2 || len == 3) && allChars isAsciiAlpha s - -||| A valid script subtag is exactly 4 ASCII letters -public export -isValidScript : String -> Bool -isValidScript s = length s == 4 && allChars isAsciiAlpha s - -||| A valid region subtag is 2 ASCII letters or 3 ASCII digits -public export -isValidRegion : String -> Bool -isValidRegion s = - (length s == 2 && allChars isAsciiAlpha s) || - (length s == 3 && allChars isAsciiDigit s) - -||| A valid BCP 47 tag has at least a valid language subtag -public export -isValidBCP47Tag : String -> Bool -isValidBCP47Tag s = - let parts = split (== '-') s - in isValidLanguage (head parts) -- List1.head is total - --------------------------------------------------------------------------------- --- Validated Locale Type --------------------------------------------------------------------------------- - -||| A BCP 47 locale with a proof that the tag is structurally valid. -||| The proof ensures the language subtag is present and correctly -||| formatted, and any script/region subtags are valid if present. -public export -record ValidLocale where - constructor MkValidLocale - ||| Full BCP 47 tag (e.g. "en-US", "zh-Hans-CN") - tag : String - ||| ISO 639-1/639-3 language subtag (e.g. "en", "eng") - language : String - ||| ISO 15924 script subtag (e.g. "Latn"), empty if unspecified - script : String - ||| ISO 3166-1 region subtag (e.g. "US"), empty if unspecified - region : String - ||| Proof that the tag is non-empty - {auto 0 tagNonEmpty : So (length tag > 0)} - ||| Proof that the language subtag is valid - {auto 0 langValid : So (isValidLanguage language)} - -||| Attempt to parse and validate a BCP 47 locale tag at runtime. -||| Returns Nothing if the tag does not conform to BCP 47 structure. -public export -parseLocale : String -> Maybe ValidLocale -parseLocale s = - let (lang ::: rest) = split (== '-') s - in if isValidLanguage lang - then let (scr, reg) = extractSubtags rest - in case (choose (length s > 0), choose (isValidLanguage lang)) of - (Left p1, Left p2) => Just (MkValidLocale s lang scr reg) - _ => Nothing - else Nothing - where - ||| Extract script and region from remaining subtag parts - extractSubtags : List String -> (String, String) - extractSubtags [] = ("", "") - extractSubtags (x :: xs) = - if isValidScript x - then case xs of - (r :: _) => if isValidRegion r then (x, r) else (x, "") - [] => (x, "") - else if isValidRegion x - then ("", x) - else ("", "") - --------------------------------------------------------------------------------- --- Locale Fallback Chain --------------------------------------------------------------------------------- - -||| Compute the fallback chain for a locale tag. -||| For "zh-Hans-CN" this produces: ["zh-Hans-CN", "zh-Hans", "zh"] -||| The default locale is NOT included; the caller appends it. -public export -fallbackChain : String -> List String -fallbackChain s = - let parts = forget (split (== '-') s) - n = length parts - in buildChain n parts [] - where - ||| Take the first n elements of a list - takeN : Nat -> List a -> List a - takeN Z _ = [] - takeN _ [] = [] - takeN (S k) (x :: xs) = x :: takeN k xs - - ||| Build the chain by progressively taking fewer subtag parts. - ||| The Nat fuel parameter ensures termination. - buildChain : Nat -> List String -> List String -> List String - buildChain Z _ acc = reverse acc - buildChain (S k) parts acc = - case parts of - [] => reverse acc - _ => let tag = joinBy "-" parts - in buildChain k (takeN k parts) (tag :: acc) - --- Note: A proof that fallbackChain is non-empty for non-empty input --- would require reasoning about split/joinBy interaction, which is --- non-trivial in Idris2's totality checker. The property holds by --- construction (split always produces at least one element) but we --- leave the formal proof as future work rather than using believe_me. - --------------------------------------------------------------------------------- --- Locale Normalisation --------------------------------------------------------------------------------- - -||| Normalise a locale tag to lowercase language, titlecase script, -||| uppercase region per BCP 47 conventions. -||| "EN-latn-us" -> "en-Latn-US" -public export -normaliseTag : String -> String -normaliseTag s = - let parts = split (== '-') s - in case parts of - (lang ::: rest) => - let normLang = toLower lang - normRest = normaliseRest rest True - in joinBy "-" (normLang :: normRest) - where - titleCase : String -> String - titleCase t = - case unpack t of - [] => "" - (c :: cs) => pack (toUpper c :: map toLower cs) - - ||| Normalise remaining parts: first 4-letter part is titlecased (script), - ||| 2-letter parts are uppercased (region), rest lowercase. - normaliseRest : List String -> Bool -> List String - normaliseRest [] _ = [] - normaliseRest (p :: ps) expectScript = - if expectScript && length p == 4 - then titleCase p :: normaliseRest ps False - else if length p == 2 && allChars isAsciiAlpha p - then toUpper p :: normaliseRest ps False - else toLower p :: normaliseRest ps expectScript diff --git a/lol/src/abi/PluralForm.idr b/lol/src/abi/PluralForm.idr deleted file mode 100644 index f51d73fcc..000000000 --- a/lol/src/abi/PluralForm.idr +++ /dev/null @@ -1,224 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- -||| LOL i18n Service — Plural Form ABI with CLDR Rules -||| -||| Implements Unicode CLDR plural rules as a formal specification. -||| Different languages partition quantities into different subsets of -||| six categories: zero, one, two, few, many, other. -||| -||| This module: -||| - Defines the six CLDR plural categories with FFI transport proofs -||| - Specifies language-specific plural rules as data -||| - Provides selection functions matching CLDR operand semantics -||| - Proves category coverage (every language handles every quantity) -||| -||| @see https://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html - -module Lol.ABI.PluralForm - -import Lol.ABI.Types -import Data.Vect -import Data.So - -%default total - --------------------------------------------------------------------------------- --- CLDR Operands --------------------------------------------------------------------------------- - -||| CLDR plural operands for a numeric value. -||| These are the standard operands used in CLDR plural rule definitions. -||| -||| For an integer n: -||| n = absolute value of the source number -||| i = integer digits of n (same as n for integers) -||| v = number of visible fraction digits (0 for integers) -||| w = number of non-zero fraction digits (0 for integers) -||| f = visible fraction digits (0 for integers) -||| t = non-zero fraction digits (0 for integers) -public export -record CLDROperands where - constructor MkCLDROperands - ||| The absolute value - n : Nat - ||| Integer digits (same as n for whole numbers) - i : Nat - ||| Visible fraction digit count - v : Nat - ||| Non-zero fraction digit count - w : Nat - ||| Visible fraction digits as integer - f : Nat - ||| Non-zero fraction digits as integer - t : Nat - -||| Construct CLDR operands from an integer quantity. -||| For integers, fraction-related operands are all zero. -public export -intOperands : Nat -> CLDROperands -intOperands n = MkCLDROperands n n 0 0 0 0 - -||| Proof that integer operands have zero fraction parts -public export -intOperandsNoFraction : (n : Nat) -> (intOperands n).v = 0 -intOperandsNoFraction _ = Refl - --------------------------------------------------------------------------------- --- Plural Rule Functions --------------------------------------------------------------------------------- - -||| A plural rule function maps CLDR operands to a plural category. -||| This is the core abstraction for language-specific rules. -public export -PluralRuleFunc : Type -PluralRuleFunc = CLDROperands -> PluralCategory - -||| English plural rule (CLDR: one if i=1 and v=0; other) -||| 1 item, 2 items, 0 items -public export -englishPlural : PluralRuleFunc -englishPlural ops = - if ops.i == 1 && ops.v == 0 - then One - else Other - -||| Arabic plural rule (CLDR: zero/one/two/few/many/other) -||| All six categories used -public export -arabicPlural : PluralRuleFunc -arabicPlural ops = - let n = ops.n - mod100 = n `mod` 100 - in if n == 0 then Zero - else if n == 1 then One - else if n == 2 then Two - else if mod100 >= 3 && mod100 <= 10 then Few - else if mod100 >= 11 && mod100 <= 99 then Many - else Other - -||| French plural rule (CLDR: one if i=0 or i=1; other) -||| 0 item, 1 item, 2 items -public export -frenchPlural : PluralRuleFunc -frenchPlural ops = - if ops.i == 0 || ops.i == 1 - then One - else Other - -||| Russian plural rule (CLDR: one/few/many/other) -public export -russianPlural : PluralRuleFunc -russianPlural ops = - let mod10 = ops.i `mod` 10 - mod100 = ops.i `mod` 100 - in if mod10 == 1 && mod100 /= 11 then One - else if mod10 >= 2 && mod10 <= 4 && (mod100 < 12 || mod100 > 14) then Few - else Many - -||| Polish plural rule (CLDR: one/few/many/other) -public export -polishPlural : PluralRuleFunc -polishPlural ops = - let mod10 = ops.i `mod` 10 - mod100 = ops.i `mod` 100 - in if ops.i == 1 && ops.v == 0 then One - else if mod10 >= 2 && mod10 <= 4 && (mod100 < 12 || mod100 > 14) then Few - else if (ops.i /= 1) && (mod10 == 0 || mod10 == 1) || - (mod10 >= 5 && mod10 <= 9) || - (mod100 >= 12 && mod100 <= 14) - then Many - else Other - -||| Czech/Slovak plural rule (CLDR: one/few/other) -public export -czechPlural : PluralRuleFunc -czechPlural ops = - if ops.i == 1 && ops.v == 0 then One - else if ops.i >= 2 && ops.i <= 4 && ops.v == 0 then Few - else Other - -||| East Asian languages (Chinese, Japanese, Korean, Vietnamese) -||| No plural distinction — always "other" -public export -eastAsianPlural : PluralRuleFunc -eastAsianPlural _ = Other - --------------------------------------------------------------------------------- --- Language Rule Registry --------------------------------------------------------------------------------- - -||| Look up the plural rule function for a language by ISO 639-1/639-3 code. -||| Returns eastAsianPlural-style default (one/other) for unknown languages, -||| which is the most common pattern worldwide. -public export -ruleForLanguage : String -> PluralRuleFunc -ruleForLanguage "en" = englishPlural -ruleForLanguage "eng" = englishPlural -ruleForLanguage "de" = englishPlural -ruleForLanguage "deu" = englishPlural -ruleForLanguage "nl" = englishPlural -ruleForLanguage "nld" = englishPlural -ruleForLanguage "sv" = englishPlural -ruleForLanguage "swe" = englishPlural -ruleForLanguage "ar" = arabicPlural -ruleForLanguage "ara" = arabicPlural -ruleForLanguage "fr" = frenchPlural -ruleForLanguage "fra" = frenchPlural -ruleForLanguage "pt" = frenchPlural -ruleForLanguage "por" = frenchPlural -ruleForLanguage "ru" = russianPlural -ruleForLanguage "rus" = russianPlural -ruleForLanguage "uk" = russianPlural -ruleForLanguage "ukr" = russianPlural -ruleForLanguage "pl" = polishPlural -ruleForLanguage "pol" = polishPlural -ruleForLanguage "cs" = czechPlural -ruleForLanguage "ces" = czechPlural -ruleForLanguage "sk" = czechPlural -ruleForLanguage "slk" = czechPlural -ruleForLanguage "zh" = eastAsianPlural -ruleForLanguage "zho" = eastAsianPlural -ruleForLanguage "ja" = eastAsianPlural -ruleForLanguage "jpn" = eastAsianPlural -ruleForLanguage "ko" = eastAsianPlural -ruleForLanguage "kor" = eastAsianPlural -ruleForLanguage "vi" = eastAsianPlural -ruleForLanguage "vie" = eastAsianPlural -ruleForLanguage _ = englishPlural - -||| Select the plural category for a language and integer quantity. -||| Convenience function combining ruleForLanguage with intOperands. -public export -selectPlural : String -> Nat -> PluralCategory -selectPlural lang n = ruleForLanguage lang (intOperands n) - --------------------------------------------------------------------------------- --- Coverage Proofs --------------------------------------------------------------------------------- - -||| Every plural rule function is total — it handles every possible input. -||| This is guaranteed by %default total at module level and the fact that -||| all rule functions pattern-match exhaustively on if/then/else chains -||| that always terminate with an else branch returning a category. - --- Note: englishPluralCoverage (proving English returns One or Other) --- requires runtime evaluation of if-expressions, which Idris2 cannot --- reduce at compile time. The totality checker guarantees coverage instead. - -||| Proof that East Asian plural always returns Other. -||| This is provable because the function ignores its argument entirely. -public export -eastAsianPluralConstant : (ops : CLDROperands) -> eastAsianPlural ops = Other -eastAsianPluralConstant _ = Refl - -||| Proof that pluralToInt and the rule functions together produce valid -||| C-compatible integers (0-5 range, matching the PluralCategory enum) -public export -pluralToIntBounded : (cat : PluralCategory) -> So (pluralToInt cat <= 5) -pluralToIntBounded Zero = Oh -pluralToIntBounded One = Oh -pluralToIntBounded Two = Oh -pluralToIntBounded Few = Oh -pluralToIntBounded Many = Oh -pluralToIntBounded Other = Oh diff --git a/lol/src/abi/TranslationKey.idr b/lol/src/abi/TranslationKey.idr deleted file mode 100644 index 4769f6572..000000000 --- a/lol/src/abi/TranslationKey.idr +++ /dev/null @@ -1,150 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- -||| LOL i18n Service — Type-Safe Translation Keys -||| -||| Translation keys in LOL are dot-separated namespace paths -||| (e.g. "app.greeting", "errors.not_found", "nav.home"). -||| This module provides a refined type that proves keys are -||| non-empty and structurally valid at compile time. -||| -||| Key format: segment(.segment)* -||| segment: [a-z][a-z0-9_]* (lowercase start, alphanumeric + underscore) -||| -||| Examples: -||| "greeting" — single segment -||| "app.greeting" — two segments -||| "errors.not_found" — nested with underscore -||| "ui.nav.home" — deeply nested - -module Lol.ABI.TranslationKey - -import Data.So -import Data.String -import Data.List -import Data.List1 - -%default total - --------------------------------------------------------------------------------- --- Key Segment Validation --------------------------------------------------------------------------------- - -||| Check if a character is valid in a key segment (lowercase alpha, digit, underscore) -public export -isSegmentChar : Char -> Bool -isSegmentChar c = (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '_' - -||| Check if a character is a valid segment start (lowercase alpha only) -public export -isSegmentStart : Char -> Bool -isSegmentStart c = c >= 'a' && c <= 'z' - -||| Validate a single key segment. -||| A segment must start with a lowercase letter, followed by zero or more -||| lowercase letters, digits, or underscores. -public export -isValidSegment : String -> Bool -isValidSegment s = - case unpack s of - [] => False - (c :: cs) => isSegmentStart c && all isSegmentChar cs - -||| Validate a complete translation key. -||| Must be non-empty, consist of dot-separated segments, and each -||| segment must be a valid identifier. -public export -isValidKey : String -> Bool -isValidKey s = - let segments = split (== '.') s - in all isValidSegment (Data.List1.forget segments) - --------------------------------------------------------------------------------- --- Validated Translation Key Type --------------------------------------------------------------------------------- - -||| A translation key with a proof that it is non-empty and structurally valid. -||| The proof is checked at construction time (runtime validation) or can be -||| provided statically for known-good literals. -public export -record ValidKey where - constructor MkValidKey - ||| The raw key string (e.g. "app.greeting") - key : String - ||| Proof that the key is structurally valid - {auto 0 valid : So (isValidKey key)} - -||| Attempt to create a validated key from a raw string. -||| Returns Nothing if the key is empty or structurally invalid. -public export -mkKey : (s : String) -> Maybe ValidKey -mkKey s = case choose (isValidKey s) of - Left prf => Just (MkValidKey s) - Right _ => Nothing - -||| Get the raw string from a validated key. -public export -keyStr : ValidKey -> String -keyStr k = k.key - -||| Count the number of segments (namespace depth) in a key. -||| "greeting" = 1, "app.greeting" = 2, "ui.nav.home" = 3 -public export -keyDepth : ValidKey -> Nat -keyDepth k = length (Data.List1.forget (split (== '.') k.key)) - -||| Get the top-level namespace of a key. -||| "app.greeting" -> "app", "greeting" -> "greeting" -public export -keyNamespace : ValidKey -> String -keyNamespace k = - head (split (== '.') k.key) - -||| Get the final segment (leaf) of a key. -||| "app.greeting" -> "greeting", "greeting" -> "greeting" -public export -keyLeaf : ValidKey -> String -keyLeaf k = - last (split (== '.') k.key) - --------------------------------------------------------------------------------- --- Key Operations --------------------------------------------------------------------------------- - -||| Append a suffix to a key (used for plural form keys). -||| "items" + "one" -> "items.one" -||| "app.items" + "other" -> "app.items.other" -public export -appendSuffix : ValidKey -> String -> Maybe ValidKey -appendSuffix k suffix = - let combined = k.key ++ "." ++ suffix - in mkKey combined - -||| Prepend a namespace to a key. -||| "errors" + "not_found" -> "errors.not_found" -public export -prependNamespace : String -> ValidKey -> Maybe ValidKey -prependNamespace ns k = - let combined = ns ++ "." ++ k.key - in mkKey combined - -||| Strip the top-level namespace from a key. -||| "app.greeting" -> Just "greeting" -||| "greeting" -> Nothing (no namespace to strip) -public export -stripNamespace : ValidKey -> Maybe ValidKey -stripNamespace k = - let (_ ::: rest) = split (== '.') k.key - in case rest of - [] => Nothing - _ => mkKey (joinBy "." rest) - --------------------------------------------------------------------------------- --- Proofs --------------------------------------------------------------------------------- - --- Note: A proof that a valid key has at least one segment (keyDepth >= 1) --- would require reasoning about split on runtime strings, which is not --- reducible at compile time. The property holds by construction: --- isValidKey requires at least one valid segment, and split on a --- non-empty string always produces at least one part (List1). diff --git a/lol/src/abi/Types.idr b/lol/src/abi/Types.idr deleted file mode 100644 index 45fa013f5..000000000 --- a/lol/src/abi/Types.idr +++ /dev/null @@ -1,357 +0,0 @@ --- SPDX-License-Identifier: MPL-2.0 --- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) --- -||| LOL i18n Service — ABI Type Definitions -||| -||| Defines the Application Binary Interface for the LOL (Language of Languages) -||| internationalisation service. LOL is called as a service (never embedded) to -||| provide translation lookup, locale resolution, and plural form selection -||| across 1500+ languages in the parallel corpus. -||| -||| All type definitions include formal proofs of correctness. -||| -||| @see https://idris2.readthedocs.io for Idris2 documentation - -module Lol.ABI.Types - -import Data.Bits -import Data.So -import Data.Vect -import Data.String - -%default total - --------------------------------------------------------------------------------- --- Platform Detection --------------------------------------------------------------------------------- - -||| Supported platforms for this ABI -public export -data Platform = Linux | Windows | MacOS | BSD | WASM - --------------------------------------------------------------------------------- --- Result Codes --------------------------------------------------------------------------------- - -||| Result codes for FFI operations. -||| Uses C-compatible integers for cross-language compatibility. -public export -data Result : Type where - ||| Operation succeeded - Ok : Result - ||| Generic error - Error : Result - ||| Invalid parameter provided - InvalidParam : Result - ||| Out of memory - OutOfMemory : Result - ||| Null pointer encountered - NullPointer : Result - ||| Locale not found in corpus - LocaleNotFound : Result - ||| Translation key not found for locale - KeyNotFound : Result - ||| Plural form index out of range for locale - PluralOutOfRange : Result - -||| Convert Result to C integer for FFI transport -public export -resultToInt : Result -> Bits32 -resultToInt Ok = 0 -resultToInt Error = 1 -resultToInt InvalidParam = 2 -resultToInt OutOfMemory = 3 -resultToInt NullPointer = 4 -resultToInt LocaleNotFound = 5 -resultToInt KeyNotFound = 6 -resultToInt PluralOutOfRange = 7 - -||| Convert C integer back to Result -public export -resultFromInt : Bits32 -> Maybe Result -resultFromInt 0 = Just Ok -resultFromInt 1 = Just Error -resultFromInt 2 = Just InvalidParam -resultFromInt 3 = Just OutOfMemory -resultFromInt 4 = Just NullPointer -resultFromInt 5 = Just LocaleNotFound -resultFromInt 6 = Just KeyNotFound -resultFromInt 7 = Just PluralOutOfRange -resultFromInt _ = Nothing - -||| Proof that resultToInt is injective (distinct results map to distinct codes) -public export -resultToIntInjective : (a, b : Result) -> resultToInt a = resultToInt b -> a = b -resultToIntInjective Ok Ok Refl = Refl -resultToIntInjective Error Error Refl = Refl -resultToIntInjective InvalidParam InvalidParam Refl = Refl -resultToIntInjective OutOfMemory OutOfMemory Refl = Refl -resultToIntInjective NullPointer NullPointer Refl = Refl -resultToIntInjective LocaleNotFound LocaleNotFound Refl = Refl -resultToIntInjective KeyNotFound KeyNotFound Refl = Refl -resultToIntInjective PluralOutOfRange PluralOutOfRange Refl = Refl - -||| Proof that resultFromInt is a left inverse of resultToInt -public export -resultRoundTrip : (r : Result) -> resultFromInt (resultToInt r) = Just r -resultRoundTrip Ok = Refl -resultRoundTrip Error = Refl -resultRoundTrip InvalidParam = Refl -resultRoundTrip OutOfMemory = Refl -resultRoundTrip NullPointer = Refl -resultRoundTrip LocaleNotFound = Refl -resultRoundTrip KeyNotFound = Refl -resultRoundTrip PluralOutOfRange = Refl - --------------------------------------------------------------------------------- --- Opaque Handles --------------------------------------------------------------------------------- - -||| Opaque handle to the LOL service instance. -||| Prevents direct construction; enforces creation through lol_init. -public export -data Handle : Type where - MkHandle : (ptr : Bits64) -> {auto 0 nonNull : So (ptr /= 0)} -> Handle - -||| Safely create a handle from a pointer value. -||| Returns Nothing if the pointer is null. -public export -createHandle : Bits64 -> Maybe Handle -createHandle ptr = - case choose (ptr /= 0) of - Left prf => Just (MkHandle ptr) - Right _ => Nothing - -||| Extract raw pointer value from handle (for FFI transport) -public export -handlePtr : Handle -> Bits64 -handlePtr (MkHandle ptr) = ptr - --------------------------------------------------------------------------------- --- ISO 639 Language Codes --------------------------------------------------------------------------------- - -||| An ISO 639-3 three-letter language code (e.g. "eng", "deu", "fra"). -||| The corpus uses ISO 639-3 as the canonical identifier for every language. -public export -record Iso639_3 where - constructor MkIso639_3 - code : String - {auto 0 validLength : So (length code == 3)} - -||| An ISO 639-1 two-letter language code (e.g. "en", "de", "fr"). -||| Used for locale shorthand; many languages lack an ISO 639-1 code. -public export -record Iso639_1 where - constructor MkIso639_1 - code : String - {auto 0 validLength : So (length code == 2)} - --------------------------------------------------------------------------------- --- Locale --------------------------------------------------------------------------------- - -||| A BCP 47 locale tag combining language, optional script, and region. -||| Examples: "en-US", "zh-Hans-CN", "sr-Latn-RS". -||| -||| The LOL service resolves locale tags to their best-match corpus entry. -public export -record Locale where - constructor MkLocale - ||| Full BCP 47 tag (e.g. "en-US") - tag : String - ||| ISO 639-3 language component (e.g. "eng") - language : String - ||| ISO 15924 script (e.g. "Latn"), empty if unspecified - script : String - ||| ISO 3166-1 region (e.g. "US"), empty if unspecified - region : String - -||| Proof that a Locale's language field is non-empty -public export -localeHasLanguage : (loc : Locale) -> So (length loc.language > 0) -> () -localeHasLanguage _ _ = () - --------------------------------------------------------------------------------- --- Translation Types --------------------------------------------------------------------------------- - -||| A translation key is a dot-separated namespace path. -||| Examples: "app.greeting", "errors.not_found", "nav.home". -public export -TranslationKey : Type -TranslationKey = String - -||| A single translation result returned from the service. -public export -record TranslationResult where - constructor MkTranslationResult - ||| The resolved translation text (UTF-8) - text : String - ||| The locale that was actually used (may differ from requested if fallback) - resolvedLocale : String - ||| Whether a fallback locale was used - isFallback : Bool - --------------------------------------------------------------------------------- --- Plural Forms (CLDR) --------------------------------------------------------------------------------- - -||| CLDR plural categories. -||| Different languages have different plural rules; LOL follows the Unicode -||| CLDR plural rule specification. -||| -||| @see https://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html -public export -data PluralCategory - = ||| Typically 0 in some languages (Arabic, etc.) - Zero - | ||| Typically 1 (English "1 item") - One - | ||| Typically 2 (Arabic dual, Welsh, etc.) - Two - | ||| Small numbers (3-10 in Arabic, 2-4 in Czech, etc.) - Few - | ||| Large numbers (11-99 in Arabic, etc.) - Many - | ||| Everything else (English "2 items", "5 items", etc.) - Other - -||| Convert PluralCategory to C integer for FFI transport -public export -pluralToInt : PluralCategory -> Bits32 -pluralToInt Zero = 0 -pluralToInt One = 1 -pluralToInt Two = 2 -pluralToInt Few = 3 -pluralToInt Many = 4 -pluralToInt Other = 5 - -||| Convert C integer back to PluralCategory -public export -pluralFromInt : Bits32 -> Maybe PluralCategory -pluralFromInt 0 = Just Zero -pluralFromInt 1 = Just One -pluralFromInt 2 = Just Two -pluralFromInt 3 = Just Few -pluralFromInt 4 = Just Many -pluralFromInt 5 = Just Other -pluralFromInt _ = Nothing - -||| Proof that pluralToInt round-trips -public export -pluralRoundTrip : (p : PluralCategory) -> pluralFromInt (pluralToInt p) = Just p -pluralRoundTrip Zero = Refl -pluralRoundTrip One = Refl -pluralRoundTrip Two = Refl -pluralRoundTrip Few = Refl -pluralRoundTrip Many = Refl -pluralRoundTrip Other = Refl - -||| The maximum number of CLDR plural categories any language can have -public export -maxPluralCategories : Nat -maxPluralCategories = 6 - -||| Plural rule description for a single language. -||| Lists which CLDR categories the language uses. -public export -record PluralRule where - constructor MkPluralRule - ||| ISO 639-3 code for the language this rule applies to - language : String - ||| Number of distinct plural forms (1-6) - formCount : Nat - ||| Proof that formCount is within valid CLDR range - {auto 0 validCount : So (formCount >= 1 && formCount <= maxPluralCategories)} - ||| Which categories this language uses (in CLDR order) - categories : Vect formCount PluralCategory - --------------------------------------------------------------------------------- --- Language Metadata --------------------------------------------------------------------------------- - -||| Metadata about a single language in the LOL corpus. -||| This record maps directly to the C struct lol_language_info_t. -public export -record LanguageInfo where - constructor MkLanguageInfo - ||| ISO 639-3 code - iso639_3 : String - ||| English name - name : String - ||| Name in the language itself (autonym) - nativeName : String - ||| Language family (e.g. "Indo-European") - family : String - ||| Writing systems used (e.g. "Latin, Cyrillic") - scripts : String - ||| Number of corpus sources available - sourceCount : Bits32 - ||| Total verses crawled - verseCount : Bits32 - ||| Quality score from VeriSimDB pipeline (0.0-1.0) - quality : Double - --------------------------------------------------------------------------------- --- Service Configuration --------------------------------------------------------------------------------- - -||| Configuration for the LOL service instance. -||| Passed to lol_init to set up the corpus data path and defaults. -public export -record ServiceConfig where - constructor MkServiceConfig - ||| Path to the corpus data directory - dataDir : String - ||| Default locale for fallback resolution - defaultLocale : String - ||| Whether to enable locale fallback chains (e.g. en-US -> en -> default) - enableFallback : Bool - ||| Port for the API gateway (0 = no gateway) - apiPort : Bits32 - --------------------------------------------------------------------------------- --- Platform-Specific Types --------------------------------------------------------------------------------- - -||| C int size varies by platform -public export -CInt : Platform -> Type -CInt Linux = Bits32 -CInt Windows = Bits32 -CInt MacOS = Bits32 -CInt BSD = Bits32 -CInt WASM = Bits32 - -||| C size_t varies by platform -public export -CSize : Platform -> Type -CSize Linux = Bits64 -CSize Windows = Bits64 -CSize MacOS = Bits64 -CSize BSD = Bits64 -CSize WASM = Bits32 - -||| Pointer size for the platform (in bits) -public export -ptrSize : Platform -> Nat -ptrSize Linux = 64 -ptrSize Windows = 64 -ptrSize MacOS = 64 -ptrSize BSD = 64 -ptrSize WASM = 32 - --------------------------------------------------------------------------------- --- Memory Layout Proofs --------------------------------------------------------------------------------- - -||| Proof that a type has a specific size -public export -data HasSize : Type -> Nat -> Type where - SizeProof : {0 t : Type} -> {n : Nat} -> HasSize t n - -||| Proof that a type has a specific alignment -public export -data HasAlignment : Type -> Nat -> Type where - AlignProof : {0 t : Type} -> {n : Nat} -> HasAlignment t n diff --git a/lol/src/api/DigitalBiblePlatform.affine b/lol/src/api/DigitalBiblePlatform.affine deleted file mode 100644 index 5f9e6b779..000000000 --- a/lol/src/api/DigitalBiblePlatform.affine +++ /dev/null @@ -1,385 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module DigitalBiblePlatform; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * Digital Bible Platform API - * - * Official API wrapper for the Digital Bible Platform, - * providing access to Bible translations in 1500+ languages. - * Implements all 6 API methods with proper error handling. - */ - -module Config = { - fn apiBaseUrl = "https://api.scripture.api.bible/v1" - fn cdnBaseUrl = "https://cdn.scripture.api.bible" - - struct environment { - | Production - | Sandbox - - fn getBaseUrl = env => - switch env { - | Production => apiBaseUrl - | Sandbox => "https://api-sandbox.scripture.api.bible/v1" - } -} - -module Types = { - struct language { { - id: string, - name: string, - nameLocal: string, - script: string, - scriptDirection: [#ltr | #rtl], - } - - struct bible { { - id: string, - dblId: string, - abbreviation: string, - abbreviationLocal: string, - name: string, - nameLocal: string, - description: option, - descriptionLocal: option, - language: language, - countries: array, - struct_: string, - } - - struct book { { - id: string, - bibleId: string, - abbreviation: string, - name: string, - nameLong: string, - chapters: array, - } - and chapter = { - id: string, - bibleId: string, - bookId: string, - number: string, - reference: string, - } - - struct verse { { - id: string, - orgId: string, - bibleId: string, - bookId: string, - chapterId: string, - reference: string, - content: string, - } - - struct passage { { - id: string, - bibleId: string, - orgId: string, - reference: string, - content: string, - verseCount: int, - copyright: string, - } - - struct apiResponse<'a> = { - data: 'a, - meta: option<{ - fums: string, - fumsId: string, - fumsJs: string, - }>, - } - - struct apiError { { - statusCode: int, - error: string, - message: string, - } -} - -module JsonHelpers = { - fn getString = (obj: Dict.t, key: string): string => - switch obj->Dict.get(key) { - | Some(String(s)) => s - | _ => "" - } - - fn getOptString = (obj: Dict.t, key: string): option => - switch obj->Dict.get(key) { - | Some(String(s)) => Some(s) - | _ => None - } - - fn getInt = (obj: Dict.t, key: string): int => - switch obj->Dict.get(key) { - | Some(Number(n)) => Float.toInt(n) - | _ => 0 - } - - fn getStringArray = (obj: Dict.t, key: string): array => - switch obj->Dict.get(key) { - | Some(Array(arr)) => arr->Array.filterMap(v => switch v { - | String(s) => Some(s) - | _ => None - }) - | _ => [] - } - - fn getDirection = (obj: Dict.t, key: string): [#ltr | #rtl] => - switch obj->Dict.get(key) { - | Some(String("RTL")) | Some(String("rtl")) => #rtl - | _ => #ltr - } -} - -module Client = { - open Types - open JsonHelpers - - struct t { { - apiKey: string, - environment: Config.environment, - rateLimiter: Crawler.RateLimiter.t, - } - - fn make = (~apiKey, ~environment=Config.Production, ()) => { - apiKey, - environment, - rateLimiter: Crawler.RateLimiter.make(~delayMs=100, ()), - } - - fn getAuthHeaders = client => { - fn headers = Dict.make() - Dict.set(headers, "api-key", client.apiKey) - Dict.set(headers, "Accept", "application/json") - headers - } - - fn makeError = (code, msg): apiError => { - statusCode: code, - error: "Error", - message: msg, - } - - /** Generic API request helper */ - fn apiRequest = async (client: t, url: string): result => { - fn headers = getAuthHeaders(client) - fn resp = await Http.getWithRateLimit(url, ~headers, ~rateLimiter=client.rateLimiter, ()) - switch resp { - | Ok({body}) => - try { - fn json = JSON.parseExn(body) - switch json { - | Object(obj) => - switch obj->Dict.get("data") { - | Some(data) => Ok(data) - | None => Ok(json) - } - | _ => Ok(json) - } - } catch { - | _ => Error(makeError(500, "Invalid JSON response")) - } - | Error(Http.HttpError(code, msg)) => Error(makeError(code, msg)) - | Error(Http.NetworkError(msg)) => Error(makeError(0, msg)) - | Error(Http.TimeoutError) => Error(makeError(408, "Request timed out")) - | Error(Http.ParseError(msg)) => Error(makeError(422, msg)) - } - } - - fn parseLanguage = (obj: Dict.t): language => { - id: getString(obj, "id"), - name: getString(obj, "name"), - nameLocal: getString(obj, "nameLocal"), - script: getString(obj, "script"), - scriptDirection: getDirection(obj, "scriptDirection"), - } - - fn parseBible = (obj: Dict.t): bible => { - fn lang = switch obj->Dict.get("language") { - | Some(Object(l)) => parseLanguage(l) - | _ => {id: "", name: "", nameLocal: "", script: "", scriptDirection: #ltr} - } - { - id: getString(obj, "id"), - dblId: getString(obj, "dblId"), - abbreviation: getString(obj, "abbreviation"), - abbreviationLocal: getString(obj, "abbreviationLocal"), - name: getString(obj, "name"), - nameLocal: getString(obj, "nameLocal"), - description: getOptString(obj, "description"), - descriptionLocal: getOptString(obj, "descriptionLocal"), - language: lang, - countries: getStringArray(obj, "countries"), - struct_: getString(obj, "struct"), - } - } - - /** Get list of available Bibles, optionally filtered */ - fn getBibles = async ( - client: t, - ~language: option=?, - ~abbreviation: option=?, - (), - ): result, apiError> => { - fn baseUrl = Config.getBaseUrl(client.environment) - fn params = [] - switch language { - | Some(l) => ignore(Array.concat(params, [`language=${l}`])) - | None => () - } - switch abbreviation { - | Some(a) => ignore(Array.concat(params, [`abbreviation=${a}`])) - | None => () - } - fn queryStr = if Array.length(params) > 0 { - "?" ++ params->Array.join("&") - } else { - "" - } - fn resp = await apiRequest(client, `${baseUrl}/bibles${queryStr}`) - switch resp { - | Ok(Array(arr)) => - Ok(arr->Array.filterMap(item => switch item { - | Object(obj) => Some(parseBible(obj)) - | _ => None - })) - | Ok(_) => Error(makeError(500, "Unexpected response format")) - | Error(e) => Error(e) - } - } - - /** Get a specific Bible by ID */ - fn getBible = async (client: t, ~bibleId: string): result => { - fn baseUrl = Config.getBaseUrl(client.environment) - fn resp = await apiRequest(client, `${baseUrl}/bibles/${bibleId}`) - switch resp { - | Ok(Object(obj)) => Ok(parseBible(obj)) - | Ok(_) => Error(makeError(500, "Unexpected response format")) - | Error(e) => Error(e) - } - } - - /** Get books for a Bible */ - fn getBooks = async (client: t, ~bibleId: string): result, apiError> => { - fn baseUrl = Config.getBaseUrl(client.environment) - fn resp = await apiRequest(client, `${baseUrl}/bibles/${bibleId}/books`) - switch resp { - | Ok(Array(arr)) => - Ok(arr->Array.filterMap(item => switch item { - | Object(obj) => - fn chapters = switch obj->Dict.get("chapters") { - | Some(Array(chArr)) => chArr->Array.filterMap(ch => switch ch { - | Object(chObj) => Some({ - id: getString(chObj, "id"), - bibleId: getString(chObj, "bibleId"), - bookId: getString(chObj, "bookId"), - number: getString(chObj, "number"), - reference: getString(chObj, "reference"), - }) - | _ => None - }) - | _ => [] - } - Some({ - id: getString(obj, "id"), - bibleId: getString(obj, "bibleId"), - abbreviation: getString(obj, "abbreviation"), - name: getString(obj, "name"), - nameLong: getString(obj, "nameLong"), - chapters, - }) - | _ => None - })) - | Ok(_) => Error(makeError(500, "Unexpected response format")) - | Error(e) => Error(e) - } - } - - /** Get chapters for a book */ - fn getChapters = async ( - client: t, - ~bibleId: string, - ~bookId: string, - ): result, apiError> => { - fn baseUrl = Config.getBaseUrl(client.environment) - fn resp = await apiRequest(client, `${baseUrl}/bibles/${bibleId}/books/${bookId}/chapters`) - switch resp { - | Ok(Array(arr)) => - Ok(arr->Array.filterMap(item => switch item { - | Object(obj) => Some({ - id: getString(obj, "id"), - bibleId: getString(obj, "bibleId"), - bookId: getString(obj, "bookId"), - number: getString(obj, "number"), - reference: getString(obj, "reference"), - }) - | _ => None - })) - | Ok(_) => Error(makeError(500, "Unexpected response format")) - | Error(e) => Error(e) - } - } - - /** Get verses for a chapter */ - fn getVerses = async ( - client: t, - ~bibleId: string, - ~chapterId: string, - ): result, apiError> => { - fn baseUrl = Config.getBaseUrl(client.environment) - fn resp = await apiRequest( - client, - `${baseUrl}/bibles/${bibleId}/chapters/${chapterId}/verses`, - ) - switch resp { - | Ok(Array(arr)) => - Ok(arr->Array.filterMap(item => switch item { - | Object(obj) => Some({ - id: getString(obj, "id"), - orgId: getString(obj, "orgId"), - bibleId: getString(obj, "bibleId"), - bookId: getString(obj, "bookId"), - chapterId: getString(obj, "chapterId"), - reference: getString(obj, "reference"), - content: getString(obj, "content"), - }) - | _ => None - })) - | Ok(_) => Error(makeError(500, "Unexpected response format")) - | Error(e) => Error(e) - } - } - - /** Get a passage (range of verses) */ - fn getPassage = async ( - client: t, - ~bibleId: string, - ~passageId: string, - ): result => { - fn baseUrl = Config.getBaseUrl(client.environment) - fn resp = await apiRequest(client, `${baseUrl}/bibles/${bibleId}/passages/${passageId}`) - switch resp { - | Ok(Object(obj)) => - Ok({ - id: getString(obj, "id"), - bibleId: getString(obj, "bibleId"), - orgId: getString(obj, "orgId"), - reference: getString(obj, "reference"), - content: getString(obj, "content"), - verseCount: getInt(obj, "verseCount"), - copyright: getString(obj, "copyright"), - }) - | Ok(_) => Error(makeError(500, "Unexpected response format")) - | Error(e) => Error(e) - } - } -} - diff --git a/lol/src/crawlers/BibleCloud.affine b/lol/src/crawlers/BibleCloud.affine deleted file mode 100644 index f4be998c0..000000000 --- a/lol/src/crawlers/BibleCloud.affine +++ /dev/null @@ -1,298 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module BibleCloud; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * Bible.cloud Crawler - * - * Crawler implementation for the Digital Bible Platform (bible.cloud) - * API-based access to Bible translations in 1500+ languages. - */ - -open Crawler.Types - -module Config = { - fn baseUrl = "https://api.scripture.api.bible/v1" - fn webUrl = "https://bible.cloud" - fn apiVersion = "v1" - fn rateLimitMs = 500 - - struct apiCredentials { { - apiKey: string, - apiSecret: option, - } -} - -module Endpoints = { - fn bibles = () => `${Config.baseUrl}/bibles` - fn bible = bibleId => `${Config.baseUrl}/bibles/${bibleId}` - fn books = bibleId => `${Config.baseUrl}/bibles/${bibleId}/books` - fn chapters = (bibleId, bookId) => - `${Config.baseUrl}/bibles/${bibleId}/books/${bookId}/chapters` - fn verses = (bibleId, chapterId) => - `${Config.baseUrl}/bibles/${bibleId}/chapters/${chapterId}/verses` - fn verse = (bibleId, verseId) => `${Config.baseUrl}/bibles/${bibleId}/verses/${verseId}` -} - -module Types = { - struct bibleInfo { { - id: string, - name: string, - nameLocal: string, - language: Lang1000.Language.t, - description: option, - copyright: option, - } - - struct bookInfo { { - id: string, - bibleId: string, - abbreviation: string, - name: string, - nameLong: string, - } - - struct chapterInfo { { - id: string, - bibleId: string, - bookId: string, - number: string, - reference: string, - } -} - -module Parser = { - open Types - - /** Parse the data array from an API response JSON */ - fn getDataArray = (json: JSON.t): option> => { - switch json { - | Object(obj) => - switch obj->Dict.get("data") { - | Some(Array(arr)) => Some(arr) - | _ => None - } - | _ => None - } - } - - /** Extract a string field from a JSON object */ - fn getString = (obj: Dict.t, key: string): string => { - switch obj->Dict.get(key) { - | Some(String(s)) => s - | _ => "" - } - } - - fn getOptString = (obj: Dict.t, key: string): option => { - switch obj->Dict.get(key) { - | Some(String(s)) => Some(s) - | _ => None - } - } - - fn parseBibleList = (json: JSON.t): Crawler.Parser.parseResult> => { - switch getDataArray(json) { - | None => Crawler.Parser.NoMatch - | Some(arr) => - fn bibles = arr->Array.filterMap(item => { - switch item { - | Object(obj) => - fn langObj = switch obj->Dict.get("language") { - | Some(Object(l)) => l - | _ => Dict.make() - } - Some({ - id: getString(obj, "id"), - name: getString(obj, "name"), - nameLocal: getString(obj, "nameLocal"), - language: Lang1000.Language.make( - ~code=getString(langObj, "id"), - ~name=getString(langObj, "name"), - ~script=getString(langObj, "script"), - (), - ), - description: getOptString(obj, "description"), - copyright: getOptString(obj, "copyright"), - }) - | _ => None - } - }) - Crawler.Parser.Parsed(bibles) - } - } - - fn parseBooks = (json: JSON.t): Crawler.Parser.parseResult> => { - switch getDataArray(json) { - | None => Crawler.Parser.NoMatch - | Some(arr) => - fn books = arr->Array.filterMap(item => { - switch item { - | Object(obj) => - Some({ - id: getString(obj, "id"), - bibleId: getString(obj, "bibleId"), - abbreviation: getString(obj, "abbreviation"), - name: getString(obj, "name"), - nameLong: getString(obj, "nameLong"), - }) - | _ => None - } - }) - Crawler.Parser.Parsed(books) - } - } - - fn parseChapters = (json: JSON.t): Crawler.Parser.parseResult> => { - switch getDataArray(json) { - | None => Crawler.Parser.NoMatch - | Some(arr) => - fn chapters = arr->Array.filterMap(item => { - switch item { - | Object(obj) => - Some({ - id: getString(obj, "id"), - bibleId: getString(obj, "bibleId"), - bookId: getString(obj, "bookId"), - number: getString(obj, "number"), - reference: getString(obj, "reference"), - }) - | _ => None - } - }) - Crawler.Parser.Parsed(chapters) - } - } - - fn parseVerses = (json: JSON.t, languageCode: string): Crawler.Parser.parseResult< - array, - > => { - switch getDataArray(json) { - | None => Crawler.Parser.NoMatch - | Some(arr) => - fn verses = arr->Array.filterMap(item => { - switch item { - | Object(obj) => - fn ref = getString(obj, "reference") - fn content = getString(obj, "content") - // Parse reference like "GEN.1.1" into book/chapter/verse - fn parts = ref->String.split(".") - if Array.length(parts) >= 3 { - fn book = Array.getUnsafe(parts, 0) - fn chapter = Array.getUnsafe(parts, 1)->Int.fromString->Option.getOr(1) - fn verse = Array.getUnsafe(parts, 2)->Int.fromString->Option.getOr(1) - Some( - Lang1000.Verse.make( - ~reference=Lang1000.Verse.makeReference(~book, ~chapter, ~verse), - ~text=content->String.trim, - ~language=languageCode, - ), - ) - } else { - None - } - | _ => None - } - }) - Crawler.Parser.Parsed(verses) - } - } -} - -module Crawler = { - struct t { { - credentials: option, - rateLimiter: Crawler.RateLimiter.t, - mutable state: crawlerState, - } - - fn make = (~apiKey=?, ()) => { - credentials: apiKey->Option.map(key => {Config.apiKey: key, apiSecret: None}), - rateLimiter: Crawler.RateLimiter.make(~delayMs=Config.rateLimitMs, ()), - state: Idle, - } - - fn getHeaders = (crawler: t): Dict.t => { - fn headers = Crawler.Config.makeDefaultHeaders() - switch crawler.credentials { - | Some({apiKey}) => Dict.set(headers, "api-key", apiKey) - | None => () - } - Dict.set(headers, "Accept", "application/json") - headers - } - - fn fetchBibles = async (crawler: t): crawlResult> => { - crawler.state = Crawling("bibles") - fn headers = getHeaders(crawler) - fn resp = await Http.getWithRateLimit( - Endpoints.bibles(), - ~headers, - ~rateLimiter=crawler.rateLimiter, - (), - ) - crawler.state = Idle - switch resp { - | Ok({body}) => - fn json = JSON.parseExn(body) - switch Parser.parseBibleList(json) { - | Crawler.Parser.Parsed(bibles) => Success(bibles) - | _ => Failure("Failed to parse bibles list") - } - | Error(Http.HttpError(code, msg)) => Failure(`HTTP ${Int.toString(code)}: ${msg}`) - | Error(Http.NetworkError(msg)) => Failure(`Network error: ${msg}`) - | Error(Http.TimeoutError) => Failure("Request timed out") - | Error(Http.ParseError(msg)) => Failure(`Parse error: ${msg}`) - } - } - - fn fetchBooks = async (crawler: t, bibleId: string): crawlResult> => { - fn headers = getHeaders(crawler) - fn resp = await Http.getWithRateLimit( - Endpoints.books(bibleId), - ~headers, - ~rateLimiter=crawler.rateLimiter, - (), - ) - switch resp { - | Ok({body}) => - fn json = JSON.parseExn(body) - switch Parser.parseBooks(json) { - | Crawler.Parser.Parsed(books) => Success(books) - | _ => Failure("Failed to parse books") - } - | Error(Http.HttpError(code, msg)) => Failure(`HTTP ${Int.toString(code)}: ${msg}`) - | Error(_) => Failure("Request failed") - } - } - - fn fetchChapter = async ( - crawler: t, - bibleId: string, - chapterId: string, - languageCode: string, - ): crawlResult> => { - fn headers = getHeaders(crawler) - fn resp = await Http.getWithRateLimit( - Endpoints.verses(bibleId, chapterId), - ~headers, - ~rateLimiter=crawler.rateLimiter, - (), - ) - switch resp { - | Ok({body}) => - fn json = JSON.parseExn(body) - switch Parser.parseVerses(json, languageCode) { - | Crawler.Parser.Parsed(verses) => Success(verses) - | _ => Failure("Failed to parse verses") - } - | Error(Http.HttpError(code, msg)) => Failure(`HTTP ${Int.toString(code)}: ${msg}`) - | Error(_) => Failure("Request failed") - } - } -} - diff --git a/lol/src/crawlers/BibleCom.affine b/lol/src/crawlers/BibleCom.affine deleted file mode 100644 index 1df9ac623..000000000 --- a/lol/src/crawlers/BibleCom.affine +++ /dev/null @@ -1,266 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module BibleCom; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * Bible.com Crawler - * - * Crawler implementation for YouVersion (bible.com) - * Web scraping approach for Bible translations. - * Rate limited to 2 req/sec to respect server limits. - */ - -open Crawler.Types - -module Config = { - fn baseUrl = "https://www.bible.com" - fn apiUrl = "https://www.bible.com/api/bible" - fn rateLimitMs = 2000 - - struct versionInfo { { - id: int, - abbreviation: string, - title: string, - languageTag: string, - } -} - -module Endpoints = { - fn versions = () => `${Config.baseUrl}/versions` - fn version = versionId => `${Config.baseUrl}/versions/${Int.toString(versionId)}` - fn bible = (versionId, bookCode, chapter) => - `${Config.baseUrl}/bible/${Int.toString(versionId)}/${bookCode}.${Int.toString(chapter)}` - fn search = (versionId, query) => - `${Config.baseUrl}/search/bible?version_id=${Int.toString(versionId)}&q=${query}` - fn apiChapter = (versionId, bookCode, chapter) => - `${Config.apiUrl}/chapter/${Int.toString(versionId)}/${bookCode}.${Int.toString(chapter)}.json` -} - -module Selectors = { - fn verseContainer = ".ChapterContent_verse__uvbXo" - fn verseNumber = ".ChapterContent_label__R2PLt" - fn verseText = ".ChapterContent_content__RlRwn" - fn chapterNav = ".ChapterContent_nav__vVPwy" - fn versionSelector = ".VersionSelector_container__3uKjR" -} - -module Types = { - struct versionMeta { { - id: int, - abbreviation: string, - title: string, - language: Lang1000.Language.t, - hasAudio: bool, - hasOffline: bool, - } - - struct chapterContent { { - versionId: int, - book: string, - chapter: int, - verses: array, - nextChapter: option<(string, int)>, - prevChapter: option<(string, int)>, - } -} - -module Parser = { - open Types - - /** Parse version listing from API JSON response */ - fn parseVersionList = (json: JSON.t): Crawler.Parser.parseResult> => { - switch json { - | Object(obj) => - switch obj->Dict.get("data") { - | Some(Array(arr)) => - fn versions = arr->Array.filterMap(item => { - switch item { - | Object(v) => - fn getString = (d: Dict.t, k: string) => - switch d->Dict.get(k) { - | Some(String(s)) => s - | _ => "" - } - fn getInt = (d: Dict.t, k: string) => - switch d->Dict.get(k) { - | Some(Number(n)) => Float.toInt(n) - | _ => 0 - } - fn getBool = (d: Dict.t, k: string) => - switch d->Dict.get(k) { - | Some(Boolean(b)) => b - | _ => false - } - fn langTag = getString(v, "language_tag") - Some({ - id: getInt(v, "id"), - abbreviation: getString(v, "abbreviation"), - title: getString(v, "title"), - language: Lang1000.Language.make(~code=langTag, ~name=langTag, ()), - hasAudio: getBool(v, "has_audio"), - hasOffline: getBool(v, "has_offline"), - }) - | _ => None - } - }) - Crawler.Parser.Parsed(versions) - | _ => Crawler.Parser.NoMatch - } - | _ => Crawler.Parser.NoMatch - } - } - - /** Extract clean text from HTML by stripping tags */ - fn stripHtmlTags = (html: string): string => { - html - ->String.replaceRegExp(%re("/<[^>]+>/g"), "") - ->String.replaceRegExp(%re("/\s+/g"), " ") - ->String.trim - } - - /** Parse chapter content from HTML page */ - fn parseChapterHtml = ( - html: string, - ~versionId: int, - ~book: string, - ~chapter: int, - ~languageCode: string, - (), - ): Crawler.Parser.parseResult => { - // Extract verse blocks using regex on HTML structure - fn verseRegex = %re( - "/data-usfm=\"([^\"]+)\"[^>]*>.*?]*class=\"[^\"]*content[^\"]*\"[^>]*>(.*?)<\/span>/gs" - ) - fn verses = [] - fn _ = html->String.replaceRegExp(verseRegex, (match_, _offset, _str) => { - // This is a simplified extraction - the regex captures verse refs and content - fn cleaned = stripHtmlTags(match_) - if String.length(cleaned) > 0 { - fn verse = Lang1000.Verse.make( - ~reference=Lang1000.Verse.makeReference(~book, ~chapter, ~verse=Array.length(verses) + 1), - ~text=cleaned, - ~language=languageCode, - ) - ignore(Array.concat(verses, [verse])) - } - match_ - }) - - if Array.length(verses) > 0 { - Crawler.Parser.Parsed({ - versionId, - book, - chapter, - verses, - nextChapter: None, - prevChapter: None, - }) - } else { - Crawler.Parser.NoMatch - } - } - - fn normalizeText = (text: string): string => { - text - ->String.trim - ->String.replaceRegExp(%re("/\s+/g"), " ") - } -} - -module Crawler = { - struct t { { - rateLimiter: Crawler.RateLimiter.t, - mutable state: crawlerState, - mutable cachedVersions: option>, - } - - fn make = () => { - rateLimiter: Crawler.RateLimiter.make(~delayMs=Config.rateLimitMs, ()), - state: Idle, - cachedVersions: None, - } - - fn fetchVersions = async (crawler: t): crawlResult> => { - switch crawler.cachedVersions { - | Some(versions) => Success(versions) - | None => - crawler.state = Crawling("versions") - fn resp = await Http.getWithRateLimit( - Endpoints.versions(), - ~rateLimiter=crawler.rateLimiter, - (), - ) - crawler.state = Idle - switch resp { - | Ok({body}) => - switch Parser.parseVersionList(JSON.parseExn(body)) { - | Crawler.Parser.Parsed(versions) => - crawler.cachedVersions = Some(versions) - Success(versions) - | _ => Failure("Failed to parse versions") - } - | Error(Http.HttpError(code, msg)) => Failure(`HTTP ${Int.toString(code)}: ${msg}`) - | Error(_) => Failure("Request failed") - } - } - } - - fn fetchChapter = async ( - crawler: t, - versionId: int, - book: string, - chapter: int, - languageCode: string, - ): crawlResult => { - fn resp = await Http.getWithRateLimit( - Endpoints.bible(versionId, book, chapter), - ~rateLimiter=crawler.rateLimiter, - (), - ) - switch resp { - | Ok({body}) => - switch Parser.parseChapterHtml(body, ~versionId, ~book, ~chapter, ~languageCode, ()) { - | Crawler.Parser.Parsed(content) => Success(content) - | _ => Failure("Failed to parse chapter HTML") - } - | Error(Http.HttpError(code, msg)) => Failure(`HTTP ${Int.toString(code)}: ${msg}`) - | Error(_) => Failure("Request failed") - } - } - - fn fetchBook = async ( - crawler: t, - versionId: int, - book: string, - totalChapters: int, - languageCode: string, - ): crawlResult> => { - fn chapters = [] - fn failed = ref(false) - fn failMsg = ref("") - - for ch in 1 to totalChapters { - if !failed.contents { - fn result = await fetchChapter(crawler, versionId, book, ch, languageCode) - switch result { - | Success(content) => ignore(Array.concat(chapters, [content])) - | Failure(msg) => - failed := true - failMsg := msg - | Pending => () - } - } - } - - if failed.contents { - Failure(failMsg.contents) - } else { - Success(chapters) - } - } -} - diff --git a/lol/src/crawlers/Crawler.affine b/lol/src/crawlers/Crawler.affine deleted file mode 100644 index 3ab9679d0..000000000 --- a/lol/src/crawlers/Crawler.affine +++ /dev/null @@ -1,146 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Crawler; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * Base Crawler Module - * - * Provides the foundational structs and functions for web crawling - * Bible corpus sources. - */ - -module Types = { - struct httpMethod { GET | POST | HEAD - - struct requestConfig { { - url: string, - method: httpMethod, - headers: Dict.t, - timeout: int, - retries: int, - } - - struct responseStatus { - | Ok(int) - | NetworkError(string) - | Timeout - | RateLimited - | NotFound - - struct response { { - status: responseStatus, - headers: Dict.t, - body: option, - } - - struct crawlResult<'a> = - | Success('a) - | Failure(string) - | Pending - - struct crawlerState { - | Idle - | Crawling(string) - | Paused - | Stopped - | Error(string) -} - -module Config = { - fn defaultTimeout = 30000 - fn defaultRetries = 3 - fn defaultUserAgent = "1000Langs/0.1.0 (Parallel Corpus Crawler; +https://github.com/Hyperpolymath/1000Langs)" - fn defaultRateLimitMs = 1000 - - fn makeDefaultHeaders = () => { - fn headers = Dict.make() - Dict.set(headers, "User-Agent", defaultUserAgent) - Dict.set(headers, "Accept", "text/html,application/xhtml+xml,application/xml") - Dict.set(headers, "Accept-Language", "en-US,en;q=0.9") - headers - } -} - -module Request = { - open Types - - fn make = (~url, ~method=GET, ~headers=?, ~timeout=?, ~retries=?, ()) => { - url, - method, - headers: headers->Option.getOr(Config.makeDefaultHeaders()), - timeout: timeout->Option.getOr(Config.defaultTimeout), - retries: retries->Option.getOr(Config.defaultRetries), - } - - fn withHeader = (config, key, value) => { - Dict.set(config.headers, key, value) - config - } - - fn methodToString = method => switch method { - | GET => "GET" - | POST => "POST" - | HEAD => "HEAD" - } -} - -module RateLimiter = { - struct t { { - mutable lastRequest: float, - delayMs: int, - } - - fn make = (~delayMs=Config.defaultRateLimitMs, ()) => { - lastRequest: 0.0, - delayMs, - } - - fn canProceed = limiter => { - fn now = Date.now() - fn elapsed = now -. limiter.lastRequest - elapsed >= Float.fromInt(limiter.delayMs) - } - - fn recordRequest = limiter => { - limiter.lastRequest = Date.now() - } -} - -module RetryPolicy = { - struct backoffStrategy { - | Constant(int) - | Linear(int) - | Exponential(int, float) - - fn calculateDelay = (strategy, attempt) => switch strategy { - | Constant(ms) => ms - | Linear(base) => base * attempt - | Exponential(base, factor) => - Float.toInt(Float.fromInt(base) *. Math.pow(factor, ~exp=Float.fromInt(attempt - 1))) - } - - fn shouldRetry = (attempt, maxRetries) => attempt < maxRetries -} - -module Parser = { - struct selector { - | Css(string) - | XPath(string) - | Regex(string) - - struct parseResult<'a> = - | Parsed('a) - | ParseError(string) - | NoMatch - - fn selectorToString = selector => switch selector { - | Css(s) => `css:${s}` - | XPath(s) => `xpath:${s}` - | Regex(s) => `regex:${s}` - } -} - diff --git a/lol/src/crawlers/EBible.affine b/lol/src/crawlers/EBible.affine deleted file mode 100644 index 3b1995f67..000000000 --- a/lol/src/crawlers/EBible.affine +++ /dev/null @@ -1,192 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module EBible; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * eBible.org Crawler - * - * Crawler for ebible.org bulk Bible text collection. - * High coverage with 1000+ languages in USFM plain text format. - */ - -open Crawler.Types - -module Config = { - fn baseUrl = "https://ebible.org" - fn downloadUrl = "https://ebible.org/Scriptures" - fn rateLimitMs = 1000 -} - -module Endpoints = { - fn translationList = () => `${Config.baseUrl}/Scriptures/` - fn translation = translationId => `${Config.downloadUrl}/${translationId}/` - fn usfmZip = translationId => `${Config.downloadUrl}/${translationId}_usfm.zip` - fn metadata = translationId => `${Config.downloadUrl}/${translationId}/copr.htm` -} - -module Types = { - struct translationInfo { { - id: string, - language: string, - title: string, - copyright: option, - completeness: option, - } -} - -module Parser = { - open Types - - /** Parse translation listing from the Scriptures index page */ - fn parseTranslationList = (html: string): Crawler.Parser.parseResult< - array, - > => { - // Extract translation entries from directory listing - fn linkRegex = %re("/href=\"([a-zA-Z0-9_-]+)\/\"[^>]*>([^<]*)String.replaceRegExp(linkRegex, (match_, _offset, _str) => { - fn parts = match_->String.split("\"") - if Array.length(parts) >= 2 { - fn id = Array.getUnsafe(parts, 1)->String.replaceRegExp(%re("/\//"), "") - if String.length(id) > 2 && !String.startsWith(id, ".") { - ignore( - Array.concat( - translations, - [ - { - id, - language: id, - title: id, - copyright: None, - completeness: None, - }, - ], - ), - ) - } - } - match_ - }) - - if Array.length(translations) > 0 { - Crawler.Parser.Parsed(translations) - } else { - Crawler.Parser.NoMatch - } - } - - /** Parse USFM content to extract verses (inline, avoids cross-module coupling) */ - fn parseUsfm = (usfm: string, languageCode: string): array => { - fn verses: ref> = ref([]) - fn currentBook = ref("") - fn currentChapter = ref(0) - - fn lines = usfm->String.split("\n") - lines->Array.forEach(line => { - fn trimmed = String.trim(line) - if String.startsWith(trimmed, "\\id ") { - currentBook := String.sliceToEnd(trimmed, ~start=4)->String.split(" ")->Array.getUnsafe(0) - } - if String.startsWith(trimmed, "\\c ") { - currentChapter := - String.sliceToEnd(trimmed, ~start=3) - ->String.trim - ->Int.fromString - ->Option.getOr(0) - } - if String.startsWith(trimmed, "\\v ") { - fn rest = String.sliceToEnd(trimmed, ~start=3) - fn spaceIdx = String.indexOf(rest, " ") - if spaceIdx > 0 { - fn verseNum = String.slice(rest, ~start=0, ~end=spaceIdx)->Int.fromString->Option.getOr(0) - fn text = - String.sliceToEnd(rest, ~start=spaceIdx + 1) - ->String.replaceRegExp(%re("/\\\\[a-z]+\s?/g"), "") - ->String.trim - if verseNum > 0 && String.length(text) > 0 { - verses := - Array.concat( - verses.contents, - [ - Lang1000.Verse.make( - ~reference=Lang1000.Verse.makeReference( - ~book=currentBook.contents, - ~chapter=currentChapter.contents, - ~verse=verseNum, - ), - ~text, - ~language=languageCode, - ), - ], - ) - } - } - } - }) - verses.contents - } -} - -module Crawler = { - struct t { { - rateLimiter: Crawler.RateLimiter.t, - mutable state: crawlerState, - } - - fn make = () => { - rateLimiter: Crawler.RateLimiter.make(~delayMs=Config.rateLimitMs, ()), - state: Idle, - } - - /** Fetch the list of available translations */ - fn fetchTranslations = async (crawler: t): crawlResult> => { - crawler.state = Crawling("translations") - fn resp = await Http.getWithRateLimit( - Endpoints.translationList(), - ~rateLimiter=crawler.rateLimiter, - (), - ) - crawler.state = Idle - switch resp { - | Ok({body}) => - switch Parser.parseTranslationList(body) { - | Crawler.Parser.Parsed(translations) => Success(translations) - | _ => Failure("Failed to parse translation list") - } - | Error(Http.HttpError(code, msg)) => Failure(`HTTP ${Int.toString(code)}: ${msg}`) - | Error(_) => Failure("Request failed") - } - } - - /** Fetch and parse a specific translation's text */ - fn fetchTranslation = async ( - crawler: t, - translationId: string, - languageCode: string, - ): crawlResult> => { - crawler.state = Crawling(translationId) - // Fetch the raw USFM text from the translation page - fn resp = await Http.getWithRateLimit( - Endpoints.translation(translationId), - ~rateLimiter=crawler.rateLimiter, - (), - ) - crawler.state = Idle - switch resp { - | Ok({body}) => - fn verses = Parser.parseUsfm(body, languageCode) - if Array.length(verses) > 0 { - Success(verses) - } else { - Failure("No verses extracted from USFM content") - } - | Error(Http.HttpError(code, msg)) => Failure(`HTTP ${Int.toString(code)}: ${msg}`) - | Error(_) => Failure("Request failed") - } - } -} - diff --git a/lol/src/crawlers/FindBible.affine b/lol/src/crawlers/FindBible.affine deleted file mode 100644 index 991ff1417..000000000 --- a/lol/src/crawlers/FindBible.affine +++ /dev/null @@ -1,255 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module FindBible; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * Find.Bible Crawler - * - * Crawler for find.bible - API + HTML hybrid approach for - * language discovery and per-language Bible text retrieval. - */ - -open Crawler.Types - -module Config = { - fn baseUrl = "https://find.bible" - fn apiUrl = "https://find.bible/api" - fn rateLimitMs = 1000 -} - -module Endpoints = { - fn languages = () => `${Config.apiUrl}/languages` - fn language = langCode => `${Config.apiUrl}/languages/${langCode}` - fn bibles = langCode => `${Config.apiUrl}/bibles?language=${langCode}` - fn bible = bibleId => `${Config.apiUrl}/bibles/${bibleId}` - fn text = (bibleId, book, chapter) => - `${Config.apiUrl}/bibles/${bibleId}/${book}/${Int.toString(chapter)}` -} - -module Types = { - struct languageInfo { { - code: string, - name: string, - nativeName: option, - bibleCount: int, - } - - struct bibleEntry { { - id: string, - title: string, - languageCode: string, - year: option, - copyright: option, - } -} - -module Parser = { - open Types - - fn getString = (obj: Dict.t, key: string): string => - switch obj->Dict.get(key) { - | Some(String(s)) => s - | _ => "" - } - - fn getOptString = (obj: Dict.t, key: string): option => - switch obj->Dict.get(key) { - | Some(String(s)) => Some(s) - | _ => None - } - - fn getInt = (obj: Dict.t, key: string): int => - switch obj->Dict.get(key) { - | Some(Number(n)) => Float.toInt(n) - | _ => 0 - } - - fn getOptInt = (obj: Dict.t, key: string): option => - switch obj->Dict.get(key) { - | Some(Number(n)) => Some(Float.toInt(n)) - | _ => None - } - - /** Parse language list from API JSON response */ - fn parseLanguages = (json: JSON.t): Crawler.Parser.parseResult> => { - switch json { - | Array(arr) => - fn langs = arr->Array.filterMap(item => { - switch item { - | Object(obj) => - Some({ - code: getString(obj, "code"), - name: getString(obj, "name"), - nativeName: getOptString(obj, "nativeName"), - bibleCount: getInt(obj, "bibleCount"), - }) - | _ => None - } - }) - Crawler.Parser.Parsed(langs) - | Object(obj) => - switch obj->Dict.get("data") { - | Some(Array(arr)) => - fn langs = arr->Array.filterMap(item => { - switch item { - | Object(o) => - Some({ - code: getString(o, "code"), - name: getString(o, "name"), - nativeName: getOptString(o, "nativeName"), - bibleCount: getInt(o, "bibleCount"), - }) - | _ => None - } - }) - Crawler.Parser.Parsed(langs) - | _ => Crawler.Parser.NoMatch - } - | _ => Crawler.Parser.NoMatch - } - } - - /** Parse Bible entries from API JSON response */ - fn parseBibles = (json: JSON.t): Crawler.Parser.parseResult> => { - fn parseArr = arr => - arr->Array.filterMap(item => { - switch item { - | Object(obj) => - Some({ - id: getString(obj, "id"), - title: getString(obj, "title"), - languageCode: getString(obj, "languageCode"), - year: getOptInt(obj, "year"), - copyright: getOptString(obj, "copyright"), - }) - | _ => None - } - }) - - switch json { - | Array(arr) => Crawler.Parser.Parsed(parseArr(arr)) - | Object(obj) => - switch obj->Dict.get("data") { - | Some(Array(arr)) => Crawler.Parser.Parsed(parseArr(arr)) - | _ => Crawler.Parser.NoMatch - } - | _ => Crawler.Parser.NoMatch - } - } - - /** Parse verse text from API chapter response */ - fn parseVerses = (json: JSON.t, languageCode: string): Crawler.Parser.parseResult< - array, - > => { - fn parseVerseArr = arr => - arr->Array.filterMap(item => { - switch item { - | Object(obj) => - fn book = getString(obj, "book") - fn chapter = getInt(obj, "chapter") - fn verseNum = getInt(obj, "verse") - fn text = getString(obj, "text") - if String.length(text) > 0 { - Some( - Lang1000.Verse.make( - ~reference=Lang1000.Verse.makeReference(~book, ~chapter, ~verse=verseNum), - ~text, - ~language=languageCode, - ), - ) - } else { - None - } - | _ => None - } - }) - - switch json { - | Array(arr) => Crawler.Parser.Parsed(parseVerseArr(arr)) - | Object(obj) => - switch obj->Dict.get("verses") { - | Some(Array(arr)) => Crawler.Parser.Parsed(parseVerseArr(arr)) - | _ => Crawler.Parser.NoMatch - } - | _ => Crawler.Parser.NoMatch - } - } -} - -module Crawler = { - struct t { { - rateLimiter: Crawler.RateLimiter.t, - mutable state: crawlerState, - } - - fn make = () => { - rateLimiter: Crawler.RateLimiter.make(~delayMs=Config.rateLimitMs, ()), - state: Idle, - } - - /** Discover available languages */ - fn fetchLanguages = async (crawler: t): crawlResult> => { - crawler.state = Crawling("languages") - fn resp = await Http.getJson(Endpoints.languages(), ()) - crawler.state = Idle - switch resp { - | Ok(json) => - switch Parser.parseLanguages(json) { - | Crawler.Parser.Parsed(langs) => Success(langs) - | _ => Failure("Failed to parse language list") - } - | Error(Http.HttpError(code, msg)) => Failure(`HTTP ${Int.toString(code)}: ${msg}`) - | Error(_) => Failure("Request failed") - } - } - - /** Fetch Bibles available for a language */ - fn fetchBibles = async ( - crawler: t, - langCode: string, - ): crawlResult> => { - fn resp = await Http.getWithRateLimit( - Endpoints.bibles(langCode), - ~rateLimiter=crawler.rateLimiter, - (), - ) - switch resp { - | Ok({body}) => - switch Parser.parseBibles(JSON.parseExn(body)) { - | Crawler.Parser.Parsed(bibles) => Success(bibles) - | _ => Failure("Failed to parse bibles") - } - | Error(Http.HttpError(code, msg)) => Failure(`HTTP ${Int.toString(code)}: ${msg}`) - | Error(_) => Failure("Request failed") - } - } - - /** Fetch chapter text for a specific Bible */ - fn fetchChapter = async ( - crawler: t, - bibleId: string, - book: string, - chapter: int, - languageCode: string, - ): crawlResult> => { - fn resp = await Http.getWithRateLimit( - Endpoints.text(bibleId, book, chapter), - ~rateLimiter=crawler.rateLimiter, - (), - ) - switch resp { - | Ok({body}) => - switch Parser.parseVerses(JSON.parseExn(body), languageCode) { - | Crawler.Parser.Parsed(verses) => Success(verses) - | _ => Failure("Failed to parse verses") - } - | Error(Http.HttpError(code, msg)) => Failure(`HTTP ${Int.toString(code)}: ${msg}`) - | Error(_) => Failure("Request failed") - } - } -} - diff --git a/lol/src/crawlers/PngScriptures.affine b/lol/src/crawlers/PngScriptures.affine deleted file mode 100644 index f070568f2..000000000 --- a/lol/src/crawlers/PngScriptures.affine +++ /dev/null @@ -1,277 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module PngScriptures; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * PNG Scriptures Crawler - * - * Crawler for pngscriptures.org - Papua New Guinea Bible translations - * in numerous Papuan and Austronesian languages. - * Downloads ZIP archives and parses USFM/HTML content. - */ - -open Crawler.Types - -module Config = { - fn baseUrl = "https://pngscriptures.org" - fn downloadUrl = "https://pngscriptures.org/download" - fn rateLimitMs = 2000 - - struct format { - | Zip - | Pdf - | Epub - | Html - - fn formatToString = format => - switch format { - | Zip => "zip" - | Pdf => "pdf" - | Epub => "epub" - | Html => "html" - } -} - -module Endpoints = { - fn languages = () => `${Config.baseUrl}/languages` - fn language = langCode => `${Config.baseUrl}/lng/${langCode}` - fn download = (langCode, format) => - `${Config.downloadUrl}/${langCode}/${Config.formatToString(format)}` -} - -module Types = { - struct pngLanguage { { - code: string, - name: string, - alternateName: option, - region: string, - population: option, - hasNewTestament: bool, - hasOldTestament: bool, - } - - struct downloadInfo { { - language: pngLanguage, - format: Config.format, - sizeBytes: option, - lastUpdated: option, - } -} - -module Parser = { - open Types - - /** Parse language listing from HTML page using regex extraction */ - fn parseLanguageList = (html: string): Crawler.Parser.parseResult> => { - // Extract language entries from the listing page - fn langRegex = %re( - "/href=\"\/lng\/([a-z]{3})\"[^>]*>([^<]+)<.*?(?:region:\s*([^<,]+))?/gs" - ) - fn languages = [] - fn _ = html->String.replaceRegExp(langRegex, (match_, _offset, _str) => { - // Simplified extraction - real implementation would be more robust - fn parts = match_->String.split("\"") - if Array.length(parts) >= 2 { - fn code = Array.getUnsafe(parts, 1)->String.replaceRegExp(%re("/.*\//"), "") - if String.length(code) == 3 { - ignore( - Array.concat( - languages, - [ - { - code, - name: code, - alternateName: None, - region: "Papua New Guinea", - population: None, - hasNewTestament: true, - hasOldTestament: false, - }, - ], - ), - ) - } - } - match_ - }) - - if Array.length(languages) > 0 { - Crawler.Parser.Parsed(languages) - } else { - Crawler.Parser.NoMatch - } - } - - /** Parse USFM (Unified Standard Format Markers) text into verses */ - fn parseUsfm = (usfm: string, languageCode: string): array => { - fn verses: ref> = ref([]) - fn currentBook = ref("") - fn currentChapter = ref(0) - - fn lines = usfm->String.split("\n") - lines->Array.forEach(line => { - fn trimmed = String.trim(line) - // Book marker: \id GEN - if String.startsWith(trimmed, "\\id ") { - currentBook := String.sliceToEnd(trimmed, ~start=4)->String.split(" ")->Array.getUnsafe(0) - } - // Chapter marker: \c 1 - if String.startsWith(trimmed, "\\c ") { - currentChapter := - String.sliceToEnd(trimmed, ~start=3) - ->String.trim - ->Int.fromString - ->Option.getOr(0) - } - // Verse marker: \v 1 In the beginning... - if String.startsWith(trimmed, "\\v ") { - fn rest = String.sliceToEnd(trimmed, ~start=3) - fn spaceIdx = String.indexOf(rest, " ") - if spaceIdx > 0 { - fn verseNum = String.slice(rest, ~start=0, ~end=spaceIdx)->Int.fromString->Option.getOr(0) - fn text = - String.sliceToEnd(rest, ~start=spaceIdx + 1) - ->String.replaceRegExp(%re("/\\\\[a-z]+\s?/g"), "") - ->String.trim - if verseNum > 0 && String.length(text) > 0 { - verses := - Array.concat( - verses.contents, - [ - Lang1000.Verse.make( - ~reference=Lang1000.Verse.makeReference( - ~book=currentBook.contents, - ~chapter=currentChapter.contents, - ~verse=verseNum, - ), - ~text, - ~language=languageCode, - ), - ], - ) - } - } - } - }) - - verses.contents - } - - /** Parse individual book HTML file extracting verse text */ - fn parseHtmlBook = (html: string, languageCode: string): Crawler.Parser.parseResult< - array, - > => { - // Extract verse text from HTML structure - fn verseRegex = %re("/class=\"verse\"[^>]*data-verse=\"(\d+)\"[^>]*>(.*?)<\/[^>]+>/gs") - fn verses = [] - fn _ = html->String.replaceRegExp(verseRegex, (match_, _offset, _str) => { - fn cleaned = - match_ - ->String.replaceRegExp(%re("/<[^>]+>/g"), "") - ->String.trim - if String.length(cleaned) > 0 { - ignore( - Array.concat( - verses, - [ - Lang1000.Verse.make( - ~reference=Lang1000.Verse.makeReference( - ~book="UNK", - ~chapter=1, - ~verse=Array.length(verses) + 1, - ), - ~text=cleaned, - ~language=languageCode, - ), - ], - ), - ) - } - match_ - }) - - if Array.length(verses) > 0 { - Crawler.Parser.Parsed(verses) - } else { - Crawler.Parser.NoMatch - } - } -} - -module Crawler = { - struct t { { - rateLimiter: Crawler.RateLimiter.t, - mutable state: crawlerState, - downloadDir: string, - } - - fn make = (~downloadDir="./downloads/png", ()) => { - rateLimiter: Crawler.RateLimiter.make(~delayMs=Config.rateLimitMs, ()), - state: Idle, - downloadDir, - } - - fn fetchLanguages = async (crawler: t): crawlResult> => { - crawler.state = Crawling("languages") - fn resp = await Http.getWithRateLimit( - Endpoints.languages(), - ~rateLimiter=crawler.rateLimiter, - (), - ) - crawler.state = Idle - switch resp { - | Ok({body}) => - switch Parser.parseLanguageList(body) { - | Crawler.Parser.Parsed(langs) => Success(langs) - | _ => Failure("Failed to parse language list") - } - | Error(Http.HttpError(code, msg)) => Failure(`HTTP ${Int.toString(code)}: ${msg}`) - | Error(_) => Failure("Request failed") - } - } - - fn downloadTranslation = async ( - crawler: t, - langCode: string, - format: Config.format, - ): crawlResult => { - fn resp = await Http.getWithRateLimit( - Endpoints.download(langCode, format), - ~rateLimiter=crawler.rateLimiter, - (), - ) - switch resp { - | Ok({body}) => - fn path = `${crawler.downloadDir}/${langCode}.${Config.formatToString(format)}` - Success(path ++ " (" ++ Int.toString(String.length(body)) ++ " bytes)") - | Error(Http.HttpError(code, msg)) => Failure(`HTTP ${Int.toString(code)}: ${msg}`) - | Error(_) => Failure("Download failed") - } - } - - fn fetchAndParse = async ( - crawler: t, - langCode: string, - ): crawlResult> => { - // Fetch HTML version for parsing - fn resp = await Http.getWithRateLimit( - Endpoints.language(langCode), - ~rateLimiter=crawler.rateLimiter, - (), - ) - switch resp { - | Ok({body}) => - switch Parser.parseHtmlBook(body, langCode) { - | Crawler.Parser.Parsed(verses) => Success(verses) - | _ => Failure("No verses extracted from HTML") - } - | Error(Http.HttpError(code, msg)) => Failure(`HTTP ${Int.toString(code)}: ${msg}`) - | Error(_) => Failure("Request failed") - } - } -} - diff --git a/lol/src/cyc/OpenCyc.affine b/lol/src/cyc/OpenCyc.affine deleted file mode 100644 index 2c79106bd..000000000 --- a/lol/src/cyc/OpenCyc.affine +++ /dev/null @@ -1,247 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module OpenCyc; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * OpenCyc Integration - * - * Provides semantic grounding for language concepts using the OpenCyc - * knowledge base. This enables common-sense reasoning about languages, - * scripts, regions, and linguistic properties. - */ - -module Config = { - fn defaultEndpoint = "http://localhost:3602" - fn connectionTimeout = 5000 - - struct credentials { { - endpoint: string, - timeout: int, - } - - fn default = { - endpoint: defaultEndpoint, - timeout: connectionTimeout, - } -} - -module Concepts = { - // Core Cyc concepts for linguistics - fn humanLanguage = "#$HumanLanguage" - fn writingScript = "#$WritingScript" - fn geographicalRegion = "#$GeographicalRegion" - fn linguisticProperty = "#$LinguisticProperty" - fn languageFamily = "#$LanguageFamily" - fn spokenIn = "#$languageSpokenInRegion" - fn writtenIn = "#$languageWrittenInScript" - fn subLanguageOf = "#$subLanguageOf" - - // WALS typological features - fn wordOrder = "#$WordOrder" - fn phonologicalInventory = "#$PhonologicalInventory" - fn morphologicalType = "#$MorphologicalType" -} - -module Types = { - struct cycConstant { string // e.g., "#$English-HumanLanguage" - - struct cycFormula { - | Atom(cycConstant) - | List(array) - | Variable(string) - - struct queryResult { - | Success(array>) - | Failure(string) - | Timeout - - struct connectionState { - | Connected - | Disconnected - | Connecting - | Error(string) - - struct languageMapping { { - iso639_3: string, - cycConstant: cycConstant, - name: string, - family: option, - region: option, - script: option, - } -} - -module Client = { - open Types - - struct t { { - config: Config.credentials, - mutable state: connectionState, - } - - fn make = (~endpoint=?, ~timeout=?, ()) => { - config: { - endpoint: endpoint->Option.getOr(Config.defaultEndpoint), - timeout: timeout->Option.getOr(Config.connectionTimeout), - }, - state: Disconnected, - } - - fn connect = (_client: t): promise> => { - // TODO: Implement actual connection to OpenCyc server - Promise.resolve(Error("OpenCyc connection not implemented")) - } - - fn disconnect = (client: t): unit => { - client.state = Disconnected - } - - fn isConnected = (client: t): bool => { - switch client.state { - | Connected => true - | _ => false - } - } -} - -module Query = { - open Types - - // Build a CycL query for language information - fn languageQuery = (iso639_3: string): string => { - `(#$isa ?lang #$HumanLanguage) - (#$iso639-3Code ?lang "${iso639_3}")` - } - - // Query for languages in a region - fn languagesInRegion = (region: cycConstant): string => { - `(#$isa ?lang #$HumanLanguage) - (#$languageSpokenInRegion ?lang ${region})` - } - - // Query for languages using a script - fn languagesWithScript = (script: cycConstant): string => { - `(#$isa ?lang #$HumanLanguage) - (#$languageWrittenInScript ?lang ${script})` - } - - // Query for language family relationships - fn languageFamilyQuery = (language: cycConstant): string => { - `(#$subLanguageOf ${language} ?family)` - } - - fn execute = (_client: Client.t, _query: string): promise => { - // TODO: Implement actual query execution - Promise.resolve(Failure("Query execution not implemented")) - } -} - -module LanguageOntology = { - open Types - - // Map ISO 639-3 codes to Cyc constants - fn iso639ToCyc: Dict.t = { - fn d = Dict.make() - Dict.set(d, "eng", "#$English-HumanLanguage") - Dict.set(d, "deu", "#$German-HumanLanguage") - Dict.set(d, "fra", "#$French-HumanLanguage") - Dict.set(d, "spa", "#$Spanish-HumanLanguage") - Dict.set(d, "por", "#$Portuguese-HumanLanguage") - Dict.set(d, "ita", "#$Italian-HumanLanguage") - Dict.set(d, "rus", "#$Russian-HumanLanguage") - Dict.set(d, "zho", "#$Chinese-HumanLanguage") - Dict.set(d, "jpn", "#$Japanese-HumanLanguage") - Dict.set(d, "kor", "#$Korean-HumanLanguage") - Dict.set(d, "ara", "#$Arabic-HumanLanguage") - Dict.set(d, "heb", "#$Hebrew-HumanLanguage") - Dict.set(d, "ell", "#$Greek-HumanLanguage") - Dict.set(d, "lat", "#$Latin-HumanLanguage") - Dict.set(d, "san", "#$Sanskrit-HumanLanguage") - d - } - - // Major language families - fn languageFamilies: Dict.t = { - fn d = Dict.make() - Dict.set(d, "indo-european", "#$IndoEuropeanLanguageFamily") - Dict.set(d, "sino-tibetan", "#$SinoTibetanLanguageFamily") - Dict.set(d, "afroasiatic", "#$AfroAsiaticLanguageFamily") - Dict.set(d, "austronesian", "#$AustronesianLanguageFamily") - Dict.set(d, "niger-congo", "#$NigerCongoLanguageFamily") - Dict.set(d, "dravidian", "#$DravidianLanguageFamily") - Dict.set(d, "uralic", "#$UralicLanguageFamily") - Dict.set(d, "altaic", "#$AltaicLanguageFamily") - d - } - - // Writing scripts - fn writingScripts: Dict.t = { - fn d = Dict.make() - Dict.set(d, "latin", "#$LatinAlphabet") - Dict.set(d, "cyrillic", "#$CyrillicAlphabet") - Dict.set(d, "greek", "#$GreekAlphabet") - Dict.set(d, "arabic", "#$ArabicScript") - Dict.set(d, "hebrew", "#$HebrewAlphabet") - Dict.set(d, "devanagari", "#$DevanagariScript") - Dict.set(d, "chinese", "#$ChineseCharacters") - Dict.set(d, "japanese", "#$JapaneseWritingSystem") - Dict.set(d, "korean", "#$HangulAlphabet") - d - } - - fn getCycConstant = (iso639_3: string): option => { - Dict.get(iso639ToCyc, iso639_3) - } - - fn getLanguageFamily = (familyName: string): option => { - Dict.get(languageFamilies, String.toLowerCase(familyName)) - } - - fn getScript = (scriptName: string): option => { - Dict.get(writingScripts, String.toLowerCase(scriptName)) - } -} - -module Reasoning = { - open Types - - // Check if a language is in a specific family - fn isInFamily = (_client: Client.t, _language: cycConstant, _family: cycConstant): promise => { - // TODO: Query Cyc for family membership - Promise.resolve(false) - } - - // Get all languages spoken in a geographic region - fn languagesInRegion = (_client: Client.t, _region: cycConstant): promise> => { - Promise.resolve([]) - } - - // Find related languages (same family) - fn relatedLanguages = (_client: Client.t, _language: cycConstant): promise> => { - Promise.resolve([]) - } - - // Check if two scripts are compatible (can represent the same language) - fn scriptsCompatible = (_script1: cycConstant, _script2: cycConstant): bool => { - // TODO: Implement compatibility check - false - } -} - -module Sync = { - // Synchronize local language data with OpenCyc - fn syncLanguages = (_client: Client.t, _languages: array): promise => { - // TODO: Implement synchronization - Promise.resolve(0) - } - - // Update local mappings from Cyc - fn updateMappings = (_client: Client.t): promise> => { - Promise.resolve(Error("Not implemented")) - } -} - diff --git a/lol/src/utils/Http.affine b/lol/src/utils/Http.affine deleted file mode 100644 index ee99959cf..000000000 --- a/lol/src/utils/Http.affine +++ /dev/null @@ -1,149 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Http; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * HTTP Fetch Module - * - * ReScript bindings to Deno's native fetch() API with rate limiting, - * retry logic, and error handling for crawler use. - */ - -/** Deno/Web fetch API bindings */ -module Fetch = { - struct response - - @val external fetch: (string, {..}) => promise = "fetch" - @val external fetchSimple: string => promise = "fetch" - - @get external status: response => int = "status" - @get external ok: response => bool = "ok" - @get external statusText: response => string = "statusText" - @send external text: response => promise = "text" - @send external json: response => promise = "json" - @send external getHeader: (response, string) => option = "headers.get" -} - -struct httpError { - | NetworkError(string) - | HttpError(int, string) - | TimeoutError - | ParseError(string) - -struct httpResponse { { - status: int, - body: string, - headers: Dict.t, -} - -/** Perform a GET request with optional headers */ -fn get = async (url: string, ~headers: option>=?, ()): result< - httpResponse, - httpError, -> => { - try { - fn resp = switch headers { - | Some(h) => - fn headerDict = Dict.make() - h->Dict.toArray->Array.forEach(((k, v)) => { - headerDict->Dict.set(k, JSON.Encode.string(v)) - }) - await Fetch.fetch( - url, - {"method": "GET", "headers": JSON.Encode.object(headerDict)}, - ) - | None => await Fetch.fetchSimple(url) - } - - fn body = await Fetch.text(resp) - fn status = Fetch.status(resp) - - if Fetch.ok(resp) { - Ok({status, body, headers: Dict.make()}) - } else if status == 429 { - Error(HttpError(429, "Rate limited")) - } else if status == 404 { - Error(HttpError(404, "Not found")) - } else { - Error(HttpError(status, Fetch.statusText(resp))) - } - } catch { - | exn => - fn msg = switch exn { - | Exn.Error(e) => Exn.message(e)->Option.getOr("Unknown error") - | _ => "Unknown error" - } - Error(NetworkError(msg)) - } -} - -/** Perform a GET request and parse response as JSON */ -fn getJson = async (url: string, ~headers: option>=?, ()): result< - JSON.t, - httpError, -> => { - fn resp = await get(url, ~headers?, ()) - switch resp { - | Ok({body}) => - try { - Ok(JSON.parseExn(body)) - } catch { - | _ => Error(ParseError("Invalid JSON response")) - } - | Error(e) => Error(e) - } -} - -/** Perform a GET request with rate limiter integration */ -fn getWithRateLimit = async ( - url: string, - ~headers: option>=?, - ~rateLimiter: Crawler.RateLimiter.t, - (), -): result => { - // Wait until rate limit allows - fn rec waitForLimit = async () => { - if Crawler.RateLimiter.canProceed(rateLimiter) { - Crawler.RateLimiter.recordRequest(rateLimiter) - } else { - await Promise.make((resolve, _) => { - fn _ = setTimeout(() => resolve(.), rateLimiter.delayMs) - }) - await waitForLimit() - } - } - await waitForLimit() - await get(url, ~headers?, ()) -} - -/** Perform a GET request with retry logic */ -fn getWithRetry = async ( - url: string, - ~headers: option>=?, - ~maxRetries=3, - ~backoff=Crawler.RetryPolicy.Exponential(1000, 2.0), - (), -): result => { - fn rec attempt = async (n: int) => { - fn resp = await get(url, ~headers?, ()) - switch resp { - | Ok(_) => resp - | Error(HttpError(429, _)) | Error(NetworkError(_)) if n < maxRetries => - fn delay = Crawler.RetryPolicy.calculateDelay(backoff, n + 1) - await Promise.make((resolve, _) => { - fn _ = setTimeout(() => resolve(.), delay) - }) - await attempt(n + 1) - | Error(_) => resp - } - } - await attempt(0) -} - -/** Deno setTimeout binding */ -@val external setTimeout: (unit => unit, int) => int = "setTimeout" - diff --git a/lol/src/utils/Iso639.affine b/lol/src/utils/Iso639.affine deleted file mode 100644 index 2db47669c..000000000 --- a/lol/src/utils/Iso639.affine +++ /dev/null @@ -1,170 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Iso639; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * ISO 639 Language Code Utilities - * - * Handles ISO 639-1 (2-letter), ISO 639-2 (3-letter bibliographic/terminological), - * and ISO 639-3 (3-letter comprehensive) language codes. - */ - -module Types = { - struct iso639_1 { string // 2-letter code (en, de, fr) - struct iso639_2b { string // 3-letter bibliographic (ger, fre) - struct iso639_2t { string // 3-letter terminological (deu, fra) - struct iso639_3 { string // 3-letter comprehensive (eng, deu, fra) - - struct codeType { - | Iso639_1 - | Iso639_2b - | Iso639_2t - | Iso639_3 - - struct languageScope { - | Individual // I - Individual language - | Macrolanguage // M - Macrolanguage - | Special // S - Special (mis, mul, und, zxx) - - struct languageType { - | Living // L - Living language - | Historical // H - Historical language - | Extinct // E - Extinct language - | Ancient // A - Ancient language - | Constructed // C - Constructed language - - struct languageEntry { { - iso639_3: iso639_3, - iso639_2b: option, - iso639_2t: option, - iso639_1: option, - scope: languageScope, - struct_: languageType, - name: string, - comment: option, - } -} - -module Validation = { - open Types - - fn iso639_1Pattern = %re("/^[a-z]{2}$/") - fn iso639_3Pattern = %re("/^[a-z]{3}$/") - - fn isValidIso639_1 = (code: string): bool => { - Js.Re.test_(iso639_1Pattern, code) - } - - fn isValidIso639_3 = (code: string): bool => { - Js.Re.test_(iso639_3Pattern, code) - } - - fn detectCodeType = (code: string): option => { - fn len = String.length(code) - switch len { - | 2 when isValidIso639_1(code) => Some(Iso639_1) - | 3 when isValidIso639_3(code) => Some(Iso639_3) - | _ => None - } - } - - fn normalize = (code: string): string => { - code->String.toLowerCase->String.trim - } -} - -module SpecialCodes = { - // Special ISO 639 codes - fn undetermined = "und" // Undetermined - fn multiple = "mul" // Multiple languages - fn miscellaneous = "mis" // Uncoded languages - fn noLinguistic = "zxx" // No linguistic content - - fn isSpecial = code => { - code == undetermined || - code == multiple || - code == miscellaneous || - code == noLinguistic - } -} - -module Conversion = { - open Types - - // Common ISO 639-1 to ISO 639-3 mappings - fn iso1ToIso3: Dict.t = { - fn d = Dict.make() - Dict.set(d, "en", "eng") - Dict.set(d, "de", "deu") - Dict.set(d, "fr", "fra") - Dict.set(d, "es", "spa") - Dict.set(d, "it", "ita") - Dict.set(d, "pt", "por") - Dict.set(d, "ru", "rus") - Dict.set(d, "zh", "zho") - Dict.set(d, "ja", "jpn") - Dict.set(d, "ko", "kor") - Dict.set(d, "ar", "ara") - Dict.set(d, "he", "heb") - Dict.set(d, "el", "ell") - Dict.set(d, "la", "lat") - d - } - - fn toIso639_3 = (code: string): option => { - fn normalized = Validation.normalize(code) - switch Validation.detectCodeType(normalized) { - | Some(Iso639_1) => Dict.get(iso1ToIso3, normalized) - | Some(Iso639_3) => Some(normalized) - | _ => None - } - } -} - -module Registry = { - open Types - - struct t { { - byIso3: Dict.t, - byIso1: Dict.t, - byName: Dict.t, - } - - fn empty = (): t => { - byIso3: Dict.make(), - byIso1: Dict.make(), - byName: Dict.make(), - } - - fn add = (registry, entry: languageEntry) => { - Dict.set(registry.byIso3, entry.iso639_3, entry) - switch entry.iso639_1 { - | Some(code) => Dict.set(registry.byIso1, code, entry) - | None => () - } - Dict.set(registry.byName, String.toLowerCase(entry.name), entry) - } - - fn findByCode = (registry, code: string): option => { - fn normalized = Validation.normalize(code) - switch Validation.detectCodeType(normalized) { - | Some(Iso639_1) => Dict.get(registry.byIso1, normalized) - | Some(Iso639_3) | Some(Iso639_2b) | Some(Iso639_2t) => - Dict.get(registry.byIso3, normalized) - | None => None - } - } - - fn findByName = (registry, name: string): option => { - Dict.get(registry.byName, String.toLowerCase(name)) - } - - fn count = (registry): int => { - Dict.keysToArray(registry.byIso3)->Array.length - } -} - diff --git a/lol/src/utils/Statistics.affine b/lol/src/utils/Statistics.affine deleted file mode 100644 index 53cf3f074..000000000 --- a/lol/src/utils/Statistics.affine +++ /dev/null @@ -1,252 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Statistics; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * Statistical Utilities - * - * Mathematical and statistical functions for corpus analysis, - * including KL-divergence, entropy, and clustering metrics. - */ - -module Types = { - struct distribution { array - struct matrix { array> - - struct distanceMetric { - | Euclidean - | Cosine - | KLDivergence - | JensenShannon - | Jaccard -} - -module Basic = { - fn sum = (arr: array): float => { - arr->Array.reduce(0.0, (acc, x) => acc +. x) - } - - fn mean = (arr: array): float => { - fn len = Array.length(arr) - if len == 0 { - 0.0 - } else { - sum(arr) /. Float.fromInt(len) - } - } - - fn variance = (arr: array): float => { - fn len = Array.length(arr) - if len == 0 { - 0.0 - } else { - fn m = mean(arr) - fn squaredDiffs = arr->Array.map(x => { - fn diff = x -. m - diff *. diff - }) - sum(squaredDiffs) /. Float.fromInt(len) - } - } - - fn standardDeviation = (arr: array): float => { - Math.sqrt(variance(arr)) - } - - fn min = (arr: array): option => { - arr->Array.reduce(None, (acc, x) => { - switch acc { - | None => Some(x) - | Some(m) => Some(x < m ? x : m) - } - }) - } - - fn max = (arr: array): option => { - arr->Array.reduce(None, (acc, x) => { - switch acc { - | None => Some(x) - | Some(m) => Some(x > m ? x : m) - } - }) - } -} - -module Information = { - fn epsilon = 1e-10 - - // Shannon entropy: H(X) = -Σ p(x) log p(x) - fn entropy = (dist: array): float => { - dist->Array.reduce(0.0, (acc, p) => { - if p > epsilon { - acc -. p *. Math.log2(p) - } else { - acc - } - }) - } - - // KL-Divergence: D_KL(P||Q) = Σ P(i) log(P(i)/Q(i)) - fn klDivergence = (p: array, q: array): float => { - if Array.length(p) != Array.length(q) { - Float.Constants.nan - } else { - fn result = ref(0.0) - for i in 0 to Array.length(p) - 1 { - fn pi = Array.getUnsafe(p, i) - fn qi = Array.getUnsafe(q, i) - if pi > epsilon && qi > epsilon { - result := result.contents +. pi *. Math.log2(pi /. qi) - } - } - result.contents - } - } - - // Symmetric KL-Divergence: (D_KL(P||Q) + D_KL(Q||P)) / 2 - fn symmetricKL = (p: array, q: array): float => { - (klDivergence(p, q) +. klDivergence(q, p)) /. 2.0 - } - - // Jensen-Shannon Divergence: JSD(P||Q) = (D_KL(P||M) + D_KL(Q||M)) / 2 - // where M = (P + Q) / 2 - fn jensenShannon = (p: array, q: array): float => { - if Array.length(p) != Array.length(q) { - Float.Constants.nan - } else { - fn m = p->Array.mapWithIndex((pi, i) => { - fn qi = Array.getUnsafe(q, i) - (pi +. qi) /. 2.0 - }) - (klDivergence(p, m) +. klDivergence(q, m)) /. 2.0 - } - } -} - -module Distance = { - open Types - - fn euclidean = (a: array, b: array): float => { - if Array.length(a) != Array.length(b) { - Float.Constants.nan - } else { - fn sumSq = ref(0.0) - for i in 0 to Array.length(a) - 1 { - fn diff = Array.getUnsafe(a, i) -. Array.getUnsafe(b, i) - sumSq := sumSq.contents +. diff *. diff - } - Math.sqrt(sumSq.contents) - } - } - - fn cosine = (a: array, b: array): float => { - if Array.length(a) != Array.length(b) { - Float.Constants.nan - } else { - fn dot = ref(0.0) - fn normA = ref(0.0) - fn normB = ref(0.0) - for i in 0 to Array.length(a) - 1 { - fn ai = Array.getUnsafe(a, i) - fn bi = Array.getUnsafe(b, i) - dot := dot.contents +. ai *. bi - normA := normA.contents +. ai *. ai - normB := normB.contents +. bi *. bi - } - fn denom = Math.sqrt(normA.contents) *. Math.sqrt(normB.contents) - if denom > 0.0 { - 1.0 -. dot.contents /. denom // Convert similarity to distance - } else { - 0.0 - } - } - } - - fn jaccard = (a: array, b: array): float => { - // Treating as binary vectors (presence/absence) - fn intersection = ref(0) - fn union = ref(0) - for i in 0 to Array.length(a) - 1 { - fn ai = Array.getUnsafe(a, i) > 0.0 - fn bi = Array.getUnsafe(b, i) > 0.0 - if ai && bi { intersection := intersection.contents + 1 } - if ai || bi { union := union.contents + 1 } - } - if union.contents == 0 { - 0.0 - } else { - 1.0 -. Float.fromInt(intersection.contents) /. Float.fromInt(union.contents) - } - } - - fn compute = (metric: distanceMetric, a: array, b: array): float => { - switch metric { - | Euclidean => euclidean(a, b) - | Cosine => cosine(a, b) - | KLDivergence => Information.symmetricKL(a, b) - | JensenShannon => Information.jensenShannon(a, b) - | Jaccard => jaccard(a, b) - } - } -} - -module Matrix = { - open Types - - fn distanceMatrix = (vectors: array>, metric: distanceMetric): matrix => { - fn n = Array.length(vectors) - fn result = Array.make(~length=n, []) - for i in 0 to n - 1 { - fn row = Array.make(~length=n, 0.0) - for j in 0 to n - 1 { - if i == j { - Array.setUnsafe(row, j, 0.0) - } else if j < i { - // Use symmetry - Array.setUnsafe(row, j, Array.getUnsafe(Array.getUnsafe(result, j), i)) - } else { - fn vi = Array.getUnsafe(vectors, i) - fn vj = Array.getUnsafe(vectors, j) - Array.setUnsafe(row, j, Distance.compute(metric, vi, vj)) - } - } - Array.setUnsafe(result, i, row) - } - result - } -} - -module Normalization = { - fn normalize = (arr: array): array => { - fn total = Basic.sum(arr) - if total > 0.0 { - arr->Array.map(x => x /. total) - } else { - arr - } - } - - fn minMaxNormalize = (arr: array): array => { - switch (Basic.min(arr), Basic.max(arr)) { - | (Some(minVal), Some(maxVal)) when maxVal > minVal => - fn range = maxVal -. minVal - arr->Array.map(x => (x -. minVal) /. range) - | _ => arr - } - } - - fn zScoreNormalize = (arr: array): array => { - fn m = Basic.mean(arr) - fn sd = Basic.standardDeviation(arr) - if sd > 0.0 { - arr->Array.map(x => (x -. m) /. sd) - } else { - arr - } - } -} - diff --git a/lol/src/verisimdb/CorpusAnalyzer.affine b/lol/src/verisimdb/CorpusAnalyzer.affine deleted file mode 100644 index a1c7bb167..000000000 --- a/lol/src/verisimdb/CorpusAnalyzer.affine +++ /dev/null @@ -1,352 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module CorpusAnalyzer; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * Corpus Analyzer - * - * Quality analysis for multilingual Bible corpus data. Detects weak - * points including missing verses, encoding errors, alignment failures, - * statistical outliers, coverage gaps, truncation, and duplicates. - */ - -open VeriSimDB - -module EntropyAnalysis = { - /** Compute character-level entropy for a text */ - fn characterEntropy = (text: string): float => { - fn chars = text->String.split("") - fn total = Array.length(chars)->Float.fromInt - if total == 0.0 { - 0.0 - } else { - fn counts = Dict.make() - chars->Array.forEach(c => { - fn current = counts->Dict.get(c)->Option.getOr(0) - counts->Dict.set(c, current + 1) - }) - fn dist = counts->Dict.valuesToArray->Array.map(c => Float.fromInt(c) /. total) - Statistics.Information.entropy(dist) - } - } - - /** Flag texts with abnormally low or high entropy as outliers */ - fn detectOutliers = ( - corpus: Lang1000.Corpus.t, - ~zThreshold=2.0, - (), - ): array => { - fn entropies = - corpus.alignments->Array.map(alignment => { - fn texts = alignment.translations->Dict.valuesToArray - fn avgEntropy = if Array.length(texts) == 0 { - 0.0 - } else { - fn entVals = texts->Array.map(characterEntropy) - Statistics.Basic.mean(entVals) - } - (alignment.referenceId, avgEntropy) - }) - - fn entropyValues = entropies->Array.map(((_, e)) => e) - fn mean = Statistics.Basic.mean(entropyValues) - fn sd = Statistics.Basic.standardDeviation(entropyValues) - - if sd == 0.0 { - [] - } else { - entropies->Array.filterMap(((refId, ent)) => { - fn zScore = Math.abs((ent -. mean) /. sd) - if zScore > zThreshold { - Some( - makeWeakPoint( - ~category=StatisticalOutlier, - ~severity=Medium, - ~location=refId, - ~description=`Entropy z-score ${Float.toFixed(zScore, ~digits=2)} exceeds threshold ${Float.toFixed(zThreshold, ~digits=1)} (entropy=${Float.toFixed(ent, ~digits=3)})`, - (), - ), - ) - } else { - None - } - }) - } - } -} - -module MissingVerseDetection = { - /** Detect verses present in reference language but missing in others */ - fn detect = ( - corpus: Lang1000.Corpus.t, - ~refLang: string, - (), - ): array => { - corpus.alignments->Array.filterMap(alignment => { - fn hasRef = alignment.translations->Dict.get(refLang)->Option.isSome - if !hasRef { - None - } else { - fn langs = alignment.translations->Dict.keysToArray - fn missing = - corpus.languages - ->Array.map(l => l.code) - ->Array.filter(code => code != refLang && !(langs->Array.includes(code))) - - if Array.length(missing) > 0 { - fn missingStr = missing->Array.join(", ") - Some( - makeWeakPoint( - ~category=MissingVerse, - ~severity=if Array.length(missing) > 5 { High } else { Low }, - ~location=alignment.referenceId, - ~description=`Missing in ${Int.toString(Array.length(missing))} languages: ${missingStr}`, - (), - ), - ) - } else { - None - } - } - }) - } -} - -module EncodingDetection = { - /** Check for common encoding errors in text */ - fn hasEncodingError = (text: string): bool => { - // Check for replacement character (U+FFFD) indicating invalid UTF-8 - String.includes(text, "\uFFFD") || - // Check for null bytes - String.includes(text, "\u0000") || - // Check for common mojibake patterns - String.includes(text, "\u00C3\u00A9") || // é instead of é - String.includes(text, "\u00C3\u00A0") || // à instead of à - String.includes(text, "\u00C2\u00BB") // » instead of » - } - - /** Detect encoding errors across the corpus */ - fn detect = (corpus: Lang1000.Corpus.t): array => { - corpus.alignments->Array.flatMap(alignment => { - alignment.translations - ->Dict.toArray - ->Array.filterMap(((lang, text)) => { - if hasEncodingError(text) { - Some( - makeWeakPoint( - ~category=EncodingError, - ~severity=Medium, - ~location=alignment.referenceId, - ~description=`Encoding error detected in text`, - ~language=lang, - (), - ), - ) - } else { - None - } - }) - }) - } -} - -module TruncationDetection = { - /** Detect suspiciously short translations compared to reference */ - fn detect = ( - corpus: Lang1000.Corpus.t, - ~refLang: string, - ~minRatio=0.2, - (), - ): array => { - corpus.alignments->Array.flatMap(alignment => { - fn refText = alignment.translations->Dict.get(refLang) - switch refText { - | None => [] - | Some(ref) => - fn refLen = String.length(ref)->Float.fromInt - if refLen < 5.0 { - [] - } else { - alignment.translations - ->Dict.toArray - ->Array.filterMap(((lang, text)) => { - if lang == refLang { - None - } else { - fn textLen = String.length(text)->Float.fromInt - fn ratio = textLen /. refLen - if ratio < minRatio && textLen > 0.0 { - Some( - makeWeakPoint( - ~category=TruncatedContent, - ~severity=Medium, - ~location=alignment.referenceId, - ~description=`Text length ratio ${Float.toFixed(ratio, ~digits=2)} below threshold ${Float.toFixed(minRatio, ~digits=2)} (${Int.toString(Float.toInt(textLen))} vs ${Int.toString(Float.toInt(refLen))} chars)`, - ~language=lang, - (), - ), - ) - } else { - None - } - } - }) - } - } - }) - } -} - -module DuplicateDetection = { - /** Detect identical text for different verses within a language */ - fn detect = (corpus: Lang1000.Corpus.t): array => { - fn langTexts: Dict.t>> = Dict.make() - - // Group by language -> text -> [referenceIds] - corpus.alignments->Array.forEach(alignment => { - alignment.translations - ->Dict.toArray - ->Array.forEach(((lang, text)) => { - fn trimmed = String.trim(text) - if String.length(trimmed) > 10 { - fn langDict = switch langTexts->Dict.get(lang) { - | Some(d) => d - | None => - fn d = Dict.make() - langTexts->Dict.set(lang, d) - d - } - fn refs = switch langDict->Dict.get(trimmed) { - | Some(r) => r - | None => [] - } - langDict->Dict.set(trimmed, Array.concat(refs, [alignment.referenceId])) - } - }) - }) - - langTexts - ->Dict.toArray - ->Array.flatMap(((lang, textDict)) => { - textDict - ->Dict.toArray - ->Array.filterMap(((_, refs)) => { - if Array.length(refs) > 1 { - fn refsStr = refs->Array.slice(~start=0, ~end=5)->Array.join(", ") - Some( - makeWeakPoint( - ~category=DuplicateContent, - ~severity=High, - ~location=Array.getUnsafe(refs, 0), - ~description=`Identical text in ${Int.toString(Array.length(refs))} verses: ${refsStr}`, - ~language=lang, - (), - ), - ) - } else { - None - } - }) - }) - } -} - -module CoverageAnalysis = { - /** Detect languages present in one source but missing from others */ - fn detectGaps = ( - ~sourceCoverage: array<(string, array)>, - (), - ): array => { - // Build union of all languages - fn allLangs = Dict.make() - sourceCoverage->Array.forEach(((source, langs)) => { - langs->Array.forEach(lang => { - fn sources = switch allLangs->Dict.get(lang) { - | Some(s) => s - | None => [] - } - allLangs->Dict.set(lang, Array.concat(sources, [source])) - }) - }) - - fn totalSources = Array.length(sourceCoverage) - allLangs - ->Dict.toArray - ->Array.filterMap(((lang, sources)) => { - if Array.length(sources) < totalSources && Array.length(sources) == 1 { - Some( - makeWeakPoint( - ~category=CoverageGap, - ~severity=Low, - ~location=lang, - ~description=`Only available from ${Array.getUnsafe(sources, 0)}, missing from ${Int.toString(totalSources - 1)} other sources`, - ~language=lang, - (), - ), - ) - } else { - None - } - }) - } -} - -/** Run all analysis checks on a corpus and return a complete scan result */ -fn analyzeFull = ( - corpus: Lang1000.Corpus.t, - ~refLang="eng", - ~repo="lol", - ~version="0.1.0", - (), -): scanResult => { - fn weakPoints = Array.concatMany([ - EntropyAnalysis.detectOutliers(corpus, ()), - MissingVerseDetection.detect(corpus, ~refLang, ()), - EncodingDetection.detect(corpus), - TruncationDetection.detect(corpus, ~refLang, ()), - DuplicateDetection.detect(corpus), - ]) - - fn totalLines = - corpus.alignments->Array.reduce(0, (acc, a) => - acc + Dict.keysToArray(a.translations)->Array.length - ) - - { - repo, - version, - timestamp: Date.make()->Date.toISOString, - scanner: "lol-corpus-analyzer", - scanner_version: "0.1.0", - weak_points: weakPoints, - statistics: { - total_files: Lang1000.Corpus.languageCount(corpus), - total_lines: totalLines, - total_weak_points: Array.length(weakPoints), - total_unsafe_blocks: weakPoints - ->Array.filter(wp => Severity.toNumeric(wp.severity) >= 4) - ->Array.length, - files: corpus.languages->Array.map(lang => { - fn langWPs = - weakPoints->Array.filter(wp => - wp.language->Option.getOr("") == lang.code - ) - { - file: lang.code, - total_lines: corpus.alignments - ->Array.filter(a => a.translations->Dict.get(lang.code)->Option.isSome) - ->Array.length, - weak_points: Array.length(langWPs), - unsafe_blocks: langWPs - ->Array.filter(wp => Severity.toNumeric(wp.severity) >= 4) - ->Array.length, - } - }), - }, - } -} - diff --git a/lol/src/verisimdb/Export.affine b/lol/src/verisimdb/Export.affine deleted file mode 100644 index 9b13e4823..000000000 --- a/lol/src/verisimdb/Export.affine +++ /dev/null @@ -1,87 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Export; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * VeriSimDB JSON Export - * - * Serializes corpus scan results to verisimdb-data compatible JSON - * format for ingestion into the VeriSimDB pipeline. - */ - -open VeriSimDB - -module Json = { - /** Escape a string for JSON output */ - fn escapeString = (s: string): string => { - s - ->String.replaceAll("\\", "\\\\") - ->String.replaceAll("\"", "\\\"") - ->String.replaceAll("\n", "\\n") - ->String.replaceAll("\r", "\\r") - ->String.replaceAll("\t", "\\t") - } - - fn str = (s: string): string => `"${escapeString(s)}"` - fn int = (n: int): string => Int.toString(n) - fn optStr = (o: option): string => - switch o { - | Some(s) => str(s) - | None => "null" - } -} - -fn weakPointToJson = (wp: weakPoint): string => { - fn fields = [ - `"category": ${Json.str(Category.toString(wp.category))}`, - `"severity": ${Json.str(Severity.toString(wp.severity))}`, - `"location": ${Json.str(wp.location)}`, - `"description": ${Json.str(wp.description)}`, - `"context": ${Json.optStr(wp.context)}`, - `"language": ${Json.optStr(wp.language)}`, - `"source": ${Json.optStr(wp.source)}`, - ] - `{${fields->Array.join(", ")}}` -} - -fn fileStatToJson = (fs: fileStatistic): string => { - `{"file": ${Json.str(fs.file)}, "total_lines": ${Json.int(fs.total_lines)}, "weak_points": ${Json.int(fs.weak_points)}, "unsafe_blocks": ${Json.int(fs.unsafe_blocks)}}` -} - -fn statisticsToJson = (stats: corpusStatistics): string => { - fn filesJson = stats.files->Array.map(fileStatToJson)->Array.join(", ") - `{"total_files": ${Json.int(stats.total_files)}, "total_lines": ${Json.int(stats.total_lines)}, "total_weak_points": ${Json.int(stats.total_weak_points)}, "total_unsafe_blocks": ${Json.int(stats.total_unsafe_blocks)}, "files": [${filesJson}]}` -} - -/** Convert a scan result to verisimdb-data compatible JSON string */ -fn toJson = (result: scanResult): string => { - fn wpJson = result.weak_points->Array.map(weakPointToJson)->Array.join(",\n ") - fn statsJson = statisticsToJson(result.statistics) - - `{ - "repo": ${Json.str(result.repo)}, - "version": ${Json.str(result.version)}, - "timestamp": ${Json.str(result.timestamp)}, - "scanner": ${Json.str(result.scanner)}, - "scanner_version": ${Json.str(result.scanner_version)}, - "weak_points": [ - ${wpJson} - ], - "statistics": ${statsJson} -}` -} - -/** Deno.writeTextFile binding */ -@val @scope("Deno") -external writeTextFile: (string, string) => promise = "writeTextFile" - -/** Write scan result JSON to a file */ -fn writeToFile = async (result: scanResult, path: string): unit => { - fn json = toJson(result) - await writeTextFile(path, json) -} - diff --git a/lol/src/verisimdb/VeriSimDB.affine b/lol/src/verisimdb/VeriSimDB.affine deleted file mode 100644 index e3517c823..000000000 --- a/lol/src/verisimdb/VeriSimDB.affine +++ /dev/null @@ -1,135 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module VeriSimDB; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * VeriSimDB Types - * - * Types matching the verisimdb-data JSON schema for corpus quality - * verification and weak point tracking. Maps corpus-specific metrics - * to the VeriSimDB pipeline format. - */ - -module Severity = { - struct t { - | Critical - | High - | Medium - | Low - | Info - - fn toString = severity => - switch severity { - | Critical => "critical" - | High => "high" - | Medium => "medium" - | Low => "low" - | Info => "info" - } - - fn toNumeric = severity => - switch severity { - | Critical => 5 - | High => 4 - | Medium => 3 - | Low => 2 - | Info => 1 - } -} - -module Category = { - struct t { - | MissingVerse - | EncodingError - | AlignmentFailure - | StatisticalOutlier - | CoverageGap - | TruncatedContent - | DuplicateContent - - fn toString = category => - switch category { - | MissingVerse => "missing-verse" - | EncodingError => "encoding-error" - | AlignmentFailure => "alignment-failure" - | StatisticalOutlier => "statistical-outlier" - | CoverageGap => "coverage-gap" - | TruncatedContent => "truncated-content" - | DuplicateContent => "duplicate-content" - } -} - -struct weakPoint { { - category: Category.t, - severity: Severity.t, - location: string, - description: string, - context: option, - language: option, - source: option, -} - -struct fileStatistic { { - file: string, - total_lines: int, - weak_points: int, - unsafe_blocks: int, -} - -struct corpusStatistics { { - total_files: int, - total_lines: int, - total_weak_points: int, - total_unsafe_blocks: int, - files: array, -} - -struct scanResult { { - repo: string, - version: string, - timestamp: string, - scanner: string, - scanner_version: string, - weak_points: array, - statistics: corpusStatistics, -} - -fn makeWeakPoint = ( - ~category, - ~severity, - ~location, - ~description, - ~context=?, - ~language=?, - ~source=?, - (), -) => { - category, - severity, - location, - description, - context, - language, - source, -} - -fn emptyScanResult = (~repo, ~version) => { - repo, - version, - timestamp: Date.make()->Date.toISOString, - scanner: "lol-corpus-analyzer", - scanner_version: "0.1.0", - weak_points: [], - statistics: { - total_files: 0, - total_lines: 0, - total_weak_points: 0, - total_unsafe_blocks: 0, - files: [], - }, -} - diff --git a/lol/test/Lang1000_test.affine b/lol/test/Lang1000_test.affine deleted file mode 100644 index f00de6e87..000000000 --- a/lol/test/Lang1000_test.affine +++ /dev/null @@ -1,102 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Lang1000_test; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * Main Module Tests - */ - -open Vitest - -describe("Lang1000.Config", () => { - test("version is defined", () => { - expect(Lang1000.Config.version)->toBe("0.1.0") - }) - - test("name is correct", () => { - expect(Lang1000.Config.name)->toBe("1000Langs") - }) - - test("allSources contains expected sources", () => { - fn sources = Lang1000.Config.allSources - expect(Array.length(sources))->toBe(6) - }) - - test("sourceToString converts correctly", () => { - expect(Lang1000.Config.sourceToString(Lang1000.Config.BibleCloud))->toBe("bible.cloud") - expect(Lang1000.Config.sourceToString(Lang1000.Config.BibleCom))->toBe("bible.com") - expect(Lang1000.Config.sourceToString(Lang1000.Config.PngScriptures))->toBe("pngscriptures.org") - }) -}) - -describe("Lang1000.Language", () => { - test("make creates a language with required fields", () => { - fn lang = Lang1000.Language.make(~code="eng", ~name="English", ()) - expect(Lang1000.Language.getCode(lang))->toBe("eng") - expect(Lang1000.Language.getName(lang))->toBe("English") - }) - - test("make creates a language with optional fields", () => { - fn lang = Lang1000.Language.make( - ~code="deu", - ~name="German", - ~family="Indo-European", - ~script="Latin", - ~country="Germany", - (), - ) - expect(lang.family)->toEqual(Some("Indo-European")) - expect(lang.script)->toEqual(Some("Latin")) - expect(lang.country)->toEqual(Some("Germany")) - }) -}) - -describe("Lang1000.Verse", () => { - test("makeReference creates a valid reference", () => { - fn ref = Lang1000.Verse.makeReference(~book="GEN", ~chapter=1, ~verse=1) - expect(ref.book)->toBe("GEN") - expect(ref.chapter)->toBe(1) - expect(ref.verse)->toBe(1) - }) - - test("toCanonicalId formats correctly", () => { - fn ref = Lang1000.Verse.makeReference(~book="GEN", ~chapter=1, ~verse=1) - expect(Lang1000.Verse.toCanonicalId(ref))->toBe("GEN.1.1") - }) - - test("toCanonicalId handles multi-digit chapters and verses", () => { - fn ref = Lang1000.Verse.makeReference(~book="PSA", ~chapter=119, ~verse=176) - expect(Lang1000.Verse.toCanonicalId(ref))->toBe("PSA.119.176") - }) -}) - -describe("Lang1000.Corpus", () => { - test("empty creates an empty corpus", () => { - fn corpus = Lang1000.Corpus.empty("TestCorpus") - expect(corpus.name)->toBe("TestCorpus") - expect(Lang1000.Corpus.languageCount(corpus))->toBe(0) - expect(Lang1000.Corpus.alignmentCount(corpus))->toBe(0) - }) - - test("addLanguage increases language count", () => { - fn corpus = Lang1000.Corpus.empty("TestCorpus") - fn lang = Lang1000.Language.make(~code="eng", ~name="English", ()) - fn updated = Lang1000.Corpus.addLanguage(corpus, lang) - expect(Lang1000.Corpus.languageCount(updated))->toBe(1) - }) - - test("addAlignment increases alignment count", () => { - fn corpus = Lang1000.Corpus.empty("TestCorpus") - fn alignment: Lang1000.Corpus.alignment = { - referenceId: "GEN.1.1", - translations: Dict.make(), - } - fn updated = Lang1000.Corpus.addAlignment(corpus, alignment) - expect(Lang1000.Corpus.alignmentCount(updated))->toBe(1) - }) -}) - diff --git a/lol/test/Vitest.affine b/lol/test/Vitest.affine deleted file mode 100644 index fd85b87ac..000000000 --- a/lol/test/Vitest.affine +++ /dev/null @@ -1,68 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Vitest; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * Vitest Bindings for ReScript - * - * Minimal bindings to the Vitest testing framework. - */ - -@module("vitest") @val -external describe: (string, @uncurry unit => unit) => unit = "describe" - -@module("vitest") @val -external test: (string, @uncurry unit => unit) => unit = "test" - -@module("vitest") @val -external it: (string, @uncurry unit => unit) => unit = "it" - -struct expectation<'a> - -@module("vitest") @val -external expect: 'a => expectation<'a> = "expect" - -@send external toBe: (expectation<'a>, 'a) => unit = "toBe" -@send external toEqual: (expectation<'a>, 'a) => unit = "toEqual" -@send external toBeTruthy: expectation<'a> => unit = "toBeTruthy" -@send external toBeFalsy: expectation<'a> => unit = "toBeFalsy" -@send external toBeNull: expectation<'a> => unit = "toBeNull" -@send external toBeUndefined: expectation<'a> => unit = "toBeUndefined" -@send external toBeDefined: expectation<'a> => unit = "toBeDefined" -@send external toBeGreaterThan: (expectation<'a>, 'a) => unit = "toBeGreaterThan" -@send external toBeGreaterThanOrEqual: (expectation<'a>, 'a) => unit = "toBeGreaterThanOrEqual" -@send external toBeLessThan: (expectation<'a>, 'a) => unit = "toBeLessThan" -@send external toBeLessThanOrEqual: (expectation<'a>, 'a) => unit = "toBeLessThanOrEqual" -@send external toContain: (expectation>, 'a) => unit = "toContain" -@send external toHaveLength: (expectation>, int) => unit = "toHaveLength" -@send external toMatch: (expectation, string) => unit = "toMatch" -@send external toMatchRegex: (expectation, Js.Re.t) => unit = "toMatch" -@send external toThrow: expectation 'a> => unit = "toThrow" -@send external toThrowError: (expectation 'a>, string) => unit = "toThrowError" - -module Expect = { - @send external not_: expectation<'a> => expectation<'a> = "not" -} - -@module("vitest") @val -external beforeAll: (@uncurry unit => unit) => unit = "beforeAll" - -@module("vitest") @val -external afterAll: (@uncurry unit => unit) => unit = "afterAll" - -@module("vitest") @val -external beforeEach: (@uncurry unit => unit) => unit = "beforeEach" - -@module("vitest") @val -external afterEach: (@uncurry unit => unit) => unit = "afterEach" - -@module("vitest") @val -external fail: unit => unit = "fail" - -@module("vitest") @val -external failWithMessage: string => unit = "fail" - diff --git a/lol/test/crawlers/Crawler_test.affine b/lol/test/crawlers/Crawler_test.affine deleted file mode 100644 index fecda3753..000000000 --- a/lol/test/crawlers/Crawler_test.affine +++ /dev/null @@ -1,137 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Crawler_test; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * Crawler Module Tests - */ - -open Vitest - -describe("Crawler.Config", () => { - test("has sensible default timeout", () => { - expect(Crawler.Config.defaultTimeout)->toBe(30000) - }) - - test("has sensible default retries", () => { - expect(Crawler.Config.defaultRetries)->toBe(3) - }) - - test("has sensible default rate limit", () => { - expect(Crawler.Config.defaultRateLimitMs)->toBe(1000) - }) - - test("makeDefaultHeaders creates valid headers", () => { - fn headers = Crawler.Config.makeDefaultHeaders() - fn userAgent = Dict.get(headers, "User-Agent") - expect(Option.isSome(userAgent))->toBe(true) - }) -}) - -describe("Crawler.Request", () => { - test("make creates request with defaults", () => { - fn req = Crawler.Request.make(~url="https://example.com", ()) - expect(req.url)->toBe("https://example.com") - expect(req.method)->toEqual(Crawler.Types.GET) - expect(req.timeout)->toBe(Crawler.Config.defaultTimeout) - expect(req.retries)->toBe(Crawler.Config.defaultRetries) - }) - - test("make accepts custom options", () => { - fn req = Crawler.Request.make( - ~url="https://example.com", - ~method=Crawler.Types.POST, - ~timeout=5000, - ~retries=5, - (), - ) - expect(req.method)->toEqual(Crawler.Types.POST) - expect(req.timeout)->toBe(5000) - expect(req.retries)->toBe(5) - }) - - test("withHeader adds header", () => { - fn req = Crawler.Request.make(~url="https://example.com", ()) - fn _ = Crawler.Request.withHeader(req, "X-Custom", "value") - expect(Dict.get(req.headers, "X-Custom"))->toEqual(Some("value")) - }) - - test("methodToString converts correctly", () => { - expect(Crawler.Request.methodToString(Crawler.Types.GET))->toBe("GET") - expect(Crawler.Request.methodToString(Crawler.Types.POST))->toBe("POST") - expect(Crawler.Request.methodToString(Crawler.Types.HEAD))->toBe("HEAD") - }) -}) - -describe("Crawler.RateLimiter", () => { - test("make creates limiter with default delay", () => { - fn limiter = Crawler.RateLimiter.make() - expect(limiter.delayMs)->toBe(Crawler.Config.defaultRateLimitMs) - }) - - test("make accepts custom delay", () => { - fn limiter = Crawler.RateLimiter.make(~delayMs=2000, ()) - expect(limiter.delayMs)->toBe(2000) - }) - - test("canProceed returns true for new limiter", () => { - fn limiter = Crawler.RateLimiter.make() - expect(Crawler.RateLimiter.canProceed(limiter))->toBe(true) - }) - - test("recordRequest updates lastRequest", () => { - fn limiter = Crawler.RateLimiter.make() - fn before = limiter.lastRequest - Crawler.RateLimiter.recordRequest(limiter) - expect(limiter.lastRequest > before)->toBe(true) - }) -}) - -describe("Crawler.RetryPolicy", () => { - describe("calculateDelay", () => { - test("Constant returns same delay", () => { - fn strategy = Crawler.RetryPolicy.Constant(1000) - expect(Crawler.RetryPolicy.calculateDelay(strategy, 1))->toBe(1000) - expect(Crawler.RetryPolicy.calculateDelay(strategy, 3))->toBe(1000) - }) - - test("Linear increases linearly", () => { - fn strategy = Crawler.RetryPolicy.Linear(1000) - expect(Crawler.RetryPolicy.calculateDelay(strategy, 1))->toBe(1000) - expect(Crawler.RetryPolicy.calculateDelay(strategy, 2))->toBe(2000) - expect(Crawler.RetryPolicy.calculateDelay(strategy, 3))->toBe(3000) - }) - - test("Exponential increases exponentially", () => { - fn strategy = Crawler.RetryPolicy.Exponential(1000, 2.0) - expect(Crawler.RetryPolicy.calculateDelay(strategy, 1))->toBe(1000) - expect(Crawler.RetryPolicy.calculateDelay(strategy, 2))->toBe(2000) - expect(Crawler.RetryPolicy.calculateDelay(strategy, 3))->toBe(4000) - }) - }) - - describe("shouldRetry", () => { - test("returns true when under max", () => { - expect(Crawler.RetryPolicy.shouldRetry(1, 3))->toBe(true) - expect(Crawler.RetryPolicy.shouldRetry(2, 3))->toBe(true) - }) - - test("returns false when at or over max", () => { - expect(Crawler.RetryPolicy.shouldRetry(3, 3))->toBe(false) - expect(Crawler.RetryPolicy.shouldRetry(4, 3))->toBe(false) - }) - }) -}) - -describe("Crawler.Parser", () => { - test("selectorToString formats correctly", () => { - expect(Crawler.Parser.selectorToString(Crawler.Parser.Css(".verse")))->toBe("css:.verse") - expect(Crawler.Parser.selectorToString(Crawler.Parser.XPath("//div")))->toBe("xpath://div") - expect(Crawler.Parser.selectorToString(Crawler.Parser.Regex("\\d+")))->toBe("regex:\\d+") - }) -}) - diff --git a/lol/test/utils/Iso639_test.affine b/lol/test/utils/Iso639_test.affine deleted file mode 100644 index 802ff4eb0..000000000 --- a/lol/test/utils/Iso639_test.affine +++ /dev/null @@ -1,153 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Iso639_test; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * ISO 639 Utilities Tests - */ - -open Vitest - -describe("Iso639.Validation", () => { - describe("isValidIso639_1", () => { - test("returns true for valid 2-letter codes", () => { - expect(Iso639.Validation.isValidIso639_1("en"))->toBe(true) - expect(Iso639.Validation.isValidIso639_1("de"))->toBe(true) - expect(Iso639.Validation.isValidIso639_1("zh"))->toBe(true) - }) - - test("returns false for invalid codes", () => { - expect(Iso639.Validation.isValidIso639_1("eng"))->toBe(false) - expect(Iso639.Validation.isValidIso639_1("e"))->toBe(false) - expect(Iso639.Validation.isValidIso639_1("EN"))->toBe(false) - expect(Iso639.Validation.isValidIso639_1(""))->toBe(false) - }) - }) - - describe("isValidIso639_3", () => { - test("returns true for valid 3-letter codes", () => { - expect(Iso639.Validation.isValidIso639_3("eng"))->toBe(true) - expect(Iso639.Validation.isValidIso639_3("deu"))->toBe(true) - expect(Iso639.Validation.isValidIso639_3("zho"))->toBe(true) - }) - - test("returns false for invalid codes", () => { - expect(Iso639.Validation.isValidIso639_3("en"))->toBe(false) - expect(Iso639.Validation.isValidIso639_3("english"))->toBe(false) - expect(Iso639.Validation.isValidIso639_3("ENG"))->toBe(false) - expect(Iso639.Validation.isValidIso639_3(""))->toBe(false) - }) - }) - - describe("detectCodeType", () => { - test("detects ISO 639-1 codes", () => { - expect(Iso639.Validation.detectCodeType("en"))->toEqual(Some(Iso639.Types.Iso639_1)) - }) - - test("detects ISO 639-3 codes", () => { - expect(Iso639.Validation.detectCodeType("eng"))->toEqual(Some(Iso639.Types.Iso639_3)) - }) - - test("returns None for invalid codes", () => { - expect(Iso639.Validation.detectCodeType("english"))->toEqual(None) - expect(Iso639.Validation.detectCodeType(""))->toEqual(None) - }) - }) - - describe("normalize", () => { - test("converts to lowercase", () => { - expect(Iso639.Validation.normalize("ENG"))->toBe("eng") - expect(Iso639.Validation.normalize("EN"))->toBe("en") - }) - - test("trims whitespace", () => { - expect(Iso639.Validation.normalize(" eng "))->toBe("eng") - }) - }) -}) - -describe("Iso639.SpecialCodes", () => { - test("isSpecial returns true for special codes", () => { - expect(Iso639.SpecialCodes.isSpecial("und"))->toBe(true) - expect(Iso639.SpecialCodes.isSpecial("mul"))->toBe(true) - expect(Iso639.SpecialCodes.isSpecial("mis"))->toBe(true) - expect(Iso639.SpecialCodes.isSpecial("zxx"))->toBe(true) - }) - - test("isSpecial returns false for regular codes", () => { - expect(Iso639.SpecialCodes.isSpecial("eng"))->toBe(false) - expect(Iso639.SpecialCodes.isSpecial("deu"))->toBe(false) - }) -}) - -describe("Iso639.Conversion", () => { - describe("toIso639_3", () => { - test("converts ISO 639-1 to ISO 639-3", () => { - expect(Iso639.Conversion.toIso639_3("en"))->toEqual(Some("eng")) - expect(Iso639.Conversion.toIso639_3("de"))->toEqual(Some("deu")) - expect(Iso639.Conversion.toIso639_3("fr"))->toEqual(Some("fra")) - }) - - test("passes through valid ISO 639-3 codes", () => { - expect(Iso639.Conversion.toIso639_3("eng"))->toEqual(Some("eng")) - }) - - test("returns None for unknown codes", () => { - expect(Iso639.Conversion.toIso639_3("xx"))->toEqual(None) - }) - }) -}) - -describe("Iso639.Registry", () => { - test("empty creates empty registry", () => { - fn registry = Iso639.Registry.empty() - expect(Iso639.Registry.count(registry))->toBe(0) - }) - - test("add and findByCode works", () => { - fn registry = Iso639.Registry.empty() - fn entry: Iso639.Types.languageEntry = { - iso639_3: "eng", - iso639_2b: Some("eng"), - iso639_2t: Some("eng"), - iso639_1: Some("en"), - scope: Iso639.Types.Individual, - struct_: Iso639.Types.Living, - name: "English", - comment: None, - } - Iso639.Registry.add(registry, entry) - - fn found = Iso639.Registry.findByCode(registry, "eng") - expect(found)->toEqual(Some(entry)) - - fn foundByIso1 = Iso639.Registry.findByCode(registry, "en") - expect(foundByIso1)->toEqual(Some(entry)) - }) - - test("findByName works", () => { - fn registry = Iso639.Registry.empty() - fn entry: Iso639.Types.languageEntry = { - iso639_3: "deu", - iso639_2b: Some("ger"), - iso639_2t: Some("deu"), - iso639_1: Some("de"), - scope: Iso639.Types.Individual, - struct_: Iso639.Types.Living, - name: "German", - comment: None, - } - Iso639.Registry.add(registry, entry) - - fn found = Iso639.Registry.findByName(registry, "German") - expect(found)->toEqual(Some(entry)) - - fn foundLower = Iso639.Registry.findByName(registry, "german") - expect(foundLower)->toEqual(Some(entry)) - }) -}) - diff --git a/lol/test/utils/Statistics_test.affine b/lol/test/utils/Statistics_test.affine deleted file mode 100644 index aad517cf5..000000000 --- a/lol/test/utils/Statistics_test.affine +++ /dev/null @@ -1,242 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module Statistics_test; - -// SPDX-License-Identifier: MPL-2.0 -// SPDX-FileCopyrightText: 2024-2026 Jonathan D.A. Jewell and Contributors - -/** - * Statistics Utilities Tests - */ - -open Vitest - -fn approximately = (a, b, ~tolerance=0.0001, ()) => { - Math.abs(a -. b) < tolerance -} - -describe("Statistics.Basic", () => { - describe("sum", () => { - test("sums array of floats", () => { - expect(Statistics.Basic.sum([1.0, 2.0, 3.0, 4.0]))->toBe(10.0) - }) - - test("returns 0 for empty array", () => { - expect(Statistics.Basic.sum([]))->toBe(0.0) - }) - }) - - describe("mean", () => { - test("calculates mean correctly", () => { - expect(Statistics.Basic.mean([1.0, 2.0, 3.0, 4.0, 5.0]))->toBe(3.0) - }) - - test("returns 0 for empty array", () => { - expect(Statistics.Basic.mean([]))->toBe(0.0) - }) - }) - - describe("variance", () => { - test("calculates variance correctly", () => { - fn result = Statistics.Basic.variance([2.0, 4.0, 4.0, 4.0, 5.0, 5.0, 7.0, 9.0]) - expect(approximately(result, 4.0, ()))->toBe(true) - }) - - test("returns 0 for single element", () => { - expect(Statistics.Basic.variance([5.0]))->toBe(0.0) - }) - - test("returns 0 for empty array", () => { - expect(Statistics.Basic.variance([]))->toBe(0.0) - }) - }) - - describe("standardDeviation", () => { - test("calculates standard deviation correctly", () => { - fn result = Statistics.Basic.standardDeviation([2.0, 4.0, 4.0, 4.0, 5.0, 5.0, 7.0, 9.0]) - expect(approximately(result, 2.0, ()))->toBe(true) - }) - }) - - describe("min and max", () => { - test("min returns minimum value", () => { - expect(Statistics.Basic.min([3.0, 1.0, 4.0, 1.0, 5.0]))->toEqual(Some(1.0)) - }) - - test("max returns maximum value", () => { - expect(Statistics.Basic.max([3.0, 1.0, 4.0, 1.0, 5.0]))->toEqual(Some(5.0)) - }) - - test("min returns None for empty array", () => { - expect(Statistics.Basic.min([]))->toEqual(None) - }) - - test("max returns None for empty array", () => { - expect(Statistics.Basic.max([]))->toEqual(None) - }) - }) -}) - -describe("Statistics.Information", () => { - describe("entropy", () => { - test("calculates entropy for uniform distribution", () => { - // Uniform distribution over 4 outcomes: H = log2(4) = 2 - fn dist = [0.25, 0.25, 0.25, 0.25] - fn result = Statistics.Information.entropy(dist) - expect(approximately(result, 2.0, ()))->toBe(true) - }) - - test("returns 0 for deterministic distribution", () => { - fn dist = [1.0, 0.0, 0.0, 0.0] - fn result = Statistics.Information.entropy(dist) - expect(approximately(result, 0.0, ()))->toBe(true) - }) - - test("handles binary distribution correctly", () => { - // Fair coin: H = 1 bit - fn dist = [0.5, 0.5] - fn result = Statistics.Information.entropy(dist) - expect(approximately(result, 1.0, ()))->toBe(true) - }) - }) - - describe("klDivergence", () => { - test("returns 0 for identical distributions", () => { - fn p = [0.25, 0.25, 0.25, 0.25] - fn result = Statistics.Information.klDivergence(p, p) - expect(approximately(result, 0.0, ()))->toBe(true) - }) - - test("is asymmetric", () => { - fn p = [0.5, 0.5] - fn q = [0.9, 0.1] - fn kl_pq = Statistics.Information.klDivergence(p, q) - fn kl_qp = Statistics.Information.klDivergence(q, p) - expect(kl_pq != kl_qp)->toBe(true) - }) - - test("returns NaN for mismatched lengths", () => { - fn p = [0.5, 0.5] - fn q = [0.33, 0.33, 0.34] - fn result = Statistics.Information.klDivergence(p, q) - expect(Float.isNaN(result))->toBe(true) - }) - }) - - describe("symmetricKL", () => { - test("is symmetric", () => { - fn p = [0.5, 0.5] - fn q = [0.9, 0.1] - fn skl_pq = Statistics.Information.symmetricKL(p, q) - fn skl_qp = Statistics.Information.symmetricKL(q, p) - expect(approximately(skl_pq, skl_qp, ()))->toBe(true) - }) - }) - - describe("jensenShannon", () => { - test("is symmetric", () => { - fn p = [0.5, 0.5] - fn q = [0.9, 0.1] - fn js_pq = Statistics.Information.jensenShannon(p, q) - fn js_qp = Statistics.Information.jensenShannon(q, p) - expect(approximately(js_pq, js_qp, ()))->toBe(true) - }) - - test("returns 0 for identical distributions", () => { - fn p = [0.25, 0.25, 0.25, 0.25] - fn result = Statistics.Information.jensenShannon(p, p) - expect(approximately(result, 0.0, ()))->toBe(true) - }) - - test("is bounded between 0 and 1", () => { - fn p = [1.0, 0.0] - fn q = [0.0, 1.0] - fn result = Statistics.Information.jensenShannon(p, q) - expect(result >= 0.0 && result <= 1.0)->toBe(true) - }) - }) -}) - -describe("Statistics.Distance", () => { - describe("euclidean", () => { - test("calculates euclidean distance correctly", () => { - fn a = [0.0, 0.0] - fn b = [3.0, 4.0] - expect(Statistics.Distance.euclidean(a, b))->toBe(5.0) - }) - - test("returns 0 for identical vectors", () => { - fn a = [1.0, 2.0, 3.0] - expect(Statistics.Distance.euclidean(a, a))->toBe(0.0) - }) - }) - - describe("cosine", () => { - test("returns 0 for identical vectors", () => { - fn a = [1.0, 2.0, 3.0] - fn result = Statistics.Distance.cosine(a, a) - expect(approximately(result, 0.0, ()))->toBe(true) - }) - - test("returns 1 for orthogonal vectors", () => { - fn a = [1.0, 0.0] - fn b = [0.0, 1.0] - fn result = Statistics.Distance.cosine(a, b) - expect(approximately(result, 1.0, ()))->toBe(true) - }) - }) - - describe("jaccard", () => { - test("returns 0 for identical sets", () => { - fn a = [1.0, 1.0, 0.0] - expect(Statistics.Distance.jaccard(a, a))->toBe(0.0) - }) - - test("returns 1 for disjoint sets", () => { - fn a = [1.0, 0.0, 0.0] - fn b = [0.0, 1.0, 1.0] - expect(Statistics.Distance.jaccard(a, b))->toBe(1.0) - }) - }) -}) - -describe("Statistics.Normalization", () => { - describe("normalize", () => { - test("normalizes to sum to 1", () => { - fn result = Statistics.Normalization.normalize([1.0, 2.0, 3.0, 4.0]) - fn sum = Statistics.Basic.sum(result) - expect(approximately(sum, 1.0, ()))->toBe(true) - }) - - test("preserves proportions", () => { - fn result = Statistics.Normalization.normalize([1.0, 3.0]) - expect(approximately(Array.getUnsafe(result, 0), 0.25, ()))->toBe(true) - expect(approximately(Array.getUnsafe(result, 1), 0.75, ()))->toBe(true) - }) - }) - - describe("minMaxNormalize", () => { - test("scales to [0, 1] range", () => { - fn result = Statistics.Normalization.minMaxNormalize([10.0, 20.0, 30.0]) - expect(Array.getUnsafe(result, 0))->toBe(0.0) - expect(Array.getUnsafe(result, 1))->toBe(0.5) - expect(Array.getUnsafe(result, 2))->toBe(1.0) - }) - }) - - describe("zScoreNormalize", () => { - test("results in mean of 0", () => { - fn result = Statistics.Normalization.zScoreNormalize([1.0, 2.0, 3.0, 4.0, 5.0]) - fn mean = Statistics.Basic.mean(result) - expect(approximately(mean, 0.0, ()))->toBe(true) - }) - - test("results in standard deviation of 1", () => { - fn result = Statistics.Normalization.zScoreNormalize([1.0, 2.0, 3.0, 4.0, 5.0]) - fn sd = Statistics.Basic.standardDeviation(result) - expect(approximately(sd, 1.0, ()))->toBe(true) - }) - }) -}) - diff --git a/lol/test/vitest.config.affine b/lol/test/vitest.config.affine deleted file mode 100644 index 576473b8e..000000000 --- a/lol/test/vitest.config.affine +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: MPL-2.0 -// Ported via Harvard Engine (Semantic pass) - -module vitest.config; - -// SPDX-License-Identifier: MIT AND LicenseRef-Palimpsest-0.8 -// SPDX-FileCopyrightText: 2024-2025 Ehsaneddin Asgari and Contributors - -import { defineConfig } from 'vitest/config' - -default defineConfig({ - test: { - globals: true, - environment: 'node', - include: ['**/*_test.res.mjs', '**/*.test.ts'], - coverage: { - provider: 'v8', - reporter: ['text', 'json', 'html'], - exclude: [ - 'node_modules/', - 'test/', - '**/*.d.ts', - ], - }, - testTimeout: 10000, - }, -}) - diff --git a/scripts/build-registry.sh b/scripts/build-registry.sh index aa18287ec..dbc65cd41 100755 --- a/scripts/build-registry.sh +++ b/scripts/build-registry.sh @@ -60,7 +60,6 @@ TOPOLOGY="TOPOLOGY.adoc" # --------------------------------------------------------------------------- read -r -d '' SPECS <<'TSV' || true estate-constitution|governance|constitution/|Hyperpolymath Estate Constitution|the highest estate-level rules, authority precedence, assurance, contribution, exceptions, and known tensions -a2ml|foundation|a2ml/|A2ML — Attested Markup Language|the typed/verified machine-readable document format k9-svc|foundation|k9-svc/|K9 Self-Validating Components|the K9 specification, security analysis and adoption guidance (implementations live in hyperpolymath/k9-ecosystem) contractiles|foundation|contractiles/|Contractiles (Must/Trust/Dust/Intend)|policy-enforcement primitives the K9 layer is built from meta-a2ml|foundation|meta-a2ml/|META.a2ml spec|architecture decisions / governance metadata format @@ -112,6 +111,7 @@ read -r -d '' EXTERNAL_SPECS <<'TSV' || true affine-spec|language|language-coupled|hyperpolymath/affinescript|https://github.com/hyperpolymath/affinescript/blob/main/spec/affine.adoc|v2.0.0||PENDING-FIRST-SYNC|application/vnd.affinescript.affine|affinescript:affine@2|AffineScript .affine (faces / source documents)|faces, canonical-lowering invariant, canonical islands, idiom packs, mimicry bindings, project face policy affex-manifest|language|language-coupled|hyperpolymath/affinescript|https://github.com/hyperpolymath/affinescript/blob/main/spec/affex.adoc|v2.0.0|2|PENDING-FIRST-SYNC|application/vnd.affinescript.affex|affinescript:affex@2|AffineScript .affex (face-interop manifest)|derived regenerable manifest; declaration heads not full bodies; format_version bumps independently affmap-provenance|language|language-coupled|hyperpolymath/affinescript|https://github.com/hyperpolymath/affinescript/blob/main/spec/affmap.adoc|v2.0.0||PENDING-FIRST-SYNC|application/vnd.affinescript.affmap|affinescript:affmap@2|AffineScript .affmap (provenance)|provenance format; own pointer for independent staleness tracking +a2ml|foundation|format-coupled|hyperpolymath/a2ml|https://github.com/hyperpolymath/a2ml/blob/main/README.adoc|v1.0.0||PENDING-FIRST-SYNC|application/vnd.a2ml|a2ml:a2ml@1|A2ML — Attested Markup Language|the typed/verified machine-readable document format; evicted from standards 2026-08-28 per #490 consent-aware-web|protocol|service-coupled|metadatastician/consent-aware-web|https://github.com/metadatastician/consent-aware-web/blob/main/README.adoc|v0.2.0||PENDING-FIRST-SYNC|application/aibdp+json|ietf:aibdp@0.2|Consent-Aware Web (AIBDP + HTTP 430)|consent headers / AI-usage boundaries for HTTP; extracted from this repo 2026-08-07 TSV diff --git a/scripts/tests/wave0-false-green-test.sh b/scripts/tests/wave0-false-green-test.sh index 7d6b4ba12..9a51abca7 100755 --- a/scripts/tests/wave0-false-green-test.sh +++ b/scripts/tests/wave0-false-green-test.sh @@ -24,22 +24,11 @@ bad() { echo " ❌ $1"; fail=$((fail + 1)); } # expect