/* ============================================================
   觀察者 v2.1 — Core data
   3 candidates (kky/lwt/yjm) + objective + Jeonbuk context
   Data is tagged with subject[] so SQL-style aggregation is trivial.
   ============================================================ */
(function(){
  const C = {
    kky: '#4ba3d4',
    kkyDeep: '#1f6da1',
    lwt: '#1f3a68',
    lwtDeep: '#0f2547',
    yjm: '#c8362a',
    yjmDeep: '#8e2218',
    obj: '#6b5d4a',
    paper: '#f6f5f1',
    ink: '#1a1612',
    ink3: '#6b5d4a',
    ink4: '#968670',
    border: '#e6e1d4',
    vermilion: '#a8392c',
    moss: '#4a6041',
    ochre: '#b88321',
    sky: '#2b86c8',
    skyInk: '#0e2a45',
  };

  /* ---------- Candidate roster ---------- */
  const CANDIDATES = [
    {
      id: 'kky', name: '김관영', han: '金寬永',
      party: '더불어민주당', position: '현직 도지사',
      color: C.kky, colorDeep: C.kkyDeep,
      born: '1969-11-22', age: 56,
      education: '서울대 경영학과, 한양대 행정대학원',
      career: '제19·20대 국회의원(군산), 바른미래당 원내대표, 38대 전북도지사(2022~)',
      assets: '46.2억',
      record: '없음',
      family: '배우자, 자녀 2',
      slogan: '도민 우선의 도정',
      home: '군산',
    },
    {
      id: 'lwt', name: '이원택', han: '李源澤',
      party: '더불어민주당', position: '국회의원 (김제·부안)',
      color: C.lwt, colorDeep: C.lwtDeep,
      born: '1968-04-03', age: 57,
      education: '연세대 정치외교학과',
      career: '청와대 농어업비서관, 제21·22대 국회의원(김제·부안), 농해수위',
      assets: '12.8억',
      record: '없음',
      family: '배우자, 자녀 2',
      slogan: '전북의 농생명 르네상스',
      home: '김제',
    },
    {
      id: 'yjm', name: '양정무', han: '梁正武',
      party: '국민의힘', position: '전 도의원 / 도당위원장',
      color: C.yjm, colorDeep: C.yjmDeep,
      born: '1965-07-15', age: 60,
      education: '전북대 행정학과',
      career: '제10·11대 전북도의원, 국민의힘 전북도당위원장(2024~)',
      assets: '22.4억',
      record: '없음',
      family: '배우자, 자녀 1',
      slogan: '바꿔야 산다, 새로운 전북',
      home: '전주',
    },
  ];
  const C_BY_ID = Object.fromEntries(CANDIDATES.map(c => [c.id, c]));

  /* ---------- 14 시군 (전북특별자치도) ---------- */
  const REGIONS = [
    { code:'jeonju', name:'전주', pop:651, q:[3,1] },
    { code:'gunsan', name:'군산', pop:262, q:[1,2] },
    { code:'iksan', name:'익산', pop:271, q:[2,1] },
    { code:'jeongeup', name:'정읍', pop:103, q:[3,3] },
    { code:'namwon', name:'남원', pop:78, q:[5,3] },
    { code:'gimje', name:'김제', pop:81, q:[2,2] },
    { code:'wanju', name:'완주', pop:99, q:[3,2] },
    { code:'jinan', name:'진안', pop:25, q:[4,2] },
    { code:'muju', name:'무주', pop:23, q:[5,1] },
    { code:'jangsu', name:'장수', pop:21, q:[5,2] },
    { code:'imsil', name:'임실', pop:26, q:[4,3] },
    { code:'sunchang', name:'순창', pop:27, q:[4,4] },
    { code:'gochang', name:'고창', pop:53, q:[2,4] },
    { code:'buan', name:'부안', pop:50, q:[1,3] },
  ];

  /* ---------- 30-day share timelines (Track 3 — comparative) ----------
     Search-volume share (Naver+YouTube blended), summing to ~100% per day */
  function genShare(days, base){
    const out = [];
    for(let i=0;i<days;i++){
      const noise = (a,sd)=> a + (Math.sin(i*0.7+a*3)*sd) + (Math.cos(i*1.1)*sd*0.4);
      let kky = noise(base.kky, 4);
      let lwt = noise(base.lwt, 3);
      let yjm = noise(base.yjm, 2);
      // event spikes
      if(i===6) kky -= 5, yjm += 3, lwt += 2;
      if(i===12) lwt += 4, kky -= 2;
      if(i===20) yjm += 5, kky -= 3;
      if(i===27) kky += 3, lwt -= 2;
      const sum = kky+lwt+yjm;
      out.push({
        d: dayLabel(i, days),
        kky: +(kky/sum*100).toFixed(1),
        lwt: +(lwt/sum*100).toFixed(1),
        yjm: +(yjm/sum*100).toFixed(1),
        // raw absolute search volume (for asymmetry toggle)
        kkyAbs: Math.round(kky*120),
        lwtAbs: Math.round(lwt*120),
        yjmAbs: Math.round(yjm*120),
      });
    }
    return out;
  }
  function dayLabel(i, days){
    // produce 04/03 .. 05/01 style
    const today = new Date(2026, 4, 1); // May 1 2026
    const d = new Date(today);
    d.setDate(today.getDate() - (days-1-i));
    const m = String(d.getMonth()+1).padStart(2,'0');
    const day = String(d.getDate()).padStart(2,'0');
    return `${m}/${day}`;
  }

  const SHARE_30D = {
    search:  genShare(30, {kky: 52, lwt: 28, yjm: 20}),
    news:    genShare(30, {kky: 58, lwt: 25, yjm: 17}),
    youtube: genShare(30, {kky: 42, lwt: 24, yjm: 34}),
    sns:     genShare(30, {kky: 47, lwt: 30, yjm: 23}),
  };

  /* Aggregated share-of-voice (today) */
  const SHARE_TODAY = {
    search:  { kky: 51.4, lwt: 27.8, yjm: 20.8 },
    news:    { kky: 56.1, lwt: 26.3, yjm: 17.6 },
    youtube: { kky: 41.8, lwt: 24.1, yjm: 34.1 },
    sns:     { kky: 46.9, lwt: 30.2, yjm: 22.9 },
  };

  /* Momentum — week-over-week change in share */
  const MOMENTUM = {
    kky: { search: -2.1, news: +0.6, youtube: -3.4, sns: +1.2, polls: -1.4 },
    lwt: { search: +1.8, news: +1.2, youtube: +0.4, sns: +0.8, polls: +2.1 },
    yjm: { search: +0.3, news: -1.8, youtube: +3.0, sns: -2.0, polls: -0.7 },
  };

  /* ---------- NESDC-style poll tracker ---------- */
  const POLLS = [
    { date:'02-14', firm:'리얼미터', n:807, kky:38.2, lwt:22.4, yjm:21.8, undecided:17.6 },
    { date:'02-28', firm:'한국갤럽', n:1004, kky:36.8, lwt:24.1, yjm:22.4, undecided:16.7 },
    { date:'03-12', firm:'NBS', n:1003, kky:37.4, lwt:25.6, yjm:21.2, undecided:15.8 },
    { date:'03-25', firm:'리서치뷰', n:1002, kky:35.2, lwt:27.8, yjm:23.6, undecided:13.4 },
    { date:'04-08', firm:'리얼미터', n:805, kky:34.6, lwt:28.4, yjm:24.1, undecided:12.9 },
    { date:'04-21', firm:'한국갤럽', n:1003, kky:33.1, lwt:30.4, yjm:24.6, undecided:11.9 },
    { date:'04-29', firm:'전북일보·KBC', n:802, kky:32.8, lwt:31.6, yjm:23.4, undecided:12.2 },
  ];

  /* ---------- Jeonbuk issue watch (Track 2 — Jeonbuk-context, candidate-agnostic) ---------- */
  const ISSUE_WATCH = [
    { issue:'새만금 공항', cat:'인프라', mentions7d: 12420, delta: +18.4, sentiment: -0.12, owner:'kky', ownership: 0.58 },
    { issue:'이차전지 클러스터', cat:'산업', mentions7d: 9840, delta: +6.2, sentiment: +0.18, owner:'kky', ownership: 0.51 },
    { issue:'농생명 스마트팜', cat:'농업', mentions7d: 6710, delta: +2.1, sentiment: +0.24, owner:'lwt', ownership: 0.62 },
    { issue:'인구소멸·청년유출', cat:'인구', mentions7d: 8240, delta: +14.6, sentiment: -0.41, owner:null, ownership: 0.34 },
    { issue:'전북특별자치도 1주년', cat:'행정', mentions7d: 5160, delta: -8.4, sentiment: +0.06, owner:'kky', ownership: 0.71 },
    { issue:'KTX·새만금 고속철', cat:'교통', mentions7d: 4820, delta: +21.0, sentiment: +0.04, owner:null, ownership: 0.28 },
    { issue:'쌀값 하락', cat:'농업', mentions7d: 4210, delta: +9.2, sentiment: -0.38, owner:'lwt', ownership: 0.48 },
    { issue:'잼버리 후속', cat:'관광', mentions7d: 1840, delta: -22.4, sentiment: -0.52, owner:'kky', ownership: 0.44 },
    { issue:'공공의료원 확충', cat:'복지', mentions7d: 3510, delta: +4.8, sentiment: +0.12, owner:'yjm', ownership: 0.36 },
    { issue:'새만금 RE100', cat:'환경', mentions7d: 2940, delta: +1.2, sentiment: -0.06, owner:'kky', ownership: 0.41 },
    { issue:'외국인 정착·다문화', cat:'인구', mentions7d: 2110, delta: +12.4, sentiment: -0.08, owner:null, ownership: 0.22 },
    { issue:'한옥마을 관광', cat:'관광', mentions7d: 1840, delta: -3.2, sentiment: +0.21, owner:null, ownership: 0.18 },
  ];

  /* ---------- Policy matrix (Track 3.6 — most valuable artifact) ---------- */
  const POLICIES = [
    {
      id:'saemangeum_air',
      issue:'새만금 국제공항',
      cat:'인프라',
      kky:{ stance:'적극 추진', detail:'2029년 개항 목표 사수, 국비 확보 직접 요청', strength:'strong' },
      lwt:{ stance:'추진하되 재설계', detail:'활주로 길이 재검토, 군 활용 분리 안 제시', strength:'medium' },
      yjm:{ stance:'전면 재검토', detail:'경제성·환경영향 재평가 후 결정해야', strength:'opposed' },
      public: 0.62, // 0~1 도민 찬성 비율
    },
    {
      id:'youth_jobs',
      issue:'청년 일자리',
      cat:'인구·일자리',
      kky:{ stance:'스타트업 허브', detail:'전주·완주 R&D 단지 + 청년수당 확대', strength:'medium' },
      lwt:{ stance:'농생명 청년', detail:'농어촌 청년 정착 직불금, 농업 스타트업', strength:'strong' },
      yjm:{ stance:'기업 유치 우선', detail:'규제 완화·법인세 감면으로 일자리 창출', strength:'medium' },
      public: 0.58,
    },
    {
      id:'depop',
      issue:'인구소멸 대응',
      cat:'인구·일자리',
      kky:{ stance:'정주여건 개선', detail:'주거·교육 패키지, 외국인 정착 인센티브', strength:'medium' },
      lwt:{ stance:'농촌 재구조화', detail:'시군 통합 대신 거점 중심 정비, 광역화', strength:'medium' },
      yjm:{ stance:'기업 일자리', detail:'결국 일자리만이 답, 기업 유치가 우선', strength:'weak' },
      public: 0.71,
    },
    {
      id:'rice_price',
      issue:'쌀값·농가소득',
      cat:'농업',
      kky:{ stance:'정부 협조', detail:'양곡관리법 개정 정부 입장 따름', strength:'weak' },
      lwt:{ stance:'양곡관리법 강행', detail:'정부 매입 의무화 법 통과 주도', strength:'strong' },
      yjm:{ stance:'시장 자율', detail:'재정 부담 큰 매입 의무화 반대', strength:'opposed' },
      public: 0.66,
    },
    {
      id:'med_school',
      issue:'의대 정원·공공의료',
      cat:'복지',
      kky:{ stance:'전북대 의대 증원', detail:'정부 안 수용, 공공의료원 확충 병행', strength:'medium' },
      lwt:{ stance:'증원+공공의대', detail:'전북 공공의대 신설 동시 추진', strength:'strong' },
      yjm:{ stance:'증원 반대 안 함', detail:'정원은 늘리되 의료계 협의 우선', strength:'weak' },
      public: 0.74,
    },
    {
      id:'battery',
      issue:'이차전지 클러스터',
      cat:'산업',
      kky:{ stance:'새만금 중심', detail:'1조 투자 유치 성과 강조, 확장 가속', strength:'strong' },
      lwt:{ stance:'리스크 관리', detail:'화재·환경 우려, 안전 관리 우선', strength:'medium' },
      yjm:{ stance:'중국 의존 경계', detail:'공급망 점검·보조금 재검토', strength:'medium' },
      public: 0.54,
    },
    {
      id:'ktx',
      issue:'KTX·새만금 고속철',
      cat:'교통',
      kky:{ stance:'2030 개통', detail:'국토부와 협의, 예타 통과 주력', strength:'strong' },
      lwt:{ stance:'노선 재검토', detail:'김제·부안 정차 보장 요구', strength:'medium' },
      yjm:{ stance:'우선순위 낮음', detail:'재정 여건 고려 재검토', strength:'weak' },
      public: 0.69,
    },
    {
      id:'autonomy',
      issue:'전북특별자치도 권한',
      cat:'행정',
      kky:{ stance:'성과 강조', detail:'1주년, 특례 25건 확보 자평', strength:'strong' },
      lwt:{ stance:'권한 부족', detail:'재정·인사 권한 더 필요, 2단계 논의', strength:'medium' },
      yjm:{ stance:'실효성 의문', detail:'간판만 바꾼 행정, 도민 체감 없어', strength:'opposed' },
      public: 0.42,
    },
  ];

  /* ---------- Co-mention network (Track 3.4) ----------
     Nodes = candidates + key issues + influential persons
     Edges = co-mention frequency (last 7d) */
  const NETWORK = {
    nodes: [
      { id:'kky', label:'김관영', kind:'cand', size:32 },
      { id:'lwt', label:'이원택', kind:'cand', size:24 },
      { id:'yjm', label:'양정무', kind:'cand', size:18 },
      { id:'saemangeum', label:'새만금', kind:'topic', size:28 },
      { id:'rice', label:'쌀값', kind:'topic', size:18 },
      { id:'battery', label:'이차전지', kind:'topic', size:22 },
      { id:'depop', label:'인구소멸', kind:'topic', size:20 },
      { id:'medschool', label:'의대정원', kind:'topic', size:16 },
      { id:'jamboree', label:'잼버리', kind:'topic', size:14 },
      { id:'autonomy', label:'특별자치도', kind:'topic', size:18 },
      { id:'youth', label:'청년일자리', kind:'topic', size:17 },
    ],
    edges: [
      { s:'kky', t:'saemangeum', w: 412 },
      { s:'kky', t:'autonomy', w: 384 },
      { s:'kky', t:'battery', w: 326 },
      { s:'kky', t:'jamboree', w: 198 },
      { s:'kky', t:'youth', w: 142 },
      { s:'lwt', t:'rice', w: 268 },
      { s:'lwt', t:'medschool', w: 184 },
      { s:'lwt', t:'youth', w: 156 },
      { s:'lwt', t:'depop', w: 142 },
      { s:'lwt', t:'saemangeum', w: 124 },
      { s:'yjm', t:'autonomy', w: 168 },
      { s:'yjm', t:'battery', w: 142 },
      { s:'yjm', t:'depop', w: 96 },
      { s:'yjm', t:'jamboree', w: 86 },
      // candidate-candidate (co-mention as comparison)
      { s:'kky', t:'lwt', w: 184 },
      { s:'kky', t:'yjm', w: 96 },
      { s:'lwt', t:'yjm', w: 64 },
    ],
  };

  /* ---------- Jeonbuk citizen keywords (Track 2 — pure 도민 ) ---------- */
  const CITIZEN_KEYWORDS = [
    { kw:'쌀값', vol:18420, dlt:+12.4, mood:-0.42 },
    { kw:'인구소멸', vol:14210, dlt:+8.6, mood:-0.38 },
    { kw:'새만금공항', vol:12840, dlt:+18.2, mood:-0.04 },
    { kw:'청년수당', vol:9620, dlt:+4.2, mood:+0.16 },
    { kw:'KTX정차', vol:8410, dlt:+24.1, mood:+0.32 },
    { kw:'전주한옥마을', vol:7240, dlt:-2.1, mood:+0.42 },
    { kw:'농촌의료', vol:6810, dlt:+9.4, mood:-0.12 },
    { kw:'잼버리', vol:5210, dlt:-22.0, mood:-0.58 },
    { kw:'스마트팜', vol:4920, dlt:+2.8, mood:+0.21 },
    { kw:'외국인노동', vol:3840, dlt:+14.2, mood:-0.08 },
    { kw:'기초연금', vol:3210, dlt:+1.4, mood:+0.06 },
    { kw:'특별자치도', vol:2980, dlt:-8.4, mood:-0.04 },
  ];

  /* ---------- 14 시군 mention heatmap by candidate ----------
     Numbers are share % (sum 100 per region) */
  const REGION_SHARE = {
    jeonju:   { kky: 54, lwt: 26, yjm: 20 },
    gunsan:   { kky: 71, lwt: 14, yjm: 15 }, // KKY home
    iksan:    { kky: 48, lwt: 32, yjm: 20 },
    jeongeup: { kky: 41, lwt: 38, yjm: 21 },
    namwon:   { kky: 38, lwt: 36, yjm: 26 },
    gimje:    { kky: 28, lwt: 58, yjm: 14 }, // LWT home
    wanju:    { kky: 52, lwt: 28, yjm: 20 },
    jinan:    { kky: 44, lwt: 32, yjm: 24 },
    muju:     { kky: 36, lwt: 28, yjm: 36 },
    jangsu:   { kky: 38, lwt: 30, yjm: 32 },
    imsil:    { kky: 42, lwt: 34, yjm: 24 },
    sunchang: { kky: 40, lwt: 36, yjm: 24 },
    gochang:  { kky: 38, lwt: 34, yjm: 28 },
    buan:     { kky: 32, lwt: 52, yjm: 16 }, // LWT home
  };

  /* ---------- Per-candidate timelines (utterance/news/SNS) ---------- */
  const TODAY_FEED = {
    kky: [
      { t:'09:14', kind:'doc', src:'전북도청 보도자료', title:'새만금 RE100 2단계 추진 발표', tone:'pos' },
      { t:'10:32', kind:'sns', src:'페이스북', title:'쌀값 안정 위한 정부 협의 결과 보고', tone:'neu' },
      { t:'12:08', kind:'news', src:'전북일보', title:'김관영, 청년 정착 패키지 확대안 제시', tone:'pos' },
      { t:'14:42', kind:'video', src:'KBS전주', title:'[인터뷰] 의대 증원·공공의료원 입장', tone:'neu' },
      { t:'17:21', kind:'news', src:'한겨레', title:'잼버리 후속 사업 진척 더디다 비판', tone:'neg' },
    ],
    lwt: [
      { t:'08:42', kind:'doc', src:'국회 의안정보', title:'양곡관리법 개정안 공동발의', tone:'pos' },
      { t:'11:14', kind:'sns', src:'페이스북', title:'김제 농가 현장 방문', tone:'pos' },
      { t:'13:04', kind:'news', src:'전북도민일보', title:'이원택, 농생명 청년 직불금 공약 발표', tone:'pos' },
      { t:'16:18', kind:'video', src:'JTV', title:'이원택 vs 김관영 — 쌀값 입장 차', tone:'neg' },
    ],
    yjm: [
      { t:'10:08', kind:'sns', src:'페이스북', title:'전주 산업단지 기업인 간담회', tone:'pos' },
      { t:'12:32', kind:'news', src:'새전북신문', title:'양정무, 도지사 출마 공식 선언', tone:'pos' },
      { t:'15:42', kind:'video', src:'유튜브 채널', title:'전북도정 1년 비판 토크', tone:'neg' },
    ],
  };

  /* ---------- Influencer landscape (Track 3.5) ----------
     Each influencer has stance toward each candidate */
  const INFLUENCERS = [
    { name:'전북일보 사설', kind:'media', reach:'대', kky:'중립', lwt:'중립', yjm:'중립' },
    { name:'전북도민일보', kind:'media', reach:'대', kky:'옹호', lwt:'중립', yjm:'중립' },
    { name:'새전북신문', kind:'media', reach:'중', kky:'중립', lwt:'중립', yjm:'옹호' },
    { name:'KBS전주', kind:'broadcast', reach:'대', kky:'중립', lwt:'중립', yjm:'중립' },
    { name:'JTV', kind:'broadcast', reach:'대', kky:'중립', lwt:'옹호', yjm:'중립' },
    { name:'한겨레', kind:'media', reach:'대', kky:'반대', lwt:'중립', yjm:'반대' },
    { name:'정치 유튜버 A', kind:'youtube', reach:'중', kky:'옹호', lwt:'중립', yjm:'반대' },
    { name:'정치 유튜버 B', kind:'youtube', reach:'중', kky:'반대', lwt:'중립', yjm:'옹호' },
    { name:'전북농민회', kind:'civic', reach:'중', kky:'반대', lwt:'옹호', yjm:'반대' },
    { name:'새만금 시민연대', kind:'civic', reach:'중', kky:'반대', lwt:'중립', yjm:'중립' },
    { name:'전주상공회의소', kind:'civic', reach:'중', kky:'옹호', lwt:'중립', yjm:'옹호' },
    { name:'맘카페연합', kind:'civic', reach:'중', kky:'중립', lwt:'옹호', yjm:'중립' },
  ];

  /* ---------- Risks/opportunities per candidate (this week) ---------- */
  const RISKOPP = {
    kky: {
      risks: [
        { sev:'HIGH', t:'잼버리 후속사업 진척 부진 비판', src:'한겨레·KBS', delta:'+58%' },
        { sev:'MED', t:'쌀값 정부 협조 입장에 농민회 반발', src:'전북농민회 성명', delta:'+14%' },
        { sev:'LOW', t:'이차전지 화재 우려 재점화', src:'새만금 시민연대', delta:'+4%' },
      ],
      opps: [
        { t:'특별자치도 1주년 성과 부각 가능', why:'특례 25건 확정 보도' },
        { t:'KTX 정차역 확보 시 도민 호응', why:'정차 키워드 +24%' },
      ],
    },
    lwt: {
      risks: [
        { sev:'MED', t:'당내 경선 가시화·갈등 노출', src:'당내 보도', delta:'+22%' },
        { sev:'LOW', t:'농촌 의제 편중 비판', src:'전주·도시 유권자', delta:'-' },
      ],
      opps: [
        { sev:'HIGH', t:'양곡관리법 통과 시 강한 메시지', why:'쌀값 -0.42 부정 정서' },
        { t:'도시 청년·여성 의제 확대 여지', why:'도민 키워드 분산' },
      ],
    },
    yjm: {
      risks: [
        { sev:'HIGH', t:'정당 비호감도 진입장벽', src:'전북 정당지지율', delta:'-' },
        { sev:'MED', t:'유튜브 의존, 노년층 외 미디어 노출 부족', src:'채널 분포', delta:'-' },
      ],
      opps: [
        { t:'무주·장수 보수 지역 강세', why:'시군 점유율 36%' },
        { t:'특별자치도 회의론 도민 정서와 정합', why:'도민 찬성 42%만' },
      ],
    },
  };

  /* ---------- Alerts (rule-based) ---------- */
  const ALERTS = [
    { sev:'HIGH', subject:'kky', rule:'NEG-SPIKE', msg:'한겨레 부정 보도 1시간 +180%', at:'17:42' },
    { sev:'HIGH', subject:'lwt', rule:'POS-SPIKE', msg:'양곡관리법 발의 보도 검색 +320%', at:'14:08' },
    { sev:'MED', subject:'obj', rule:'POLL-CROSS', msg:'KKY-LWT 격차 5p 이내 진입 (한국갤럽)', at:'11:30' },
    { sev:'MED', subject:'kky', rule:'CO-MENTION', msg:'잼버리+김관영 동반 언급 14일 평균 +220%', at:'10:14' },
    { sev:'LOW', subject:'yjm', rule:'YT-SPIKE', msg:'정치 유튜버 B 영상 24h +18만 조회', at:'09:02' },
  ];

  // expose
  window.V21 = {
    C, CANDIDATES, C_BY_ID, REGIONS,
    SHARE_30D, SHARE_TODAY, MOMENTUM, POLLS,
    ISSUE_WATCH, POLICIES, NETWORK, CITIZEN_KEYWORDS,
    REGION_SHARE, TODAY_FEED, INFLUENCERS, RISKOPP, ALERTS,
  };
})();
