AI pogonjen sustav za ocjenjivanje rizika usklađenosti otvorenog koda u stvarnom vremenu

Poduzeća sve više grade proizvode na temelju komponenti otvorenog koda. Iako to ubrzava inovacije, također uvodi promjenjive zahtjeve za licenciranje, ranjivosti i regulatornu usklađenost. Tradicionalne provjere usklađenosti izvode se noću ili po potrebi, ostavljajući prozor u kojem nova ovisnost može prekršiti politiku prije nego što itko to primijeti.

Što ako bi se usklađenost mogla procijeniti u trenutku kada ovisnost uđe u pull request, s ocjenom rizika koja objašnjava zašto i kako se otklanja?

U ovom članku dizajniramo sustav za ocjenjivanje rizika usklađenosti otvorenog koda u stvarnom vremenu koji spaja Softverski popis materijala (SBOM), samopopravljajući graf znanja, grafičke neuronske mreže (GNN‑ove) za strukturnu inferenciju rizika i velike jezične modele (LLM‑ove) za kontekstualno tumačenje politika. Rješenje također uključuje Zero‑Knowledge Proofs (ZKPs) kako bi zaštitilo vlasnički kod, a istovremeno dokazalo usklađenost.

Ključni zaključci

  • Arhitektura koja strujno prenosi SBOM‑ove u živi graf znanja za usklađenost.
  • GNN‑temeljeno ocjenjivanje koje hvata transitivni rizik kroz stabla ovisnosti.
  • LLM‑pogonjena transformacija politika koja pravni tekst pretvara u pravila čitljiva za strojeve.
  • ZKP‑om omogućena verifikacija za siguran, auditable dokaz usklađenosti.

1. Zašto usklađenost otvorenog koda treba inteligenciju u stvarnom vremenu

IzazovTradicionalni pristupPraznina u stvarnom vremenu
Klizanje licence – nova ovisnost uvodi copyleft licencu.Noćne skenove, ručno otklanjanje.Prekršaj se može spojiti prije otkrivanja.
Propagacija ranjivosti – CVE u transitivnoj ovisnosti.Tjedni bazeni ranjivosti, odgođeno zakrpavanje.Površina napada postoji tijekom kašnjenja.
Regulatorna ograničenja – kontrola izvoza, rezidencija podataka.Kvartalni pregledi politika.Poslovne jedinice mogu nenamjerno prekršiti regulative.
Podrijetlo lanca opskrbe – nepoznat izvor komponente.Ručne provjere podrijetla.Nema jamstva autentičnosti u trenutku spajanja.

Ocjenjivanje u stvarnom vremenu uklanja ove praznine procjenom svake promjene u trenutku integracije koda i odmah pruža akcijsku ocjenu rizika.


2. Visokorazinska arhitektura

  graph TD
    A["Developer Push (Git)"] --> B["SBOM Generator (Syft/Trivy)"]
    B --> C["Event Stream (Kafka)"]
    C --> D["Knowledge Graph Service"]
    D --> E["GNN Scoring Engine"]
    D --> F["LLM Policy Interpreter"]
    E --> G["Risk Score API"]
    F --> G
    G --> H["CI/CD Gate (GitHub Actions)"]
    H --> I["Zero‑Knowledge Proof Generator"]
    I --> J["Compliance Audit Ledger (Immutable)"]

Slika 1 – Cjevovod za ocjenjivanje rizika usklađenosti otvorenog koda u stvarnom vremenu.

2.1 Pregled komponenti

KomponentaUloga
SBOM GeneratorStvara potpuni popis ovisnosti (uključujući transitive rubove) za svaki commit.
Event StreamOsigurava niskog kašnjenja isporuku SBOM ažuriranja prema downstream uslugama.
Knowledge Graph ServicePohranjuje entitete (pakete, licence, CVE‑ove, regulative) i odnose; automatski se liječi putem Retrieval‑Augmented Generation (RAG).
GNN Scoring EngineUči propagaciju rizika kroz graf, ispisujući numeričku ocjenu po čvoru i agregiranu za commit.
LLM Policy InterpreterPretvara pravne i regulatorne tekstove u pravila grafa (npr. “GPL‑3.0 ne smije se pojaviti u SaaS proizvodima”).
Risk Score APIIzlaže ocjenu i objašnjenje CI/CD‑u i alatima za developere.
Zero‑Knowledge Proof GeneratorStvara kriptografske dokaze da ocjena zadovoljava politiku bez otkrivanja vlasničkog koda.
Compliance Audit LedgerNeizmjenjivi zapis (blockchain ili append‑only store) za revizore.

3. Uzimanje podataka – od koda do grafa

  1. Ekstrakcija SBOM‑a – Alati poput Syft ili Trivy pokreću se kao pre‑commit hook, ispisujući CycloneDX ili SPDX dokument.
  2. Normalizacija – Pretvaranje identifikatora paketa u kanonički oblik (purl).
  3. Obogaćivanje – Upiti prema vanjskim izvorima (NVD, OSV, SPDX License List, liste kontrola izvoza) i dodavanje atributa (ozbiljnost, tip licence, jurisdikcija).
  4. Strujanje – Objavljivanje obogaćenog SBOM‑a kao JSON događaja na Kafka teme sbom.raw i sbom.enriched.

Cjevovod za unos podataka je idempotentan; ponovna obrada istog commita daje isti stanje grafa, što je ključno za reproducibilne revizije.


4. Izgradnja grafa znanja i automatsko liječenje

Shema grafa uključuje:

  • Package čvorove (ime, verzija, purl).
  • License čvorove (SPDX identifikator, matrica kompatibilnosti).
  • Vulnerability čvorove (CVE, CVSS, verzija zakrpe).
  • Regulation čvorove (npr. GDPR Art. 32, US Export Control).
  • Edge Types: DEPENDS_ON, HAS_LICENSE, HAS_VULNERABILITY, SUBJECT_TO.

4.1 Automatsko liječenje pomoću Retrieval‑Augmented Generation

Kad se objavi nova regulativa, sustav:

  1. Dohvaća sirovi tekst putem LLM‑pogonjenog web‑croljera.
  2. Generira pravila grafa (npr. IF package.license = "GPL-3.0" AND product.type = "SaaS" THEN risk += 0.8).
  3. Umeće ili ažurira čvorove/bridove automatski, osiguravajući da graf ostane aktualan bez ručnih migracija.

5. Ocjenjivanje u stvarnom vremenu pomoću grafičkih neuronskih mreža

5.1 Dizajn modela

  • Ulaz: Podgraf ukorijenjen u promijenjenom paketu, obogaćen čvorovnim značajkama (težina licence, CVSS ocjena, regulatorna zastavica).
  • Arhitektura: Graph Convolutional Network (GCN) praćen Readout slojem koji agregira ugrađene čvorove u vektor na razini commita.
  • Izlaz:
    • Ocjena rizika ∈ [0, 1] (više = veći rizik).
    • Vektor objašnjenja koji pokazuje doprinose (licenca, CVE, jurisdikcija).

5.2 Podaci za treniranje

  • Povijesni merge događaji označeni prema naknadnim nalazima usklađenosti.
  • Sintetički kontrafaktički primjeri generirani od LLM‑a (npr. “Što ako ovaj paket koristi MIT umjesto GPL?”).

5.3 Latencija inferencije

GCN inferencija radi na mikro‑servisu s GPU‑akceleracijom, isporučujući ocjene u <200 ms po commitu, što zadovoljava zahtjeve CI/CD gate‑a.


6. LLM‑pogonjena kontekstualna interpretacija politika

Pravni tekstovi su često dvosmisleni. LLM (npr. fino podešeni GPT‑4o) obavlja:

  1. Ekstrakciju klauzula – Identificira relevantne sekcije (kompatibilnost licence, ograničenja izvoza).
  2. Semantičko mapiranje – Pretvara prirodni jezik u graf predikate (license_incompatible, requires_approval).
  3. Dinamičko prompting – Kada se pojavi nova ovisnost, LLM može odgovoriti “Je li ova licenca dopuštena za cloud‑hosted SaaS proizvod?” koristeći trenutni kontekst grafa.

LLM također generira objašnjenja čitljiva ljudima koja prate ocjenu rizika, zadovoljavajući zahtjeve revizija.


7. Zero‑Knowledge Proofs za privatnost‑orijentirane revizije

Poduzeća možda ne žele otkriti potpune SBOM‑ove vanjskim revizorima. Korištenjem zk‑SNARK‑ova, motor može dokazati:

  • “Ocjena rizika je ≤ 0.3 i sva pravila politike su zadovoljena.”

bez otkrivanja podlogu‑paketa. Dokaz se prilaže neizmjenjivoj revizijskoj knjizi, omogućujući verifikaciju bez povjerenja.


8. Integracija s CI/CD cjevovodima

Tipičan GitHub Actions workflow:

name: Compliance Gate
on: [pull_request]

jobs:
  compliance-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Generate SBOM
        run: syft . -o json > sbom.json
      - name: Publish SBOM
        run: |
          curl -X POST -H "Content-Type: application/json" \
          -d @sbom.json http://risk‑engine.local/api/v1/sbom          
      - name: Retrieve Score
        id: score
        run: |
          SCORE=$(curl -s http://risk‑engine.local/api/v1/score/${{ github.sha }})
          echo "score=$SCORE" >> $GITHUB_OUTPUT          
      - name: Enforce Policy
        if: steps.score.outputs.score > 0.4
        run: |
          echo "Compliance risk too high – blocking merge."
          exit 1          

Cjevovod neuspješno zaustavlja spajanje neusklađenog koda i odmah pruža developerima put za otklanjanje problema.


9. Sigurnost, upravljanje i revizija

ZabrinutostUblažavanje
Curanje podataka – SBOM može sadržavati interne nazive paketa.Šifriranje SBOM‑payloada; korištenje ZKP‑a za generiranje dokaza.
Drift modela – GNN može zastarjeti kako se pojavljuju nove prijetnje.Kontinuirana petlja učenja: tjedno inkorporiranje post‑mortem oznaka.
Dvosmislenost politika – Ažuriranja pravila mogu biti pogrešno interpretirana.Ljudski pregled LLM‑generiranih pravila prije umetanja u graf.
Auditorabilnost – Potreba za neizmjenjivim dokazom.Append‑only ledger (npr. Hyperledger Fabric) pohranjuje ocjenu, dokaz i vremensku oznaku.

10. Prednosti za organizacije

  1. Trenutačna vidljivost rizika – Developeri vide utjecaj usklađenosti dok pišu kod.
  2. Smanjeni trošak otklanjanja – Rano otkrivanje izbjegava skupe refaktorizacije kasnije.
  3. Objašnjive odluke – GNN i LLM objašnjenja zadovoljavaju regulatore.
  4. Skalabilnost kroz repozitorije – Event‑driven dizajn podržava tisuće mikro‑servisa.
  5. Privatnost‑prvo – ZKP‑ovi čuvaju povjerljive detalje komponenti.

11. Plan implementacije

FazaMilestones
0 – OsnovePostaviti generiranje SBOM‑a, Kafka i Neo4j graf znanja.
1 – Osnovno ocjenjivanjeImplementirati jednostavan rule‑based engine (licenca + CVE).
2 – GNN prototipTrenirati GCN na povijesnim merge‑ovima, integrirati s API‑jem.
3 – LLM sloj politikaFino podesiti LLM na regulatornim korpusima, dodati generiranje pravila.
4 – ZKP integracijaImplementirati zk‑SNARK generiranje dokaza za ocjenu.
5 – Ugradnja u CI/CDDodati GitHub Actions / GitLab CI gate‑ove, pratiti lažne pozitivne.
6 – Kontinuirano učenjeAutomatizirati povratnu spregu iz revizijskih nalaza natrag u GNN.

12. Budući smjerovi

  • Međupoduzećno dijeljenje znanja – Federirano učenje među tvrtkama za poboljšanje modela rizika bez razmjene sirovih SBOM‑ova.
  • Multimodalni dokazi – Kombinirati analizu koda s provjerom binarne autentičnosti i skeniranjem kontejnerskih slika.
  • Adaptivna kontrafaktička simulacija – Korištenje reinforcement learninga za predlaganje najmanje rizične alternativne verzije ovisnosti.
  • Regulatorni digitalni dvojnik – Simulacija utjecaja nadolazećih zakona na cijeli softverski portfelj.

13. Zaključak

Komponente otvorenog koda su životna snaga modernog softvera, ali donose stalno mijenjajući pejzaž usklađenosti. Kombiniranjem strujnog SBOM‑a, samopopravljajućeg grafa znanja, grafičkih neuronskih mreža, LLM‑pogonjene transformacije politika i zero‑knowledge dokaza, predloženi motor pruža trenutačne, objašnjive i privatnost‑orijentirane ocjene rizika izravno u alate developera.

Usvajanje ove arhitekture pretvara usklađenost iz uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog uskog us… (truncated)

na vrh
Odaberite jezik